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