FEvent/Eye.h
Go to the documentation of this file.
1 #ifndef _fevt_Eye_h_
2 #define _fevt_Eye_h_
3 
4 #include <fevt/FdComponentSelector.h>
5 #include <fevt/FdConstants.h>
6 #include <utl/ShadowPtr.h>
7 #include <utl/IteratorRange.h>
8 
9 #include <boost/iterator/indirect_iterator.hpp>
10 #include <boost/iterator/filter_iterator.hpp>
11 #include <list>
12 
13 
14 namespace fevt {
15 
16  class EyeRecData;
17  class EyeTriggerData;
18  class EyeHeader;
19  class Telescope;
20 
21 
29  class Eye {
30 
31  private:
32  typedef std::list<Telescope*> InternalTelescopeContainer;
33  typedef InternalTelescopeContainer::iterator InternalTelescopeIterator;
34  typedef InternalTelescopeContainer::const_iterator InternalConstTelescopeIterator;
35 
37  typedef boost::indirect_iterator<InternalTelescopeIterator,
39 
41  typedef boost::indirect_iterator<InternalConstTelescopeIterator,
43 
49 
50  public:
51  Eye(const Eye& eyeData);
52  Eye& operator=(const Eye& eyeData);
53 
54  unsigned int GetId() const { return fId; }
55 
57  unsigned int GetNActiveTelescopes() const { return fTelescopes.size(); }
58 
60  Telescope& GetTelescope(const unsigned int telescopeId,
62  const Telescope& GetTelescope(const unsigned int telescopeId,
65  void MakeTelescope(const unsigned int telescopeId,
68  bool HasTelescope(const unsigned int telescopeId,
70 
72  typedef boost::filter_iterator<ComponentSelector, AllTelescopeIterator> TelescopeIterator;
73  typedef boost::filter_iterator<ComponentSelector, ConstAllTelescopeIterator> ConstTelescopeIterator;
74 
84 
85 
98 
99 
101  const fevt::EyeHeader& GetHeader() const;
102 
103  void MakeHeader();
104  bool HasHeader() const { return bool(fHeader); }
105 
108  const fevt::EyeTriggerData& GetTriggerData() const;
109  void MakeTriggerData();
110  bool HasTriggerData() const { return bool(fTriggerData); }
111 
114  const fevt::EyeRecData& GetRecData() const;
115  void MakeRecData();
116  bool HasRecData() const { return bool(fRecData); }
117 
119  void SetStatus(const ComponentSelector::Status status) { fStatus = status; }
120 
121  private:
122  Eye(const unsigned int eyeId, const ComponentSelector::Status status = ComponentSelector::eHasData);
123  ~Eye();
124 
125  void Clear();
126 
127  unsigned int fId = 0;
133 
134  friend class FEvent;
135 
136  };
137 
138 }
139 
140 
141 #endif
Telescope & GetTelescope(const unsigned int telescopeId, const ComponentSelector::Status status=ComponentSelector::eHasData)
Retrieve Telescope by Id, throw exception if not existent.
Definition: FEvent/Eye.cc:57
#define OFFLINE_MAKE_BOTH_ITERATOR_RANGES_ARG(_Iterator_, _ConstIterator_, _NamePrefix_, _Arg_)
Definition: IteratorRange.h:69
Predicate specifying whether telescope is selected or not.
unsigned int GetId() const
Definition: FEvent/Eye.h:54
pointer with built-in initialization, deletion, deep copying
Definition: ShadowPtr.h:163
Trigger data for an fevt::Eye.
#define OFFLINE_MAKE_BOTH_ITERATOR_RANGES(_Iterator_, _ConstIterator_, _NamePrefix_)
Definition: IteratorRange.h:43
bool HasHeader() const
Definition: FEvent/Eye.h:104
fevt::EyeHeader & GetHeader()
Header for this Eye Event.
Definition: FEvent/Eye.cc:180
bool HasRecData() const
Definition: FEvent/Eye.h:116
Fluorescence Detector Eye Event.
Definition: FEvent/Eye.h:29
utl::ShadowPtr< EyeTriggerData > fTriggerData
Definition: FEvent/Eye.h:130
void MakeRecData()
Definition: FEvent/Eye.cc:145
ComponentSelector::Status fStatus
Definition: FEvent/Eye.h:132
Header of Eye-level event.
Definition: EyeHeader.h:32
boost::indirect_iterator< InternalTelescopeIterator, Telescope & > AllTelescopeIterator
An iterator over all telescopes for read and write.
Definition: FEvent/Eye.h:38
boost::indirect_iterator< InternalConstTelescopeIterator, const Telescope & > ConstAllTelescopeIterator
An iterator over telescopes for read only.
Definition: FEvent/Eye.h:42
Eye(const Eye &eyeData)
Definition: FEvent/Eye.cc:24
void MakeTelescope(const unsigned int telescopeId, const ComponentSelector::Status status=ComponentSelector::eHasData)
Make Telescope telescopeId.
Definition: FEvent/Eye.cc:102
void Clear()
void SetStatus(const ComponentSelector::Status status)
Definition: FEvent/Eye.h:119
utl::ShadowPtr< EyeHeader > fHeader
Definition: FEvent/Eye.h:131
TelescopeIterator TelescopesEnd(const ComponentSelector::Status status)
iterator pointing to end of available tel of given status
Definition: FEvent/Eye.h:89
utl::ShadowPtr< EyeRecData > fRecData
Definition: FEvent/Eye.h:129
InternalTelescopeContainer::iterator InternalTelescopeIterator
Definition: FEvent/Eye.h:33
Status
Return code for seek operation.
Definition: IoCodes.h:24
ConstTelescopeIterator TelescopesBegin(const ComponentSelector::Status status) const
first available tel of given status
Definition: FEvent/Eye.h:92
TelescopeIterator TelescopesEnd()
first available tel of status eHasData (DEPRECATED)
Definition: FEvent/Eye.cc:230
ConstTelescopeIterator TelescopesEnd(const ComponentSelector::Status status) const
end of available tel of given status
Definition: FEvent/Eye.h:95
AllTelescopeIterator AllTelescopesEnd()
Definition: FEvent/Eye.h:45
boost::filter_iterator< ComponentSelector, AllTelescopeIterator > TelescopeIterator
selective Telescope iterators
Definition: FEvent/Eye.h:72
std::list< Telescope * > InternalTelescopeContainer
Definition: FEvent/Eye.h:32
bool HasTriggerData() const
Definition: FEvent/Eye.h:110
void MakeHeader()
Definition: FEvent/Eye.cc:195
Top of Fluorescence Detector event hierarchy.
Definition: FEvent.h:33
unsigned int fId
Definition: FEvent/Eye.h:127
AllTelescopeIterator AllTelescopesBegin()
Definition: FEvent/Eye.h:44
Status
Possible component status.
Eye-specific shower reconstruction data.
Definition: EyeRecData.h:65
ConstAllTelescopeIterator AllTelescopesBegin() const
Definition: FEvent/Eye.h:46
TelescopeIterator TelescopesBegin()
first available tel of status eHasData (DEPRECATED)
Definition: FEvent/Eye.cc:207
InternalTelescopeContainer::const_iterator InternalConstTelescopeIterator
Definition: FEvent/Eye.h:34
bool HasTelescope(const unsigned int telescopeId, const ComponentSelector::Status status=ComponentSelector::eHasData) const
Check if the telescope is in the event.
Definition: FEvent/Eye.cc:117
unsigned int GetNActiveTelescopes() const
Number of telescopes that participated in the event.
Definition: FEvent/Eye.h:57
InternalTelescopeContainer fTelescopes
Definition: FEvent/Eye.h:128
fevt::EyeTriggerData & GetTriggerData()
Trigger data for this eye.
Definition: FEvent/Eye.cc:155
Fluorescence Detector Telescope Event.
ConstAllTelescopeIterator AllTelescopesEnd() const
Definition: FEvent/Eye.h:47
ComponentSelector::Status GetStatus() const
Definition: FEvent/Eye.h:118
boost::filter_iterator< ComponentSelector, ConstAllTelescopeIterator > ConstTelescopeIterator
Definition: FEvent/Eye.h:73
void MakeTriggerData()
Definition: FEvent/Eye.cc:170
fevt::EyeRecData & GetRecData()
Reconstructed data for this eye.
Definition: FEvent/Eye.cc:130

, generated on Tue Sep 26 2023.