FairRoot/PandaRoot
Functions
QAmacro_mdt_1.C File Reference

Go to the source code of this file.

Functions

int QAmacro_mdt_1 ()
 

Function Documentation

int QAmacro_mdt_1 ( )

Set the field

Definition at line 3 of file QAmacro_mdt_1.C.

References PndMultiField::AddField(), Bool_t, boxGen, Cave, ctime, Double_t, fField, fRun, gDebug, kParameterMerged, Magnet, map_d1, map_d2, map_s1, map_s2, map_s3, map_s4, map_t, Muo, nEvents, output, primGen, printf(), rtdb, rtime, PndMdt::SetBarrel(), PndMdt::SetEndcap(), PndMdt::SetMdtMagnet(), PndMdt::SetMdtMFIron(), PndMdt::SetMuonFilter(), and timer.

4 {
5  TStopwatch timer;
6  timer.Start();
7  gDebug=0;
8 
9  gRandom->SetSeed(1235);
10 
11  FairRunSim *fRun = new FairRunSim();
12 
13  // Set the number of events
14  Int_t nEvents = 20;
15 
16  // set the MC version used
17  // ------------------------
18 
19  fRun->SetName("TGeant4");
20 
21  fRun->SetOutputFile("pygen_sim_01_test04_test2.root");
22 
23  // Set Material file Name
24  //-----------------------
25 
26  fRun->SetMaterials("media_pnd.geo");
27 
28  // Create and add detectors
29  //-------------------------
30 
31  FairModule *Cave= new PndCave("CAVE");
32  Cave->SetGeometryFileName("pndcave.geo");
33  fRun->AddModule(Cave);
34 
35  FairModule *Magnet= new PndMagnet("MAGNET");
36  Magnet->SetGeometryFileName("FullSolenoid.root");
37  fRun->AddModule(Magnet);
38 
39  PndMdt *Muo = new PndMdt("MDT",kTRUE);
40  Muo->SetBarrel("fast");
41  Muo->SetEndcap("fast");
42  Muo->SetMuonFilter("fast");
43  Muo->SetMdtMagnet(kTRUE);
44  Muo->SetMdtMFIron(kTRUE);
45  fRun->AddModule(Muo);
46 
47  // Create and Set Event Generator
48  //-------------------------------
49 
50  FairPrimaryGenerator* primGen = new FairPrimaryGenerator();
51  fRun->SetGenerator(primGen);
52 
53  // Box Generator:
54  FairBoxGenerator* boxGen = new FairBoxGenerator(-211, 1); // 13 = muon; 1 = multipl. // 211 = pi+
55  // first number: PDG particle code: 2nd number: particle multiplicity per event
56 
57  boxGen->SetPRange(2.192840326,2.192840326); // GeV/c
58 // boxGen->SetPtRange(0.798217349,0.798217349); // GeV/c
59  boxGen->SetXYZ(0., 0., 0.); // vertex coordinates [mm]
60  primGen->AddGenerator(boxGen);
61 
62  //fRun->SetStoreTraj(kTRUE); // to store particle trajectories
64  fRun->SetBeamMom(15);
66 
67  PndTransMap *map_t= new PndTransMap("TransMap", "R");
68  PndDipoleMap *map_d1= new PndDipoleMap("DipoleMap1", "R");
69  PndDipoleMap *map_d2= new PndDipoleMap("DipoleMap2", "R");
70  PndSolenoidMap *map_s1= new PndSolenoidMap("SolenoidMap1", "R");
71  PndSolenoidMap *map_s2= new PndSolenoidMap("SolenoidMap2", "R");
72  PndSolenoidMap *map_s3= new PndSolenoidMap("SolenoidMap3", "R");
73  PndSolenoidMap *map_s4= new PndSolenoidMap("SolenoidMap4", "R");
74 
75  fField->AddField(map_t);
76  fField->AddField(map_d1);
77  fField->AddField(map_d2);
78  fField->AddField(map_s1);
79  fField->AddField(map_s2);
80  fField->AddField(map_s3);
81  fField->AddField(map_s4);
82 
83 
84  fRun->SetField(fField);
85  fRun->Init();
86 
87 
88  // Fill the Parameter containers for this run
89  //-------------------------------------------
90 
91  FairRuntimeDb *rtdb=fRun->GetRuntimeDb();
93 
94 
95 // PndMultiFieldPar* Par = (PndMultiFieldPar*) rtdb->getContainer("PndMultiFieldPar");
96 // if (fField) { Par->SetParameters(fField); }
97 // Par->setInputVersion(fRun->GetRunId(),1);
98 // Par->setChanged();
99 
100  FairParRootFileIo* output=new FairParRootFileIo(kParameterMerged);
101  output->open("simparams_piG4_test04_testi2.root");
102  rtdb->setOutput(output);
103  rtdb->saveOutput();
104  rtdb->print();
105 
106 
107  // Transport nEvents
108  // -----------------
109 
110  fRun->Run(nEvents);
111 
112  timer.Stop();
113 
114  Double_t rtime = timer.RealTime();
115  Double_t ctime = timer.CpuTime();
116  printf("RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime);
117 
118  cout << " Test passed" << endl;
119  cout << " All ok " << endl;
120 
121  return 0;
122 }
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 SetMdtMFIron(bool opt=false)
Definition: PndMdt.h:29
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
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
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
void SetEndcap(TString name)
Definition: PndMdt.h:32
void SetMuonFilter(TString name)
Definition: PndMdt.h:33
Definition: PndMdt.h:20
void AddField(FairField *field)
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