File indexing completed on 2025-12-19 09:24:41
0001
0002
0003 #ifndef PROTOTYPE2_RAWTOWERPROTOTYPE2_H
0004 #define PROTOTYPE2_RAWTOWERPROTOTYPE2_H
0005
0006 #include "PROTOTYPE2_FEM.h"
0007
0008 #include <calobase/RawTower.h>
0009 #include <calobase/RawTowerDefs.h>
0010
0011 #include <iostream> // for cout, ostream
0012
0013 class RawTower_Prototype2 : public RawTower
0014 {
0015 public:
0016 RawTower_Prototype2();
0017 RawTower_Prototype2(const RawTower &tower);
0018 RawTower_Prototype2(RawTowerDefs::keytype id);
0019 RawTower_Prototype2(const unsigned int icol, const unsigned int irow);
0020 RawTower_Prototype2(const RawTowerDefs::CalorimeterId caloid,
0021 const unsigned int ieta, const unsigned int iphi);
0022 virtual ~RawTower_Prototype2() {}
0023
0024 void Reset() override;
0025 int isValid() const override;
0026 void identify(std::ostream &os = std::cout) const override;
0027
0028 void set_id(RawTowerDefs::keytype id) override { towerid = id; }
0029 RawTowerDefs::keytype get_id() const override { return towerid; }
0030 int get_bineta() const override { return RawTowerDefs::decode_index1(towerid); }
0031 int get_binphi() const override { return RawTowerDefs::decode_index2(towerid); }
0032 int get_column() const override { return RawTowerDefs::decode_index1(towerid); }
0033 int get_row() const override { return RawTowerDefs::decode_index2(towerid); }
0034 double get_energy() const override { return energy; }
0035 void set_energy(const double e) override { energy = e; }
0036 float get_time() const override { return time; }
0037 void set_time(const float t) override { time = t; }
0038
0039
0040
0041
0042 enum
0043 {
0044 NSAMPLES = PROTOTYPE2_FEM::NSAMPLES
0045 };
0046 typedef float signal_type;
0047
0048 void set_signal_samples(int i, signal_type sig);
0049 signal_type get_signal_samples(int i) const;
0050 void set_HBD_channel_number(int i) { HBD_channel = i; }
0051 int get_HBD_channel_number() const { return HBD_channel; }
0052
0053
0054
0055 double get_energy_power_law_exp(int verbosity = 0);
0056
0057 protected:
0058 RawTowerDefs::keytype towerid;
0059
0060
0061
0062 double energy;
0063
0064
0065 float time;
0066
0067
0068 signal_type signal_samples[NSAMPLES];
0069 int HBD_channel;
0070
0071 ClassDefOverride(RawTower_Prototype2, 3)
0072 };
0073
0074 #endif