6671656e |
1 | #ifndef THBTPROCESSOR_H |
2 | #define THBTPROCESSOR_H |
85700fa3 |
3 | //_____________________________________________________________________________ |
4 | /////////////////////////////////////////////////////////////////////////////// |
5 | // // |
6 | // class THBTprocessor // |
7 | // // |
8 | // Wrapper class to HBT processor fortran code. // |
9 | // For more information see AliGenHBTprocessor class // |
10 | // HBT processor is written by Lanny Ray // |
11 | // // |
12 | // // |
13 | // Comunication is done via COMMON BLOCKS declared in HBTprocCOMMON.h // |
14 | // using cfortran.h routines // |
15 | // User should use class AliGenHBTprocessor and all their interface // |
16 | // see there for more description // |
17 | // // |
18 | // Wrapper class written by // |
19 | // Piotr Krzysztof Skowronski (Piotr.Skowronski@cern.ch) // |
20 | // // |
21 | /////////////////////////////////////////////////////////////////////////////// |
4c90f2a0 |
22 | /*******************************************************/ |
23 | //Author Piotr Krzysztof Skowronski e-mial: Piotr.Skowronski@cern.ch |
24 | // C++ Wrapper Class for fortran made HBT Processor written by Lanny Ray |
25 | // |
26 | // Comunication is done via COMMON BLOCKS declared in HBTprocCOMMON.h |
27 | // using cfortran.h routines |
28 | // User should use class AliGenHBTprocessor and all their interface |
29 | // see there for more description |
30 | // |
6671656e |
31 | |
32 | #include <TGenerator.h> |
6671656e |
33 | |
6671656e |
34 | class THBTprocessor: public TGenerator |
35 | { |
36 | public: |
4c90f2a0 |
37 | THBTprocessor(); |
6671656e |
38 | virtual ~THBTprocessor() {}; |
39 | |
85700fa3 |
40 | virtual void Initialize() const; |
41 | virtual void GenerateEvent() const; |
42 | virtual void PrintEvent() const; |
6671656e |
43 | virtual Int_t ImportParticles(TClonesArray *particles, Option_t *option=""); |
44 | |
45 | //Set/Gets |
4c90f2a0 |
46 | //comprehensive description off all these methods |
47 | //can be found in proper methods of AliGenHBTprocessor |
48 | |
a97eb206 |
49 | virtual void SetTrackRejectionFactor(Float_t trf = 1.0) const; |
50 | virtual void SetRefControl(Int_t rc =2) const; |
51 | virtual void SetPIDs(Int_t pid1 = 8,Int_t pid2 = 9) const; |
52 | virtual void SetNPIDtypes(Int_t npidt = 2)const; |
53 | virtual void SetDeltap(Float_t deltp = 0.1) const; |
54 | virtual void SetMaxIterations(Int_t maxiter = 50) const; |
55 | virtual void SetDelChi(Float_t dc = 0.1)const; |
56 | virtual void SetIRand(Int_t irnd = 76564) const; |
57 | virtual void SetLambda(Float_t lam = 0.6) const; |
58 | virtual void SetR1d(Float_t r = 7.0) const; |
59 | virtual void SetRSide(Float_t rs = 6.0) const; |
60 | virtual void SetROut(Float_t ro = 7.0) const ; |
61 | virtual void SetRLong(Float_t rl = 4.0) const; |
62 | virtual void SetRPerp(Float_t rp = 6.0) const; |
63 | virtual void SetRParallel(Float_t rprl = 4.0) const; |
64 | virtual void SetR0(Float_t r0 = 4.0) const; |
65 | virtual void SetQ0(Float_t q0 = 9.0) const ; |
66 | virtual void SetSwitch1D(Int_t s1d = 3) const ; |
67 | virtual void SetSwitch3D(Int_t s3d = 0) const ; |
68 | virtual void SetSwitchType(Int_t st = 3) const ; |
69 | virtual void SetSwitchCoherence(Int_t sc = 0) const ; |
70 | virtual void SetSwitchCoulomb(Int_t scol = 2) const ; |
71 | virtual void SetSwitchFermiBose(Int_t sfb = 1) const ; |
6671656e |
72 | |
a97eb206 |
73 | virtual void SetPtRange(Float_t ptmin = 0.1, Float_t ptmax = 0.98)const ; //Pt in GeV/c |
74 | virtual void SetPxRange(Float_t pxmin = -1.0, Float_t pxmax = 1.0) const; |
75 | virtual void SetPyRange(Float_t pymin = -1.0, Float_t pymax = 1.0)const ; |
76 | virtual void SetPzRange(Float_t pzmin = -3.6, Float_t pzmax = 3.6) const; |
77 | virtual void SetPhiRange(Float_t phimin = 0.0, Float_t phimax = 360.0)const; //Angle in degrees |
78 | virtual void SetEtaRange(Float_t etamin = -1.5, Float_t etamax = 1.5)const; //Pseudorapidity !!!!!!!!! |
79 | virtual void SetNPtBins(Int_t nptbin = 50)const; |
80 | virtual void SetNPhiBins(Int_t nphibin = 50)const; |
81 | virtual void SetNEtaBins(Int_t netabin = 50)const; |
82 | virtual void SetNPxBins(Int_t npxbin = 20)const; |
83 | virtual void SetNPyBins(Int_t npybin = 20)const; |
84 | virtual void SetNPzBins(Int_t npzbin = 70)const; |
85 | virtual void SetNBins1DFineMesh(Int_t n = 10)const; |
86 | virtual void SetBinSize1DFineMesh(Float_t x=0.01)const; |
87 | virtual void SetNBins1DCoarseMesh(Int_t n =2 )const; |
88 | virtual void SetBinSize1DCoarseMesh(Float_t x=0.05)const; |
89 | virtual void SetNBins3DFineMesh(Int_t n = 8)const; |
90 | virtual void SetBinSize3DFineMesh(Float_t x=0.01)const; |
91 | virtual void SetNBins3DCoarseMesh(Int_t n = 2)const; |
92 | virtual void SetBinSize3DCoarseMesh(Float_t x=0.08)const; |
93 | virtual void SetNBins3DFineProjectMesh(Int_t n =3 )const; |
94 | virtual void SetPrintFull(Int_t flag = 1)const; |
88cb7938 |
95 | |
85700fa3 |
96 | void DumpSettings() const; |
6671656e |
97 | |
6671656e |
98 | ClassDef(THBTprocessor,0) |
99 | }; |
100 | |
101 | #endif |
4c90f2a0 |
102 | |
103 | /************************************************************** |
104 | COMMENTS APROPOS HBTPROCESSOR FORTRAN CODE: |
105 | |
106 | SUBROUTINE INITIALIZE HAS TO BE OMITTED, IT RESETS (ZEROES) COMMON BLOCKS |
107 | |
108 | SUBROUTINE KINEMATICS HAS TO BE RENAMED EITHER IN MEVSIM OR IN PROCESSOR |
109 | AS THEY HAVE IDENTICAL DECLARATIONS AND SOMTIMES IS USED THE BAD ONE IN CASE BOTH LIBRARIES ARE LOADED |
110 | |
111 | ****************************************************************/ |