]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG/muondep/AccEffTemplates/GenJPsi8TeVParaSet.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWG / muondep / AccEffTemplates / GenJPsi8TeVParaSet.C
CommitLineData
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
21Double_t V2Zero_M( const Double_t* /*px*/, const Double_t */*dummy*/ )
22{
23
24 return 0.0;
25
26}
27
28
29//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
30
31
32Double_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
47Double_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
62Double_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
72Double_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
89Int_t IpJpsi_M(TRandom *)
90{
91// J/Psi composition
92 return 443;
93}
94
95//---------------------------------------------------------------------
96
97Int_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
109Double_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
124Double_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
134Double_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//
151AliGenerator* 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
170AliGenerator* 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}