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>
20 class AliPrimaryGeneratorMessenger;
25 class AliPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction
28 AliPrimaryGeneratorAction();
30 // AliPrimaryGeneratorAction(const AliPrimaryGeneratorAction& right);
31 virtual ~AliPrimaryGeneratorAction();
34 virtual void GeneratePrimaries(G4Event* event);
37 void SetGenerator(AliPrimaryGenerator generator);
38 void SetNofGunParticles(G4int nofParticles);
39 void SetVerboseLevel(G4int level);
42 AliPrimaryGenerator GetGenerator() const;
43 G4int GetNofGunParticles() const;
44 G4int GetVerboseLevel() const;
47 AliPrimaryGeneratorAction(const AliPrimaryGeneratorAction& right);
50 AliPrimaryGeneratorAction& operator=(
51 const AliPrimaryGeneratorAction& right);
55 void ConstructGenerator();
56 void ConstructGeantinoGenerator(G4bool isCharged);
57 void ConstructAliGenerator();
58 void GenerateAliGeneratorPrimaries(G4Event* event);
61 AliPrimaryGenerator fGenerator; //selected AliPrimaryGenerator
62 G4int fNofGunParticles; //number of gun particles
63 G4int fVerboseLevel; //verbose level
64 AliParticleGun* fParticleGun; //AliParticleGun
65 TClonesArray* fParticleArray; //AliRun::fParticles
66 AliPrimaryGeneratorMessenger* fMessenger; //messenger
71 inline void AliPrimaryGeneratorAction::SetVerboseLevel(G4int level)
72 { fVerboseLevel = level; }
74 inline AliPrimaryGenerator AliPrimaryGeneratorAction::GetGenerator() const
75 { return fGenerator; }
77 inline G4int AliPrimaryGeneratorAction::GetNofGunParticles() const
78 { return fNofGunParticles; }
80 inline G4int AliPrimaryGeneratorAction::GetVerboseLevel() const
81 { return fVerboseLevel; }
83 #endif //ALI_PRIMARY_GENERATOR_ACTION_H