FairRoot/PandaRoot
full.C
Go to the documentation of this file.
1 int full(TString simdatei="sim_emc.root", TString fulldatei="full_emc.root", TString param="simparam.root"){
2  // Macro created 20/09/2006 by S.Spataro
3  // It loads a simulation file and digitize hits for EMC
4 
5  // Verbosity level (0=quiet, 1=event level, 2=track level, 3=debug)
6  Int_t iVerbose = 0; // just forget about it, for the moment
7 
8  // Input file (MC events)
9  //gSystem::GetPathInfo();
10  TString inFile = simdatei;// "TString("Daten/").Append(simdatei)";
11 
12 
13  // Number of events to process
14  Int_t nEvents = 0; // if 0 all the Events will be processed
15 
16  // Parameter file
17  TString parFile = param; //"TString("Daten/").Append(param)"; // at the moment you do not need it
18 
19  // Digitisation file (ascii)
20  TString digiFile = "emc.par";
21 
22  // Output file
23  TString outFile = fulldatei; //"TString("Daten/").Append(fulldatei)";
24 
25  // Loading libraries
26  // If the macro gives error messages in loading libraries, please check the path of the libs and put it by hands
27 
28  gROOT->LoadMacro("$VMCWORKDIR/gconfig/rootlogon.C");
29  rootlogon();
30 /*
31  gROOT->LoadMacro("$VMCWORKDIR/gconfig/basiclibs.C");
32  basiclibs();
33  gSystem->Load("libGeoBase");
34  gSystem->Load("libParBase");
35  gSystem->Load("libBase");
36  gSystem->Load("libPndData");
37  gSystem->Load("libField");
38  gSystem->Load("libPassive");
39  gSystem->Load("libGen");
40  gSystem->Load("libEmc");
41 */
42 
43  // ----- Timer --------------------------------------------------------
44  TStopwatch timer;
45  timer.Start();
46  // ------------------------------------------------------------------------
47 
48  // ----- Reconstruction run -------------------------------------------
49  FairRunAna *fRun= new FairRunAna();
50  fRun->SetInputFile(inFile);
51  fRun->SetOutputFile(outFile);
52 
53  // ----- Parameter database --------------------------------------------
54  TString emcDigiFile = gSystem->Getenv("VMCWORKDIR");
55  emcDigiFile += "/macro/params/";
56  emcDigiFile += digiFile;
57 
58  FairRuntimeDb* rtdb = fRun->GetRuntimeDb();
59  FairParRootFileIo* parInput1 = new FairParRootFileIo();
60  parInput1->open(parFile.Data());
61 
62  FairParAsciiFileIo* parIo1 = new FairParAsciiFileIo();
63  parIo1->open(emcDigiFile.Data(),"in");
64 
65  rtdb->setFirstInput(parInput1);
66  rtdb->setSecondInput(parIo1);
67  // ----------------------------------------------------------
68 
69  fRun->LoadGeometry();
70  // ------------------------------------------------------------------------
71 
72 
73 
74 
75  // ----- EMC hit producers ---------------------------------
76  // The file name should be the same of the geometry file which was used for the simulation
77 
78 
80  fRun->AddTask(emcHitProd); // hit production
81 
83 //fRun->AddTask(emcMakeDigi); // fast digitization
84 
87  fRun->AddTask(emcHitsToWaveform); // full digitization
88  fRun->AddTask(emcWaveformToDigi); // full digitization
89 
91  fRun->AddTask(emcMakeCluster);
92 
94  fRun->AddTask(emcHdrFiller); // ECM header
95 
97  fRun->AddTask(emcMakeBump);
98 
100  fRun->AddTask(emcMakeRecoHit);
101 
102  // ----- Intialise and run --------------------------------------------
103  cout << "fRun->Init()" << endl;
104  fRun->Init();
105  fRun->Run(0,nEvents);
106  // ------------------------------------------------------------------------
107 
108 
109  // ----- Finish -------------------------------------------------------
110  timer.Stop();
111  Double_t rtime = timer.RealTime();
112  Double_t ctime = timer.CpuTime();
113  cout << endl << endl;
114  cout << "Macro finished successfully." << endl;
115  cout << "Output file is " << outFile << endl;
116  cout << "Parameter file is " << parFile << endl;
117  cout << "Real time " << rtime << " s, CPU time " << ctime << " s" << endl;
118  cout << endl;
119  // ------------------------------------------------------------------------
120 
121  return 0;
122 }
Takes list of PndEmcHits and creates PndEmcWaveform.
Create PndEmcRecoHit from PndEmcBump.
PndEmcHitsToWaveform * emcHitsToWaveform
Definition: full_emc.C:60
TString outFile
Definition: hit_dirc.C:17
PndEmcMakeRecoHit * emcMakeRecoHit
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
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
int full(TString simdatei="sim_emc.root", TString fulldatei="full_emc.root", TString param="simparam.root")
Definition: full.C:1
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.