FairRoot/PandaRoot
Functions
emc_timebasedDigi.C File Reference

Go to the source code of this file.

Functions

int emc_timebasedDigi (const char *inFile="emc_sim.root", const char *outFile="emc_timebasedDigi.root", Int_t nEvents=0, Double_t dt=50, const char *parFile="simparams.root")
 

Function Documentation

int emc_timebasedDigi ( const char *  inFile = "emc_sim.root",
const char *  outFile = "emc_timebasedDigi.root",
Int_t  nEvents = 0,
Double_t  dt = 50,
const char *  parFile = "simparams.root" 
)

Definition at line 1 of file emc_timebasedDigi.C.

References Bool_t, ctime, digiFile, Double_t, fRun, inFile, iVerbose, nEvents, outFile, parFile, parInput1, parIo1, rtdb, rtime, PndEmcFWEndcapTimebasedWaveforms::RunTimebased(), PndEmcFWEndcapTimebasedWaveforms::SetStorageOfData(), PndEmcFWEndcapTimebasedWaveforms::StoreDataClass(), timer, and TString.

1  {
2 
3  // Loads a filewith hits and makes digitization 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  //
10  // Number of events to process
11  std::cout << "will process " << nEvents << " events" << std::endl;
12 
13  // Digitisation file (ascii)
14  TString digiFile = "emc.par";
15 
16  //Digitisation file (root)
17  //TString parFile = "simparams.root";
18 
19  // ----- Timer --------------------------------------------------------
20  TStopwatch timer;
21  timer.Start();
22  // ------------------------------------------------------
23 
24  // ----- Reconstruction run ------------------------------
25  FairRunAna *fRun= new FairRunAna();
26  fRun->SetInputFile(inFile);
27  fRun->SetOutputFile(outFile);
28  fRun->SetUseFairLinks(kTRUE);
29 
30  // ----- Parameter database --------------------------
31  FairRuntimeDb* rtdb = fRun->GetRuntimeDb();
32 
33  FairParAsciiFileIo* parIo1 = new FairParAsciiFileIo();
34  parIo1->open(digiFile.Data(),"in");
35  rtdb->setFirstInput(parIo1);
36 
37  FairParRootFileIo* parInput1 = new FairParRootFileIo();
38  parInput1->open(parFile);
39  rtdb->setSecondInput(parInput1);
40 
41  // ----- Set tasks ---------------------------------
42 
43  //wf simulation
44  Bool_t storeWfDataClass = kTRUE;
45  Bool_t storeWf = kTRUE;
47  wfTask->StoreDataClass(storeWfDataClass);
48  wfTask->SetStorageOfData(storeWf);
49 
50  //digi
51  Bool_t storeUnsortedDigis = kTRUE;
52  PndEmcFWEndcapDigi* digiTask = new PndEmcFWEndcapDigi(iVerbose, storeUnsortedDigis);
53  PndEmcMakeDigi* idealDigiTask = new PndEmcMakeDigi();
54 
55  //ideal digi
56  PndEmcMakeDigi* idealDigiTask = new PndEmcMakeDigi();
57 
58  //sorting
59  PndEmcDigiSorterTask* sorterTask = new PndEmcDigiSorterTask(10000, 1, "EmcDigi", "EmcDigiSorted", "Emc");
60  sorterTask->SetVerbose(iVerbose);
61 
62  //setup run..depending on dt parameter
63  if(dt>0.) {
64  cout << "TIMEBASED DIGITAZATION" << endl;
65  FairRootManager::Instance()->SetEventMeanTime(dt);
66  wfTask->RunTimebased();
67  fRun->AddTask(wfTask);
68  fRun->AddTask(digiTask);
69  fRun->AddTask(sorterTask);
70  } else if(dt==0.) {
71  cout << "IDEAL DIGITAZATION (eventbased)" << endl;
72  fRun->AddTask(idealDigiTask);
73  } else {
74  cout << "EVENTBASED SIMULATION" << endl;
75  fRun->AddTask(wfTask);
76  fRun->AddTask(digiTask);
77  }
78 
79 
80  // ----- Intialise and run -----------------------
81  gRandom->SetSeed();
82 
83  cout << "fRun->Init()" << endl;
84  fRun->Init();
85 
86  fRun->Run(0,nEvents);
87 
88  // ----------------------------------------------------
89 
90 
91  // ----- Finish -------------------------------------------------------
92  timer.Stop();
93  Double_t rtime = timer.RealTime();
94  Double_t ctime = timer.CpuTime();
95  cout << endl << endl;
96  cout << "Macro finished successfully." << endl;
97  cout << "Output file is " << outFile << endl;
98  cout << "Parameter file is " << parFile << endl;
99  cout << "Real time " << rtime << " s, CPU time " << ctime << " s" << endl;
100  cout << endl;
101  // ------------------------------------------------------------------------
102 
103  return 0;
104 }
TString outFile
Definition: hit_dirc.C:17
void StoreDataClass(Bool_t storeData=kTRUE)
Method to specify whether waveforms are stored or not.
Taks to create waveforms from hits.
TString digiFile
Definition: bump_emc.C:20
TString inFile
Definition: hit_dirc.C:8
FairRunAna * fRun
Definition: hit_dirc.C:58
Task to create digis from waveforms.
Double_t
TString parFile
Definition: hit_dirc.C:14
Int_t nEvents
Definition: hit_dirc.C:11
TStopwatch timer
Definition: hit_dirc.C:51
FairRuntimeDb * rtdb
Definition: hit_dirc.C:66
FairParRootFileIo * parInput1
Definition: hit_dirc.C:67
Double_t ctime
Definition: hit_dirc.C:114
FairParAsciiFileIo * parIo1
Definition: bump_emc.C:53
void SetStorageOfData(Bool_t storeWaves=kTRUE)
Int_t iVerbose
Double_t rtime
Definition: hit_dirc.C:113
Task to create PndEmcDigi from PndEmcHit.