fe4da5cc |
1 | #ifndef AliGenParam_H |
2 | #define AliGenParam_H |
3da30618 |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
4 | * See cxx source for full Copyright notice */ |
5 | |
6 | /* $Id$ */ |
7 | |
fe4da5cc |
8 | #include "AliGenerator.h" |
9 | #include "AliPythia.h" |
10 | #include "TNamed.h" |
11 | #include "TF1.h" |
12 | #include "TArrayF.h" |
13 | #include "TArrayI.h" |
14 | #include "TTree.h" |
1578254f |
15 | #include "TParticle.h" |
fe4da5cc |
16 | |
17 | //------------------------------------------------------------- |
fe4da5cc |
18 | class AliGenParam : public AliGenerator |
19 | { |
20 | protected: |
9b153ba2 |
21 | Double_t (*fPtParaFunc)(Double_t*, Double_t*); //! Pointer to Pt parametrisation function |
22 | Double_t (*fYParaFunc )(Double_t*, Double_t*); //! Pointer to Y parametrisation function |
23 | Int_t (*fIpParaFunc )(); //! Pointer to particle type parametrisation function |
fe4da5cc |
24 | TF1* fPtPara; |
25 | TF1* fYPara; |
b7601ac4 |
26 | Param_t fParam; |
27 | Float_t fdNdy0; |
28 | Float_t fYWgt; |
29 | Float_t fPtWgt; |
30 | Weighting_t fAnalog; //Flaf for anolog or pt-weighted generation |
31 | Float_t fBias; |
32 | Int_t fTrials; |
33 | Decay_t fForceDecay; |
21aaa175 |
34 | Int_t fCutOnChild; |
fe4da5cc |
35 | TArrayI fChildSelect; |
36 | AliPythia *fPythia; |
37 | private: |
38 | // check if particle is selected as child |
39 | Bool_t ChildSelected(Int_t ip); |
40 | // all kinematic selection goes here |
1578254f |
41 | Bool_t KinematicSelection(TParticle *particle); |
fe4da5cc |
42 | public: |
43 | AliGenParam(); |
b7601ac4 |
44 | AliGenParam(Int_t npart, Param_t param); |
886b6f73 |
45 | AliGenParam(Int_t npart, Param_t param, |
46 | Double_t (*PtPara)(Double_t*, Double_t*), |
47 | Double_t (*YPara )(Double_t*, Double_t*), |
48 | Int_t (*IpPara)() ); |
fe4da5cc |
49 | virtual ~AliGenParam(); |
50 | virtual void Generate(); |
51 | virtual void Init(); |
52 | // select particle type |
b7601ac4 |
53 | virtual void SetParam(Param_t param=jpsi_p) {fParam=param;} |
fe4da5cc |
54 | // force decay type |
886b6f73 |
55 | virtual void SetForceDecay(Decay_t decay=dimuon) {fForceDecay=decay;} |
b7601ac4 |
56 | virtual void SetWeighting(Weighting_t flag=analog) {fAnalog=flag;} |
21aaa175 |
57 | virtual void SetCutOnChild(Int_t flag=0) {fCutOnChild=flag;} |
b7601ac4 |
58 | ClassDef(AliGenParam,1) // Generator using parameterised pt- and y-distribution |
fe4da5cc |
59 | }; |
60 | #endif |
61 | |
62 | |
63 | |
64 | |
65 | |
66 | |
67 | |
68 | |
69 | |
70 | |