]>
Commit | Line | Data |
---|---|---|
3e7b6e7b | 1 | /********************************************************************** |
2 | Created on : 21/11/2013 | |
3 | Purpose : pp 8 TeV paraset for JPsi | |
4 | Author : Indranil Das, IPN Orsay | |
5 | Email : indranil.das@cern.ch | indra.ehep@gmail.com | |
6 | **********************************************************************/ | |
7 | ||
8 | #if !defined(__CINT__) || defined(__MAKECINT__) | |
9 | #include "TRandom.h" | |
10 | #include "AliGenParam.h" | |
11 | #include "AliGenMUONlib.h" | |
12 | #endif | |
13 | ||
14 | // generator functions | |
15 | // | |
16 | ||
17 | ||
18 | ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |
19 | ||
20 | ||
21 | Double_t V2Zero_M( const Double_t* /*px*/, const Double_t */*dummy*/ ) | |
22 | { | |
23 | ||
24 | return 0.0; | |
25 | ||
26 | } | |
27 | ||
28 | ||
29 | ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |
30 | ||
31 | ||
32 | Double_t YJpsiPPdummy_M(Double_t x, Double_t energy) | |
33 | { | |
34 | // J/Psi y | |
35 | // pp | |
36 | // from the fit of RHIC + LHC data, see arXiv:1103.2394 | |
37 | // | |
38 | x = x/TMath::Log(energy/3.097); | |
39 | x = x*x; | |
40 | Double_t y = TMath::Exp(-x/0.4/0.4/2); | |
41 | if(x > 1) y=0; | |
42 | return y; | |
43 | } | |
44 | ||
45 | //--------------------------------------------------------------------- | |
46 | ||
47 | Double_t YJpsiPPpoly_M(Double_t x, Double_t energy) | |
48 | { | |
49 | // J/Psi y | |
50 | // pp | |
51 | // from the fit of RHIC + LHC data, see arXiv:1103.2394 | |
52 | // | |
53 | x = x/TMath::Log(energy/3.097); | |
54 | x = x*x; | |
55 | Double_t y = 1 - 6.9*x*x; | |
56 | if(y < 0) y=0; | |
57 | return y; | |
58 | } | |
59 | ||
60 | //--------------------------------------------------------------------- | |
61 | ||
62 | Double_t YJpsiPP8000_M(const Double_t *px, const Double_t */*dummy*/) | |
63 | { | |
64 | // J/Psi y | |
65 | // pp 7 TeV | |
66 | // | |
67 | return YJpsiPPdummy_M(*px, 8000); | |
68 | } | |
69 | ||
70 | //--------------------------------------------------------------------- | |
71 | ||
72 | Double_t YJpsi_M(const Double_t *py, const Double_t */*dummy*/) | |
73 | { | |
74 | // J/psi y | |
75 | const Double_t ky0 = 4.; | |
76 | const Double_t kb=1.; | |
77 | Double_t yj; | |
78 | Double_t y=TMath::Abs(*py); | |
79 | // | |
80 | if (y < ky0) | |
81 | yj=kb; | |
82 | else | |
83 | yj=kb*TMath::Exp(-(y-ky0)*(y-ky0)/2); | |
84 | return yj; | |
85 | } | |
86 | ||
87 | ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |
88 | ||
89 | Int_t IpJpsi_M(TRandom *) | |
90 | { | |
91 | // J/Psi composition | |
92 | return 443; | |
93 | } | |
94 | ||
95 | //--------------------------------------------------------------------- | |
96 | ||
97 | Int_t IpMuon_M(TRandom* /*ran*/) { | |
98 | ||
99 | //muon composition | |
100 | // if (ran->Rndm() < 0.5 ) { | |
101 | // return 13; | |
102 | // } | |
103 | return 443; | |
104 | ||
105 | } | |
106 | ||
107 | ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |
108 | ||
109 | Double_t PtJpsiPPdummy_M(Double_t x, Double_t energy) | |
110 | { | |
111 | // J/Psi pT | |
112 | // pp | |
113 | // from the fit of RHIC, CDF & LHC data, see arXiv:1103.2394 | |
114 | // | |
115 | const Double_t kpt0 = 1.04*TMath::Power(energy,0.101); | |
116 | const Double_t kxn = 3.9; | |
117 | // | |
118 | Double_t pass1 = 1.+0.363*(x/kpt0)*(x/kpt0); | |
119 | return x/TMath::Power(pass1,kxn); | |
120 | } | |
121 | ||
122 | //--------------------------------------------------------------------- | |
123 | ||
124 | Double_t PtJpsiPP8000_M(const Double_t *px, const Double_t */*dummy*/) | |
125 | { | |
126 | // J/Psi pT | |
127 | // pp 7 TeV | |
128 | // | |
129 | return PtJpsiPPdummy_M(*px,8000); | |
130 | } | |
131 | ||
132 | //--------------------------------------------------------------------- | |
133 | ||
134 | Double_t PtJpsi_M( const Double_t *px, const Double_t */*dummy*/) | |
135 | { | |
136 | // J/Psi pT | |
137 | const Double_t kpt0 = 4.; | |
138 | const Double_t kxn = 3.6; | |
139 | Double_t x=*px; | |
140 | // | |
141 | Double_t pass1 = 1.+(x/kpt0)*(x/kpt0); | |
142 | return x/TMath::Power(pass1,kxn); | |
143 | } | |
144 | ||
145 | ||
146 | ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |
147 | ||
148 | ||
149 | // generators | |
150 | // | |
151 | AliGenerator* JPsi7TeV() | |
152 | { | |
153 | printf("\nProcessing config setup : JPsi7TeV\n\n"); | |
154 | AliGenParam *jpsi7TeV = new AliGenParam(1, AliGenMUONlib::kJpsi,"pp 8"); | |
155 | jpsi7TeV->SetMomentumRange(0,999); | |
156 | //jpsi7TeV->SetPtRange(0.,999.); | |
157 | //jpsi7TeV->SetYRange(-4.2, -2.3); | |
158 | jpsi7TeV->SetPtRange(0,50.); | |
159 | jpsi7TeV->SetYRange(-4.5,-2.); | |
160 | jpsi7TeV->SetPhiRange(0., 360.); | |
161 | jpsi7TeV->SetCutOnChild(1); | |
162 | jpsi7TeV->SetChildPhiRange(0.,360.); | |
163 | jpsi7TeV->SetChildThetaRange(0.,180.); | |
164 | jpsi7TeV->SetForceDecay(kDiMuon); | |
165 | jpsi7TeV->SetTrackingFlag(1); | |
166 | ||
167 | return jpsi7TeV; | |
168 | } | |
169 | ||
170 | AliGenerator* GenJPsi8TeVParaSet() | |
171 | { | |
172 | printf("\nProcessing config setup : JPsi8TeVParaSet1\n\n"); | |
173 | AliGenParam *genJpsi8TeV = new AliGenParam(1,-1, PtJpsiPP8000_M, YJpsiPP8000_M, V2Zero_M, IpJpsi_M); | |
174 | genJpsi8TeV->SetMomentumRange(0,999); | |
175 | genJpsi8TeV->SetPtRange(0,50.); | |
176 | genJpsi8TeV->SetYRange(-4.5,-2.0); | |
177 | genJpsi8TeV->SetPhiRange(0., 360.); | |
178 | genJpsi8TeV->SetCutOnChild(1); | |
179 | genJpsi8TeV->SetChildPhiRange(0.,360.); | |
180 | genJpsi8TeV->SetChildThetaRange(0.0,180.0); | |
181 | genJpsi8TeV->SetOrigin(0,0,0); | |
182 | genJpsi8TeV->SetForceDecay(kDiMuon); | |
183 | genJpsi8TeV->SetTrackingFlag(1); | |
184 | //genJpsi8TeV->Init(); | |
185 | ||
186 | return genJpsi8TeV; | |
187 | } |