4 #include <det/Detector.h>
5 #include <mevt/CounterSimData.h>
7 #include <mdet/Counter.h>
9 #include <utl/CoordinateSystem.h>
10 #include <utl/CoordinateSystemPtr.h>
11 #include <utl/Point.h>
12 #include <utl/Particle.h>
13 #include <utl/ReferenceEllipsoid.h>
14 #include <utl/AugerCoordinateSystem.h>
21 #include <G4ParticleGun.hh>
22 #include <G4ParticleDefinition.hh>
23 #include <G4ParticleTable.hh>
25 #include <utl/AugerUnits.h>
27 #include <fwk/CentralConfig.h>
28 #include <utl/ErrorLogger.h>
29 #include <utl/Reader.h>
30 #include <utl/MathConstants.h>
32 using namespace EdepSimulatorAG;
41 fParticleGun(new G4ParticleGun(1)),
42 fParticleTable(G4ParticleTable::GetParticleTable())
46 std::vector<G4double> vScintiSize;
72 G4ParticleDefinition* particleDef =
fParticleTable->FindParticle(theCurrentParticleIt->GetName());
75 std::ostringstream msg;
76 msg <<
"Undefined particle type: "
77 << theCurrentParticleIt->GetName();
82 double x(0), y(0), z(0);
83 boost::tie(x, y, z) = (theCurrentParticleIt->GetPosition() - scintPos).GetCoordinates(localCS);
88 <<
"Scint ID = " << theCurrentDetectorScintillator->
GetId()
89 <<
", part. type = " << theCurrentParticleIt->GetName()
90 <<
", x = " << x/
utl::cm <<
" (cm), "
91 <<
"y = " << y/
utl::cm <<
" (cm), "
92 <<
"z = " << z/
utl::cm <<
" (cm), "
93 <<
"t = " << theCurrentParticleIt->GetTime().GetInterval()/
utl::ns <<
" (ns)"
99 G4ThreeVector direction(theCurrentParticleIt->GetDirection().GetX(localCS),
100 theCurrentParticleIt->GetDirection().GetY(localCS),
101 theCurrentParticleIt->GetDirection().GetZ(localCS));
void GeneratePrimaries(G4Event *TheEvent)
static const mdet::Scintillator * GetCurrentDetectorScintillator()
Private members.
G4ParticleGun * fParticleGun
G4ParticleTable * fParticleTable
utl::CoordinateSystemPtr GetLocalCoordinateSystem() const
Local system based on position and configured rotations.
utl::Point GetPosition() const
Branch GetChild(const std::string &childName) const
Get child of this Branch by child name.
Actual muon-sensitive objects.
boost::shared_ptr< const CoordinateTransformer > CoordinateSystemPtr
Shared pointer for coordinate systems.
Class representing a document branch.
boost::indirect_iterator< InternalParticleIterator, utl::Particle & > ParticleIterator
#define WARNING(message)
Macro for logging warning messages.
void GetData(bool &b) const
Overloads of the GetData member template function.
static mevt::ScintillatorSimData::ParticleIterator GetCurrentParticleIt()
Main configuration utility.
int GetId() const
The id of this component.
utl::Branch GetTopBranch(const std::string &id)
Get top branch for moduleConfigLink with given id (XML files)