FairRoot/PandaRoot
digihit.C
Go to the documentation of this file.
1 int digihit()
2 {
3  // Macro created 20/09/2006 by S.Spataro
4  // It loads a simulation file and digitize hits
5 
6  // Verbosity level (0=quiet, 1=event level, 2=track level, 3=debug)
7  Int_t iVerbose = 0; // just forget about it, for the moment
8 
9  TString simFile = "sim.root";
10  PndFileNameCreator creator(simFile.Data());
11  TString digiFile = creator.GetDigiFileName();
12  TString recoFile = creator.GetRecoFileName();
13  TString pidFile = creator.GetPidFileName();
14  TString outFile = creator.GetCustomFileName("digihit");
15  TString parFile = creator.GetParFileName();
16 
17  // Digitisation file (ascii)
18  TString digiParFile = "all.par";
19 
20 
21  // ----- Timer --------------------------------------------------------
22  TStopwatch timer;
23 
24  // ----- Reconstruction run -------------------------------------------
25  FairRunAna *fRun= new FairRunAna();
26  fRun->SetInputFile(simFile);
27  fRun->SetOutputFile(outFile);
28  fRun->SetGenerateRunInfo(kFALSE);
29 
30  // ----- Parameter database --------------------------------------------
31  TString allDigiFile = gSystem->Getenv("VMCWORKDIR");
32  allDigiFile += "/macro/params/";
33  allDigiFile += digiParFile;
34 
35  FairRuntimeDb* rtdb = fRun->GetRuntimeDb();
36  FairParRootFileIo* parInput1 = new FairParRootFileIo(kFALSE);
37  parInput1->open(parFile.Data());
38 
39  FairParAsciiFileIo* parIo1 = new FairParAsciiFileIo();
40  parIo1->open(allDigiFile.Data(),"in");
41 
42  rtdb->setFirstInput(parInput1);
43  rtdb->setSecondInput(parIo1);
44 
45  // ----- STT digi producers ---------------------------------
46  //PndSttHitProducerRealFast* sttHitProducer = new PndSttHitProducerRealFast();
47  //fRun->AddTask(sttHitProducer);
48 
49  // ----- MDV digi producers ---------------------------------
51  mvddigi->SetVerbose(iVerbose);
52  fRun->AddTask(mvddigi);
53 
54  // ----- EMC digi producers ---------------------------------
57  emcHitsToWaveform->SetStorageOfData(kFALSE);
58  //emcWaveformToDigi->SetStorageOfData(kFALSE);
59  fRun->AddTask(emcHitsToWaveform); // full digitization
60  fRun->AddTask(emcWaveformToDigi); // full digitization
61 
62  // ----- SciT hit producers ---------------------------
64  tofhit->SetVerbose(iVerbose);
65  fRun->AddTask(tofhit);
66 
67  // ----- MDT hit producers ---------------------------------
69  mdtHitProd->SetPositionSmearing(.3); // position smearing [cm]
70  fRun->AddTask(mdtHitProd);
71 
72  // ----- DRC hit producers ---------------------------------
74  drchit->SetVerbose(iVerbose);
75  fRun->AddTask(drchit);
76 
77  // ----- GEM hit producers ---------------------------------
78  PndGemDigitize* gemDigitize = new PndGemDigitize("GEM Digitizer", iVerbose);
79  fRun->AddTask(gemDigitize);
80  // ----- FTS hit producers ---------------------------------
82  fRun->AddTask(ftsHitProducer);
83 
84  // ----- Ftof hit producers ---------------------------
86  ftofhit->SetVerbose(iVerbose);
87  fRun->AddTask(ftofhit);
88 
89  // ----- Intialise and run --------------------------------------------
90  fRun->Init();
91 
92  timer.Start();
93  fRun->Run();
94 
95  // ----- Finish -------------------------------------------------------
96  timer.Stop();
97  Double_t rtime = timer.RealTime();
98  Double_t ctime = timer.CpuTime();
99  cout << endl << endl;
100  cout << "Macro finished successfully." << endl;
101  cout << "Output file is " << outFile << endl;
102  cout << "Parameter file is " << parFile << endl;
103  cout << "Real time " << rtime << " s, CPU time " << ctime << " s" << endl;
104  cout << endl;
105  // ------------------------------------------------------------------------
106  cout << " Test passed" << endl;
107  cout << " All ok " << endl;
108 
109  // exit(0);
110 }
Takes list of PndEmcHits and creates PndEmcWaveform.
PndEmcHitsToWaveform * emcHitsToWaveform
Definition: full_emc.C:60
TString outFile
Definition: hit_dirc.C:17
TString digiFile
Definition: bump_emc.C:20
TString allDigiFile
Definition: hit_muo.C:36
PndFtofHitProducerIdeal * tofhit
Definition: hit_ftof.C:68
FairRunAna * fRun
Definition: hit_dirc.C:58
TString simFile
Definition: bump_emc.C:11
void SetStorageOfData(Bool_t val)
PndMdtHitProducerIdeal * mdtHitProd
Definition: hit_muo.C:162
PndDrcHitProducerReal * drchit
Definition: hit_dirc_draw.C:73
A simple class which adds the corresponding file extensions to a given base class.
Double_t
TString parFile
Definition: hit_dirc.C:14
TStopwatch timer
Definition: hit_dirc.C:51
FairRuntimeDb * rtdb
Definition: hit_dirc.C:66
void SetVerbose(Int_t iVerbose)
FairParRootFileIo * parInput1
Definition: hit_dirc.C:67
PndFtofHitProducerIdeal * ftofhit
Double_t ctime
Definition: hit_dirc.C:114
PndGemDigitize * gemDigitize
PndEmcWaveformToDigi * emcWaveformToDigi
Definition: full_emc.C:61
FairParAsciiFileIo * parIo1
Definition: bump_emc.C:53
PndMvdCreateDefaultApvMap * creator
std::string recoFile
Int_t iVerbose
Takes list of PndEmcWaveform and creates PndEmcDigi.
PndMvdDigiTask * mvddigi
PndFtsHitProducerRealFast * ftsHitProducer
Double_t rtime
Definition: hit_dirc.C:113
int digihit()
Definition: digihit.C:1
void SetPositionSmearing(Float_t res)
Set the smearing of the PndMdtHit position.