4 // Author: I. Hrivnacova
6 // Class AliPrimaryGeneratorAction
7 // -------------------------------
8 // Class that defines primary generator action.
9 // Available primary generators (AliPrimaryGenerator):
10 // kGun, // gun (can be set interactively)
11 // kGeantino, // geantino with random direction
12 // kChargedGeantino, // chargedgeantino with random direction
13 // kAliGenerator // AliGenerator from AliRoot
15 #ifndef ALI_PRIMARY_GENERATOR_ACTION_H
16 #define ALI_PRIMARY_GENERATOR_ACTION_H
18 #include "AliPrimaryGenerator.h"
19 #include "AliPrimaryGeneratorMessenger.h"
20 #include "AliParticleGun.h"
22 #include <G4VUserPrimaryGeneratorAction.hh>
29 class AliPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction
32 AliPrimaryGeneratorAction();
33 virtual ~AliPrimaryGeneratorAction();
36 virtual void GeneratePrimaries(G4Event* event);
39 void SetGenerator(AliPrimaryGenerator generator);
40 void SetNofGunParticles(G4int nofParticles);
41 void SetVerboseLevel(G4int level);
44 AliPrimaryGenerator GetGenerator() const;
45 G4int GetNofGunParticles() const;
46 G4int GetVerboseLevel() const;
50 void ConstructGenerator();
51 void ConstructGeantinoGenerator(G4bool isCharged);
52 void ConstructAliGenerator();
53 void GenerateAliGeneratorPrimaries(G4Event* event);
56 AliPrimaryGenerator fGenerator; //selected AliPrimaryGenerator
57 G4int fNofGunParticles; //number of gun particles
58 G4int fVerboseLevel; //verbose level
59 AliParticleGun fParticleGun; //AliParticleGun
60 AliPrimaryGeneratorMessenger fMessenger; //messenger
65 inline void AliPrimaryGeneratorAction::SetVerboseLevel(G4int level)
66 { fVerboseLevel = level; }
68 inline AliPrimaryGenerator AliPrimaryGeneratorAction::GetGenerator() const
69 { return fGenerator; }
71 inline G4int AliPrimaryGeneratorAction::GetNofGunParticles() const
72 { return fNofGunParticles; }
74 inline G4int AliPrimaryGeneratorAction::GetVerboseLevel() const
75 { return fVerboseLevel; }
77 #endif //ALI_PRIMARY_GENERATOR_ACTION_H