SEvent/PMT.h
Go to the documentation of this file.
1 #ifndef _sevt_PMT_h_
2 #define _sevt_PMT_h_
3 
4 #include <utl/ShadowPtr.h>
5 #include <utl/MultiTrace.h>
6 #include <utl/IteratorRange.h>
7 
8 #include <sevt/StationConstants.h>
9 #include <sevt/PMTSimData.h>
10 #include <sevt/PMTRecData.h>
11 #include <sevt/PMTCalibData.h>
12 #include <sevt/PMTQuality.h>
13 
14 #include <sdet/PMTConstants.h>
15 
16 
17 namespace sevt {
18 
19  class Station;
20 
21 
28  class PMT {
29 
30  public:
32  unsigned int GetId() const { return fId; }
33 
34  // return PMT type (e.g. eWaterCherenkovLarge)
36 
37  int GetStationId() const { return fStationId; }
38 
41  const PMTSimData& GetSimData() const { return *fPMTSimData; }
43  void MakeSimData();
45  bool HasSimData() const { return bool(fPMTSimData); }
46 
49  const PMTRecData& GetRecData() const { return *fPMTRecData; }
51  void MakeRecData();
53  bool HasRecData() const { return bool(fPMTRecData); }
54 
57  const PMTCalibData& GetCalibData() const { return *fPMTCalibData; }
59  void MakeCalibData();
61  bool HasCalibData() const { return bool(fPMTCalibData); }
62 
65  const PMTQuality& GetQuality() const { return *fPMTQuality; }
66  void MakeQuality();
68  bool HasQuality() const { return bool(fPMTQuality); }
69 
74  { return fFADCTrace[gain].GetTrace(source); }
77  { return fFADCTrace[gain].GetTrace(source); }
78 
81 
85 
87  { return fFADCTrace[gain]; }
88 
93 
95  { return fFADCTrace[gain].Begin(); }
97  { return fFADCTrace[gain].End(); }
99  { return fFADCTrace[gain].Begin(); }
101  { return fFADCTrace[gain].End(); }
103 
104  // these should be removed in FatBastard
110 
116 
117 
121  utl::TraceD& GetFADCTraceD(const sdet::PMTConstants::PMTGain gain = sdet::PMTConstants::eHighGain,
122  const StationConstants::SignalComponent source = StationConstants::eTotal)
123  { return fFADCTraceD[gain].GetTrace(source); }
126  { return fFADCTraceD[gain].GetTrace(source); }
127 
129  { return fFADCTraceD[gain]; }
130 
135 
137  { return fFADCTraceD[gain].Begin(); }
139  { return fFADCTraceD[gain].End(); }
141  { return fFADCTraceD[gain].Begin(); }
143  { return fFADCTraceD[gain].End(); }
146 
147  private:
148  PMT(const unsigned int id, const int stationId,
149  const sdet::PMTConstants::PMTType ptype = sdet::PMTConstants::eWaterCherenkovLarge)
150  : fId(id), fStationId(stationId), fPMTType(ptype) { }
151 
152  ~PMT() = default;
153 
154  unsigned int fId = 0;
155  int fStationId = 0;
157 
162 
165 
166  friend class Station;
167 
168  };
169 
170 
171  class PMTFilter {
172  public:
174 
175  bool operator()(const PMT& pmt) const
176  { return fType == sdet::PMTConstants::eAnyType || pmt.GetType() == fType; }
177 
178  private:
180  };
181 
182 }
183 
184 
185 #endif
FADCTraceIterator FADCTracesEnd(const sdet::PMTConstants::PMTGain gain=sdet::PMTConstants::eHighGain)
Definition: SEvent/PMT.h:96
#define OFFLINE_MAKE_BOTH_ITERATOR_RANGES_ARG(_Iterator_, _ConstIterator_, _NamePrefix_, _Arg_)
Definition: IteratorRange.h:69
utl::ShadowPtr< PMTQuality > fPMTQuality
Definition: SEvent/PMT.h:161
FADCTraceIterator FADCLGTracesBegin()
Definition: SEvent/PMT.h:111
pointer with built-in initialization, deletion, deep copying
Definition: ShadowPtr.h:163
boost::transform_iterator< LabeledObjectFunctor, typename MultiObjectContainer::iterator, LabeledObjectType > Iterator
Definition: MultiObject.h:78
bool HasRecData() const
Check for existenc of PMT reconstructed data object.
Definition: SEvent/PMT.h:53
ConstFADCTraceIterator FADCLGTracesEnd() const
Definition: SEvent/PMT.h:114
PMTSimData & GetSimData()
Get object containing PMT simulated data.
Definition: SEvent/PMT.h:40
class to hold data at PMT level
Definition: SEvent/PMT.h:28
#define OFFLINE_MAKE_BOTH_ITERATOR_RANGES(_Iterator_, _ConstIterator_, _NamePrefix_)
Definition: IteratorRange.h:43
total (shower and background)
void MakeQuality()
Definition: SEvent/PMT.cc:57
PMTCalibData & GetCalibData()
Get object containing PMT calibration data.
Definition: SEvent/PMT.h:56
sdet::PMTConstants::PMTType GetType() const
Definition: SEvent/PMT.h:35
ConstFADCTraceIterator FADCTracesEnd(const sdet::PMTConstants::PMTGain gain=sdet::PMTConstants::eHighGain) const
Definition: SEvent/PMT.h:100
PMTRecData & GetRecData()
Get object containing PMT reconstructed data.
Definition: SEvent/PMT.h:48
ConstFADCTraceIteratorD FADCTracesDBegin(const sdet::PMTConstants::PMTGain gain=sdet::PMTConstants::eHighGain) const
Definition: SEvent/PMT.h:140
bool HasCalibData() const
Check for existence of PMT calibration data object.
Definition: SEvent/PMT.h:61
FADCTraceIteratorD FADCTracesDEnd(const sdet::PMTConstants::PMTGain gain=sdet::PMTConstants::eHighGain)
Definition: SEvent/PMT.h:138
ConstFADCTraceIterator FADCHGTracesEnd() const
Definition: SEvent/PMT.h:108
const utl::MultiTraceD & GetMultiFADCTraceD(const sdet::PMTConstants::PMTGain gain=sdet::PMTConstants::eHighGain) const
Definition: SEvent/PMT.h:128
int gain
Definition: dump1090.h:241
unsigned int GetId() const
Return Id of the PMT.
Definition: SEvent/PMT.h:32
Iterator Begin()
Definition: MultiObject.h:83
boost::transform_iterator< LabeledObjectFunctor, typename MultiObjectContainer::const_iterator, LabeledObjectType > ConstIterator
Definition: MultiObject.h:81
void MakeSimData()
Make PMT simulated data object.
Definition: SEvent/PMT.cc:19
void MakeRecData()
Make PMT reconstructed data object.
Definition: SEvent/PMT.cc:33
Trace< double > TraceD
Definition: Trace-fwd.h:26
FADCTraceIterator FADCHGTracesBegin()
Definition: SEvent/PMT.h:105
ConstFADCTraceIterator FADCHGTracesBegin() const
Definition: SEvent/PMT.h:107
utl::MultiTraceI fFADCTrace[sdet::PMTConstants::eNumberOfGains]
Definition: SEvent/PMT.h:163
utl::ShadowPtr< PMTCalibData > fPMTCalibData
Definition: SEvent/PMT.h:160
class to hold data at Station level
bool HasFADCTrace(const StationConstants::SignalComponent source=StationConstants::eTotal) const
Check if a FADC trace exists. Trace source may be specified.
Definition: SEvent/PMT.h:83
class to hold reconstructed data at PMT level
Definition: PMTRecData.h:38
int GetStationId() const
Definition: SEvent/PMT.h:37
void MakeFADCTrace(const StationConstants::SignalComponent source=StationConstants::eTotal)
Make a FADC trace. Trace source may be specified.
Definition: SEvent/PMT.cc:67
FADCTraceIterator FADCTracesBegin(const sdet::PMTConstants::PMTGain gain=sdet::PMTConstants::eHighGain)
Definition: SEvent/PMT.h:94
const PMTRecData & GetRecData() const
Definition: SEvent/PMT.h:49
PMTFilter(const sdet::PMTConstants::PMTType type)
Definition: SEvent/PMT.h:173
Online Calibration data.
Definition: PMTCalibData.h:27
ConstFADCTraceIteratorD FADCTracesDEnd(const sdet::PMTConstants::PMTGain gain=sdet::PMTConstants::eHighGain) const
Definition: SEvent/PMT.h:142
utl::ShadowPtr< PMTRecData > fPMTRecData
Definition: SEvent/PMT.h:159
void MakeCalibData()
Make PMT calibration data object.
Definition: SEvent/PMT.cc:47
Online Calibration data.
Definition: PMTQuality.h:25
utl::TraceD & GetFADCTraceD(const sdet::PMTConstants::PMTGain gain=sdet::PMTConstants::eHighGain, const StationConstants::SignalComponent source=StationConstants::eTotal)
Definition: SEvent/PMT.h:121
FADCTraceIterator FADCHGTracesEnd()
Definition: SEvent/PMT.h:106
utl::ShadowPtr< PMTSimData > fPMTSimData
Definition: SEvent/PMT.h:158
bool HasSimData() const
Check for existence of PMT simulated data object.
Definition: SEvent/PMT.h:45
utl::TraceI & GetFADCTrace(const sdet::PMTConstants::PMTGain gain=sdet::PMTConstants::eHighGain, const StationConstants::SignalComponent source=StationConstants::eTotal)
Definition: SEvent/PMT.h:72
const PMTQuality & GetQuality() const
Definition: SEvent/PMT.h:65
const utl::MultiTraceI & GetMultiFADCTrace(const sdet::PMTConstants::PMTGain gain=sdet::PMTConstants::eHighGain) const
Definition: SEvent/PMT.h:86
utl::MultiTraceD::ConstIterator ConstFADCTraceIteratorD
Definition: SEvent/PMT.h:134
utl::MultiTraceI::ConstIterator ConstFADCTraceIterator
Definition: SEvent/PMT.h:92
const utl::TraceD & GetFADCTraceD(const sdet::PMTConstants::PMTGain gain=sdet::PMTConstants::eHighGain, const StationConstants::SignalComponent source=StationConstants::eTotal) const
Definition: SEvent/PMT.h:124
FADCTraceIteratorD FADCTracesDBegin(const sdet::PMTConstants::PMTGain gain=sdet::PMTConstants::eHighGain)
Definition: SEvent/PMT.h:136
sdet::PMTConstants::PMTType fPMTType
Definition: SEvent/PMT.h:156
utl::MultiTraceD fFADCTraceD[sdet::PMTConstants::eNumberOfGains]
Definition: SEvent/PMT.h:164
utl::MultiTraceD::Iterator FADCTraceIteratorD
Definition: SEvent/PMT.h:133
Class to hold simulated data at PMT level.
Definition: PMTSimData.h:40
Trace< T > & GetTrace(const int label=0)
Returns the trace for /par source.
Definition: MultiTrace.h:70
bool HasQuality() const
Check for existence of PMT Quality (anode mask and/or raining) data object.
Definition: SEvent/PMT.h:68
total (shower and background)
PMTQuality & GetQuality()
Get object containing PMT Quality bits.
Definition: SEvent/PMT.h:64
const PMTSimData & GetSimData() const
Definition: SEvent/PMT.h:41
ConstFADCTraceIterator FADCLGTracesBegin() const
Definition: SEvent/PMT.h:113
const PMTCalibData & GetCalibData() const
Definition: SEvent/PMT.h:57
Iterator End()
Definition: MultiObject.h:85
int fStationId
Definition: SEvent/PMT.h:155
utl::MultiTraceI::Iterator FADCTraceIterator
Definition: SEvent/PMT.h:91
~PMT()=default
const utl::TraceI & GetFADCTrace(const sdet::PMTConstants::PMTGain gain=sdet::PMTConstants::eHighGain, const StationConstants::SignalComponent source=StationConstants::eTotal) const
Definition: SEvent/PMT.h:75
bool operator()(const PMT &pmt) const
Definition: SEvent/PMT.h:175
bool HasLabel(const int label) const
Definition: MultiObject.h:91
Definition: XbArray.h:7
FADCTraceIterator FADCLGTracesEnd()
Definition: SEvent/PMT.h:112
unsigned int fId
Definition: SEvent/PMT.h:154
ConstFADCTraceIterator FADCTracesBegin(const sdet::PMTConstants::PMTGain gain=sdet::PMTConstants::eHighGain) const
Definition: SEvent/PMT.h:98
const sdet::PMTConstants::PMTType fType
Definition: SEvent/PMT.h:179

, generated on Tue Sep 26 2023.