FairRoot/PandaRoot
run0AllSysDPMbkg.C
Go to the documentation of this file.
1 // Panda FullSim macro
2 int run0AllSysDPMbkg(const int nEvents=10, const int startEvent=0, const double mom=15, TString storePath="tmpOutputDPM", const int verboseLevel=0, TString input="Background.root")
3 //void runLumi0DPMbkg(const int nEvents=10, const int startEvent=0, const double mom=15, Int_t mode =1, UInt_t seed=0, TString storePath="tmpOutputDPM", const int verboseLevel=0)
4 {
5  // gRandom->SetSeed(seed);
6  Int_t mode = 1;
7  TStopwatch timer;
8  timer.Start();
9  gDebug=0;
10 
11  //output1
12  TString simOutput=storePath+"/Lumi_MC_";
13  simOutput += startEvent;
14  simOutput += ".root";
15  TString parOutput=storePath+"/Lumi_Params_";
16  parOutput += startEvent;
17  parOutput += ".root";
18  //Load basic libraries
19  gROOT->Macro("$VMCWORKDIR/gconfig/rootlogon.C");
20  gSystem->Load("libSds");
21  gSystem->Load("libLmd");
22  FairRunSim *fRun = new FairRunSim();
23  cout<<"All libraries succsesfully loaded!"<<endl;
24 
25  //set the MC version used
26  fRun->SetName("TGeant3");
27 
28  fRun->SetOutputFile(simOutput);
29 
30 
31  //set material
32  fRun->SetMaterials("media_pnd.geo");
33 
34  // //create and add detectors
35 // //------------------------- CAVE -----------------
36 
37  FairModule *Cave= new PndCave("CAVE");
38  // Cave->SetGeometryFileName("pndcave.geo");
39  Cave->SetGeometryFileName("pndcaveVAC.geo"); //LMD is working in vacuum!!!
40  fRun->AddModule(Cave);
41  //------------------------- Magnet -----------------
42  FairModule *Magnet= new PndMagnet("MAGNET");
43  Magnet->SetGeometryFileName("FullSuperconductingSolenoid_v831.root");
44  fRun->AddModule(Magnet);
45  FairModule *Dipole= new PndMagnet("MAGNET");
46  Dipole->SetGeometryFileName("dipole.geo");
47  fRun->AddModule(Dipole);
48  //------------------------- Pipe -----------------
49  FairModule *Pipe= new PndPipe("PIPE");
50  Pipe->SetGeometryFileName("beampipe_201210.root");
51  fRun->AddModule(Pipe);
52  //------------------------- STT -----------------
53  FairDetector *Stt= new PndStt("STT", kTRUE);
54  Stt->SetGeometryFileName("straws_skewed_blocks_35cm_pipe.geo");
55  fRun->AddModule(Stt);
56  //------------------------- MVD -----------------
57  FairDetector *Mvd = new PndMvdDetector("MVD", kTRUE);
58  Mvd->SetGeometryFileName("Mvd-2.1_FullVersion.root");
59  fRun->AddModule(Mvd);
60  //------------------------- GEM -----------------
61  FairDetector *Gem = new PndGemDetector("GEM", kTRUE);
62  Gem->SetGeometryFileName("gem_3Stations.root");
63  fRun->AddModule(Gem);
64  //------------------------- EMC -----------------
65  PndEmc *Emc = new PndEmc("EMC",kTRUE);
66  Emc->SetGeometryVersion(1);
67  Emc->SetStorageOfData(kFALSE);
68  fRun->AddModule(Emc);
69  //------------------------- DRC -----------------
70  PndDrc *Drc = new PndDrc("DIRC", kTRUE);
71  Drc->SetGeometryFileName("dirc_l0_p0_updated.root");
72  Drc->SetRunCherenkov(kFALSE);
73  fRun->AddModule(Drc);
74  //------------------------- DISC -----------------
75  PndDsk* Dsk = new PndDsk("DSK", kTRUE);
76  Dsk->SetStoreCerenkovs(kFALSE);
77  Dsk->SetStoreTrackPoints(kFALSE);
78  fRun->AddModule(Dsk);
79  //------------------------- MDT -----------------
80  PndMdt *Muo = new PndMdt("MDT",kTRUE);
81  Muo->SetBarrel("fast");
82  Muo->SetEndcap("fast");
83  Muo->SetMuonFilter("fast");
84  Muo->SetForward("fast");
85  Muo->SetMdtMagnet(kTRUE);
86  Muo->SetMdtMFIron(kTRUE);
87  fRun->AddModule(Muo);
88  //------------------------- FTS -----------------
89  FairDetector *Fts= new PndFts("FTS", kTRUE);
90  Fts->SetGeometryFileName("fts.geo");
91  fRun->AddModule(Fts);
92  //------------------------- FTOF -----------------
93  FairDetector *FTof = new PndFtof("FTOF",kTRUE);
94  FTof->SetGeometryFileName("ftofwall.root");
95  fRun->AddModule(FTof);
96  //------------------------- RICH ----------------
97  FairDetector *Rich= new PndRich("RICH",kFALSE);
98  Rich->SetGeometryFileName("rich_v2.geo");
99  fRun->AddModule(Rich);
100 
101  PndLmdDetector *Lum = new PndLmdDetector("LUM", kTRUE);
102  Lum->SetExclusiveSensorType("LumActive"); //ignore MVD
103  Lum->SetGeometryFileName("../macro/lmd/geo/HV_MAPS-Design.root"); // new sensors
105  fRun->AddModule(Lum);
106 
107  //particle generator
108  FairPrimaryGenerator* primGen = new FairPrimaryGenerator();
109  // primGen->SmearVertexXY(kTRUE);
110  // primGen->SmearAngle(kTRUE);
111  // primGen->SmearVertexZ(kTRUE);
112  // primGen->SetBeamAngularDivergence(0.0003);// sigmaTheta~0.3 mrad
113  // primGen->SetBeam(0., 0., 2*0.08, 2*0.08); //sigmaX=sigmaY=0.8 mm ["square"shape of beam ]
114  // primGen->SetTarget(0.,0.1); // sigmaZ=1mm, gaus
115  fRun->SetGenerator(primGen);
116 
117 
118  // DPM Generator
119  PndDpmGenerator* dpmGen = new PndDpmGenerator(input);
120  primGen->AddGenerator(dpmGen);
121  // PndDpmDirect *dpmGen = new PndDpmDirect(mom, mode, gRandom->GetSeed(), 0.1);
122  // primGen->AddGenerator(dpmGen);
123 
124  //reading the new field map in the old format
125  fRun->SetBeamMom(mom);
126  // PndMultiField *fField= new PndMultiField("FULL");
127  // fRun->SetField(fField);
129  PndTransMap *map_t = new PndTransMap("TransMap_v1", "R");
130  PndDipoleMap *map_d1 = new PndDipoleMap("DipoleMap1_v1", "R");
131  PndDipoleMap *map_d2 = new PndDipoleMap("DipoleMap2_v1", "R");
132  // PndTransMap *map_t = new PndTransMap("TransMap", "R");
133  // PndDipoleMap *map_d1 = new PndDipoleMap("DipoleMap1", "R");
134  // PndDipoleMap *map_d2 = new PndDipoleMap("DipoleMap2", "R");
135  PndSolenoidMap *map_s1 = new PndSolenoidMap("SolenoidMap1", "R");
136  PndSolenoidMap *map_s2 = new PndSolenoidMap("SolenoidMap2", "R");
137  PndSolenoidMap *map_s3 = new PndSolenoidMap("SolenoidMap3", "R");
138  PndSolenoidMap *map_s4 = new PndSolenoidMap("SolenoidMap4", "R");
139 
140  fField->AddField(map_t);
141  fField->AddField(map_d1);
142  fField->AddField(map_d2);
143  fField->AddField(map_s1);
144  fField->AddField(map_s2);
145  fField->AddField(map_s3);
146  fField->AddField(map_s4);
147 
148  fRun->SetField(fField);
149 
150  if(nEvents<101)
151  fRun->SetStoreTraj(kTRUE); // toggle this for use with EVE
152  else
153  fRun->SetStoreTraj(kFALSE);
154  fRun->Init();
155 
156 
157  // // Fill the Parameter containers for this run
158  // //-------------------------------------------
159  FairRuntimeDb *rtdb=fRun->GetRuntimeDb();
160  Bool_t kParameterMerged=kTRUE;
161  FairParRootFileIo* output=new FairParRootFileIo(kParameterMerged);
162  output->open(parOutput.Data(),"RECREATE");
163  rtdb->setOutput(output);
164 
165  // PndMultiFieldPar* Par = (PndMultiFieldPar*) rtdb->getContainer("PndMultiFieldPar");
166  // if (fField) { Par->SetParameters(fField); }
167  // Par->setInputVersion(fRun->GetRunId(),1);
168  // Par->setChanged();
169 
170  // Transport nEvents
171  // -----------------
172 
173  fRun->Run(nEvents);
174 
175  rtdb->saveOutput();
176  rtdb->print();
177 
178 
179  timer.Stop();
180  Double_t rtime = timer.RealTime();
181  Double_t ctime = timer.CpuTime();
182  printf("RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime);
183  return 0;
184 }
185 
PndDrc * Drc
Definition: sim_emc_apd.C:75
PndMultiField * fField
Definition: sim_emc_apd.C:97
void SetForward(TString name)
Definition: PndMdt.h:34
printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime)
FairDetector * FTof
Definition: sim_ftof.C:49
int verboseLevel
Definition: Lars/runMvdSim.C:7
Bool_t kParameterMerged
Definition: sim_emc_apd.C:113
void SetExclusiveSensorType(const TString sens)
PndDpmGenerator * dpmGen
PndEmc * Emc
Definition: sim_emc_apd.C:55
Int_t startEvent
FairDetector * Mvd
Definition: sim_emc_apd.C:51
void SetMdtMFIron(bool opt=false)
Definition: PndMdt.h:29
TString storePath
Double_t mom
Definition: plot_dirc.C:14
PndDipoleMap * map_d2
Definition: sim_hit_emc.C:111
void SetStorageOfData(Bool_t val)
Definition: PndEmc.cxx:941
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
Simulation of EMC.
Definition: PndEmc.h:26
FairPrimaryGenerator * primGen
Definition: sim_emc_apd.C:81
FairDetector * Dsk
Definition: run_DpmSim.C:66
TString parOutput
FairRunAna * fRun
Definition: hit_dirc.C:58
FairDetector * Gem
Definition: runJohan.C:71
Int_t mode
Definition: autocutx.C:47
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
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
virtual void SetGeometryVersion(const Int_t GeoNumber)
Definition: PndEmc.cxx:966
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
void SetEndcap(TString name)
Definition: PndMdt.h:32
void SetMuonFilter(TString name)
Definition: PndMdt.h:33
TString simOutput
void SetRunCherenkov(Bool_t ch)
Definition: PndDrc.h:222
Definition: PndStt.h:34
Definition: PndMdt.h:20
void AddField(FairField *field)
void SetVerboseLevel(Int_t level)
PndDipoleMap * map_d1
Definition: sim_hit_emc.C:110
PndTransMap * map_t
Definition: sim_hit_emc.C:109
FairModule * Pipe
Definition: sim_emc_apd.C:44
Double_t rtime
Definition: hit_dirc.C:113
FairDetector * Fts
Definition: sim_ftof_stof.C:58
Definition: PndDsk.h:23
FairModule * Magnet
Definition: sim_emc_apd.C:36
Definition: PndFts.h:25
int run0AllSysDPMbkg(const int nEvents=10, const int startEvent=0, const double mom=15, TString storePath="tmpOutputDPM", const int verboseLevel=0, TString input="Background.root")
PndSolenoidMap * map_s4
Definition: sim_hit_emc.C:115
Definition: PndCave.h:8