Resolving all symbols in the library
[u/mrichter/AliRoot.git] / MUON / genExtFileConfig.C
CommitLineData
6ef73001 1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
16/* $Id$ */
17
18/// \ingroup macros
19/// \file genExtFileConfig.C
20/// \brief Configuration macro for event generator from external file
21/// for MUON spectrometer Monte Carlo simulation
22
23// Functions
24Float_t EtaToTheta(Float_t arg);
25AliGenerator* GeneratorFactory();
26
27void genConfig()
28{
29 cout << "Running genExtFileConfig.C ... " << endl;
30
31 //=======================================================================
32 // ******* GEANT STEERING parameters FOR ALICE SIMULATION *******
33 if ( gMC ) {
34 gMC->SetProcess("DCAY",1);
35 gMC->SetProcess("PAIR",1);
36 gMC->SetProcess("COMP",1);
37 gMC->SetProcess("PHOT",1);
38 gMC->SetProcess("PFIS",0);
39 gMC->SetProcess("DRAY",0);
40 gMC->SetProcess("ANNI",1);
41 gMC->SetProcess("BREM",1);
42 gMC->SetProcess("MUNU",1);
43 gMC->SetProcess("CKOV",1);
44 gMC->SetProcess("HADR",1);
45 gMC->SetProcess("LOSS",2);
46 gMC->SetProcess("MULS",1);
47 gMC->SetProcess("RAYL",1);
48 Float_t cut = 1.e-3; // 1MeV cut by default
49 Float_t tofmax = 1.e10;
50 gMC->SetCut("CUTGAM", cut);
51 gMC->SetCut("CUTELE", cut);
52 gMC->SetCut("CUTNEU", cut);
53 gMC->SetCut("CUTHAD", cut);
54 gMC->SetCut("CUTMUO", cut);
55 gMC->SetCut("BCUTE", cut);
56 gMC->SetCut("BCUTM", cut);
57 gMC->SetCut("DCUTE", cut);
58 gMC->SetCut("DCUTM", cut);
59 gMC->SetCut("PPCUTM", cut);
60 gMC->SetCut("TOFMAX", tofmax);
61 }
62
63 //=======================================================================
64 // External decayer
65 //=======================================================================
66
67 // Set External decayer
68 TVirtualMCDecayer *decayer = new AliDecayerPythia();
69 decayer->SetForceDecay(kAll);
70 decayer->Init();
71 if ( gMC ) gMC->SetExternalDecayer(decayer);
72
73 //=======================================================================
74 // Event generator
75 //=======================================================================
76
77 // External generator configuration
78 AliGenerator* gener = GeneratorFactory();
79 gener->SetOrigin(0, 0, 0); // vertex position
80 //gener->SetSigma(0, 0, 5.3); // Sigma in (X,Y,Z) (cm) on IP position
81 //gener->SetCutVertexZ(1.); // Truncate at 1 sigma
82 //gener->SetVertexSmear(kPerEvent);
83 gener->SetTrackingFlag(1);
84 gener->Init();
85
86 cout << "Running genExtFileConfig.C finished ... " << endl;
87}
88
89Float_t EtaToTheta(Float_t arg){
90 return (180./TMath::Pi())*2.*atan(exp(-arg));
91}
92
93AliGenerator* GeneratorFactory() {
94
95 AliGenExtFile *gener = new AliGenExtFile(-1);
96 AliGenReaderTreeK * reader = new AliGenReaderTreeK();
97
98 reader->SetFileName("galice.root");
99 reader->AddDir("$ALICE_ROOT/MUON/gen");
100 gener->SetReader(reader);
101
102 return gener;
103}
104