ROOT logo
/**********************************************************************
 Created on : 21/11/2013
 Purpose    : pp 8 TeV paraset for JPsi
 Author     : Indranil Das, IPN Orsay
 Email      : indranil.das@cern.ch | indra.ehep@gmail.com
**********************************************************************/

#if !defined(__CINT__) || defined(__MAKECINT__)
#include "TRandom.h"
#include "AliGenParam.h"
#include "AliGenMUONlib.h"
#endif 

//           generator functions
//


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


Double_t  V2Zero_M( const Double_t* /*px*/, const Double_t */*dummy*/ )
{

  return 0.0;

}
 

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


Double_t YJpsiPPdummy_M(Double_t x, Double_t energy)
{
// J/Psi y
// pp
// from the fit of RHIC + LHC data, see arXiv:1103.2394
//
    x = x/TMath::Log(energy/3.097);
    x = x*x;
    Double_t y = TMath::Exp(-x/0.4/0.4/2);
    if(x > 1) y=0;
    return y;
}

//---------------------------------------------------------------------

Double_t YJpsiPPpoly_M(Double_t x, Double_t energy)
{
// J/Psi y
// pp
// from the fit of RHIC + LHC data, see arXiv:1103.2394
//
    x = x/TMath::Log(energy/3.097);
    x = x*x;
    Double_t y = 1 - 6.9*x*x;
    if(y < 0) y=0;
    return y;
}

//---------------------------------------------------------------------

Double_t YJpsiPP8000_M(const Double_t *px, const Double_t */*dummy*/)
{
// J/Psi y
// pp 7 TeV
//
  return YJpsiPPdummy_M(*px, 8000);
}

//---------------------------------------------------------------------

Double_t YJpsi_M(const Double_t *py, const Double_t */*dummy*/)
{
// J/psi y
  const Double_t ky0 = 4.;
  const Double_t kb=1.;
  Double_t yj;
  Double_t y=TMath::Abs(*py);
  //
  if (y < ky0)
    yj=kb;
  else
    yj=kb*TMath::Exp(-(y-ky0)*(y-ky0)/2);
  return yj;
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Int_t IpJpsi_M(TRandom *)
{
// J/Psi composition
    return 443;
}

//---------------------------------------------------------------------

Int_t  IpMuon_M(TRandom* /*ran*/) {

  //muon composition
  // if (ran->Rndm() < 0.5 ) {
  //   return 13;
  // }
  return 443;
  
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Double_t PtJpsiPPdummy_M(Double_t x, Double_t energy)
{
// J/Psi pT
// pp
// from the fit of RHIC, CDF & LHC data, see arXiv:1103.2394
//
  const Double_t kpt0 = 1.04*TMath::Power(energy,0.101);
  const Double_t kxn  = 3.9;
  //
  Double_t pass1 = 1.+0.363*(x/kpt0)*(x/kpt0);
  return x/TMath::Power(pass1,kxn);
}

//---------------------------------------------------------------------

Double_t PtJpsiPP8000_M(const Double_t *px, const Double_t */*dummy*/)
{
// J/Psi pT
// pp 7 TeV
//
  return PtJpsiPPdummy_M(*px,8000);
}

//---------------------------------------------------------------------

Double_t PtJpsi_M( const Double_t *px, const Double_t */*dummy*/)
{
// J/Psi pT
  const Double_t kpt0 = 4.;
  const Double_t kxn  = 3.6;
  Double_t x=*px;
  //
  Double_t pass1 = 1.+(x/kpt0)*(x/kpt0);
  return x/TMath::Power(pass1,kxn);
}


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


//           generators
//
AliGenerator* JPsi7TeV()
{
  printf("\nProcessing config setup : JPsi7TeV\n\n");
  AliGenParam *jpsi7TeV = new AliGenParam(1, AliGenMUONlib::kJpsi,"pp 8");
  jpsi7TeV->SetMomentumRange(0,999);
  //jpsi7TeV->SetPtRange(0.,999.);
  //jpsi7TeV->SetYRange(-4.2, -2.3);
  jpsi7TeV->SetPtRange(0,50.);
  jpsi7TeV->SetYRange(-4.5,-2.);
  jpsi7TeV->SetPhiRange(0., 360.);
  jpsi7TeV->SetCutOnChild(1);
  jpsi7TeV->SetChildPhiRange(0.,360.);
  jpsi7TeV->SetChildThetaRange(0.,180.);
  jpsi7TeV->SetForceDecay(kDiMuon);
  jpsi7TeV->SetTrackingFlag(1);
  
  return jpsi7TeV;
}

AliGenerator* GenJPsi8TeVParaSet()
{
  printf("\nProcessing config setup : JPsi8TeVParaSet1\n\n");
  AliGenParam *genJpsi8TeV = new AliGenParam(1,-1, PtJpsiPP8000_M, YJpsiPP8000_M, V2Zero_M, IpJpsi_M);
  genJpsi8TeV->SetMomentumRange(0,999);
  genJpsi8TeV->SetPtRange(0,50.);
  genJpsi8TeV->SetYRange(-4.5,-2.0);
  genJpsi8TeV->SetPhiRange(0., 360.);
  genJpsi8TeV->SetCutOnChild(1);
  genJpsi8TeV->SetChildPhiRange(0.,360.);
  genJpsi8TeV->SetChildThetaRange(0.0,180.0);
  genJpsi8TeV->SetOrigin(0,0,0);
  genJpsi8TeV->SetForceDecay(kDiMuon);
  genJpsi8TeV->SetTrackingFlag(1);
  //genJpsi8TeV->Init();

  return genJpsi8TeV;
}
 GenJPsi8TeVParaSet.C:1
 GenJPsi8TeVParaSet.C:2
 GenJPsi8TeVParaSet.C:3
 GenJPsi8TeVParaSet.C:4
 GenJPsi8TeVParaSet.C:5
 GenJPsi8TeVParaSet.C:6
 GenJPsi8TeVParaSet.C:7
 GenJPsi8TeVParaSet.C:8
 GenJPsi8TeVParaSet.C:9
 GenJPsi8TeVParaSet.C:10
 GenJPsi8TeVParaSet.C:11
 GenJPsi8TeVParaSet.C:12
 GenJPsi8TeVParaSet.C:13
 GenJPsi8TeVParaSet.C:14
 GenJPsi8TeVParaSet.C:15
 GenJPsi8TeVParaSet.C:16
 GenJPsi8TeVParaSet.C:17
 GenJPsi8TeVParaSet.C:18
 GenJPsi8TeVParaSet.C:19
 GenJPsi8TeVParaSet.C:20
 GenJPsi8TeVParaSet.C:21
 GenJPsi8TeVParaSet.C:22
 GenJPsi8TeVParaSet.C:23
 GenJPsi8TeVParaSet.C:24
 GenJPsi8TeVParaSet.C:25
 GenJPsi8TeVParaSet.C:26
 GenJPsi8TeVParaSet.C:27
 GenJPsi8TeVParaSet.C:28
 GenJPsi8TeVParaSet.C:29
 GenJPsi8TeVParaSet.C:30
 GenJPsi8TeVParaSet.C:31
 GenJPsi8TeVParaSet.C:32
 GenJPsi8TeVParaSet.C:33
 GenJPsi8TeVParaSet.C:34
 GenJPsi8TeVParaSet.C:35
 GenJPsi8TeVParaSet.C:36
 GenJPsi8TeVParaSet.C:37
 GenJPsi8TeVParaSet.C:38
 GenJPsi8TeVParaSet.C:39
 GenJPsi8TeVParaSet.C:40
 GenJPsi8TeVParaSet.C:41
 GenJPsi8TeVParaSet.C:42
 GenJPsi8TeVParaSet.C:43
 GenJPsi8TeVParaSet.C:44
 GenJPsi8TeVParaSet.C:45
 GenJPsi8TeVParaSet.C:46
 GenJPsi8TeVParaSet.C:47
 GenJPsi8TeVParaSet.C:48
 GenJPsi8TeVParaSet.C:49
 GenJPsi8TeVParaSet.C:50
 GenJPsi8TeVParaSet.C:51
 GenJPsi8TeVParaSet.C:52
 GenJPsi8TeVParaSet.C:53
 GenJPsi8TeVParaSet.C:54
 GenJPsi8TeVParaSet.C:55
 GenJPsi8TeVParaSet.C:56
 GenJPsi8TeVParaSet.C:57
 GenJPsi8TeVParaSet.C:58
 GenJPsi8TeVParaSet.C:59
 GenJPsi8TeVParaSet.C:60
 GenJPsi8TeVParaSet.C:61
 GenJPsi8TeVParaSet.C:62
 GenJPsi8TeVParaSet.C:63
 GenJPsi8TeVParaSet.C:64
 GenJPsi8TeVParaSet.C:65
 GenJPsi8TeVParaSet.C:66
 GenJPsi8TeVParaSet.C:67
 GenJPsi8TeVParaSet.C:68
 GenJPsi8TeVParaSet.C:69
 GenJPsi8TeVParaSet.C:70
 GenJPsi8TeVParaSet.C:71
 GenJPsi8TeVParaSet.C:72
 GenJPsi8TeVParaSet.C:73
 GenJPsi8TeVParaSet.C:74
 GenJPsi8TeVParaSet.C:75
 GenJPsi8TeVParaSet.C:76
 GenJPsi8TeVParaSet.C:77
 GenJPsi8TeVParaSet.C:78
 GenJPsi8TeVParaSet.C:79
 GenJPsi8TeVParaSet.C:80
 GenJPsi8TeVParaSet.C:81
 GenJPsi8TeVParaSet.C:82
 GenJPsi8TeVParaSet.C:83
 GenJPsi8TeVParaSet.C:84
 GenJPsi8TeVParaSet.C:85
 GenJPsi8TeVParaSet.C:86
 GenJPsi8TeVParaSet.C:87
 GenJPsi8TeVParaSet.C:88
 GenJPsi8TeVParaSet.C:89
 GenJPsi8TeVParaSet.C:90
 GenJPsi8TeVParaSet.C:91
 GenJPsi8TeVParaSet.C:92
 GenJPsi8TeVParaSet.C:93
 GenJPsi8TeVParaSet.C:94
 GenJPsi8TeVParaSet.C:95
 GenJPsi8TeVParaSet.C:96
 GenJPsi8TeVParaSet.C:97
 GenJPsi8TeVParaSet.C:98
 GenJPsi8TeVParaSet.C:99
 GenJPsi8TeVParaSet.C:100
 GenJPsi8TeVParaSet.C:101
 GenJPsi8TeVParaSet.C:102
 GenJPsi8TeVParaSet.C:103
 GenJPsi8TeVParaSet.C:104
 GenJPsi8TeVParaSet.C:105
 GenJPsi8TeVParaSet.C:106
 GenJPsi8TeVParaSet.C:107
 GenJPsi8TeVParaSet.C:108
 GenJPsi8TeVParaSet.C:109
 GenJPsi8TeVParaSet.C:110
 GenJPsi8TeVParaSet.C:111
 GenJPsi8TeVParaSet.C:112
 GenJPsi8TeVParaSet.C:113
 GenJPsi8TeVParaSet.C:114
 GenJPsi8TeVParaSet.C:115
 GenJPsi8TeVParaSet.C:116
 GenJPsi8TeVParaSet.C:117
 GenJPsi8TeVParaSet.C:118
 GenJPsi8TeVParaSet.C:119
 GenJPsi8TeVParaSet.C:120
 GenJPsi8TeVParaSet.C:121
 GenJPsi8TeVParaSet.C:122
 GenJPsi8TeVParaSet.C:123
 GenJPsi8TeVParaSet.C:124
 GenJPsi8TeVParaSet.C:125
 GenJPsi8TeVParaSet.C:126
 GenJPsi8TeVParaSet.C:127
 GenJPsi8TeVParaSet.C:128
 GenJPsi8TeVParaSet.C:129
 GenJPsi8TeVParaSet.C:130
 GenJPsi8TeVParaSet.C:131
 GenJPsi8TeVParaSet.C:132
 GenJPsi8TeVParaSet.C:133
 GenJPsi8TeVParaSet.C:134
 GenJPsi8TeVParaSet.C:135
 GenJPsi8TeVParaSet.C:136
 GenJPsi8TeVParaSet.C:137
 GenJPsi8TeVParaSet.C:138
 GenJPsi8TeVParaSet.C:139
 GenJPsi8TeVParaSet.C:140
 GenJPsi8TeVParaSet.C:141
 GenJPsi8TeVParaSet.C:142
 GenJPsi8TeVParaSet.C:143
 GenJPsi8TeVParaSet.C:144
 GenJPsi8TeVParaSet.C:145
 GenJPsi8TeVParaSet.C:146
 GenJPsi8TeVParaSet.C:147
 GenJPsi8TeVParaSet.C:148
 GenJPsi8TeVParaSet.C:149
 GenJPsi8TeVParaSet.C:150
 GenJPsi8TeVParaSet.C:151
 GenJPsi8TeVParaSet.C:152
 GenJPsi8TeVParaSet.C:153
 GenJPsi8TeVParaSet.C:154
 GenJPsi8TeVParaSet.C:155
 GenJPsi8TeVParaSet.C:156
 GenJPsi8TeVParaSet.C:157
 GenJPsi8TeVParaSet.C:158
 GenJPsi8TeVParaSet.C:159
 GenJPsi8TeVParaSet.C:160
 GenJPsi8TeVParaSet.C:161
 GenJPsi8TeVParaSet.C:162
 GenJPsi8TeVParaSet.C:163
 GenJPsi8TeVParaSet.C:164
 GenJPsi8TeVParaSet.C:165
 GenJPsi8TeVParaSet.C:166
 GenJPsi8TeVParaSet.C:167
 GenJPsi8TeVParaSet.C:168
 GenJPsi8TeVParaSet.C:169
 GenJPsi8TeVParaSet.C:170
 GenJPsi8TeVParaSet.C:171
 GenJPsi8TeVParaSet.C:172
 GenJPsi8TeVParaSet.C:173
 GenJPsi8TeVParaSet.C:174
 GenJPsi8TeVParaSet.C:175
 GenJPsi8TeVParaSet.C:176
 GenJPsi8TeVParaSet.C:177
 GenJPsi8TeVParaSet.C:178
 GenJPsi8TeVParaSet.C:179
 GenJPsi8TeVParaSet.C:180
 GenJPsi8TeVParaSet.C:181
 GenJPsi8TeVParaSet.C:182
 GenJPsi8TeVParaSet.C:183
 GenJPsi8TeVParaSet.C:184
 GenJPsi8TeVParaSet.C:185
 GenJPsi8TeVParaSet.C:186
 GenJPsi8TeVParaSet.C:187
 GenJPsi8TeVParaSet.C:188