1 #ifndef _sevt_Station_h_
2 #define _sevt_Station_h_
4 #include <utl/ShadowPtr.h>
5 #include <utl/AugerException.h>
6 #include <utl/MultiTrace.h>
7 #include <utl/TimeStamp.h>
9 #include <utl/ClassHelpers.h>
11 #include <sevt/Scintillator.h>
12 #include <sevt/StationConstants.h>
13 #include <sevt/SignalSegment.h>
14 #include <sevt/StationSimData.h>
15 #include <sevt/StationRecData.h>
16 #include <sevt/StationTriggerData.h>
17 #include <sevt/StationCalibData.h>
18 #include <sevt/StationGPSData.h>
20 #include <sevt/SmallPMTData.h>
22 #include <sdet/PMTConstants.h>
24 #include <boost/iterator/indirect_iterator.hpp>
25 #include <boost/iterator/filter_iterator.hpp>
67 bool HasPMT(
const unsigned int pmtId)
const;
70 void MakePMT(
const unsigned int pmtId,
const int stationId,
75 const PMT&
GetPMT(
const unsigned int pmtId)
const;
87 typedef boost::filter_iterator<PMTFilter, InternalPMTIterator>
PMTIterator;
#define OFFLINE_MAKE_BOTH_ITERATOR_RANGES_ARG(_Iterator_, _ConstIterator_, _NamePrefix_, _Arg_)
utl::ShadowPtr< StationRecData > fRecData
Class to access station level reconstructed data.
bool HasPMT(const unsigned int pmtId) const
Check if a particular PMT object exists.
pointer with built-in initialization, deletion, deep copying
utl::ShadowPtr< SmallPMTData > fSmallPMTData
std::vector< PMT * >::iterator InternalPMTPtrIterator
boost::transform_iterator< LabeledObjectFunctor, typename MultiObjectContainer::iterator, LabeledObjectType > Iterator
bool operator()(const Station &station)
Station Level Simulated Data
int GetId() const
Get the station Id.
class to hold data at PMT level
utl::TimeStamp fTraceStartTime
total (shower and background)
bool HasCalibData() const
Check whether calibration data object exists.
void MakeSimData()
Make station simulated data object.
void SetBottomUpResidual(const double d)
Interface class to access to the SD part of an event.
Describes a particle for Simulation.
utl::ShadowPtr< StationSimData > fSimData
Station(const Station &station)
PMTIterator PMTsBegin(const sdet::PMTConstants::PMTType type=sdet::PMTConstants::eWaterCherenkovLarge)
begin PMT iterator for read/write
bool HasTriggerData() const
Check whether trigger data object exists.
void SetCandidate()
Set candidate station flag.
const sevt::StationSimData & GetSimData() const
bool IsSmallPMTSaturation() const
sevt::StationRecData & GetRecData()
Get station level reconstructed data.
void SetT2Life(const int t)
0 = dead, 1 = 1sec alive, 2 = 120sec alive
void SetTraceStartTime(const utl::TimeStamp &Time)
Set absolute start time of the VEM trace.
SignalSegmentCollection fSignals
const sevt::StationRecData & GetRecData() const
boost::indirect_iterator< InternalConstPMTPtrIterator, const PMT & > InternalConstPMTIterator
Iterator over station for read.
boost::filter_iterator< PMTFilter, InternalPMTIterator > PMTIterator
Iterator over station for read/write.
void MakeTriggerData()
Make trigger data object.
bool operator()(const Station &station)
boost::transform_iterator< LabeledObjectFunctor, typename MultiObjectContainer::const_iterator, LabeledObjectType > ConstIterator
bool IsHighGainSaturation() const
bool IsSilent() const
Check if the station is silent.
bool HasSmallPMTData() const
bool IsCandidate() const
Check if the station is a candidate.
A TimeStamp holds GPS second and nanosecond for some event.
utl::TraceD & GetVEMTrace(const StationConstants::SignalComponent source=StationConstants::eTotal)
signal trace calibrated in [VEM charge]
StationConstants::ReconstructionStatus fReconstructionStatus
void SetIsCyclone(const bool cy=true)
const Scintillator & GetScintillator() const
const SmallPMTData & GetSmallPMTData() const
utl::ShadowPtr< StationGPSData > fGPSData
const sevt::StationTriggerData & GetTriggerData() const
class to hold data at Station level
utl::MultiTraceD::ConstIterator ConstVEMTraceIterator
utl::MultiTraceD::Iterator VEMTraceIterator
an iterator over VEM traces of different components
void SetLowGainSaturation(const bool sat=true)
bool HasSimData() const
Check whether station simulated data exists.
void SetRejected(const int reason)
Set rejected station flag.
ConstPMTIterator PMTsEnd(const sdet::PMTConstants::PMTType type=sdet::PMTConstants::eWaterCherenkovLarge) const
end PMT iterator for read
const utl::TraceD & GetVEMTrace(const StationConstants::SignalComponent source=StationConstants::eTotal) const
#define OFFLINE_CAST_CONST_METHOD(_Method_)
SmallPMTData & GetSmallPMTData()
ConstVEMTraceIterator VEMTracesEnd() const
class to hold data for station SPMT
PMTIterator PMTsEnd(const sdet::PMTConstants::PMTType type=sdet::PMTConstants::eWaterCherenkovLarge)
end PMT iterator for read/write
void MakeVEMTrace(const StationConstants::SignalComponent source=StationConstants::eTotal)
Make a VEM trace object.
std::vector< PMT * > fPMTs
sevt::StationGPSData & GetGPSData()
Get GPS data for the station.
bool HasVEMTrace(const StationConstants::SignalComponent source=StationConstants::eTotal) const
Check whether VEM trace exists.
Scintillator & GetScintillator()
const SignalSegmentCollection & GetSignals() const
void AddParticle(const utl::Particle &particle)
Station & operator=(const Station &station)
boost::indirect_iterator< InternalPMTPtrIterator, PMT & > InternalPMTIterator
Iterator over station for read/write.
sevt::StationCalibData & GetCalibData()
Get calibration data for the station.
bool HasGPSData() const
Check whether GPS data object edists.
void MakeRecData()
Make station reconstructed data object.
bool IsLowGainSaturation() const
Check which gains are saturated.
std::vector< SignalSegment > SignalSegmentCollection
class to hold data for station Scintillator
VEMTraceIterator VEMTracesBegin()
First VEM trace.
double GetBottomUpResidual() const
RejectedStationFilter(const int statusMask)
int GetRejectionStatus() const
PMT & GetPMT(const unsigned int pmtId)
Retrive a PMT by Id.
PMT & GetScintillatorPMT()
bool HasRecData() const
Check whether station reconstructed data exists.
Station Trigger Data description
unsigned int GetNPMTs(const sdet::PMTConstants::PMTType type=sdet::PMTConstants::eAnyType) const
Number of pmts.
bool operator()(const Station &station)
Trace< T > & GetTrace(const int label=0)
Returns the trace for /par source.
utl::TimeStamp GetTraceStartTime() const
Get absolute start time of the VEM trace.
struct particle_info particle[80]
bool HasScintillator() const
utl::ShadowPtr< Scintillator > fScintillator
boost::filter_iterator< PMTFilter, InternalConstPMTIterator > ConstPMTIterator
Iterator over station for read.
bool fSaturation[sdet::PMTConstants::eNumberOfGains]
VEMTraceIterator VEMTracesEnd()
Last VEM trace.
void MakePMT(const unsigned int pmtId, const int stationId, const sdet::PMTConstants::PMTType type=sdet::PMTConstants::eWaterCherenkovLarge)
sevt::StationSimData & GetSimData()
Get simulated data at station level.
void SetSmallPMTSaturation(const bool sat=true)
ConstPMTIterator PMTsBegin(const sdet::PMTConstants::PMTType type=sdet::PMTConstants::eWaterCherenkovLarge) const
begin PMT iterator for read
ConstVEMTraceIterator VEMTracesBegin() const
sevt::StationTriggerData & GetTriggerData()
Get Trigger data for the station.
void MakeGPSData()
Make GPS data object.
const sevt::StationGPSData & GetGPSData() const
SignalSegmentCollection & GetSignals()
const sevt::StationCalibData & GetCalibData() const
void SetHighGainSaturation(const bool sat=true)
bool IsRejected() const
Check if the station is rejected.
std::vector< PMT * >::const_iterator InternalConstPMTPtrIterator
void MakeCalibData()
Make calibration data object.
utl::ShadowPtr< StationCalibData > fCalibData
bool HasLabel(const int label) const
utl::ShadowPtr< StationTriggerData > fTriggerData
void SetSilent()
Set silent station flag.