SEvent/Scintillator.h
Go to the documentation of this file.
1 #ifndef _sevt_Scintillator_h_
2 #define _sevt_Scintillator_h_
3 
4 #include <utl/ShadowPtr.h>
5 #include <utl/MultiTrace.h>
6 #include <utl/TimeStamp.h>
7 #include <utl/Trace.h>
8 #include <utl/IteratorRange.h>
9 
10 #include <sevt/StationConstants.h>
11 #include <sevt/SignalSegment.h>
12 #include <sevt/ScintillatorSimData.h>
13 #include <sevt/ScintillatorRecData.h>
14 
15 #include <sdet/PMTConstants.h>
16 
17 
18 namespace sevt {
19 
27  class Scintillator {
28  public:
30 
33 
36  { return fTrace.GetTrace(source); }
38  { return fTrace.GetTrace(source); }
43  { return fTrace.HasLabel(source); }
44 
52 
53  sevt::ScintillatorSimData& GetSimData() { return *fSimData; }
54  const sevt::ScintillatorSimData& GetSimData() const { return *fSimData; }
55  void MakeSimData();
56  bool HasSimData() const { return bool(fSimData); }
57 
60  const ScintillatorRecData& GetRecData() const { return *fRecData; }
62  void MakeRecData();
64  bool HasRecData() const { return bool(fRecData); }
65 
67  bool IsNoSaturation() const
71 
73  void SetLowGainSaturation(const bool sat = true) { fSaturation[sdet::PMTConstants::eLowGain] = sat; }
74  void SetHighGainSaturation(const bool sat = true) { fSaturation[sdet::PMTConstants::eHighGain] = sat; }
75 
77  bool HasSignals() const { return !fSignals.empty(); }
78 
80  const SignalSegmentCollection& GetSignals() const { return fSignals; }
81 
82  private:
83  Scintillator(const int stationId) : fStationId(stationId) { }
84  ~Scintillator() = default;
85 
86  int fStationId = 0;
88 
90 
93 
94  friend class Station;
96 
98 
99  };
100 
101 }
102 
103 
104 #endif
bool HasMIPTrace(const StationConstants::SignalComponent source=StationConstants::eTotal) const
Check whether VEM trace exists.
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
ConstMIPTraceIterator MIPTracesEnd() const
MIPTraceIterator MIPTracesEnd()
Last VEM trace.
bool IsHighGainSaturation() const
#define OFFLINE_MAKE_BOTH_ITERATOR_RANGES(_Iterator_, _ConstIterator_, _NamePrefix_)
Definition: IteratorRange.h:43
total (shower and background)
utl::TraceD & GetMIPTrace(const StationConstants::SignalComponent source=StationConstants::eTotal)
FADC trace calibrated in [MIP charge].
bool HasSimData() const
bool fSaturation[sdet::PMTConstants::eNumberOfGains]
SignalSegmentCollection & GetSignals()
bool IsNoSaturation() const
Check if scintillator is saturated.
ScintillatorRecData & GetRecData()
Get object containing scintillator reconstructed data.
const SignalSegmentCollection & GetSignals() const
SignalSegmentCollection fSignals
bool IsLowGainSaturation() const
Iterator Begin()
Definition: MultiObject.h:83
void SetLowGainSaturation(const bool sat=true)
boost::transform_iterator< LabeledObjectFunctor, typename MultiObjectContainer::const_iterator, LabeledObjectType > ConstIterator
Definition: MultiObject.h:81
const sevt::ScintillatorSimData & GetSimData() const
void SetHighGainSaturation(const bool sat=true)
class to hold data at Station level
bool HasRecData() const
Check for existence of scintillator reconstructed data object.
sevt::ScintillatorSimData & GetSimData()
const utl::TraceD & GetMIPTrace(const StationConstants::SignalComponent source=StationConstants::eTotal) const
utl::ShadowPtr< ScintillatorRecData > fRecData
ConstMIPTraceIterator MIPTracesBegin() const
utl::MultiTraceD::Iterator MIPTraceIterator
an iterator over MIP traces of different components
~Scintillator()=default
Scintillator(const int stationId)
std::vector< SignalSegment > SignalSegmentCollection
Definition: SignalSegment.h:33
void MakeMIPTrace(const StationConstants::SignalComponent source=StationConstants::eTotal)
Make a VEM trace object.
utl::ShadowPtr< ScintillatorSimData > fSimData
class to hold data for station Scintillator
Station Scintillator Level Simulated Data
utl::MultiTraceD::ConstIterator ConstMIPTraceIterator
Trace< T > & GetTrace(const int label=0)
Returns the trace for /par source.
Definition: MultiTrace.h:70
utl::MultiTraceD fTrace
Class to access station scintillator reconstructed data.
bool HasSignals() const
Check for segments of trace determined to contain signal.
Iterator End()
Definition: MultiObject.h:85
MIPTraceIterator MIPTracesBegin()
First VEM trace.
void MakeRecData()
Make scintillator reconstructed data object.
const ScintillatorRecData & GetRecData() const
bool HasLabel(const int label) const
Definition: MultiObject.h:91

, generated on Tue Sep 26 2023.