Pad.h
Go to the documentation of this file.
1 #ifndef _cevt_Pad_h_
2 #define _cevt_Pad_h_
3 
4 #include <utl/ShadowPtr.h>
5 #include <utl/MultiTimeDistribution.h>
6 
7 #include <cevt/StationConstants.h>
8 #include <cevt/PadSimData.h>
9 #include <cevt/PadRecData.h>
10 
11 
12 namespace io {
13  class cevtPad_ROOT;
14 }
15 
16 namespace cevt {
17 
18  class Station;
19 
20 
27  class Pad {
28 
29  public:
31  unsigned int GetId() const { return fId; }
32 
34  int GetStationId() const { return fStationId; }
35 
36  unsigned int GetRPCId() const;
37 
39 
42  const PadSimData& GetSimData() const { return *fPadSimData; }
43 
45  void MakeSimData();
46 
48  bool HasSimData() const { return bool(fPadSimData); }
49 
52  const PadRecData& GetRecData() const { return *fPadRecData; }
53 
55  void MakeRecData();
56 
58  bool HasRecData() const { return bool(fPadRecData); }
59 
60  void ClearHits() { fHits->Clear(); }
61 
65  { return fHits->GetTimeDistribution(source); }
68  { return fHits->GetTimeDistribution(source); }
69 
72 
75  { return fHits->HasLabel(source); }
76 
78  { return *fHits; }
79 
84 
85  HitsIterator HitsBegin() { return fHits->Begin(); }
86  HitsIterator HitsEnd() { return fHits->End(); }
87  ConstHitsIterator HitsBegin() const { return fHits->Begin(); }
88  ConstHitsIterator HitsEnd() const { return fHits->End(); }
89 
91 
92  private:
93  Pad(const int stationId, const unsigned int id) : fStationId(stationId), fId(id) { }
94  ~Pad() { }
95 
96  int fStationId = 0;
97  unsigned int fId = 0;
98 
101 
103 
104  friend class Station;
105  friend class io::cevtPad_ROOT;
106 
107  };
108 
109 }
110 
111 
112 #endif
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
HitsIterator HitsBegin()
Definition: Pad.h:85
bool HasHits(const StationConstants::SignalComponent source=StationConstants::eTotal) const
Check if a digitized signal exists. Source may be specified.
Definition: Pad.h:74
unsigned int GetTotalHits(const StationConstants::SignalComponent source=StationConstants::eTotal) const
Definition: Pad.cc:27
ConstHitsIterator HitsBegin() const
Definition: Pad.h:87
const utl::MultiTimeDistributionI & GetMultiHits()
Definition: Pad.h:77
unsigned int GetRPCId() const
Definition: Pad.cc:19
bool HasRecData() const
Check for existence of Pad reconstructed data object.
Definition: Pad.h:58
int fStationId
Definition: Pad.h:96
Histogram class for time distributions with suppressed empty bins.
boost::transform_iterator< LabeledObjectFunctor, typename MultiObjectContainer::const_iterator, LabeledObjectType > ConstIterator
Definition: MultiObject.h:81
Class to hold simulated data at Pad level.
Definition: PadSimData.h:39
unsigned int fId
Definition: Pad.h:97
class to hold data at Pad level
Definition: Pad.h:27
unsigned int GetId() const
Return Id of the Pad.
Definition: Pad.h:31
Persistent RPC Pad using ROOT.
Definition: cevtPad_ROOT.h:29
PadRecData & GetRecData()
Get object containing Pad reconstructed data.
Definition: Pad.h:51
ConstHitsIterator HitsEnd() const
Definition: Pad.h:88
utl::TimeDistributionI & GetHits(const StationConstants::SignalComponent source=StationConstants::eTotal)
Get time distribution of hits, optionally specifying the source.
Definition: Pad.h:64
class to hold reconstructed data at Pad level.
Definition: PadRecData.h:29
~Pad()
Definition: Pad.h:94
Pad(const int stationId, const unsigned int id)
Definition: Pad.h:93
const PadRecData & GetRecData() const
Definition: Pad.h:52
void MakeRecData()
Make Pad reconstructed data object.
Definition: Pad.cc:49
int GetStationId() const
Return Id of the station to which this Pad belongs.
Definition: Pad.h:34
utl::ShadowPtr< PadSimData > fPadSimData
Definition: Pad.h:99
void MakeHits(const StationConstants::SignalComponent source=StationConstants::eTotal)
Make a time distribution. Source may be specified.
Definition: Pad.cc:59
void MakeSimData()
Make Pad simulated data object.
Definition: Pad.cc:39
const PadSimData & GetSimData() const
Definition: Pad.h:42
class to hold data at Station level
utl::MultiTimeDistributionI::ConstIterator ConstHitsIterator
Definition: Pad.h:83
HitsIterator HitsEnd()
Definition: Pad.h:86
total (shower and background)
const utl::TimeDistributionI & GetHits(const StationConstants::SignalComponent source=StationConstants::eTotal) const
Definition: Pad.h:67
PadSimData & GetSimData()
Get object containing Pad simulated data.
Definition: Pad.h:41
utl::ShadowPtr< PadRecData > fPadRecData
Definition: Pad.h:100
utl::InitializedShadowPtr< utl::MultiTimeDistributionI > fHits
Definition: Pad.h:102
utl::MultiTimeDistributionI::Iterator HitsIterator
Definition: Pad.h:82
void ClearHits()
Definition: Pad.h:60
Definition: XbArray.h:7
bool HasSimData() const
Check for existence of Pad simulated data object.
Definition: Pad.h:48

, generated on Tue Sep 26 2023.