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 **********************************************************************/
8 #if !defined(__CINT__) || defined(__MAKECINT__)
10 #include "AliGenParam.h"
11 #include "AliGenMUONlib.h"
14 // generator functions
18 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
21 Double_t V2Zero_M( const Double_t* /*px*/, const Double_t */*dummy*/ )
29 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
32 Double_t YJpsiPPdummy_M(Double_t x, Double_t energy)
36 // from the fit of RHIC + LHC data, see arXiv:1103.2394
38 x = x/TMath::Log(energy/3.097);
40 Double_t y = TMath::Exp(-x/0.4/0.4/2);
45 //---------------------------------------------------------------------
47 Double_t YJpsiPPpoly_M(Double_t x, Double_t energy)
51 // from the fit of RHIC + LHC data, see arXiv:1103.2394
53 x = x/TMath::Log(energy/3.097);
55 Double_t y = 1 - 6.9*x*x;
60 //---------------------------------------------------------------------
62 Double_t YJpsiPP8000_M(const Double_t *px, const Double_t */*dummy*/)
67 return YJpsiPPdummy_M(*px, 8000);
70 //---------------------------------------------------------------------
72 Double_t YJpsi_M(const Double_t *py, const Double_t */*dummy*/)
75 const Double_t ky0 = 4.;
78 Double_t y=TMath::Abs(*py);
83 yj=kb*TMath::Exp(-(y-ky0)*(y-ky0)/2);
87 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
89 Int_t IpJpsi_M(TRandom *)
95 //---------------------------------------------------------------------
97 Int_t IpMuon_M(TRandom* /*ran*/) {
100 // if (ran->Rndm() < 0.5 ) {
107 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
109 Double_t PtJpsiPPdummy_M(Double_t x, Double_t energy)
113 // from the fit of RHIC, CDF & LHC data, see arXiv:1103.2394
115 const Double_t kpt0 = 1.04*TMath::Power(energy,0.101);
116 const Double_t kxn = 3.9;
118 Double_t pass1 = 1.+0.363*(x/kpt0)*(x/kpt0);
119 return x/TMath::Power(pass1,kxn);
122 //---------------------------------------------------------------------
124 Double_t PtJpsiPP8000_M(const Double_t *px, const Double_t */*dummy*/)
129 return PtJpsiPPdummy_M(*px,8000);
132 //---------------------------------------------------------------------
134 Double_t PtJpsi_M( const Double_t *px, const Double_t */*dummy*/)
137 const Double_t kpt0 = 4.;
138 const Double_t kxn = 3.6;
141 Double_t pass1 = 1.+(x/kpt0)*(x/kpt0);
142 return x/TMath::Power(pass1,kxn);
146 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
151 AliGenerator* JPsi7TeV()
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);
170 AliGenerator* GenJPsi8TeVParaSet()
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();