Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:16:22

0001 #ifndef CALOBASE_RawTowerv2_H
0002 #define CALOBASE_RawTowerv2_H
0003 
0004 #include "RawTowerv1.h"
0005 
0006 #include "RawTowerDefs.h"
0007 
0008 #include <cstdint>  // for uint8_t
0009 #include <iostream>
0010 #include <map>
0011 
0012 //! RawTowerv1 but allow flexible tags
0013 class RawTowerv2 : public RawTowerv1
0014 {
0015  public:
0016   RawTowerv2() = default;
0017   RawTowerv2(const RawTower& tower);
0018   RawTowerv2(RawTowerDefs::keytype id);
0019   RawTowerv2(const unsigned int ieta, const unsigned int iphi);
0020   RawTowerv2(const RawTowerDefs::CalorimeterId caloid, const unsigned int ieta,
0021              const unsigned int iphi);
0022   ~RawTowerv2() override {}
0023 
0024   void Reset() override;
0025   int isValid() const override;
0026   void identify(std::ostream& os = std::cout) const override;
0027 
0028   double get_scint_gammas() const override { return get_property(prop_scint_gammas); }
0029   void set_scint_gammas(const double e) override { set_property(prop_scint_gammas, e); }
0030   double get_cerenkov_gammas() const override { return get_property(prop_cerenkov_gammas); }
0031   void set_cerenkov_gammas(const double e) override { set_property(prop_cerenkov_gammas, e); }
0032 
0033   bool has_property(const PROPERTY prop_id) const override;
0034   double get_property(const PROPERTY prop_id) const override;
0035   // cppcheck-suppress virtualCallInConstructor
0036   void set_property(const PROPERTY prop_id, const double value) override;
0037 
0038  protected:
0039   typedef uint8_t prop_id_t;
0040   typedef std::map<prop_id_t, double> prop_map_t;
0041   //! container for additional property
0042   prop_map_t prop_map;
0043 
0044   ClassDefOverride(RawTowerv2, 1)
0045 };
0046 
0047 #endif