FairRoot/PandaRoot
QA/eventDet/digi.C
Go to the documentation of this file.
1 #include "../auxi.C"
2 int digi()
3 {
4  // ----------- User Settings: -------------------------------
5 
6  // Verbosity level (0=quiet, 1=event level, 2=track level, 3=debug)
7  Int_t iVerbose = 0;
8 
9  Bool_t timebased = kTRUE;
10  Double_t eventrate = 20.0; // in MHz
11  Int_t nEvents = 0;
12 
13  // ------------------------
14 
15  TString inFile = "sim.root";
16  TString parFile ="sim_params.root";
17  TString digiFile = "all.par";
18  TString outFile = "digi.root";
19  // ----- Timer --------------------------------------------------------
20  TStopwatch timer;
21 
22  // ----- Reconstruction run -------------------------------------------
23  FairRunAna *fRun= new FairRunAna();
24  fRun->SetInputFile(inFile);
25  fRun->SetOutputFile(outFile);
26  fRun->SetUseFairLinks(kTRUE);
27  fRun->SetWriteRunInfoFile(kFALSE);
28  //fRun->SetEventMeanTime(50); //in ns
29  if (timebased) fRun->SetEventMeanTime(1/(eventrate * 10e6)*10e9); //in n
30 
31  // ----- Parameter database --------------------------------------------
32  TString allDigiFile = gSystem->Getenv("VMCWORKDIR");
33  allDigiFile += "/macro/params/";
34  allDigiFile += digiFile;
35 
36  FairRuntimeDb* rtdb = fRun->GetRuntimeDb();
37  FairParRootFileIo* parInput1 = new FairParRootFileIo();
38  parInput1->open(parFile.Data());
39 
40  FairParAsciiFileIo* parIo1 = new FairParAsciiFileIo();
41  parIo1->open(allDigiFile.Data(),"in");
42 
43  rtdb->setFirstInput(parInput1);
44  rtdb->setSecondInput(parIo1);
45 
46  // ----- MDV digi producers ---------------------------------
48  mvddigi->SetVerbose(iVerbose);
49  fRun->AddTask(mvddigi);
50 
52  mvdmccls->SetVerbose(iVerbose);
53  fRun->AddTask(mvdmccls);
54 
55  // ----- SciT hit producers ---------------------------
56  PndSciTDigiTask* SciTDigi = new PndSciTDigiTask();
57  SciTDigi->SetVerbose(iVerbose);
58  if(timebased) SciTDigi->RunTimeBased();
59  fRun->AddTask(SciTDigi);
60 
61  // ----- Ftof hit producers ---------------------------
63  ftofhit->SetVerbose(iVerbose);
64  fRun->AddTask(ftofhit);
65 
66  // ----- Intialise and run --------------------------------------------
67  fRun->Init();
68 
69  timer.Start();
70  fRun->Run(0, nEvents);
71 
72  // ----- Finish -------------------------------------------------------
73  timer.Stop();
74  Double_t rtime = timer.RealTime();
75  Double_t ctime = timer.CpuTime();
76  cout << endl << endl;
77  cout << "Macro finished successfully." << endl;
78  cout << "Output file is " << outFile << endl;
79  cout << "Parameter file is " << parFile << endl;
80  cout << "Real time " << rtime << " s, CPU time " << ctime << " s" << endl;
81  cout << endl;
82  // ------------------------------------------------------------------------
83  cout << " Test passed" << endl;
84  cout << " All ok " << endl;
85 
87  return 0;
88 }
TString outFile
Definition: hit_dirc.C:17
TString digiFile
Definition: bump_emc.C:20
TString inFile
Definition: hit_dirc.C:8
PndMvdStripClusterTask * mvdmccls
Definition: runclust.C:45
TString allDigiFile
Definition: hit_muo.C:36
void CloseGeoManager()
Definition: QA/auxi.C:11
FairRunAna * fRun
Definition: hit_dirc.C:58
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
int digi()
void SetVerbose(Int_t iVerbose)
FairParRootFileIo * parInput1
Definition: hit_dirc.C:67
PndFtofHitProducerIdeal * ftofhit
Double_t ctime
Definition: hit_dirc.C:114
FairParAsciiFileIo * parIo1
Definition: bump_emc.C:53
Int_t iVerbose
PndMvdDigiTask * mvddigi
Double_t rtime
Definition: hit_dirc.C:113