FairRoot/PandaRoot
sim_ftof.C
Go to the documentation of this file.
1 // Macro created A.Sanchez
2 // It creates a geant simulation file for forward tof wall
3 {
4  TStopwatch timer;
5  timer.Start();
6  gDebug=0;
7  // Load basic libraries
8  // If it does not work, please check the path of the libs and put it by hands
9 
10  gROOT->Macro("$VMCWORKDIR/gconfig/rootlogon.C");
11  gSystem->Load("libFtof");
12 
13  FairRunSim *fRun = new FairRunSim();
14 
15 
16  TString inFile3= "/d/panda02/urqmd_smm/pbarC_3_GeV.root";
17 
18  // set the MC version used
19  // ------------------------
20 
21  fRun->SetName("TGeant4");
22 
23 
24 
25  fRun->SetOutputFile("test.root");
26 
27  // Set Material file Name
28  //-----------------------
29 
30  fRun->SetMaterials("media_pnd.geo");
31 
32  // Create and add detectors
33  //-------------------------
34 
35  FairModule *Cave= new PndCave("CAVE");
36  Cave->SetGeometryFileName("cave.geo");
37  fRun->AddModule(Cave);
38 
39  FairModule *Magnet= new PndMagnet("MAGNET");
40  Magnet->SetGeometryFileName("magnet.geo");
41  fRun->AddModule(Magnet);
42 
43 
44  FairModule *Dipole= new PndMagnet("MAGNET");
45  Dipole->SetGeometryFileName("dipole.geo");
46  fRun->AddModule(Dipole);
47 
48 
49  FairDetector *FTof = new PndFtof("FTOF",kTRUE);
50  FTof->SetGeometryFileName("ftofwall.root");
51  fRun->AddModule(FTof);
52  //
53 
54 
55  // Create and Set Event Generator
56  //-------------------------------
57 
58  FairPrimaryGenerator* primGen = new FairPrimaryGenerator();
59  fRun->SetGenerator(primGen);
60 
61 
63  //primGen->SetTarget(-76.,0.);
64  primGen->AddGenerator(AsciiGen);
65 
66 
67 
69  PndTransMap *map= new PndTransMap("TransMap", "R");
70  PndDipoleMap *map1= new PndDipoleMap("DipoleMap", "R");
71  PndSolenoidMap *map2= new PndSolenoidMap("SolenoidMap", "R");
72  fField->AddField(map);
73  fField->AddField(map1);
74  fField->AddField(map2);
75  fRun->SetField(fField);
76 
77  /*
78  PndConstField *fMagField=new PndConstField();
79  fMagField->SetField(0, 0 ,20. ); // values are in kG
80  // MinX=-75, MinY=-40,MinZ=-12 ,MaxX=75, MaxY=40 ,MaxZ=124 ); // values are in cm
81  fMagField->SetFieldRegion(-50, 50,-50, 50, -200, 200);
82  fRun->SetField(fMagField);*/
83 
84  fRun->SetStoreTraj(kTRUE); // to store particle trajectories
85 
86  /*FairTrajFilter* trajFilter = FairTrajFilter::Instance();
87  trajFilter->SetStepSizeCut(0.001); // 1 cm
88  // trajFilter->SetVertexCut(-2000., -2000., 4., 2000., 2000., 100.);
89  // trajFilter->SetMomentumCutP(10e-3); // p_lab > 10 MeV
90  // trajFilter->SetEnergyCut(0., 1.02); // 0 < Etot < 1.04 GeV
91  trajFilter->SetStorePrimaries(kTRUE);
92  trajFilter->SetStoreSecondaries(kTRUE);*/ // not used for the others.????
93 
94  fRun->Init();
95 
96 
97  // Fill the Parameter containers for this run
98  //-------------------------------------------
99 
100  FairRuntimeDb *rtdb=fRun->GetRuntimeDb();
101 
102  PndMultiFieldPar* fieldPar = (PndMultiFieldPar*) rtdb->getContainer("PndMultiFieldPar");
103  if ( fField ) { fieldPar->SetParameters(fField); }
104  fieldPar->setInputVersion(fRun->GetRunId(),1);
105  fieldPar->setChanged();
106 
108  FairParRootFileIo* output=new FairParRootFileIo(kParameterMerged);
109  output->open("simparams.root");
110  rtdb->setOutput(output);
111  rtdb->saveOutput();
112  rtdb->print();
113 
114  // Transport nEvents
115  // -----------------
116 
117  // Set the number of events
118  Int_t nEvents = 100;
119  fRun->Run(nEvents);
120 
121  timer.Stop();
122 
123  Double_t rtime = timer.RealTime();
124  Double_t ctime = timer.CpuTime();
125  printf("RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime);
126  delete fRun;
127  exit(0);
128 
129 }
130 
PndMultiField * fField
Definition: sim_emc_apd.C:97
printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime)
PndSolenoidMap * map2
Definition: sim_emc_apd.C:101
FairDetector * FTof
Definition: sim_ftof.C:49
Bool_t kParameterMerged
Definition: sim_emc_apd.C:113
void SetParameters(FairField *field)
PndTransMap * map
Definition: sim_emc_apd.C:99
exit(0)
PndUrqmdSmmGenerator * AsciiGen
Definition: sim_ftof.C:62
FairParRootFileIo * output
Definition: sim_emc_apd.C:120
FairPrimaryGenerator * primGen
Definition: sim_emc_apd.C:81
FairRunAna * fRun
Definition: hit_dirc.C:58
Double_t
FairModule * Dipole
Definition: sim_emc_apd.C:40
FairModule * Cave
Definition: sim_emc_apd.C:32
Int_t nEvents
Definition: hit_dirc.C:11
PndMultiFieldPar * fieldPar
Definition: sim_ftof.C:102
TStopwatch timer
Definition: hit_dirc.C:51
FairRuntimeDb * rtdb
Definition: hit_dirc.C:66
gDebug
Definition: sim_emc_apd.C:6
Double_t ctime
Definition: hit_dirc.C:114
PndDipoleMap * map1
Definition: sim_emc_apd.C:100
TString inFile3
Definition: sim_ftof.C:16
void AddField(FairField *field)
Double_t rtime
Definition: hit_dirc.C:113
FairModule * Magnet
Definition: sim_emc_apd.C:36
Definition: PndCave.h:8