FairRoot/PandaRoot
QAmacro_emc_2.C
Go to the documentation of this file.
1 #include "../auxi.C"
3 {
4  // Macro created 20/09/2006 by S.Spataro
5  // It loads a simulation file and digitize hits for EMC
6 
7  // Verbosity level (0=quiet, 1=event level, 2=track level, 3=debug)
8  Int_t iVerbose = 0; // just forget about it, for the moment
9 
10  // Input file (MC events)
11  TString inFile = "sim_emc.root";
12 
13 
14  // Number of events to process
15  Int_t nEvents = 0; // if 0 all the vents will be processed
16 
17  // Parameter file
18  TString parFile = "simparams.root"; // at the moment you do not need it
19 
20  // Digitisation file (ascii)
21  TString digiFile = "all.par";
22 
23  // Output file
24  TString outFile = "full_emc.root";
25 
26  // ----- Timer --------------------------------------------------------
27  TStopwatch timer;
28  timer.Start();
29  // ------------------------------------------------------------------------
30 
31  // ----- Reconstruction run -------------------------------------------
32  FairRunAna *fRun= new FairRunAna();
33  fRun->SetInputFile(inFile);
34  fRun->SetOutputFile(outFile);
35 
36  // ----- Parameter database --------------------------------------------
37  TString emcDigiFile = gSystem->Getenv("VMCWORKDIR");
38  emcDigiFile += "/macro/params/";
39  emcDigiFile += digiFile;
40 
41  FairRuntimeDb* rtdb = fRun->GetRuntimeDb();
42  FairParRootFileIo* parInput1 = new FairParRootFileIo();
43  parInput1->open(parFile.Data());
44 
45  FairParAsciiFileIo* parIo1 = new FairParAsciiFileIo();
46  parIo1->open(emcDigiFile.Data(),"in");
47 
48  rtdb->setFirstInput(parInput1);
49  rtdb->setSecondInput(parIo1);
50  // ----------------------------------------------------------
51 
52  //fRun->LoadGeometry();
53  // ------------------------------------------------------------------------
54 
55 
56 
57 
58  // ----- EMC hit producers ---------------------------------
59  // The file name should be the same of the geometry file which was used for the simulation
60 
61 
63  fRun->AddTask(emcHitProd); // hit production
64 
66 //fRun->AddTask(emcMakeDigi); // fast digitization
67 
70  fRun->AddTask(emcHitsToWaveform); // full digitization
71  fRun->AddTask(emcWaveformToDigi); // full digitization
72 
74  fRun->AddTask(emcMakeCluster);
75 
76 
78  fRun->AddTask(emcMakeBump);
79 
81  fRun->AddTask(emcHdrFiller); // ECM header
82 
83  // ----- Intialise and run --------------------------------------------
84  cout << "fRun->Init()" << endl;
85  fRun->Init();
86  fRun->Run(0,nEvents);
87  // ------------------------------------------------------------------------
88 
89 
90  // ----- Finish -------------------------------------------------------
91  timer.Stop();
92  Double_t rtime = timer.RealTime();
93  Double_t ctime = timer.CpuTime();
94  cout << endl << endl;
95  cout << "Macro finished successfully." << endl;
96  cout << "Output file is " << outFile << endl;
97  cout << "Parameter file is " << parFile << endl;
98  cout << "Real time " << rtime << " s, CPU time " << ctime << " s" << endl;
99  cout << endl;
100  // ------------------------------------------------------------------------
101 
102  cout << " Test passed" << endl;
103  cout << " All ok " << endl;
104  CloseGeoManager();
105  return 0;
106 }
Takes list of PndEmcHits and creates PndEmcWaveform.
PndEmcHitsToWaveform * emcHitsToWaveform
Definition: full_emc.C:60
TString outFile
Definition: hit_dirc.C:17
creates PndEmcHits from PndEmcPoints
TString digiFile
Definition: bump_emc.C:20
PndEmcMakeBump * emcMakeBump
Definition: bump_emc.C:63
TString emcDigiFile
Definition: bump_emc.C:45
PndEmcHdrFiller * emcHdrFiller
Definition: full_emc.C:68
void CloseGeoManager()
Definition: QA/auxi.C:11
FairRunAna * fRun
Definition: hit_dirc.C:58
TString inFile
Definition: hit_dirc.C:8
Double_t
TString parFile
Definition: hit_dirc.C:14
PndEmcMakeCluster * emcMakeCluster
Definition: full_emc.C:65
Int_t nEvents
Definition: hit_dirc.C:11
TStopwatch timer
Definition: hit_dirc.C:51
FairRuntimeDb * rtdb
Definition: hit_dirc.C:66
PndEmcHitProducer * emcHitProd
Takes clusters and slits them up into bumps.
FairParRootFileIo * parInput1
Definition: hit_dirc.C:67
Double_t ctime
Definition: hit_dirc.C:114
PndEmcWaveformToDigi * emcWaveformToDigi
Definition: full_emc.C:61
FairParAsciiFileIo * parIo1
Definition: bump_emc.C:53
Task to cluster PndEmcDigis.
PndEmcMakeDigi * emcMakeDigi
Int_t iVerbose
Takes list of PndEmcWaveform and creates PndEmcDigi.
Double_t rtime
Definition: hit_dirc.C:113
Task to create Emc header.
Task to create PndEmcDigi from PndEmcHit.
int QAmacro_emc_2()
Definition: QAmacro_emc_2.C:2