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
10 {
12  SetComponent();
13  fExtraComponent = 0;
14 
15 }
16 
17 
18 void
20 {
21  switch (fParticle->GetType()) {
22  case OFFLINE_ELECTRONS:
24  break;
25  case OFFLINE_PHOTON:
27  break;
28  case OFFLINE_MUONS:
30  break;
31  default:
33  break;
34  }
35 }
36 
37 
38 void
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  {
59  }
60 
61  if (!fPMTSimData[nPMT]->HasPETimeDistribution())
62  fPMTSimData[nPMT]->MakePETimeDistribution();
63  fPMTSimData[nPMT]->GetPETimeDistribution().AddTime(peTime);
64  if (!fPMTSimData[nPMT]->HasPETimeDistribution(fComponent))
67 
68  if (fExtraComponent) {
71  if (!fPMTSimData[nPMT]->HasPETimeDistribution(comp))
72  fPMTSimData[nPMT]->MakePETimeDistribution(comp);
73  fPMTSimData[nPMT]->GetPETimeDistribution(comp).AddTime(peTime);
74  }
75 }
Describes a particle for Simulation.
Definition: Particle.h:26
sevt::PMTSimData * fPMTSimData[4]
Definition: G4TankPMT.h:37
sevt::SEvent::StationIterator fCurrentEventStationIt
Definition: G4TankPMT.h:36
int exit
Definition: dump1090.h:237
void SetCurrentTank(const sevt::SEvent::StationIterator sIt)
Definition: G4TankPMT.cc:39
sevt::StationConstants::SignalComponent fComponent
Definition: G4TankPMT.h:38
void AddPhoton(const int nPMT, const double peTime, const bool IsFromMuonDecay)
Definition: G4TankPMT.cc:48
electrons and positrons from shower
const utl::Particle * fParticle
Definition: G4TankPMT.h:35
struct particle_info particle[80]
void SetParticle(const utl::Particle &particle)
Definition: G4TankPMT.cc:9
int GetType() const
Definition: Particle.h:101
boost::indirect_iterator< InternalStationIterator, Station & > StationIterator
Iterator over all stations.
Definition: SEvent.h:52
utl::TimeDistributionI & GetPETimeDistribution(const StationConstants::SignalComponent source=StationConstants::eTotal)
Simulated photoelectron time distribution.
Definition: PMTSimData.h:54
void AddTime(const double time, const T weight=T(1))
Add an entry (optionally weighted) for the given time. Slot will be computed.
mu+ and mu- (including signal from mu decay electrons) from shower
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.