Fixes needed by gfortran, it doesn't perform lazy evaluation (Piotr)
[u/mrichter/AliRoot.git] / EPOS / AliGenEpos.h
1 /*
2  * AliGenEpos.cpp
3  *
4  *  ALICE event generator based on EPOS model from Klaus Werner
5  *
6  *  Created on: Feb 28, 2009
7  *      Author: Piotr Ostrowski, postrow@if.pw.edu.pl
8  */
9
10 #ifndef ALIGENEPOS_H_
11 #define ALIGENEPOS_H_
12
13 #include "AliGenMC.h"
14 #include "TEpos.h"
15
16 class AliGenEpos: public AliGenMC {
17 public:
18         AliGenEpos();
19         AliGenEpos(Int_t npart);
20         virtual void Init();
21         virtual void Generate();
22
23         virtual ~AliGenEpos();
24
25         void SetImpactParameterRange(Float_t bmin, Float_t bmax) { fBmin = bmin; fBmax = bmax; }
26         void SetReactionPlaneAngleRange(Float_t phimin, Float_t phimax) { fPhiMin = phimin; fPhiMax = phimax; }
27         void AddNoDecay(Int_t nodecay) { GetTEpos()->AddNoDecay(nodecay); }
28         void AddExtraInputLine(const char *line) { GetTEpos()->AddExtraInputLine(line); }
29         Float_t GetPhiMin() { return fPhiMin; }
30         Float_t GetPhiMax() { return fPhiMax; }
31         Float_t GetBmin() { return fBmin; }
32         Float_t GetBMax() { return fBmax; }
33
34         void FilterModelOutput(Bool_t value) {fFilterModelOutput = value;}
35         Bool_t IsModelOutputFiltered() { return fFilterModelOutput; }
36 protected:
37         virtual TEpos* GetTEpos() { return (TEpos *)fMCEvGen; }
38
39         Float_t fBmin; //minimum impact parameter
40         Float_t fBmax; //maximum impact parameter
41
42         Float_t fPhiMin; // reaction plane angle minimum
43         Float_t fPhiMax; // reaction plane angle maximum
44
45         Bool_t fFilterModelOutput; //if true it will filter out internal model entities from the stack
46 private:
47
48         ClassDef(AliGenEpos,1)
49 };
50
51 #endif /* ALIGENEPOS_H_ */