00001 #ifndef HCALTBTIMING_H
00002 #define HCALTBTIMING_H 1
00003
00004 #include <string>
00005 #include <iostream>
00006 #include <vector>
00007 #include "boost/cstdint.hpp"
00008
00018 class HcalTBTiming {
00019 public:
00020 HcalTBTiming();
00021
00022
00023
00025 double triggerTime() const { return triggerTime_; }
00026
00028 double ttcL1Atime() const { return ttcL1Atime_; }
00029
00031 double laserFlash() const { return laserFlash_; }
00033 double qiePhase() const { return qiePhase_; }
00034
00036 double TOF1Stime() const { return TOF1Stime_; }
00038 double TOF1Jtime() const { return TOF1Jtime_; }
00040 double TOF2Stime() const { return TOF2Stime_; }
00042 double TOF2Jtime() const { return TOF2Jtime_; }
00043
00045 int BeamCoincidenceCount() const { return beamCoincidenceHits_.size(); }
00047 int M1Count() const { return m1hits_.size(); }
00049 int M2Count() const { return m2hits_.size(); }
00051 int M3Count() const { return m3hits_.size(); }
00052
00054 int S1Count() const { return s1hits_.size(); }
00056 int S2Count() const { return s2hits_.size(); }
00058 int S3Count() const { return s3hits_.size(); }
00060 int S4Count() const { return s4hits_.size(); }
00061
00063 int BH1Count() const { return bh1hits_.size(); }
00065 int BH2Count() const { return bh2hits_.size(); }
00067 int BH3Count() const { return bh3hits_.size(); }
00069 int BH4Count() const { return bh4hits_.size(); }
00070
00072 double BeamCoincidenceHits(int index) const { return beamCoincidenceHits_[index]; }
00074 double M1Hits(int index) const { return m1hits_[index]; }
00076 double M2Hits(int index) const { return m2hits_[index]; }
00078 double M3Hits(int index) const { return m3hits_[index]; }
00079
00081 double S1Hits(int index) const { return s1hits_[index]; }
00083 double S2Hits(int index) const { return s2hits_[index]; }
00085 double S3Hits(int index) const { return s3hits_[index]; }
00087 double S4Hits(int index) const { return s4hits_[index]; }
00088
00090 double BH1Hits(int index) const { return bh1hits_[index]; }
00092 double BH2Hits(int index) const { return bh2hits_[index]; }
00094 double BH3Hits(int index) const { return bh3hits_[index]; }
00096 double BH4Hits(int index) const { return bh4hits_[index]; }
00098 int V775(int index) const {return V775_[index];}
00099
00100
00101 void setTimes (const double trigger_time,
00102 const double ttc_l1a_time,
00103 const double laser_flash,
00104 const double qie_phase,
00105 const double TOF1S_time,
00106 const double TOF1J_time,
00107 const double TOF2S_time,
00108 const double TOF2J_time);
00109
00110 void setHits (const std::vector<double>& m1hits,
00111 const std::vector<double>& m2hits,
00112 const std::vector<double>& m3hits,
00113 const std::vector<double>& s1hits,
00114 const std::vector<double>& s2hits,
00115 const std::vector<double>& s3hits,
00116 const std::vector<double>& s4hits,
00117 const std::vector<double>& bh1hits,
00118 const std::vector<double>& bh2hits,
00119 const std::vector<double>& bh3hits,
00120 const std::vector<double>& bh4hits,
00121 const std::vector<double>& beamCoincidenceHits);
00122
00123 void setV775 (int *V775);
00124
00125
00126 private:
00127 double triggerTime_;
00128 double ttcL1Atime_;
00129 double laserFlash_;
00130 double qiePhase_;
00131 double TOF1Stime_;
00132 double TOF1Jtime_;
00133 double TOF2Stime_;
00134 double TOF2Jtime_;
00135
00136 int V775_[32];
00137 std::vector<double> beamCoincidenceHits_;
00138
00139 std::vector<double> m1hits_;
00140 std::vector<double> m2hits_;
00141 std::vector<double> m3hits_;
00142
00143 std::vector<double> s1hits_;
00144 std::vector<double> s2hits_;
00145 std::vector<double> s3hits_;
00146 std::vector<double> s4hits_;
00147
00148 std::vector<double> bh1hits_;
00149 std::vector<double> bh2hits_;
00150 std::vector<double> bh3hits_;
00151 std::vector<double> bh4hits_;
00152 };
00153
00154 std::ostream& operator<<(std::ostream& s, const HcalTBTiming& htbtmg);
00155
00156 #endif