FairRoot/PandaRoot
Functions
simInclusive.C File Reference

Go to the source code of this file.

Functions

 simInclusive (Int_t nEvents=100, TString SimEngine="TGeant3", Float_t mom=15.0, UInt_t seed=123)
 

Function Documentation

simInclusive ( Int_t  nEvents = 100,
TString  SimEngine = "TGeant3",
Float_t  mom = 15.0,
UInt_t  seed = 123 
)

Definition at line 1 of file simInclusive.C.

References allDigiFile, BeamMomentum, Bool_t, Cave, ctime, digiFile, Dipole, Double_t, Drc, Dsk, Emc, emcHitProd, fField, fRun, FTof, Fts, gDebug, Gem, chigen::initialize(), kParameterMerged, Magnet, mom, Muo, Mvd, nEvents, output, parIo1, Pipe, primGen, printf(), rootlogon(), rtdb, rtime, seed, PndMdt::SetBarrel(), PndMdt::SetEndcap(), PndMdt::SetForward(), PndEmc::SetGeometryVersion(), PndMdt::SetMdtMagnet(), PndMdt::SetMdtMFIron(), PndMdt::SetMuonFilter(), PndDrc::SetRunCherenkov(), PndEmc::SetStorageOfData(), PndDsk::SetStoreCerenkovs(), PndDsk::SetStoreTrackPoints(), sqrt(), Stt, timer, and TString.

2  {
3 
4  gROOT->LoadMacro("$VMCWORKDIR/gconfig/rootlogon.C");
5  rootlogon();
6 
7  //Loading ChiGen libraries
8  gSystem->Load("libEvtGenExternal");
9  gSystem->Load("libEvtGen");
10  gSystem->Load("libEvtGenDirect");
11  gSystem->Load("libCHIGEN");
12  //initializing ChiGen with custom seed
14 
15  //-----User Settings:-----------------------------------------------
16  TString OutputFile = "sim_complete.root";
17  TString ParOutputfile = "simparams.root";
18  TString MediaFile = "media_pnd.geo";
19  gDebug = 0;
20  TString digiFile = "all.par"; //The emc run the hit producer directly
21  // choose your event generator
22  Bool_t UseEvtGen = kFALSE;
23  Bool_t UseEvtGenDirect = kTRUE;
24  Bool_t UseDpm = kFALSE;
25  Bool_t UseBoxGenerator = kFALSE;
26 
27  Double_t BeamMomentum = mom; // beam momentum ONLY for the scaling of the dipole field.
28 
29  //------------------------------------------------------------------
30  TStopwatch timer;
31  timer.Start();
32  gRandom->SetSeed();
33 
34  // Create the Simulation run manager--------------------------------
35  FairRunSim *fRun = new FairRunSim();
36  fRun->SetName(SimEngine.Data());
37  fRun->SetOutputFile(OutputFile.Data());
38  fRun->SetGenerateRunInfo(kFALSE);
39  fRun->SetBeamMom(BeamMomentum);
40  fRun->SetMaterials(MediaFile.Data());
41  FairRuntimeDb *rtdb = fRun->GetRuntimeDb();
42 
43  // Set the parameters
44  //-------------------------------
45  TString allDigiFile = gSystem->Getenv("VMCWORKDIR");
46  allDigiFile += "/macro/params/";
47  allDigiFile += digiFile;
48 
49 
50  //-------Set the parameter output --------------------
51  FairParAsciiFileIo* parIo1 = new FairParAsciiFileIo();
52  parIo1->open(allDigiFile.Data(), "in");
53  rtdb->setFirstInput(parIo1);
54 
55  //---------------------Set Parameter output ----------
56  Bool_t kParameterMerged = kTRUE;
57  FairParRootFileIo* output = new FairParRootFileIo(kParameterMerged);
58  output->open(ParOutputfile.Data());
59  rtdb->setOutput(output);
60 
61  // Create and add detectors
62 
63  //------------------------- CAVE -----------------
64 
65  FairModule *Cave = new PndCave("CAVE");
66  Cave->SetGeometryFileName("pndcave.geo");
67  fRun->AddModule(Cave);
68  //------------------------- Magnet -----------------
69  FairModule *Magnet = new PndMagnet("MAGNET");
70  //Magnet->SetGeometryFileName("FullSolenoid_V842.root");
71  Magnet->SetGeometryFileName("FullSuperconductingSolenoid_v831.root");
72  fRun->AddModule(Magnet);
73  FairModule *Dipole = new PndMagnet("MAGNET");
74  Dipole->SetGeometryFileName("dipole.geo");
75  fRun->AddModule(Dipole);
76  //------------------------- Pipe -----------------
77  FairModule *Pipe = new PndPipe("PIPE");
78  Pipe->SetGeometryFileName("beampipe_201112.root");
79  fRun->AddModule(Pipe);
80  //------------------------- STT -----------------
81  FairDetector *Stt = new PndStt("STT", kTRUE);
82  Stt->SetGeometryFileName("straws_skewed_blocks_35cm_pipe.geo");
83  fRun->AddModule(Stt);
84  //------------------------- MVD -----------------
85  FairDetector *Mvd = new PndMvdDetector("MVD", kTRUE);
86  Mvd->SetGeometryFileName("Mvd-2.1_FullVersion.root");
87  fRun->AddModule(Mvd);
88  //------------------------- GEM -----------------
89  FairDetector *Gem = new PndGemDetector("GEM", kTRUE);
90  Gem->SetGeometryFileName("gem_3Stations.root");
91  fRun->AddModule(Gem);
92  //------------------------- EMC -----------------
93  PndEmc *Emc = new PndEmc("EMC", kTRUE);
94  Emc->SetGeometryVersion(1);
95  Emc->SetStorageOfData(kFALSE);
96  fRun->AddModule(Emc);
97  //------------------------- SCITIL -----------------
98  FairDetector *SciT = new PndSciT("SCIT", kTRUE);
99  SciT->SetGeometryFileName("barrel-SciTil_07022013.root");
100  fRun->AddModule(SciT);
101  //------------------------- DRC -----------------
102  PndDrc *Drc = new PndDrc("DIRC", kTRUE);
103  Drc->SetGeometryFileName("dirc_l0_p0_updated.root");
104  Drc->SetRunCherenkov(kFALSE);
105  fRun->AddModule(Drc);
106  //------------------------- DISC -----------------
107  PndDsk* Dsk = new PndDsk("DSK", kTRUE);
108  Dsk->SetStoreCerenkovs(kFALSE);
109  Dsk->SetStoreTrackPoints(kFALSE);
110  fRun->AddModule(Dsk);
111  //------------------------- MDT -----------------
112  PndMdt *Muo = new PndMdt("MDT", kTRUE);
113  Muo->SetBarrel("fast");
114  Muo->SetEndcap("fast");
115  Muo->SetMuonFilter("fast");
116  Muo->SetForward("fast");
117  Muo->SetMdtMagnet(kTRUE);
118  Muo->SetMdtMFIron(kTRUE);
119  fRun->AddModule(Muo);
120  //------------------------- FTS -----------------
121  FairDetector *Fts = new PndFts("FTS", kTRUE);
122  Fts->SetGeometryFileName("fts.geo");
123  fRun->AddModule(Fts);
124  //------------------------- FTOF -----------------
125  FairDetector *FTof = new PndFtof("FTOF", kTRUE);
126  FTof->SetGeometryFileName("ftofwall.root");
127  fRun->AddModule(FTof);
128  //------------------------- RICH ----------------
129  FairDetector *Rich = new PndRich("RICH", kFALSE);
130  Rich->SetGeometryFileName("rich_v2.geo");
131  fRun->AddModule(Rich);
132 
133  // Create and Set ChiGen Generator
134  //-------------------------------
135  FairPrimaryGenerator* primGen = new FairPrimaryGenerator();
136  fRun->SetGenerator(primGen);
137 
138  //uncomment for configuration of ChiGen
139  /*
140  chigen::initialize(seed);
141  chigen::ostreams::suppress_all_cout = false;
142  chigen::ostreams::write_log_file = false;
143  chigen::ostreams::suppress_pandaroot = false;
144  chigen::ostreams::suppress_pandaroot_cout = false;
145  chigen::ostreams::verbose_mode = true;
146  */
147 
148  //calculate e.c.m. using specified pbar beam momentum
149  double ecm = sqrt(2. + 2. * sqrt(2 + BeamMomentum * BeamMomentum));
150  //partonic model for polarized (|la| = 2) chi_{c2}
151  chigen::models::chi_2_2 chi2(ecm);
152  chigen::PndChiGen chigen(chi2);
153  primGen->AddGenerator(&chigen);
154 
155  //---------------------Create and Set the Field(s)----------
156  PndMultiField *fField = new PndMultiField("AUTO");
157  fRun->SetField(fField);
158 
159  // EMC Hit producer
160  //-------------------------------
162  fRun->AddTask(emcHitProd);
163 
164  //------------------------- Initialize the RUN -----------------
165  fRun->Init();
166  //------------------------- Run the Simulation -----------------
167  fRun->Run(nEvents);
168  //------------------------- Save the parameters -----------------
169  rtdb->saveOutput();
170  //------------------------Print some info and exit----------------
171  timer.Stop();
172  Double_t rtime = timer.RealTime();
173  Double_t ctime = timer.CpuTime();
174  printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime);
175 
176  cout << " Test passed" << endl;
177  cout << " All ok " << endl;
178 
179  //exit(0);
180 
181 }
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
Bool_t kParameterMerged
Definition: sim_emc_apd.C:113
friend F32vec4 sqrt(const F32vec4 &a)
Definition: P4_F32vec4.h:29
creates PndEmcHits from PndEmcPoints
PndEmc * Emc
Definition: sim_emc_apd.C:55
TString digiFile
Definition: bump_emc.C:20
FairDetector * Mvd
Definition: sim_emc_apd.C:51
void SetMdtMFIron(bool opt=false)
Definition: PndMdt.h:29
Double_t mom
Definition: plot_dirc.C:14
void SetStorageOfData(Bool_t val)
Definition: PndEmc.cxx:941
double BeamMomentum
Definition: sim_ftof_stof.C:17
TString allDigiFile
Definition: hit_muo.C:36
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
FairRunAna * fRun
Definition: hit_dirc.C:58
FairDetector * Gem
Definition: runJohan.C:71
void SetMdtMagnet(bool opt=false)
Definition: PndMdt.h:27
void initialize()
void SetStoreTrackPoints(Bool_t storeTrackPoints)
Definition: PndDsk.h:148
FairDetector * Stt
Definition: sim_emc_apd.C:47
void SetStoreCerenkovs(Bool_t storeCerenkovs)
Definition: PndDsk.h:146
Double_t
FairModule * Dipole
Definition: sim_emc_apd.C:40
FairModule * Cave
Definition: sim_emc_apd.C:32
Definition: PndDrc.h:31
Int_t nEvents
Definition: hit_dirc.C:11
unsigned int seed
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
PndEmcHitProducer * emcHitProd
Double_t ctime
Definition: hit_dirc.C:114
FairParAsciiFileIo * parIo1
Definition: bump_emc.C:53
void SetEndcap(TString name)
Definition: PndMdt.h:32
void SetMuonFilter(TString name)
Definition: PndMdt.h:33
void SetRunCherenkov(Bool_t ch)
Definition: PndDrc.h:222
Definition: PndStt.h:34
Definition: PndMdt.h:20
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
Definition: PndCave.h:8