FairRoot/PandaRoot
Functions
QAmacro_emc_1.C File Reference

Go to the source code of this file.

Functions

int QAmacro_emc_1 ()
 

Function Documentation

int QAmacro_emc_1 ( )

Set the field

Definition at line 3 of file QAmacro_emc_1.C.

References Bool_t, boxGen, Cave, ctime, Double_t, Emc, fField, fRun, gDebug, kParameterMerged, nEvents, output, Par, Pipe, primGen, printf(), rtdb, rtime, PndEmc::SetGeometryVersion(), PndMultiFieldPar::SetParameters(), and timer.

4 {
5  TStopwatch timer;
6  timer.Start();
7  gDebug=0;
8 
9  FairRunSim *fRun = new FairRunSim();
10 
11  // Set the number of events
12  Int_t nEvents = 1000;
13 
14  // set the MC version used
15  // ------------------------
16 
17  fRun->SetName("TGeant3");
18  //fRun->SetName("TGeant4");
19 
20  fRun->SetOutputFile("sim_emc.root");
21 
22  FairRuntimeDb *rtdb=fRun->GetRuntimeDb();
24 
25  FairParRootFileIo* output=new FairParRootFileIo(kParameterMerged);
26  output->open("simparams.root");
27 
28 
29  // Set Material file Name
30  //-----------------------
31  fRun->SetMaterials("media_pnd.geo");
32 
33  // Create and add detectors
34  //-------------------------
35  FairModule *Cave= new PndCave("CAVE");
36  Cave->SetGeometryFileName("pndcave.geo");
37  fRun->AddModule(Cave);
38 
39  //FairModule *Magnet= new PndMagnet("MAGNET");
40  //Magnet->SetGeometryFileName("magnet.geo");
41  //fRun->AddModule(Magnet);
42 
43  FairModule *Pipe= new PndPipe("PIPE");
44  Pipe->SetGeometryFileName("pipe.geo");
45  fRun->AddModule(Pipe);
46 
47  //FairDetector *Emc = new PndEmc("EMC",kTRUE);
48  PndEmc *Emc = new PndEmc("EMC",kTRUE);
49  Emc->SetGeometryVersion(1);
50  // See PndEmc::SetGeometryVersion() for available geometries and add there new one if necessary
51  fRun->AddModule(Emc);
52 
53  // Create and Set Event Generator
54  //-------------------------------
55 
56  FairPrimaryGenerator* primGen = new FairPrimaryGenerator();
57  fRun->SetGenerator(primGen);
58 
59  // Box Generator:
60  FairBoxGenerator* boxGen = new FairBoxGenerator(22, 1); // 13 = muon; 1 = multipl. // 211 = pi+
61  // first number: PDG particle code: 2nd number: particle multiplicity per event
62 
63  boxGen->SetPRange(1.,1.); // GeV/c
64  // boxGen->SetPtRange(1.,1.); // GeV/c
65  boxGen->SetPhiRange(0., 360.); // Azimuth angle range [degree]
66  boxGen->SetThetaRange(0., 180.); // Polar angle in lab system range [degree]
67  boxGen->SetXYZ(0., 0., 0.); // vertex coordinates [mm]
68  primGen->AddGenerator(boxGen);
69 
70  //fRun->SetStoreTraj(kTRUE); // to store particle trajectories
71 
73  fRun->SetBeamMom(15);
74  //---------------------Create and Set the Field(s)----------
75  PndMultiField *fField= new PndMultiField("FULL");
76  fRun->SetField(fField);
77 
78  fRun->Init();
79 
80  // Fill the Parameter containers for this run
81  //-------------------------------------------
82 
83 
84 
85  PndMultiFieldPar* Par = (PndMultiFieldPar*) rtdb->getContainer("PndMultiFieldPar");
86  if (fField) { Par->SetParameters(fField); }
87  Par->setInputVersion(fRun->GetRunId(),1);
88  Par->setChanged();
89 
90  rtdb->setOutput(output);
91  rtdb->saveOutput();
92  rtdb->print();
93 
94 
95  // Transport nEvents
96  // -----------------
97  fRun->Run(nEvents);
98 
99 
100  timer.Stop();
101 
102  Double_t rtime = timer.RealTime();
103  Double_t ctime = timer.CpuTime();
104  printf("RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime);
105 
106  cout << " Test passed" << endl;
107  cout << " All ok " << endl;
108  return 0;
109 }
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)
PndEmc * Emc
Definition: sim_emc_apd.C:55
FairParRootFileIo * output
Definition: sim_emc_apd.C:120
Simulation of EMC.
Definition: PndEmc.h:26
FairPrimaryGenerator * primGen
Definition: sim_emc_apd.C:81
FairRunAna * fRun
Definition: hit_dirc.C:58
Double_t
FairModule * Cave
Definition: sim_emc_apd.C:32
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
FairRuntimeDb * rtdb
Definition: hit_dirc.C:66
gDebug
Definition: sim_emc_apd.C:6
Double_t ctime
Definition: hit_dirc.C:114
FairBoxGenerator * boxGen
Definition: sim_emc_apd.C:85
PndMultiFieldPar * Par
Definition: sim_emc_apd.C:115
FairModule * Pipe
Definition: sim_emc_apd.C:44
Double_t rtime
Definition: hit_dirc.C:113
Definition: PndCave.h:8