TelescopeSimData.h
Go to the documentation of this file.
1 #ifndef _fevt_TelescopeSimData_h_
2 #define _fevt_TelescopeSimData_h_
3 
4 #include <fevt/FdConstants.h>
5 
6 #include <utl/TimeStamp.h>
7 #include <utl/MultiTrace.h>
8 #include <utl/ShadowPtr.h>
9 #include <utl/Trace.h>
10 #include <utl/Photon.h>
11 
12 #include <list>
13 #include <string>
14 
15 
16 namespace fevt {
17 
18  class Telescope;
19 
20 
37 
38  public:
39  typedef std::list<utl::Photon> PhotonList;
40  typedef std::list<utl::Photon>::iterator PhotonIterator;
41  typedef std::list<utl::Photon>::const_iterator ConstPhotonIterator;
42 
44 
47  utl::TraceD& GetPhotonTrace(const fevt::FdConstants::LightSource source, const int wl);
48  const utl::TraceD& GetPhotonTrace(const fevt::FdConstants::LightSource source, const int wl) const;
49 
52  void MakePhotonTrace(const fevt::FdConstants::LightSource source, const int wl,
53  const unsigned int size = 0, const double binSize = 0);
54 
56  bool HasPhotonTrace(const fevt::FdConstants::LightSource source, const int wl) const;
58  bool HasPhotonTrace(const fevt::FdConstants::LightSource source) const;
59 
63 
68 
70 
77  void MakeRayTracedPhotonTrace(const unsigned int size = 0, const double binSize = 0);
79  bool HasRayTracedPhotonTrace() const { return bool(fRayTracedPhotonTrace); }
82 
83  // trace sources
84  typedef std::map<fevt::FdConstants::LightSource, utl::MultiTraceD> PhotonTraceSourceContainer;
85  typedef PhotonTraceSourceContainer::iterator PhotonTraceSourceIterator;
86  typedef PhotonTraceSourceContainer::const_iterator ConstPhotonTraceSourceIterator;
87 
92 
95  const utl::TraceD& GetDistanceTrace() const { return *fDistanceTrace; }
97  void MakeDistanceTrace(const unsigned int size = 0, const double binSize = 0);
99  bool HasDistanceTrace() const { return bool(fDistanceTrace); }
100 
104 
106  void SetNumberOfPhotonBins(const int n) { fNumberOfPhotonBins = n; }
107 
108  // for the FdEventLogger
109  void SetNumberOfFltPixels(const int n) { fNFltPixels = n; }
113  void SetNumberOfReadOutPixels(const int n) { fNReadOutPixels = n; }
114  void SetSltTriggerTime(const int n) { fSltTriggerTime = n; }
115  void SetSltTimeShift(const int n) { fSltTimeShift = n; }
116 
117  int GetNumberOfFltPixels() const { return fNFltPixels; }
122  int GetSltTriggerTime() const { return fSltTriggerTime; }
123  int GetSltTimeShift() const { return fSltTimeShift; }
124 
125  void ClearPhotons() { fPhotons.clear(); }
126  void AddPhoton(const utl::Photon& p) { fPhotons.push_back(p); }
127  int GetNPhotons() const { return fPhotons.size(); }
128  PhotonIterator PhotonsBegin() { return fPhotons.begin(); }
129  ConstPhotonIterator PhotonsBegin() const { return fPhotons.begin(); }
130  PhotonIterator PhotonsEnd() { return fPhotons.end(); }
131  ConstPhotonIterator PhotonsEnd() const { return fPhotons.end(); }
132 
133  void SetConfigSignatureStr(const std::string& configSignatureStr)
134  { fConfigSignatureStr = configSignatureStr; }
135 
136  const std::string& GetConfigSignatureStr() const { return fConfigSignatureStr; }
137  const std::string& GetConfigSignature() const;
138  void ClearConfigSignature();
139 
140  private:
143 
149 
157 
159 
160  std::string fConfigSignatureStr;
161  mutable std::string fConfigSignature;
162 
163  friend class fevt::Telescope;
165 
166  };
167 
168 }
169 
170 
171 #endif
PhotonTraceSourceIterator PhotonTracesSourceEnd()
utl::TimeStamp fTraceStartTime
boost::transform_iterator< LabeledObjectFunctor, typename MultiObjectContainer::iterator, LabeledObjectType > Iterator
Definition: MultiObject.h:78
ConstPhotonIterator PhotonsEnd() const
PhotonTraceSourceContainer::const_iterator ConstPhotonTraceSourceIterator
int GetNumberOfPhotonBins() const
bool HasPhotonTrace(const fevt::FdConstants::LightSource source, const int wl) const
Check that light trace for source /par source is present for the given wavelength bin...
void SetNumberOfReadOutPixels(const int n)
PhotonTraceSourceIterator PhotonTracesSourceBegin()
int GetNumberOfFltPixelsFromBackground() const
const std::string & GetConfigSignatureStr() const
std::map< fevt::FdConstants::LightSource, utl::MultiTraceD > PhotonTraceSourceContainer
utl::TraceI & GetRayTracedPhotonTrace()
Number of photons that were actually ray-traced (per time bin)
void AddPhoton(const utl::Photon &p)
utl::ShadowPtr< utl::TraceD > fDistanceTrace
utl::TimeStamp GetPhotonsStartTime() const
Start Time of the photons trace.
void ClearRayTracedPhotonTrace()
Clear the trace of ray traced photons.
boost::transform_iterator< LabeledObjectFunctor, typename MultiObjectContainer::const_iterator, LabeledObjectType > ConstIterator
Definition: MultiObject.h:81
utl::MultiTraceD::Iterator PhotonTraceIterator
An iterator over the components of the photon trace.
int GetNumberOfFltPixels() const
PhotonIterator PhotonsEnd()
int GetSltTriggerTime() const
ConstPhotonTraceSourceIterator PhotonTracesSourceEnd() const
void MakeDistanceTrace(const unsigned int size=0, const double binSize=0)
Make the trace of distance along the shower axis of light at the diaphragm.
A TimeStamp holds GPS second and nanosecond for some event.
Definition: TimeStamp.h:110
utl::ShadowPtr< utl::TraceI > fRayTracedPhotonTrace
void SetPhotonsStartTime(const utl::TimeStamp &ts)
void SetConfigSignatureStr(const std::string &configSignatureStr)
void SetNumberOfFltPixelsFromBackground(const int n)
Description of simulated data for one Telescope.
std::list< utl::Photon > PhotonList
void MakePhotonTrace(const fevt::FdConstants::LightSource source, const int wl, const unsigned int size=0, const double binSize=0)
PhotonTraceSourceContainer::iterator PhotonTraceSourceIterator
LightSource
Possible light sources.
Definition: FdConstants.h:9
ConstPhotonTraceSourceIterator PhotonTracesSourceBegin() const
PhotonTraceSourceContainer fPhotonTraces
utl::TraceD & GetPhotonTrace(const fevt::FdConstants::LightSource source, const int wl)
Photon trace at diaphragm.
const std::string & GetConfigSignature() const
void Clear()
Definition: Trace.h:158
void SetNumberOfFltPixels(const int n)
int GetNumberOfPixelsWithShowerPhotons() const
PhotonTraceIterator PhotonTracesEnd(const fevt::FdConstants::LightSource source)
std::list< utl::Photon >::iterator PhotonIterator
bool HasDistanceTrace() const
Check that trace for the distance along the shower axis is present.
bool HasRayTracedPhotonTrace() const
Check that &quot;ray-traced photon trace&quot; is present.
void SetSltTimeShift(const int n)
void SetNumberOfPixelsWithShowerPhotons(const int n)
const utl::TraceI & GetRayTracedPhotonTrace() const
int GetNumberOfReadOutPixels() const
std::list< utl::Photon >::const_iterator ConstPhotonIterator
PhotonTraceIterator PhotonTracesBegin(const fevt::FdConstants::LightSource source)
void SetNumberOfFltPixelsFromShower(const int n)
const utl::TraceD & GetDistanceTrace() const
PhotonIterator PhotonsBegin()
ConstPhotonIterator PhotonsBegin() const
int GetNumberOfFltPixelsFromShower() const
Fluorescence Detector Telescope Event.
void MakeRayTracedPhotonTrace(const unsigned int size=0, const double binSize=0)
Add a trace for the number of photons that were ray-traced.
void SetNumberOfPhotonBins(const int n)
utl::MultiTraceD::ConstIterator ConstPhotonTraceIterator
utl::TraceD & GetDistanceTrace()
Trace for the distance along the shower axis of the light at the diaphragm.
void SetSltTriggerTime(const int n)

, generated on Tue Sep 26 2023.