File indexing completed on 2025-08-06 08:22:00
0001
0002
0003 #ifndef PROTOTYPE2_RAWTOWERTEMPERATURE_H
0004 #define PROTOTYPE2_RAWTOWERTEMPERATURE_H
0005
0006 #include <calobase/RawTower.h>
0007
0008 #include <calobase/RawTowerDefs.h>
0009
0010 #include <ctime>
0011 #include <iostream>
0012 #include <vector>
0013
0014 class RawTower_Temperature : public RawTower
0015 {
0016 public:
0017 RawTower_Temperature();
0018 RawTower_Temperature(const unsigned int icol, const unsigned int irow);
0019 RawTower_Temperature(RawTowerDefs::keytype id);
0020 virtual ~RawTower_Temperature() {}
0021
0022 void Reset() override;
0023 int isValid() const override { return get_nr_entries(); }
0024 void identify(std::ostream &os = std::cout) const override;
0025 void print(std::ostream &os = std::cout) const;
0026
0027 int get_column() const override { return RawTowerDefs::decode_index1(towerid); }
0028 int get_row() const override { return RawTowerDefs::decode_index2(towerid); }
0029
0030 void set_id(RawTowerDefs::keytype id) override { towerid = id; }
0031 RawTowerDefs::keytype get_id() const override { return towerid; }
0032
0033 int get_nr_entries() const { return temperatures.size(); }
0034
0035 int add_entry(const int eventnr, const time_t t, const float temp)
0036 {
0037 eventnumbers.push_back(eventnr);
0038 times.push_back(t);
0039 temperatures.push_back(temp);
0040 return get_nr_entries();
0041 }
0042
0043 float get_temperature_from_entry(const unsigned int entry) const
0044 {
0045 if (entry >= temperatures.size())
0046 return -1;
0047 return temperatures[entry];
0048 }
0049
0050 time_t get_time_from_entry(const unsigned int entry) const
0051 {
0052 if (entry >= times.size())
0053 return 0;
0054 return times[entry];
0055 }
0056
0057 int get_eventnumber_from_entry(const unsigned int entry) const
0058 {
0059 if (entry >= eventnumbers.size())
0060 return -1;
0061 return eventnumbers[entry];
0062 }
0063
0064 float get_temperature_from_time(const time_t t) const;
0065
0066
0067
0068
0069 protected:
0070 RawTowerDefs::keytype towerid;
0071
0072
0073
0074
0075
0076 std::vector<int> eventnumbers;
0077 std::vector<time_t> times;
0078 std::vector<float> temperatures;
0079
0080 ClassDefOverride(RawTower_Temperature, 1)
0081 };
0082
0083 #endif