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
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
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
0042 prop_map_t prop_map;
0043
0044 ClassDefOverride(RawTowerv2, 1)
0045 };
0046
0047 #endif