ROOT logo
/*
 *  MuonGenerator.C
 *  aliroot_dev
 *
 *  Created by philippe pillot on 05/03/13.
 *  Copyright 2013 SUBATECH. All rights reserved.
 *
 */


#if !defined(__CINT__) || defined(__MAKECINT__)
#include <Riostream.h>
#include "TRandom.h"
#include "AliGenerator.h"
#include "AliGenParam.h"
#endif


static Int_t IpMuon( TRandom *ran);
static Double_t PtMuon( const Double_t *px, const Double_t */*dummy*/ );
static Double_t YMuon( const Double_t *py, const Double_t */*dummy*/ );
static Double_t V2Muon( const Double_t *pv, const Double_t */*dummy*/ );


//-------------------------------------------------------------------------
AliGenerator* GenParamCustomSingle()
{
  AliGenParam *singleMu = new AliGenParam(1,-1,PtMuon,YMuon,V2Muon,IpMuon);
  singleMu->SetMomentumRange(0,1e6);
  singleMu->SetPtRange(VAR_GENPARAMCUSTOMSINGLE_PTMIN,999.);
  singleMu->SetYRange(-4.2, -2.3);
  singleMu->SetPhiRange(0., 360.);
  singleMu->SetForceDecay(kNoDecay);
  singleMu->SetTrackingFlag(1);
  return singleMu;
}

//-------------------------------------------------------------------------
Int_t IpMuon(TRandom *ran)
{
  // muon composition
  
  if (ran->Rndm() < 0.5 )
  {
    return 13;
  }
  else
  {
    return -13;
  }
}

//-------------------------------------------------------------------------
Double_t PtMuon( const Double_t *px, const Double_t */*dummy*/ )
{
  // muon pT
  
  Double_t x=*px;
  Float_t p0,p1,p2,p3;
  p0 = VAR_GENPARAMCUSTOMSINGLE_PT_P0; //4.05962;
  p1 = VAR_GENPARAMCUSTOMSINGLE_PT_P1; //1;
  p2 = VAR_GENPARAMCUSTOMSINGLE_PT_P2; //2.46187;
  p3 = VAR_GENPARAMCUSTOMSINGLE_PT_P3; //2.08644;
  return p0 / TMath::Power( p1 + TMath::Power(x,p2), p3 );
}

//-------------------------------------------------------------------------
Double_t YMuon( const Double_t *py, const Double_t */*dummy*/ )
{
  // muon y
  
  Double_t y = *py;
  //pol4 only valid in y= -4;-2.5
  Float_t p0,p1,p2,p3;
  p0 = VAR_GENPARAMCUSTOMSINGLE_Y_P0; //0.729545;
  p1 = VAR_GENPARAMCUSTOMSINGLE_Y_P1; //0.53837;
  p2 = VAR_GENPARAMCUSTOMSINGLE_Y_P2; //0.141776;
  p3 = VAR_GENPARAMCUSTOMSINGLE_Y_P3; //0.0130173;
  return p0 * (1. + p1*y + p2*y*y + p3*y*y*y);
}

//-------------------------------------------------------------------------
Double_t V2Muon( const Double_t */*dummy*/, const Double_t */*dummy*/ )
{
  //muon v2
  return 0.;
}

 GenParamCustomSingle.C:1
 GenParamCustomSingle.C:2
 GenParamCustomSingle.C:3
 GenParamCustomSingle.C:4
 GenParamCustomSingle.C:5
 GenParamCustomSingle.C:6
 GenParamCustomSingle.C:7
 GenParamCustomSingle.C:8
 GenParamCustomSingle.C:9
 GenParamCustomSingle.C:10
 GenParamCustomSingle.C:11
 GenParamCustomSingle.C:12
 GenParamCustomSingle.C:13
 GenParamCustomSingle.C:14
 GenParamCustomSingle.C:15
 GenParamCustomSingle.C:16
 GenParamCustomSingle.C:17
 GenParamCustomSingle.C:18
 GenParamCustomSingle.C:19
 GenParamCustomSingle.C:20
 GenParamCustomSingle.C:21
 GenParamCustomSingle.C:22
 GenParamCustomSingle.C:23
 GenParamCustomSingle.C:24
 GenParamCustomSingle.C:25
 GenParamCustomSingle.C:26
 GenParamCustomSingle.C:27
 GenParamCustomSingle.C:28
 GenParamCustomSingle.C:29
 GenParamCustomSingle.C:30
 GenParamCustomSingle.C:31
 GenParamCustomSingle.C:32
 GenParamCustomSingle.C:33
 GenParamCustomSingle.C:34
 GenParamCustomSingle.C:35
 GenParamCustomSingle.C:36
 GenParamCustomSingle.C:37
 GenParamCustomSingle.C:38
 GenParamCustomSingle.C:39
 GenParamCustomSingle.C:40
 GenParamCustomSingle.C:41
 GenParamCustomSingle.C:42
 GenParamCustomSingle.C:43
 GenParamCustomSingle.C:44
 GenParamCustomSingle.C:45
 GenParamCustomSingle.C:46
 GenParamCustomSingle.C:47
 GenParamCustomSingle.C:48
 GenParamCustomSingle.C:49
 GenParamCustomSingle.C:50
 GenParamCustomSingle.C:51
 GenParamCustomSingle.C:52
 GenParamCustomSingle.C:53
 GenParamCustomSingle.C:54
 GenParamCustomSingle.C:55
 GenParamCustomSingle.C:56
 GenParamCustomSingle.C:57
 GenParamCustomSingle.C:58
 GenParamCustomSingle.C:59
 GenParamCustomSingle.C:60
 GenParamCustomSingle.C:61
 GenParamCustomSingle.C:62
 GenParamCustomSingle.C:63
 GenParamCustomSingle.C:64
 GenParamCustomSingle.C:65
 GenParamCustomSingle.C:66
 GenParamCustomSingle.C:67
 GenParamCustomSingle.C:68
 GenParamCustomSingle.C:69
 GenParamCustomSingle.C:70
 GenParamCustomSingle.C:71
 GenParamCustomSingle.C:72
 GenParamCustomSingle.C:73
 GenParamCustomSingle.C:74
 GenParamCustomSingle.C:75
 GenParamCustomSingle.C:76
 GenParamCustomSingle.C:77
 GenParamCustomSingle.C:78
 GenParamCustomSingle.C:79
 GenParamCustomSingle.C:80
 GenParamCustomSingle.C:81
 GenParamCustomSingle.C:82
 GenParamCustomSingle.C:83
 GenParamCustomSingle.C:84
 GenParamCustomSingle.C:85
 GenParamCustomSingle.C:86
 GenParamCustomSingle.C:87
 GenParamCustomSingle.C:88
 GenParamCustomSingle.C:89