CEvent.h
Go to the documentation of this file.
1 
10 #ifndef _cevt_CEvent_h_
11 #define _cevt_CEvent_h_
12 
13 #include <vector>
14 #include <map>
15 #include <algorithm>
16 #include <boost/iterator/indirect_iterator.hpp>
17 #include <boost/iterator/filter_iterator.hpp>
18 
19 #include <utl/LameShadowPtr.h>
20 #include <cevt/CEventSimData.h>
21 #include <cevt/Station.h>
22 
23 static const char CvsId_cevt_CEvent[] =
24  "$Id$";
25 
26 namespace evt {
27  class Event;
28 }
29 
30 namespace cevt {
31 
32 // class EventTrigger;
33 // class Header;
34 // class SQualityCuts;
35 
36 
46  class CEvent {
47 
48  private:
49  typedef std::vector<Station*> InternalStationCollection;
50  typedef InternalStationCollection::iterator InternalStationIterator;
51  typedef InternalStationCollection::const_iterator InternalConstStationIterator;
52 
53  public:
54  CEvent(const CEvent& cEvent);
55  CEvent& operator=(const CEvent& cEvent);
56 
58  typedef boost::indirect_iterator<InternalStationIterator,
60  typedef boost::indirect_iterator<InternalConstStationIterator,
62 
65  { return StationIterator(fStations.begin()); }
68  { return StationIterator(fStations.end()); }
69 
72  { return ConstStationIterator(fStations.begin()); }
75  { return ConstStationIterator(fStations.end()); }
76 
77 
79  typedef boost::filter_iterator<CandidateStationFilter,
81  typedef boost::filter_iterator<CandidateStationFilter,
83 
88 
93 
95  typedef boost::filter_iterator<SilentStationFilter,
97  typedef boost::filter_iterator<SilentStationFilter,
99 
104 
109 
111  typedef boost::filter_iterator<RejectedStationFilter,
113  typedef boost::filter_iterator<RejectedStationFilter,
115 
116  // DV: maybe in the future the rejectionMask should be replaced with an expression template
117  RejectedStationIterator RejectedStationsBegin(const int rejectionMask = ~0)
119  RejectedStationIterator RejectedStationsEnd(const int rejectionMask = ~0)
120  { return RejectedStationIterator(RejectedStationFilter(rejectionMask), StationsEnd(), StationsEnd()); }
121 
122  ConstRejectedStationIterator RejectedStationsBegin(const int rejectionMask = ~0) const
124  ConstRejectedStationIterator RejectedStationsEnd(const int rejectionMask = ~0) const
126 
127 
129  Station& GetStation(const int stationId);
130  const Station& GetStation(const int stationId) const;
131 
133  void MakeStation(const int stationId);
135  bool HasStation(const int stationId) const;
137  int GetNumberOfStations() const { return fStations.size(); }
138 
139 
140 // // SD Event Central Trigger Information
141 
142 // /// Get the object with central trigger data, throw if n.a.
143 // EventTrigger& GetTrigger() { return *fTrigger; }
144 // const EventTrigger& GetTrigger() const { return *fTrigger; }
145 // /// Create the central trigger object
146 // void MakeTrigger();
147 // /// check whether the central trigger object exists
148 // bool HasTrigger() const { return fTrigger; }
149 
150 // Header& GetHeader() { return *fHeader; }
151 // const Header& GetHeader() const { return *fHeader; }
152 
154 
166  template<class OrderingCriterion>
167  void SortStations(const OrderingCriterion ord)
168  { std::sort(fStations.begin(), fStations.end(), ord); }
169 
170  // bool HasQualityCuts() const { return fQualityCuts; }
171  // const SQualityCuts& GetQualityCuts() const { return *fQualityCuts; }
172  // void SetQualityCuts(const SQualityCuts& cuts);
173 
174 
176 
177  CEventSimData & GetSimData() { return *fSimData; }
179  const CEventSimData & GetSimData() const { return *fSimData; }
181  void MakeSimData();
183  bool HasSimData() const { return bool(fSimData); }
184 
185 
186  private:
187  CEvent();
188  ~CEvent();
189 
191 
205 
207 
208  // utl::LameShadowPtr<EventTrigger> fTrigger;
209  // utl::InitializedLameShadowPtr<Header> fHeader;
210  // utl::LameShadowPtr<SQualityCuts> fQualityCuts;
211 
213  friend class evt::Event;
214  friend class utl::LameShadowPtr<CEvent>;
215 
216  };
217 
218 }
219 
220 
221 #endif
222 
223 // Configure (x)emacs for this file ...
224 // Local Variables:
225 // mode: c++
226 // compile-command: "make -C .. -k"
227 // End:
InternalStationCollection::iterator InternalStationIterator
Definition: CEvent.h:50
CandidateStationIterator CandidateStationsEnd()
Definition: CEvent.h:86
InternalStationCollection fStations
Definition: CEvent.h:206
StationIterator StationsEnd()
End of all stations.
Definition: CEvent.h:67
RejectedStationIterator RejectedStationsEnd(const int rejectionMask=~0)
Definition: CEvent.h:119
CEvent & operator=(const CEvent &cEvent)
Definition: CEvent.cc:45
bool HasSimData() const
Check whether event simulated data exists.
Definition: CEvent.h:183
ConstRejectedStationIterator RejectedStationsBegin(const int rejectionMask=~0) const
Definition: CEvent.h:122
CEventSimData & GetSimData()
Get simulated data at event level.
Definition: CEvent.h:178
Station & GetStation(const int stationId)
retrieve station by id throw utl::NonExistentComponentException if n.a.
Definition: CEvent.cc:68
ConstSilentStationIterator SilentStationsEnd() const
Definition: CEvent.h:107
ConstSilentStationIterator SilentStationsBegin() const
Definition: CEvent.h:105
boost::filter_iterator< RejectedStationFilter, ConstStationIterator > ConstRejectedStationIterator
Definition: CEvent.h:114
ConstCandidateStationIterator CandidateStationsBegin() const
Definition: CEvent.h:89
InternalStationCollection::const_iterator InternalConstStationIterator
Definition: CEvent.h:51
boost::filter_iterator< SilentStationFilter, ConstStationIterator > ConstSilentStationIterator
Definition: CEvent.h:98
boost::filter_iterator< CandidateStationFilter, ConstStationIterator > ConstCandidateStationIterator
Definition: CEvent.h:82
RejectedStationIterator RejectedStationsBegin(const int rejectionMask=~0)
Definition: CEvent.h:117
boost::filter_iterator< CandidateStationFilter, StationIterator > CandidateStationIterator
Iterator over candidate stations.
Definition: CEvent.h:80
ConstCandidateStationIterator CandidateStationsEnd() const
Definition: CEvent.h:91
CandidateStationIterator CandidateStationsBegin()
Definition: CEvent.h:84
boost::filter_iterator< SilentStationFilter, StationIterator > SilentStationIterator
Iterator over silent stations.
Definition: CEvent.h:96
void MakeSimData()
Make event simulated data object.
Definition: CEvent.cc:191
const CEventSimData & GetSimData() const
Definition: CEvent.h:179
class to hold data at Station level
int GetNumberOfStations() const
Get total number of stations in the event.
Definition: CEvent.h:137
ConstStationIterator StationsEnd() const
End of all const stations.
Definition: CEvent.h:74
StationIterator StationsBegin()
Beginning of all stations.
Definition: CEvent.h:64
void MakeStation(const int stationId)
make a station with specifying Id, throw if invalid stationId
Definition: CEvent.cc:99
bool HasStation(const int stationId) const
Check whether station exists.
Definition: CEvent.cc:115
boost::indirect_iterator< InternalConstStationIterator, const Station & > ConstStationIterator
Definition: CEvent.h:61
void SortStations(const OrderingCriterion ord)
Sort the list of stations by the criterion specified in an OrderingCriterion object.
Definition: CEvent.h:167
boost::indirect_iterator< InternalStationIterator, Station & > StationIterator
Iterator over all stations.
Definition: CEvent.h:59
ConstRejectedStationIterator RejectedStationsEnd(const int rejectionMask=~0) const
Definition: CEvent.h:124
boost::filter_iterator< RejectedStationFilter, StationIterator > RejectedStationIterator
Iterator over rejected stations that match some rejection mask.
Definition: CEvent.h:112
SilentStationIterator SilentStationsBegin()
Definition: CEvent.h:100
static const char CvsId_cevt_CEvent[]
Definition: CEvent.h:23
Interface class to hold simulated data belonging to surface events.
Definition: CEventSimData.h:22
utl::LameShadowPtr< CEventSimData > fSimData
Definition: CEvent.h:212
ConstStationIterator StationsBegin() const
Beginning of all const stations.
Definition: CEvent.h:71
std::vector< Station * > InternalStationCollection
Definition: CEvent.h:49
SilentStationIterator SilentStationsEnd()
Definition: CEvent.h:102
Interface class to access to the SD part of an event.
Definition: CEvent.h:46
StationIterator RemoveStation(const StationIterator it)
remove a station from the list
Definition: CEvent.cc:128

, generated on Tue Sep 26 2023.