FairRoot/PandaRoot
Functions
sim_muo_test.C File Reference

Go to the source code of this file.

Functions

int sim_muo_test (Int_t nEvents=100, Int_t pid=13, Float_t p1=1.0, Float_t p2=-1)
 

Function Documentation

int sim_muo_test ( Int_t  nEvents = 100,
Int_t  pid = 13,
Float_t  p1 = 1.0,
Float_t  p2 = -1 
)

Definition at line 1 of file sim_muo_test.C.

References PndMultiField::AddField(), Bool_t, boxGen, Cave, ctime, Double_t, Drc, fField, fRun, gDebug, kParameterMerged, Magnet, map_d1, map_d2, map_s1, map_s2, map_s3, map_s4, map_t, Muo, nEvents, output, p1, p2, Par, pid(), primGen, printf(), rtdb, rtime, PndMdt::SetMdtMagnet(), PndMultiFieldPar::SetParameters(), PndDrc::SetRunCherenkov(), 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->SetMdtVersion("fast");
58  Muo->SetMdtMagnet(kFALSE);
59  //Muo->SetMdtMF(kTRUE);
60  //Muo->SetMdtMFIron(kTRUE);
61  fRun->AddModule(Muo);
62 
63  PndDrc *Drc = new PndDrc("DIRC", kTRUE);
64  Drc->SetRunCherenkov(kFALSE); // for fast sim Cherenkov -> kFALSE
65  //fRun->AddModule(Drc);
66 
67  //FairDetector *Dch = new PndDchDetector("DCH", kTRUE);
68  //Dch->SetGeometryFileName("dch.root");
69  //fRun->AddModule(Dch);
70 
71  // Create and Set Event Generator
72  //-------------------------------
73 
74  FairPrimaryGenerator* primGen = new FairPrimaryGenerator();
75  fRun->SetGenerator(primGen);
76 
77  // Box Generator
78  FairBoxGenerator* boxGen = new FairBoxGenerator(pid, 1); // 13 = muon; 1 = multipl.
79  if (p2<0.) p2 = p1;
80  boxGen->SetPRange(p1,p2); // GeV/c
81  boxGen->SetPhiRange(0., 360.); // Azimuth angle range [degree]
82  boxGen->SetThetaRange(10., 90.); // Polar angle in lab system range [degree]
83  boxGen->SetXYZ(0., 0., 0.); // mm o cm ??
84  primGen->AddGenerator(boxGen);
85 
86  fRun->SetBeamMom(15);
88 
89  PndTransMap *map_t= new PndTransMap("TransMap", "R");
90  PndDipoleMap *map_d1= new PndDipoleMap("DipoleMap1", "R");
91  PndDipoleMap *map_d2= new PndDipoleMap("DipoleMap2", "R");
92  PndSolenoidMap *map_s1= new PndSolenoidMap("SolenoidMap1", "R");
93  PndSolenoidMap *map_s2= new PndSolenoidMap("SolenoidMap2", "R");
94  PndSolenoidMap *map_s3= new PndSolenoidMap("SolenoidMap3", "R");
95  PndSolenoidMap *map_s4= new PndSolenoidMap("SolenoidMap4", "R");
96 
97  fField->AddField(map_t);
98  fField->AddField(map_d1);
99  fField->AddField(map_d2);
100  fField->AddField(map_s1);
101  fField->AddField(map_s2);
102  fField->AddField(map_s3);
103  fField->AddField(map_s4);
104 
105  fRun->SetField(fField);
106 
107  fRun->Init();
108 
109  FairRuntimeDb *rtdb=fRun->GetRuntimeDb();
110  Bool_t kParameterMerged=kTRUE;
111 
112  PndMultiFieldPar* Par = (PndMultiFieldPar*) rtdb->getContainer("PndMultiFieldPar");
113  if (fField) { Par->SetParameters(fField); }
114  Par->setInputVersion(fRun->GetRunId(),1);
115  Par->setChanged();
116 
117  FairParRootFileIo* output=new FairParRootFileIo(kParameterMerged);
118  output->open("params.root");
119  rtdb->setOutput(output);
120  rtdb->saveOutput();
121  rtdb->print();
122 
123  fRun->Run(nEvents);
124 
125  timer.Stop();
126 
127  Double_t rtime = timer.RealTime();
128  Double_t ctime = timer.CpuTime();
129  printf("RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime);
130 
131  cout << " Test passed" << endl;
132  cout << " All ok " << endl;
133  //exit(0);
134  return 0;
135 }
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)
Bool_t kParameterMerged
Definition: sim_emc_apd.C:113
void SetParameters(FairField *field)
int pid()
PndDipoleMap * map_d2
Definition: sim_hit_emc.C:111
PndSolenoidMap * map_s1
Definition: sim_hit_emc.C:112
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
void SetMdtMagnet(bool opt=false)
Definition: PndMdt.h:27
Double_t
FairModule * Cave
Definition: sim_emc_apd.C:32
PndSolenoidMap * map_s3
Definition: sim_hit_emc.C:114
Definition: PndDrc.h:31
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
PndSolenoidMap * map_s2
Definition: sim_hit_emc.C:113
Double_t ctime
Definition: hit_dirc.C:114
FairBoxGenerator * boxGen
Definition: sim_emc_apd.C:85
TPad * p2
Definition: hist-t7.C:117
void SetRunCherenkov(Bool_t ch)
Definition: PndDrc.h:222
PndMultiFieldPar * Par
Definition: sim_emc_apd.C:115
Definition: PndMdt.h:20
void AddField(FairField *field)
TPad * p1
Definition: hist-t7.C:116
PndDipoleMap * map_d1
Definition: sim_hit_emc.C:110
PndTransMap * map_t
Definition: sim_hit_emc.C:109
Double_t rtime
Definition: hit_dirc.C:113
FairModule * Magnet
Definition: sim_emc_apd.C:36
PndSolenoidMap * map_s4
Definition: sim_hit_emc.C:115
Definition: PndCave.h:8