]> git.uio.no Git - u/mrichter/AliRoot.git/blob - test/vmctest/ppbench/genExtFileConfig.C
In vmctest/production:
[u/mrichter/AliRoot.git] / test / vmctest / ppbench / genExtFileConfig.C
1 // $Id$
2 //
3 // AliRoot Configuration for running aliroot with Monte Carlo.
4 // genExtFileConfig() includes the common setting for all MCs
5 // which has to be called after MC is instantiated.
6 // Called from MC specific configs (g3Config.C, g4Config.C).
7 //
8 // Extracted from G3 specific Config.C 
9 // by I. Hrivnacova, IPN Orsay
10
11 // Functions
12 Float_t EtaToTheta(Float_t arg);
13 AliGenerator* GeneratorFactory();
14
15 void genExtFileConfig(const TString& srun)
16 {
17   cout << "Running genExtFileConfig.C ... " << endl;
18
19   //=======================================================================
20   // Steering parameters for ALICE simulation
21   //=======================================================================
22
23   gMC->SetProcess("DCAY",1);
24   gMC->SetProcess("PAIR",1);
25   gMC->SetProcess("COMP",1);
26   gMC->SetProcess("PHOT",1);
27   gMC->SetProcess("PFIS",0);
28   gMC->SetProcess("DRAY",0);
29   gMC->SetProcess("ANNI",1);
30   gMC->SetProcess("BREM",1);
31   gMC->SetProcess("MUNU",1);
32   gMC->SetProcess("CKOV",1);
33   gMC->SetProcess("HADR",1);
34   gMC->SetProcess("LOSS",2);
35   gMC->SetProcess("MULS",1);
36   //gMC->SetProcess("RAYL",1);
37
38   Float_t cut = 1.e-3;        // 1MeV cut by default
39   Float_t tofmax = 1.e10;
40
41   gMC->SetCut("CUTGAM", cut);
42   gMC->SetCut("CUTELE", cut);
43   gMC->SetCut("CUTNEU", cut);
44   gMC->SetCut("CUTHAD", cut);
45   gMC->SetCut("CUTMUO", cut);
46   gMC->SetCut("BCUTE",  cut); 
47   gMC->SetCut("BCUTM",  cut); 
48   gMC->SetCut("DCUTE",  cut); 
49   gMC->SetCut("DCUTM",  cut); 
50   gMC->SetCut("PPCUTM", cut);
51   gMC->SetCut("TOFMAX", tofmax); 
52
53   //=======================================================================
54   // External decayer
55   //=======================================================================
56
57   // Set External decayer
58   AliDecayer *decayer = new AliDecayerPythia();
59
60   switch (srun) {
61   case kD0PbPb5500:
62     decayer->SetForceDecay(kHadronicD);
63     break;
64   case kCharmSemiElPbPb5500:
65     decayer->SetForceDecay(kSemiElectronic);
66     break;
67   case kBeautySemiElPbPb5500:
68     decayer->SetForceDecay(kSemiElectronic);
69     break;
70   default:
71     decayer->SetForceDecay(kAll);
72     break;
73   }
74   decayer->Init();
75   gMC->SetExternalDecayer(decayer);
76   
77   //=======================================================================
78   // Event generator
79   //=======================================================================
80
81   // External generator configuration
82   AliGenerator* gener = GeneratorFactory();
83   gener->SetOrigin(0, 0, 0);    // vertex position
84   //gener->SetSigma(0, 0, 5.3);   // Sigma in (X,Y,Z) (cm) on IP position
85   //gener->SetCutVertexZ(1.);     // Truncate at 1 sigma
86   //gener->SetVertexSmear(kPerEvent); 
87   gener->SetTrackingFlag(1);
88   gener->Init();
89     
90   cout << "Running genExtFileConfig.C finished ... " << endl;
91 }
92
93 Float_t EtaToTheta(Float_t arg){
94   return (180./TMath::Pi())*2.*atan(exp(-arg));
95 }
96
97 AliGenerator* GeneratorFactory() {
98
99   AliGenExtFile *gener = new AliGenExtFile(-1);
100   AliGenReaderTreeK * reader = new AliGenReaderTreeK();
101
102   reader->SetFileName("galice.root");
103   reader->AddDir("$ALICE_ROOT/test/vmctest/ppbench/gen");
104   gener->SetReader(reader);
105      
106   return gener; 
107 }
108