FairRoot/PandaRoot
stt/run.C
Go to the documentation of this file.
1 // Macro for running Cbm with Geant3 or Geant4 (M. Al-Turany , D. Bertini)
2 // Modified 22/06/2005 D.Bertini
3 {
4  TStopwatch timer;
5  timer.Start();
6  gDebug=0;
7  // Load basic libraries
8 // gROOT->LoadMacro("$VMCWORKDIR/gconfig/rootlogon.C");
9 // rootlogon();//basic libraries
10 
11  FairRunSim *fRun = new FairRunSim();
12 
13  // set the MC version used
14  // ------------------------
15 
16  fRun->SetName("TGeant3");
17  // Choose the Geant Navigation System
18  // fRun->SetGeoModel("G3Native");
19 
20  fRun->SetOutputFile("testrun.root");
21 
22  // ----- Magnetic field -------------------------------------------
23  // Constant Field
25  fRun->SetField(fField);
26  // --------------------------------------------------------------------
27 
28  // Set Material file Name
29  //-----------------------
30  fRun->SetMaterials("media_pnd.geo");
31 
32  // Create and add detectors
33  //-------------------------
34  FairModule *Cave= new PndCave("CAVE");
35  Cave->SetGeometryFileName("cave.geo");
36  fRun->AddModule(Cave);
37 
38  FairDetector *Stt= new PndStt("STT", kTRUE);
39  Stt->SetGeometryFileName("straws_skewed_blocks_35cm_pipe.geo");
40  fRun->AddModule(Stt);
41 
42  // Create and Set Event Generator
43  //-------------------------------
44 
45  FairPrimaryGenerator* primGen = new FairPrimaryGenerator();
46  fRun->SetGenerator(primGen);
47 
48  // Box Generator
49  FairBoxGenerator* boxGen = new FairBoxGenerator(13, 1); // 13 = muon; 1 = multipl.
50  boxGen->SetPRange(1.,1.); // GeV/c //setPRange vs setPtRange
51  boxGen->SetPhiRange(0, 360); // Azimuth angle range [degree]
52  boxGen->SetThetaRange(0, 180); // Polar angle in lab system range [degree]
53  boxGen->SetCosTheta();//uniform generation on all the solid angle(default)
54 
55 
56  // boxGen->SetXYZ(0., 0.37, 0.);
57  primGen->AddGenerator(boxGen);
58 
59  fRun->SetStoreTraj(kTRUE);
60 
61  fRun->Init();
62 
63 
64  // -Trajectories Visualization (TGeoManager Only )
65  // -----------------------------------------------
66 
67 ;
68  // Set cuts for storing the trajectpries
69  /* FairTrajFilter* trajFilter = FairTrajFilter::Instance();
70  trajFilter->SetStepSizeCut(0.01); // 1 cm
71  trajFilter->SetVertexCut(-2000., -2000., 4., 2000., 2000., 100.);
72  trajFilter->SetMomentumCutP(10e-3); // p_lab > 10 MeV
73  trajFilter->SetEnergyCut(0., 1.02); // 0 < Etot < 1.04 GeV
74  trajFilter->SetStorePrimaries(kTRUE);
75  trajFilter->SetStoreSecondaries(kTRUE);
76  */
77 
78 
79  // Fill the Parameter containers for this run
80  //-------------------------------------------
81 
82  FairRuntimeDb *rtdb=fRun->GetRuntimeDb();
84  FairParRootFileIo* output=new FairParRootFileIo(kParameterMerged);
85  output->open("testparams.root");
86  rtdb->setOutput(output);
87 
88  rtdb->saveOutput();
89  rtdb->print();
90 
91  // Transport nEvents
92  // -----------------
93 
94  Int_t nEvents = 10;
95  fRun->Run(nEvents);
96 
97 
98 
99  timer.Stop();
100  Double_t rtime = timer.RealTime();
101  Double_t ctime = timer.CpuTime();
102  printf("RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime);
103 }
104 
PndMultiField * fField
Definition: sim_emc_apd.C:97
printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime)
Bool_t kParameterMerged
Definition: sim_emc_apd.C:113
FairParRootFileIo * output
Definition: sim_emc_apd.C:120
FairPrimaryGenerator * primGen
Definition: sim_emc_apd.C:81
FairRunAna * fRun
Definition: hit_dirc.C:58
FairDetector * Stt
Definition: sim_emc_apd.C:47
Double_t
FairModule * Cave
Definition: sim_emc_apd.C:32
Int_t nEvents
Definition: hit_dirc.C:11
TStopwatch timer
Definition: hit_dirc.C:51
FairRuntimeDb * rtdb
Definition: hit_dirc.C:66
gDebug
Definition: sim_emc_apd.C:6
Double_t ctime
Definition: hit_dirc.C:114
FairBoxGenerator * boxGen
Definition: sim_emc_apd.C:85
Definition: PndStt.h:34
Double_t rtime
Definition: hit_dirc.C:113
Definition: PndCave.h:8