1 #ifndef _sevt_StationSimData_h_
2 #define _sevt_StationSimData_h_
4 #include <sevt/StationGPSData.h>
5 #include <sevt/StationTriggerData.h>
6 #include <utl/ShadowPtr.h>
7 #include <utl/TimeStamp.h>
8 #include <utl/Particle.h>
9 #include <utl/IteratorRange.h>
10 #include <boost/range/adaptor/map.hpp>
18 class StationSimData_ROOT;
unsigned int GetNumberOfPhotons() const
Get the number of photons whose trajectories intersected the WCD.
pointer with built-in initialization, deletion, deep copying
Station Level Simulated Data
void SetNumberOfPhotons(const unsigned int n)
std::map< utl::TimeStamp, TriggerGPSPair > TriggerGPSMap
void SetTotalParticleCount(const unsigned int n)
#define OFFLINE_MAKE_BOTH_ITERATOR_RANGES(_Iterator_, _ConstIterator_, _NamePrefix_)
unsigned int fNumberOfMuons
unsigned int fTotalSimParticleCount
TriggerGPSMap fTriggerAndGPSData
bool IsInsideMinRadius() const
Check whether the station is in the shower hole.
Describes a particle for Simulation.
const utl::TimeStamp & GetPlaneFrontTime() const
Get Shower front plane arrival time.
void AlwaysInsertParticle(const utl::Particle &particle)
std::vector< utl::Particle > ParticleVector
sevt::StationGPSData & GetGPSData(const utl::TimeStamp &time)
Get simulated GPSData.
double GetThinningFactor() const
void ClearParticleList()
Clear the station particle list.
~StationSimData()=default
void SetThinning(const double th)
TriggerGPSMap::iterator TriggerGPSMapIterator
void SetUsedWeight(const double w)
void SetAbsoluteTimeOffset(const utl::TimeInterval &dt)
void SetSimulatorSignature(const std::string &name)
Set name of the tank simulator module used to simulate this station.
std::string fSimulatorSignature
A TimeStamp holds GPS second and nanosecond for some event.
TriggerTimeIterator ConstTriggerTimeIterator
TriggerGPSMap::const_iterator ConstTriggerGPSMapIterator
ParticleVector::iterator ParticleIterator
void SometimesInsertParticle(const utl::Particle &particle)
utl::TimeInterval fAbsoluteTimeOffset
unsigned int fNumberOfPhotons
sevt::StationTriggerData & GetTriggerData(const utl::TimeStamp &time)
Get simulated TriggerData.
class to hold data at Station level
Persistent StationSimData using ROOT.
bool HasGPSData(const utl::TimeStamp &time) const
Check whether there is a GPS data at the given time.
unsigned int fTotalParticleCount
void CountParticle(const utl::Particle &particle)
void SetNumberOfElectrons(const unsigned int n)
decltype(std::begin(boost::adaptors::keys(TriggerGPSMap()))) typedef TriggerTimeIterator
ParticleVector::const_iterator ConstParticleIterator
unsigned int GetNumberOfElectrons() const
Get the number of electrons whose trajectories intersected the WCD.
unsigned int fTotalSimCandidateParticleCount
#define OFFLINE_MAKE_CONST_ITERATOR_RANGE(_ConstIterator_, _NamePrefix_)
void SetMaxNParticles(const unsigned int max)
void SetPlaneFrontTime(const utl::TimeStamp &time)
Set shower front plane arrival time.
double GetUsedWeight() const
TriggerTimeIterator TriggerTimesBegin() const
Beginning of simulated local trigger times list.
utl::TimeInterval GetAbsoluteTimeOffset() const
ParticleIterator ParticlesBegin()
Beginning of simulated particles entering the station.
unsigned int fNumberOfElectrons
unsigned int GetTotalSimCandidateParticleCount() const
Get the total number of particles that were candidates for simulation (before thinning) ...
std::pair< StationTriggerData, StationGPSData > TriggerGPSPair
A TimeInterval is used to represent time elapsed between two events.
double GetThinning() const
utl::TimeStamp fPlaneFrontTime
unsigned int GetTotalSimParticleCount() const
Get the total number of particles that were actually simulated (after thinning)
ConstParticleIterator ParticlesEnd() const
Station Trigger Data description
void MakeTriggerAndGPSData(const utl::TimeStamp &time)
Creates the trigger data at the given time and also the GPS data to guarantee they are both created...
void SetTotalSimParticleCount(const unsigned int n)
struct particle_info particle[80]
unsigned int GetMaxNParticles() const
unsigned int GetNumberOfMuons() const
Get the number of muons whose trajectories intersected the WCD.
ConstParticleIterator ParticlesBegin() const
TriggerTimeIterator TriggerTimesEnd() const
End of simulated local trigger times list.
bool HasTriggerData(const utl::TimeStamp &time) const
Check whether there is trigger data at the given time.
ParticleVector fParticles
void SetTotalSimCandidateParticleCount(const unsigned int n)
unsigned int GetNParticles() const
void SetThinningFactor(const double f)
void AddParticle(const utl::Particle &particle)
void SetNumberOfMuons(const unsigned int n)
void SetIsInsideMinRadius(const bool isIn=true)
Set flag indicating whether station is in the shower hole.
ParticleIterator ParticlesEnd()
End of simulated particles entering the station.
unsigned int fMaxNParticles
unsigned int GetTotalParticleCount() const
Get the total number of particles whose trajectories intersected the WCD.
const std::string & GetSimulatorSignature() const
Get name of the tank simulator module used to simulate this station.