FairRoot/PandaRoot
outdated/data/digi.C
Go to the documentation of this file.
1 int digi()
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  // Input file (MC events)
10  TString simFile = "sim.root";
11  PndFileNameCreator creator(simFile.Data());
12  TString digiFile = creator.GetDigiFileName();
13  TString parFile = creator.GetParFileName();
14 
15  // Digitisation file (ascii)
16  TString digiParFile = "all.par";
17 
18  // Output file
19 
20 
21  // ----- Timer --------------------------------------------------------
22  TStopwatch timer;
23 
24  // ----- Reconstruction run -------------------------------------------
25  FairRunAna *fRun= new FairRunAna();
26  fRun->SetInputFile(simFile);
27  fRun->SetOutputFile(digiFile);
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();
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 ---------------------------
63  //PndSciTHitProducerIdeal* tofhit = new PndSciTHitProducerIdeal();
64  //tofhit->SetVerbose(iVerbose);
65  //fRun->AddTask(tofhit);
66 
67  // ----- MDT hit producers ---------------------------------
68  //PndMdtHitProducerIdeal* mdtHitProd = new PndMdtHitProducerIdeal();
69  //mdtHitProd->SetPositionSmearing(.3); // position smearing [cm]
70  //fRun->AddTask(mdtHitProd);
71 
72  // ----- DRC hit producers ---------------------------------
73  //PndDrcHitProducerReal* drchit = new PndDrcHitProducerReal();
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 ---------------------------------
81  //PndFtsHitProducerRealFast* ftsHitProducer = new PndFtsHitProducerRealFast();
82  //fRun->AddTask(ftsHitProducer);
83 
84  // ----- Ftof hit producers ---------------------------
85  //PndFtofHitProducerIdeal* ftofhit = new PndFtofHitProducerIdeal();
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  return 0;
110 }
Takes list of PndEmcHits and creates PndEmcWaveform.
TClonesArray * digi
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
FairRunAna * fRun
Definition: hit_dirc.C:58
TString simFile
Definition: bump_emc.C:11
void SetStorageOfData(Bool_t val)
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
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
Int_t iVerbose
Takes list of PndEmcWaveform and creates PndEmcDigi.
PndMvdDigiTask * mvddigi
Double_t rtime
Definition: hit_dirc.C:113