FairRoot/PandaRoot
Functions
QAmacro_drc_1.C File Reference
#include "../auxi.C"

Go to the source code of this file.

Functions

int QAmacro_drc_1 ()
 

Function Documentation

int QAmacro_drc_1 ( )

Definition at line 2 of file QAmacro_drc_1.C.

References allDigiFile, Bool_t, boxGen, Cave, CloseGeoManager(), Double_t, Drc, fField, fRun, kParameterMerged, nEvents, outFile, output, parFile, parIo1, phi, Pipe, primGen, rtdb, PndDrc::SetBlackLensSides(), PndDrc::SetDetEffAtProduction(), PndDrc::SetMirrorReal(), PndDrc::SetOptionForLUT(), PndDrc::SetRunCherenkov(), PndDrc::SetStopTime(), PndDrc::SetTransportEffAtProduction(), PndDrc::StopSecondaries(), theta, and TString.

3 {
4  cout << "QA module for the DRC Simulation." << endl;
5 
6  Int_t nEvents=10;
7  TString outFile="sim.root";
8  TString parFile="par.root";
9  Int_t pdg=13;
10  Double_t theta=130;
11  Double_t phi=10.825;
12  TString vmcdir=gSystem->Getenv("VMCWORKDIR");
13 
14  FairRunSim *fRun = new FairRunSim();
15  fRun->SetName("TGeant4");
16  fRun->SetGenerateRunInfo(kFALSE);
17  fRun->SetBeamMom(15);
18  fRun->SetOutputFile(outFile);
19  fRun->SetMaterials("media_pnd.geo");
20  fRun->SetUserConfig(vmcdir+"/macro/detectors/drc/g4Config_Cherenkov.C");
21  FairRuntimeDb* rtdb = fRun->GetRuntimeDb();
22 
23  // Set the parameters
24  //-------------------------------
25  TString allDigiFile(vmcdir+"/macro/params/all.par");
26 
27  FairParAsciiFileIo* parIo1 = new FairParAsciiFileIo();
28  parIo1->open(allDigiFile.Data(),"in");
29  rtdb->setFirstInput(parIo1);
30 
32  FairParRootFileIo* output = new FairParRootFileIo(kParameterMerged);
33  output->open(parFile.Data());
34  rtdb->setOutput(output);
35 
36  // Create and add detectors
37  //-------------------------
38  FairModule *Cave= new PndCave("CAVE");
39  Cave->SetGeometryFileName("pndcave.geo");
40  fRun->AddModule(Cave);
41 
42  //----------------------- Pipe -----------------
43  FairModule *Pipe= new PndPipe("PIPE");
44  Pipe->SetGeometryFileName("beampipe_201309.root");
45  fRun->AddModule(Pipe);
46 
47  //----------------------- DRC -----------------
48  PndDrc *Drc = new PndDrc("DIRC", kTRUE);
49  Drc->SetRunCherenkov(kTRUE); // for fast sim Cherenkov -> kFALSE
50  Drc->SetMirrorReal(kFALSE);
51  //Drc->StopChargedTrackAfterDIRC(kTRUE);
52  Drc->StopSecondaries(kFALSE);
53  Drc->SetTransportEffAtProduction(kTRUE);
54  Drc->SetDetEffAtProduction(kTRUE);
55  Drc->SetStopTime(150.);
56  Drc->SetVerboseLevel(0);
57  Drc->SetBlackLensSides(kTRUE);
58  Drc->SetOptionForLUT(kFALSE);
59  Drc->SetGeometryFileName("dirc_e3_b3_l6_m40.root");
60  fRun->AddModule(Drc);
61 
62  gRandom->SetSeed(0); // Set 0 for random
63  cout<<"Seed for random number generation= "<<gRandom->GetSeed()<<endl;
64 
65  // Create and Set Event Generator
66  //-------------------------------
67  FairPrimaryGenerator* primGen = new FairPrimaryGenerator();
68  fRun->SetGenerator(primGen);
69 
70  // Box Generator
71  FairBoxGenerator* boxGen = new FairBoxGenerator(pdg, 1);// 211 = pion, 321 = kaon; 13 = muon-; 1 = multipl.
72 
73  boxGen->SetPRange(3,3);
74  boxGen->SetPhiRange(phi, phi); // Azimuth angle range [degree]
75  boxGen->SetThetaRange(theta,theta); // Polar a1ngle in lab system range [degree]
76  boxGen->SetXYZ(0.,0.,0.);
77  primGen->AddGenerator(boxGen);
78 
79  fRun->SetStoreTraj(kFALSE); // to store particle trajectories
80 
81  // Create and Set Magnetic Field
82  //-------------------------------
83  PndMultiField *fField= new PndMultiField("FULL");
84  fRun->SetField(fField);
85 
86  fRun->Init();
87 
88  fRun->Run(nEvents);
89 
90  rtdb->setOutput(output);
91  rtdb->saveOutput();
92  rtdb->print();
93 
94  cout << " Test passed" << endl;
95  cout << " All ok " << endl;
96 
97  // Bool_t fTest=kFALSE;
98  // if (fTest){
99  // cout << " Test passed" << endl;
100  // cout << " All ok " << endl;
101  // }else{
102  // cout << " Test Failed" << endl;
103  // cout << " Not Ok " << endl;
104  // }
105 
106  CloseGeoManager();
107  return 0;
108 }
PndDrc * Drc
Definition: sim_emc_apd.C:75
PndMultiField * fField
Definition: sim_emc_apd.C:97
void SetStopTime(Double_t ti=-1.)
Set time after which photons are killed.
Definition: PndDrc.h:99
Bool_t kParameterMerged
Definition: sim_emc_apd.C:113
void SetBlackLensSides(Bool_t lesi=kFALSE)
Definition: PndDrc.h:94
TString outFile
Definition: hit_dirc.C:17
void SetTransportEffAtProduction(Bool_t tra=kFALSE)
Kill photons at production point according to the transport efficiency distribution.
Definition: PndDrc.h:85
TString allDigiFile
Definition: hit_muo.C:36
FairParRootFileIo * output
Definition: sim_emc_apd.C:120
FairPrimaryGenerator * primGen
Definition: sim_emc_apd.C:81
void CloseGeoManager()
Definition: QA/auxi.C:11
FairRunAna * fRun
Definition: hit_dirc.C:58
Double_t
TString parFile
Definition: hit_dirc.C:14
FairModule * Cave
Definition: sim_emc_apd.C:32
Definition: PndDrc.h:31
Int_t nEvents
Definition: hit_dirc.C:11
FairRuntimeDb * rtdb
Definition: hit_dirc.C:66
void SetDetEffAtProduction(Bool_t dep=kFALSE)
Kill photons at production point according to the detector efficiency distribution.
Definition: PndDrc.h:72
FairParAsciiFileIo * parIo1
Definition: bump_emc.C:53
FairBoxGenerator * boxGen
Definition: sim_emc_apd.C:85
void SetRunCherenkov(Bool_t ch)
Definition: PndDrc.h:222
void StopSecondaries(Bool_t ss=kFALSE)
Kill secondaries at its production point.
Definition: PndDrc.h:53
void SetOptionForLUT(Bool_t oplu=kFALSE)
Definition: PndDrc.h:109
void SetMirrorReal(Bool_t mir=kTRUE)
Choose between ideal and real mirror:
Definition: PndDrc.h:92
FairModule * Pipe
Definition: sim_emc_apd.C:44
Definition: PndCave.h:8