FairRoot/PandaRoot
Functions
sim_radgrid.C File Reference

Go to the source code of this file.

Functions

int sim_radgrid (TString output, TString input, Int_t nEvents, Char_t TransportModel[]="TGeant3", UInt_t seed=0)
 

Function Documentation

int sim_radgrid ( TString  output,
TString  input,
Int_t  nEvents,
Char_t  TransportModel[] = "TGeant3",
UInt_t  seed = 0 
)

Definition at line 4 of file sim_radgrid.C.

References boxGen, Cave, ctime, Dipole, Double_t, Drc, Dsk, Emc, fField, fRun, gDebug, Gem, Magnet, Muo, Mvd, Pipe, primGen, printf(), rootlogon(), rtime, seed, PndMdt::SetBarrel(), PndMdt::SetEndcap(), PndEmc::SetGeometryVersion(), PndMdt::SetMdtMagnet(), PndMdt::SetMdtMFIron(), PndMdt::SetMuonFilter(), PndDrc::SetRunCherenkov(), PndEmc::SetStorageOfData(), PndDsk::SetStoreCerenkovs(), PndDsk::SetStoreTrackPoints(), Stt, and timer.

5 {
6  // activate TMemStat info file (ROOT >=5.28)
7  // TMemStat mm("gnubuiltin");
8 
9  gRandom->SetSeed(seed);
10  TStopwatch timer;
11  timer.Start();
12  gDebug=0;
13  // Load basic libraries
14  gROOT->LoadMacro("$VMCWORKDIR/gconfig/rootlogon.C");
15  rootlogon();
16 
17  FairRunSim *fRun = new FairRunSim();
18 
19  // Set the number of events
20  // Int_t nEvents = n;
21 
22  // set the MC version used
23  // ------------------------
24 
25  fRun->SetName(TransportModel);
26 
27  fRun->SetOutputFile(output);
28 
29  // Set Material file Name
30  //-----------------------
31 
32  fRun->SetMaterials("media_pnd.geo");
33 
34 
35  // Create and add detectors
36  //-------------------------
37  FairModule *Cave= new PndCave("CAVE");
38  Cave->SetGeometryFileName("pndcave.geo");
39  fRun->AddModule(Cave);
40 
41  FairModule *Magnet= new PndMagnet("MAGNET");
42  //Magnet->SetGeometryFileName("FullSolenoid_V842.root");
43  Magnet->SetGeometryFileName("FullSuperconductingSolenoid_v831.root");
44  fRun->AddModule(Magnet);
45 
46  FairModule *Dipole= new PndMagnet("MAGNET");
47  Dipole->SetGeometryFileName("dipole.geo");
48  fRun->AddModule(Dipole);
49 
50  FairModule *Pipe= new PndPipe("PIPE");
51  fRun->AddModule(Pipe);
52 
53  FairDetector *Stt= new PndStt("STT", kFALSE);
54  Stt->SetGeometryFileName("straws_skewed_blocks_35cm_pipe.geo");
55  fRun->AddModule(Stt);
56 
57  FairDetector *Mvd = new PndMvdDetector("MVD", kFALSE);
58  Mvd->SetGeometryFileName("Mvd-2.1_FullVersion.root");
59  fRun->AddModule(Mvd);
60 
61  PndEmc *Emc = new PndEmc("EMC",kFALSE);
62  Emc->SetGeometryVersion(15);
63  Emc->SetStorageOfData(kFALSE);
64  fRun->AddModule(Emc);
65 
66  //FairDetector *Tof = new PndTof("TOF",kFALSE);
67  //Tof->SetGeometryFileName("tofbarrel.geo");
68  //fRun->AddModule(Tof);
69 
70  PndMdt *Muo = new PndMdt("MDT",kFALSE);
71  Muo->SetBarrel("fast");
72  Muo->SetEndcap("fast");
73  Muo->SetMuonFilter("fast");
74  Muo->SetMdtMagnet(kTRUE);
75  Muo->SetMdtMFIron(kTRUE);
76  fRun->AddModule(Muo);
77 
78  FairDetector *Gem = new PndGemDetector("GEM", kFALSE);
79  Gem->SetGeometryFileName("gem_3Stations.root");
80  fRun->AddModule(Gem);
81 
82  PndDsk* Dsk = new PndDsk("DSK", kFALSE);
83  Dsk->SetGeometryFileName("dsk.root");
84  Dsk->SetStoreCerenkovs(kFALSE);
85  Dsk->SetStoreTrackPoints(kFALSE);
86  fRun->AddModule(Dsk);
87 
88  PndDrc *Drc = new PndDrc("DIRC", kFALSE);
89  Drc->SetRunCherenkov(kFALSE); // for fast sim Cherenkov -> kFALSE
90  fRun->AddModule(Drc);
91 
92 
93  // Create and Set Event Generator
94  //-------------------------------
95 
96  FairPrimaryGenerator* primGen = new FairPrimaryGenerator();
97  fRun->SetGenerator(primGen);
98 
99  // FairEvtGenGenerator* evtGen = new FairEvtGenGenerator(input);
100  // primGen->AddGenerator(evtGen);
101 
102  // PndFlukaGenerator* flugen = new PndFlukaGenerator(input);
103  // primGen->AddGenerator(flugen);
104 
105  /*
106  PndDpmGenerator* dpmGen = new PndDpmGenerator(input);
107  // dpmGen->SetStartEvent(4001);
108  primGen->AddGenerator(dpmGen);
109  */
110 
111 
112 
113  FairBoxGenerator* boxGen = new FairBoxGenerator(-211, 1); // 13 = muon; 1 = multipl.
114  boxGen->SetPRange(.4,.4); // GeV/c //setPRange vs setPtRange
115  boxGen->SetPhiRange(0, 360); // Azimuth angle range [degree]
116  boxGen->SetThetaRange(0.001, 180); // Polar angle in lab system range [degree]
117  boxGen->SetCosTheta();//uniform generation on all the solid angle(default)
118  // boxGen->SetXYZ(0., 0.37, 0.);
119  primGen->AddGenerator(boxGen);
120 
121 
122  fRun->SetStoreTraj(kFALSE); // to store particle trajectories
123 
124  fRun->SetRadGridRegister(kTRUE); // activate RadGridManager
125 
126  // define two example meshs for dosimetry
127  FairMesh* aMesh1 = new FairMesh("test1");
128  aMesh1->SetX(-200,200,200);
129  aMesh1->SetY(-200,200,200);
130  aMesh1->SetZ(-0.2,0.2,1.);
131 
132  FairMesh* aMesh2 = new FairMesh("test2");
133  aMesh2->SetX(-100,100,100);
134  aMesh2->SetY(-100,100,100);
135  aMesh2->SetZ(-0.1,0.1,1.);
136 
137  aMesh1->print();
138  aMesh2->print();
139 
140  fRun->AddMesh( aMesh1 );
141  fRun->AddMesh( aMesh2 );
142 
143  // fRun->SetBeamMom(3.0);
144  fRun->SetBeamMom(15.0);
145  PndMultiField *fField= new PndMultiField("FULL");
146  fRun->SetField(fField);
147 
148  fRun->Init();
149 
150  // gGeoManager->SetVisLevel(10);
151  // gGeoManager->GetMasterVolume()->Draw("ogl");
152 
153  fRun->Run(nEvents);
154 
155  timer.Stop();
156 
157  Double_t rtime = timer.RealTime();
158  Double_t ctime = timer.CpuTime();
159  printf("RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime);
160 
161  return 0;
162 }
PndDrc * Drc
Definition: sim_emc_apd.C:75
PndMultiField * fField
Definition: sim_emc_apd.C:97
printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime)
PndEmc * Emc
Definition: sim_emc_apd.C:55
FairDetector * Mvd
Definition: sim_emc_apd.C:51
void SetMdtMFIron(bool opt=false)
Definition: PndMdt.h:29
void SetStorageOfData(Bool_t val)
Definition: PndEmc.cxx:941
FairParRootFileIo * output
Definition: sim_emc_apd.C:120
PndMdt * Muo
Definition: sim_emc_apd.C:67
Simulation of EMC.
Definition: PndEmc.h:26
FairPrimaryGenerator * primGen
Definition: sim_emc_apd.C:81
FairDetector * Dsk
Definition: run_DpmSim.C:66
FairRunAna * fRun
Definition: hit_dirc.C:58
FairDetector * Gem
Definition: runJohan.C:71
void SetMdtMagnet(bool opt=false)
Definition: PndMdt.h:27
void SetStoreTrackPoints(Bool_t storeTrackPoints)
Definition: PndDsk.h:148
FairDetector * Stt
Definition: sim_emc_apd.C:47
Double_t
void SetStoreCerenkovs(Bool_t storeCerenkovs)
Definition: PndDsk.h:146
FairModule * Dipole
Definition: sim_emc_apd.C:40
FairModule * Cave
Definition: sim_emc_apd.C:32
Definition: PndDrc.h:31
Int_t nEvents
Definition: hit_dirc.C:11
unsigned int seed
TStopwatch timer
Definition: hit_dirc.C:51
virtual void SetGeometryVersion(const Int_t GeoNumber)
Definition: PndEmc.cxx:966
void SetBarrel(TString name)
Definition: PndMdt.h:31
gDebug
Definition: sim_emc_apd.C:6
Double_t ctime
Definition: hit_dirc.C:114
FairBoxGenerator * boxGen
Definition: sim_emc_apd.C:85
void SetEndcap(TString name)
Definition: PndMdt.h:32
void SetMuonFilter(TString name)
Definition: PndMdt.h:33
void SetRunCherenkov(Bool_t ch)
Definition: PndDrc.h:222
Definition: PndStt.h:34
Definition: PndMdt.h:20
FairModule * Pipe
Definition: sim_emc_apd.C:44
Double_t rtime
Definition: hit_dirc.C:113
Definition: PndDsk.h:23
FairModule * Magnet
Definition: sim_emc_apd.C:36
Definition: PndCave.h:8