FairRoot/PandaRoot
Functions
sim_muo.C File Reference

Go to the source code of this file.

Functions

int sim_muo (Int_t nEvents=10, Int_t pid=13, Float_t p1=1.0, Float_t p2=-1)
 

Function Documentation

int sim_muo ( Int_t  nEvents = 10,
Int_t  pid = 13,
Float_t  p1 = 1.0,
Float_t  p2 = -1 
)

Definition at line 1 of file sim_muo.C.

References Bool_t, boxGen, Cave, ctime, Double_t, fField, fRun, gDebug, kParameterMerged, Magnet, Muo, nEvents, output, p1, p2, pid(), primGen, printf(), rtdb, rtime, PndMdt::SetBarrel(), PndMdt::SetEndcap(), PndMdt::SetMdtMFIron(), PndMdt::SetMuonFilter(), and timer.

1  {
2 
3  TStopwatch timer;
4  timer.Start();
5  gDebug=0;
6 
7  FairRunSim *fRun = new FairRunSim();
8 
9  // set the MC version used
10  // ------------------------
11 
12  fRun->SetName("TGeant3");
13 
14  fRun->SetOutputFile("test.root");
15 
16  // Set Material file Name
17  //-----------------------
18 
19  fRun->SetMaterials("media_pnd.geo");
20 
21  // Create and add detectors
22  //-------------------------
23 
24  FairModule *Cave= new PndCave("CAVE");
25  Cave->SetGeometryFileName("pndcave.geo");
26  fRun->AddModule(Cave);
27 
28  FairModule *Magnet= new PndMagnet("MAGNET");
29  Magnet->SetGeometryFileName("FullSolenoid_V842.root");
30  //Magnet->SetGeometryFileName("FullSuperconductingSolenoid_v831.root");
31  fRun->AddModule(Magnet);
32 
33  /*FairModule *Dipole= new PndMagnet("MAGNET");
34  Dipole->SetGeometryFileName("dipole.geo");
35  //fRun->AddModule(Dipole);
36 
37  FairModule *Pipe= new PndPipe("PIPE");
38  //fRun->AddModule(Pipe);
39 
40  FairDetector *Tpc = new PndTpcDetector("TPC", kTRUE);
41  Tpc->SetGeometryFileName("tpc.geo");
42  fRun->AddModule(Tpc);
43 
44  FairDetector *Mvd = new PndMvdDetector("MVD", kTRUE);
45  Mvd->SetGeometryFileName("MVD_v1.0_woPassiveTraps.root");
46  fRun->AddModule(Mvd);
47 
48  PndEmc *Emc = new PndEmc("EMC",kTRUE);
49  Emc->SetGeometryFileNameDouble("emc_module124.dat","emc_module3new.root");
50  fRun->AddModule(Emc);
51 
52  FairDetector *Tof = new PndTof("TOF",kTRUE);
53  Tof->SetGeometryFileName("tofbarrel.geo");
54  fRun->AddModule(Tof);
55  */
56  PndMdt *Muo = new PndMdt("MDT",kTRUE);
57  Muo->SetBarrel("fast");
58  Muo->SetEndcap("fast");
59  Muo->SetMuonFilter("fast");
60  //Muo->SetMdtMagnet(kTRUE);
61  Muo->SetMdtMFIron(kTRUE);
62  fRun->AddModule(Muo);
63 /*
64  FairDetector *Gem = new PndGemDetector("GEM", kTRUE);
65  Gem->SetGeometryFileName("gem_3Stations.root");
66  fRun->AddModule(Gem);
67 
68  PndDrc *Drc = new PndDrc("DIRC", kTRUE);
69  Drc->SetRunCherenkov(kFALSE); // for fast sim Cherenkov -> kFALSE
70  fRun->AddModule(Drc);
71  */
72  //FairDetector *Dch = new PndDchDetector("DCH", kTRUE);
73  //Dch->SetGeometryFileName("dch.root");
74  //fRun->AddModule(Dch);
75 
76  // Create and Set Event Generator
77  //-------------------------------
78 
79  FairPrimaryGenerator* primGen = new FairPrimaryGenerator();
80  fRun->SetGenerator(primGen);
81 
82  // Box Generator
83  FairBoxGenerator* boxGen = new FairBoxGenerator(pid, 1); // 13 = muon; 1 = multipl.
84  if (p2<0.) p2 = p1;
85  boxGen->SetPRange(p1,p2); // GeV/c
86  boxGen->SetPhiRange(0., 360.); // Azimuth angle range [degree]
87  boxGen->SetThetaRange(10., 90.); // Polar angle in lab system range [degree]
88  boxGen->SetXYZ(0., 0., 0.); // mm o cm ??
89  primGen->AddGenerator(boxGen);
90 
91  fRun->SetBeamMom(15);
92  PndMultiField *fField= new PndMultiField("FULL");
93  fRun->SetField(fField);
94 
95  fRun->Init();
96 
97  FairRuntimeDb *rtdb=fRun->GetRuntimeDb();
99 
100  FairParRootFileIo* output=new FairParRootFileIo(kParameterMerged);
101  output->open("params.root");
102  rtdb->setOutput(output);
103  rtdb->saveOutput();
104  rtdb->print();
105 
106  fRun->Run(nEvents);
107 
108  timer.Stop();
109 
110  Double_t rtime = timer.RealTime();
111  Double_t ctime = timer.CpuTime();
112  printf("RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime);
113 
114  cout << " Test passed" << endl;
115  cout << " All ok " << endl;
116  //exit(0);
117  return 0;
118 }
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
int pid()
void SetMdtMFIron(bool opt=false)
Definition: PndMdt.h:29
FairParRootFileIo * output
Definition: sim_emc_apd.C:120
PndMdt * Muo
Definition: sim_emc_apd.C:67
FairPrimaryGenerator * primGen
Definition: sim_emc_apd.C:81
FairRunAna * fRun
Definition: hit_dirc.C:58
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
void SetBarrel(TString name)
Definition: PndMdt.h:31
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
TPad * p2
Definition: hist-t7.C:117
void SetEndcap(TString name)
Definition: PndMdt.h:32
void SetMuonFilter(TString name)
Definition: PndMdt.h:33
Definition: PndMdt.h:20
TPad * p1
Definition: hist-t7.C:116
Double_t rtime
Definition: hit_dirc.C:113
FairModule * Magnet
Definition: sim_emc_apd.C:36
Definition: PndCave.h:8