4 // Class that defines primary generator action.
5 // Available primary generators (AliPrimaryGenerator):
6 // kGun, // gun (can be set interactively)
7 // kGeantino, // geantino with random direction
8 // kChargedGeantino, // chargedgeantino with random direction
9 // kAliGenerator // AliGenerator from AliRoot
11 #ifndef ALI_PRIMARY_GENERATOR_ACTION_H
12 #define ALI_PRIMARY_GENERATOR_ACTION_H
14 #include "AliPrimaryGenerator.h"
16 #include <G4VUserPrimaryGeneratorAction.hh>
19 #include <TClonesArray.h>
22 class AliPrimaryGeneratorMessenger;
26 class AliPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction
29 AliPrimaryGeneratorAction();
31 // AliPrimaryGeneratorAction(const AliPrimaryGeneratorAction& right);
32 virtual ~AliPrimaryGeneratorAction();
35 virtual void GeneratePrimaries(G4Event* event);
38 void SetGenerator(AliPrimaryGenerator generator);
39 void SetNofGunParticles(G4int nofParticles);
40 void SetVerboseLevel(G4int level);
43 AliPrimaryGenerator GetGenerator() const;
44 G4int GetNofGunParticles() const;
45 G4int GetVerboseLevel() const;
48 AliPrimaryGeneratorAction(const AliPrimaryGeneratorAction& right);
51 AliPrimaryGeneratorAction& operator=(
52 const AliPrimaryGeneratorAction& right);
56 void ConstructGenerator();
57 void ConstructGeantinoGenerator(G4bool isCharged);
58 void ConstructAliGenerator();
59 void GenerateAliGeneratorPrimaries(G4Event* event);
62 AliPrimaryGenerator fGenerator; //selected AliPrimaryGenerator
63 G4int fNofGunParticles; //number of gun particles
64 G4int fVerboseLevel; //verbose level
65 AliParticleGun* fParticleGun; //AliParticleGun
66 TClonesArray* fParticleArray; //AliRun::fParticles
67 AliPrimaryGeneratorMessenger* fMessenger; //messenger
72 inline void AliPrimaryGeneratorAction::SetVerboseLevel(G4int level)
73 { fVerboseLevel = level; }
75 inline AliPrimaryGenerator AliPrimaryGeneratorAction::GetGenerator() const
76 { return fGenerator; }
78 inline G4int AliPrimaryGeneratorAction::GetNofGunParticles() const
79 { return fNofGunParticles; }
81 inline G4int AliPrimaryGeneratorAction::GetVerboseLevel() const
82 { return fVerboseLevel; }
84 #endif //ALI_PRIMARY_GENERATOR_ACTION_H