ROOT logo
// $Id$
//
// AliRoot Configuration for running aliroot with Monte Carlo.
// genExtFileConfig() includes the common setting for all MCs
// which has to be called after MC is instantiated.
// Called from MC specific configs (g3Config.C, g4Config.C).
//
// Extracted from G3 specific Config.C 
// by I. Hrivnacova, IPN Orsay

// Functions
Float_t EtaToTheta(Float_t arg);
AliGenerator* GeneratorFactory(Int_t startEvent);

void genExtFileConfig(const TString& srun, Int_t startEvent=0)
{
  cout << "Running genExtFileConfig.C ... " << endl;

  //=======================================================================
  // Steering parameters for ALICE simulation
  //=======================================================================

  gMC->SetProcess("DCAY",1);
  gMC->SetProcess("PAIR",1);
  gMC->SetProcess("COMP",1);
  gMC->SetProcess("PHOT",1);
  gMC->SetProcess("PFIS",0);
  gMC->SetProcess("DRAY",0);
  gMC->SetProcess("ANNI",1);
  gMC->SetProcess("BREM",1);
  gMC->SetProcess("MUNU",1);
  gMC->SetProcess("CKOV",1);
  gMC->SetProcess("HADR",1);
  gMC->SetProcess("LOSS",2);
  gMC->SetProcess("MULS",1);
  //gMC->SetProcess("RAYL",1);

  Float_t cut = 1.e-3;        // 1MeV cut by default
  Float_t tofmax = 1.e10;

  gMC->SetCut("CUTGAM", cut);
  gMC->SetCut("CUTELE", cut);
  gMC->SetCut("CUTNEU", cut);
  gMC->SetCut("CUTHAD", cut);
  gMC->SetCut("CUTMUO", cut);
  gMC->SetCut("BCUTE",  cut); 
  gMC->SetCut("BCUTM",  cut); 
  gMC->SetCut("DCUTE",  cut); 
  gMC->SetCut("DCUTM",  cut); 
  gMC->SetCut("PPCUTM", cut);
  gMC->SetCut("TOFMAX", tofmax); 

  //=======================================================================
  // External decayer
  //=======================================================================

  // Set External decayer
  AliDecayer *decayer = new AliDecayerPythia();

  switch (srun) {
  case kD0PbPb5500:
    decayer->SetForceDecay(kHadronicD);
    break;
  case kCharmSemiElPbPb5500:
    decayer->SetForceDecay(kSemiElectronic);
    break;
  case kBeautySemiElPbPb5500:
    decayer->SetForceDecay(kSemiElectronic);
    break;
  default:
    decayer->SetForceDecay(kAll);
    break;
  }
  decayer->Init();
  gMC->SetExternalDecayer(decayer);
  
  //=======================================================================
  // Event generator
  //=======================================================================

  // External generator configuration
  AliGenerator* gener = GeneratorFactory(startEvent);
  gener->SetOrigin(0, 0, 0);    // vertex position
  //gener->SetSigma(0, 0, 5.3);   // Sigma in (X,Y,Z) (cm) on IP position
  //gener->SetCutVertexZ(1.);     // Truncate at 1 sigma
  //gener->SetVertexSmear(kPerEvent); 
  gener->SetTrackingFlag(1);
  gener->Init();
    
  cout << "Running genExtFileConfig.C finished ... " << endl;
}

Float_t EtaToTheta(Float_t arg){
  return (180./TMath::Pi())*2.*atan(exp(-arg));
}

AliGenerator* GeneratorFactory(Int_t startEvent) {

  AliGenExtFile *gener = new AliGenExtFile(-1);
  AliGenReaderTreeK * reader = new AliGenReaderTreeK();

  reader->SetFileName("galice.root");
  reader->AddDir("gen");
  gener->SetReader(reader);
  gener->SetStartEvent(startEvent);
     
  return gener; 
}

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