Main Page
Class Categories
Classes
Namespaces
File List
File Members
exper-sw
cosmosw
AugerSW
Offline
source
main
Modules
SdSimulation
Deprecated
UpgradeASCIITests
G4TankSimulatorASCII
G4TankPMT.cc
Go to the documentation of this file.
1
#include "
G4TankPMT.h
"
2
#include "
G4TankTrackingAction.h
"
3
#include "
ParticleCases.h
"
4
5
using namespace
G4TankSimulatorASCII;
6
7
8
void
9
G4TankPMT::SetParticle
(
const
utl::Particle
&
particle
)
10
{
11
fParticle
= &
particle
;
12
SetComponent
();
13
fExtraComponent
= 0;
14
15
}
16
17
18
void
19
G4TankPMT::SetComponent
()
20
{
21
switch
(
fParticle
->
GetType
()) {
22
case
OFFLINE_ELECTRONS
:
23
fComponent
=
sevt::StationConstants::eElectron
;
24
break
;
25
case
OFFLINE_PHOTON
:
26
fComponent
=
sevt::StationConstants::ePhoton
;
27
break
;
28
case
OFFLINE_MUONS
:
29
fComponent
=
sevt::StationConstants::eMuon
;
30
break
;
31
default
:
32
fComponent
=
sevt::StationConstants::eHadron
;
33
break
;
34
}
35
}
36
37
38
void
39
G4TankPMT::SetCurrentTank
(
const
sevt::SEvent::StationIterator
stationIt)
40
{
41
fCurrentEventStationIt
= stationIt;
42
for
(
int
i = 1; i <= 3; ++i)
43
fPMTSimData
[i] = &
fCurrentEventStationIt
->GetPMT(i).GetSimData();
44
}
45
46
47
void
48
G4TankPMT::AddPhoton
(
const
int
nPMT,
const
double
peTime,
const
bool
IsFromMuonDecay )
49
{
50
if
((peTime > 1.0e6) || (peTime < -1.0e6)) {
51
cerr <<
"Dubious PE release time "
<< peTime << endl;
52
exit
(-1);
53
}
54
55
if
( IsFromMuonDecay )
56
{
57
G4TankTrackingAction::MichelElectronNPE
[1]+=1;
58
G4TankTrackingAction::MichelElectronNPE_time
[1]+=(peTime);
59
}
60
61
if
(!
fPMTSimData
[nPMT]->HasPETimeDistribution())
62
fPMTSimData
[nPMT]->MakePETimeDistribution();
63
fPMTSimData
[nPMT]->
GetPETimeDistribution
().
AddTime
(peTime);
64
if
(!
fPMTSimData
[nPMT]->HasPETimeDistribution(
fComponent
))
65
fPMTSimData
[nPMT]->
MakePETimeDistribution
(
fComponent
);
66
fPMTSimData
[nPMT]->
GetPETimeDistribution
(
fComponent
).
AddTime
(peTime);
67
68
if
(
fExtraComponent
) {
69
const
sevt::StationConstants::SignalComponent
comp =
70
static_cast<
sevt::StationConstants::SignalComponent
>
(
fExtraComponent
);
71
if
(!
fPMTSimData
[nPMT]->HasPETimeDistribution(comp))
72
fPMTSimData
[nPMT]->MakePETimeDistribution(comp);
73
fPMTSimData
[nPMT]->
GetPETimeDistribution
(comp).
AddTime
(peTime);
74
}
75
}
ParticleCases.h
utl::Particle
Describes a particle for Simulation.
Definition:
Particle.h:26
G4TankSimulatorASCII::G4TankPMT::fPMTSimData
sevt::PMTSimData * fPMTSimData[4]
Definition:
G4TankPMT.h:37
G4TankSimulatorASCII::G4TankPMT::fCurrentEventStationIt
sevt::SEvent::StationIterator fCurrentEventStationIt
Definition:
G4TankPMT.h:36
exit
int exit
Definition:
dump1090.h:237
OFFLINE_PHOTON
#define OFFLINE_PHOTON
Definition:
Modules/SdSimulation/Deprecated/UpgradeASCIITests/G4TankSimulatorASCII/ParticleCases.h:39
G4TankSimulatorASCII::G4TankPMT::SetCurrentTank
void SetCurrentTank(const sevt::SEvent::StationIterator sIt)
Definition:
G4TankPMT.cc:39
G4TankSimulatorASCII::G4TankPMT::fComponent
sevt::StationConstants::SignalComponent fComponent
Definition:
G4TankPMT.h:38
G4TankSimulatorASCII::G4TankPMT::AddPhoton
void AddPhoton(const int nPMT, const double peTime, const bool IsFromMuonDecay)
Definition:
G4TankPMT.cc:48
G4TankSimulatorASCII::G4TankTrackingAction::MichelElectronNPE_time
static double MichelElectronNPE_time[2]
Definition:
Deprecated/UpgradeASCIITests/G4TankSimulatorASCII/G4TankTrackingAction.h:46
sevt::StationConstants::eElectron
electrons and positrons from shower
Definition:
SEvent/StationConstants.h:15
G4TankPMT.h
G4TankSimulatorASCII::G4TankTrackingAction::MichelElectronNPE
static int MichelElectronNPE[2]
Definition:
Deprecated/UpgradeASCIITests/G4TankSimulatorASCII/G4TankTrackingAction.h:45
G4TankTrackingAction.h
G4TankSimulatorASCII::G4TankPMT::fExtraComponent
int fExtraComponent
Definition:
G4TankPMT.h:39
sevt::StationConstants::ePhoton
gammas from shower
Definition:
SEvent/StationConstants.h:17
sevt::StationConstants::eHadron
all hadrons from shower
Definition:
SEvent/StationConstants.h:21
G4TankSimulatorASCII::G4TankPMT::fParticle
const utl::Particle * fParticle
Definition:
G4TankPMT.h:35
OFFLINE_MUONS
#define OFFLINE_MUONS
Definition:
Modules/SdSimulation/Deprecated/UpgradeASCIITests/G4TankSimulatorASCII/ParticleCases.h:46
sevt::StationConstants::SignalComponent
SignalComponent
Definition:
SEvent/StationConstants.h:11
G4TankSimulatorASCII::G4TankPMT::SetComponent
void SetComponent()
Definition:
G4TankPMT.cc:19
particle
struct particle_info particle[80]
G4TankSimulatorASCII::G4TankPMT::SetParticle
void SetParticle(const utl::Particle &particle)
Definition:
G4TankPMT.cc:9
utl::Particle::GetType
int GetType() const
Definition:
Particle.h:101
OFFLINE_ELECTRONS
#define OFFLINE_ELECTRONS
Definition:
Modules/SdSimulation/Deprecated/UpgradeASCIITests/G4TankSimulatorASCII/ParticleCases.h:42
sevt::SEvent::StationIterator
boost::indirect_iterator< InternalStationIterator, Station & > StationIterator
Iterator over all stations.
Definition:
SEvent.h:52
sevt::PMTSimData::GetPETimeDistribution
utl::TimeDistributionI & GetPETimeDistribution(const StationConstants::SignalComponent source=StationConstants::eTotal)
Simulated photoelectron time distribution.
Definition:
PMTSimData.h:54
utl::TimeDistribution::AddTime
void AddTime(const double time, const T weight=T(1))
Add an entry (optionally weighted) for the given time. Slot will be computed.
Definition:
TimeDistribution.h:112
sevt::StationConstants::eMuon
mu+ and mu- (including signal from mu decay electrons) from shower
Definition:
SEvent/StationConstants.h:19
sevt::PMTSimData::MakePETimeDistribution
void MakePETimeDistribution(const StationConstants::SignalComponent source=StationConstants::eTotal)
Create a PE release time distribution (optionally for given source)
Definition:
PMTSimData.cc:12
, generated on Tue Sep 26 2023.