ScintillatorSimData_ROOT.cc
Go to the documentation of this file.
1 #include <io/ScintillatorSimData_ROOT.h>
2 #include <mevt/ScintillatorSimData.h>
3 #include <io/StreamerUtilities.h>
4 
5 using namespace io;
6 
7 
9 
10 
11 SPEPulse_ROOT::SPEPulse_ROOT(const mevt::ScintillatorSimData::SPEPulse& p) :
12  fMu(p.fMu),
13  fSigma(p.fSigma),
14  fAmplitude(p.fAmplitude),
15  fDestPixelId(p.fDestPixelId)
16 { }
17 
18 
21 {
22  p.fMu = fMu;
23  p.fSigma = fSigma;
26  return *this;
27 }
28 
29 
31  fT0(p.fT0),
32  fAmplitude1(p.fAmplitude1),
33  fAmplitude2(p.fAmplitude2),
34  fAmplitude3(p.fAmplitude3),
35  fRiseTime(p.fRiseTime),
36  fFallTime1(p.fFallTime1),
37  fFallTime2(p.fFallTime2),
38  fFallTime3(p.fFallTime3),
39  fDestPixelId(p.fDestPixelId)
40 { }
41 
42 
45 {
46  p.fT0 = fT0;
50  p.fRiseTime = fRiseTime;
55  return *this;
56 }
57 
58 
60  fTime(t.fTime)
61 { }
62 
63 
66 {
67  t.fTime = fTime;
68  return *this;
69 }
70 
71 
73  fNParticles(s.GetNumberOfParticles()),
74  fNumberOfInjectedMuons(s.GetNumberOfInjectedMuons()),
75  fNumberOfCornerClippingMuons(s.GetNumberOfCornerClippingMuons()),
76  fNumberOfElectrons(s.GetNumberOfElectrons()),
77  fEnergyDeposit(s.GetEnergyDeposit()),
78  fEnergyDepositMuons(s.GetEnergyDepositMuons()),
79  fParticles(s.ParticlesBegin(), s.ParticlesEnd()),
80  fAnalogicTrace(s.HasAnalogicTrace() ? new TraceD_ROOT(s.GetAnalogicTrace()) : nullptr),
81  fSPEPulses(s.SPEPulsesBegin(), s.SPEPulsesEnd()),
82  fPEPulses(s.PEPulsesBegin(), s.PEPulsesEnd()),
83  fPhotonTimes(s.PhotonTimesBegin(), s.PhotonTimesEnd())
84 { }
85 
86 
88 {
89  delete fAnalogicTrace;
90 
91 }
92 
93 
96 {
97  if (this != &s) {
107  fPEPulses = s.fPEPulses;
109  }
110  return *this;
111 }
112 
113 
114 void
116  const
117 {
118  // fNParticles will be set by AddParticle
124 
125  for (const auto& p : fParticles)
126  s.AddParticle(p.Convert());
127 
128  if (fAnalogicTrace) {
129  if (!s.HasAnalogicTrace())
130  s.MakeAnalogicTrace();
132  }
133 
134 
135  for (const auto& p : fSPEPulses)
136  s.AddSPEPulse(p.fMu, p.fSigma, p.fAmplitude, p.fDestPixelId);
137 
138  for (const auto& p : fPEPulses)
139  s.AddPEPulse(p.fT0,
140  p.fAmplitude1, p.fAmplitude2, p.fAmplitude3,
141  p.fRiseTime,
142  p.fFallTime1, p.fFallTime2, p.fFallTime3,
143  p.fDestPixelId);
144 
145  for (const auto& p : fPhotonTimes)
146  s.AddPhotonTime(p.fTime);
147 }
SPEPulse_ROOT & operator>>(mevt::ScintillatorSimData::SPEPulse &p)
std::vector< PEPulse_ROOT > fPEPulses
void SetEnergyDeposit(const double edep)
std::vector< SPEPulse_ROOT > fSPEPulses
void SetNumberOfElectrons(const unsigned int electrons)
void AddSPEPulse(const double mu, const double sigma, const double amplitude, const int destPixelId)
void operator>>(mevt::ScintillatorSimData &s) const
void AddParticle(const utl::Particle &particle)
PEPulse_ROOT & operator>>(mevt::ScintillatorSimData::PEPulse &p)
void SetNumberOfInjectedMuons(const unsigned int nmuons)
void SetNumberOfCornerClippingMuons(const unsigned int nmuons)
std::vector< Particle_ROOT > fParticles
utl::TraceD & GetAnalogicTrace()
Return the trace of current pulse signal prior to the electronic amplification stage.
PhotonTime_ROOT & operator>>(mevt::ScintillatorSimData::PhotonTime &t)
constexpr double s
Definition: AugerUnits.h:163
void DeepCopy(T *&destination, U *const source)
void SetEnergyDepositMuons(const double edep)
Persistent ScintillatorSimData using ROOT.
Scintillator level simulation data.
ScintillatorSimData_ROOT & operator=(const ScintillatorSimData_ROOT &s)
void AddPEPulse(const double t0, const double a1, const double a2, const double a3, const double timeRise, const double timeFall1, const double timeFall2, const double timeFall3, const int destPixelId)
std::vector< PhotonTime_ROOT > fPhotonTimes

, generated on Tue Sep 26 2023.