1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
19 /// \file genExtFileConfig.C
20 /// \brief Configuration macro for event generator from external file
21 /// for MUON spectrometer Monte Carlo simulation
24 Float_t EtaToTheta(Float_t arg);
25 AliGenerator* GeneratorFactory();
29 cout << "Running genExtFileConfig.C ... " << endl;
31 //=======================================================================
32 // ******* GEANT STEERING parameters FOR ALICE SIMULATION *******
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);
63 //=======================================================================
65 //=======================================================================
67 // Set External decayer
68 TVirtualMCDecayer *decayer = new AliDecayerPythia();
69 decayer->SetForceDecay(kAll);
71 if ( gMC ) gMC->SetExternalDecayer(decayer);
73 //=======================================================================
75 //=======================================================================
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);
86 cout << "Running genExtFileConfig.C finished ... " << endl;
89 Float_t EtaToTheta(Float_t arg){
90 return (180./TMath::Pi())*2.*atan(exp(-arg));
93 AliGenerator* GeneratorFactory() {
95 AliGenExtFile *gener = new AliGenExtFile(-1);
96 AliGenReaderTreeK * reader = new AliGenReaderTreeK();
98 reader->SetFileName("galice.root");
99 reader->AddDir("$ALICE_ROOT/MUON/gen");
100 gener->SetReader(reader);