a6d554b4fbd81785f1cbd9ea2e89c03ccc1817d2
[u/mrichter/AliRoot.git] / EVGEN / AliGenFLUKAsource.h
1 #ifndef AliGenFLUKAsource_H
2 #define AliGenFLUKAsource_H
3 /////////////////////////////////////////////////////////
4 //  Manager and hits classes for set:MUON version 0    //
5 /////////////////////////////////////////////////////////
6 #include "AliGenerator.h"
7 #include "TNamed.h"
8 #include "TF1.h"
9 #include "TArrayF.h"
10 #include "TTree.h"
11
12 // Read background particles from a FLUKA boundary source file
13
14 class AliGenFLUKAsource : public AliGenerator
15 {
16  
17 protected:
18
19   Int_t fIkine;               //Flag to choose type of particles to be read in
20                               // 6 - all particles types
21                               // 7 - only gammas
22                               // 8 - only neutrons
23                               // 9 - only charged particles
24   Float_t     fAgeMax;        //Maximum age of particle
25   Float_t     fAddWeight;     //Add weight for neutrons 
26   Float_t     fZshift;        //Shift the Z of impact point by this quantity
27
28   const Text_t     *fFileName;          //Choose the file
29    
30   TTree           *fTreeFluka;        //pointer to the TTree
31 //Declaration of variables read from the file -- TTree type
32    Float_t         Ip;
33    Float_t         Ipp;
34    Float_t         Xi;
35    Float_t         Yi;
36    Float_t         Zi;
37    Float_t         Px;
38    Float_t         Py;
39    Float_t         Pz;
40    Float_t         Ekin;
41    Float_t         Zv;
42    Float_t         Rv;
43    Float_t         Itra;
44    Float_t         Igas;
45    Float_t         Wgt;
46    Float_t         Etag;
47    Float_t         Ptg;
48    Float_t         Age;
49
50 public:
51   AliGenFLUKAsource();
52   AliGenFLUKAsource(Int_t npart);
53   virtual ~AliGenFLUKAsource();
54   virtual void Init() {} 
55   virtual void FlukaInit();
56   virtual void SetPartFlag(Int_t ikine) {fIkine=ikine;}
57   virtual void SetAgeMax(Float_t agemax) {fAgeMax=agemax;}
58   virtual void SetAddWeight(Float_t addwgt) {fAddWeight=addwgt;}
59   virtual void SetZshift(Float_t zshift) {fZshift=zshift;}
60   virtual void SetFileName(const Text_t *filname) {fFileName=filname;}
61   virtual void Generate();
62
63   ClassDef(AliGenFLUKAsource,1)
64 };
65 #endif
66
67
68
69
70
71