FairRoot/PandaRoot
Functions
runDigi.C File Reference

Go to the source code of this file.

Functions

 runDigi (Int_t nEvents=500)
 

Function Documentation

runDigi ( Int_t  nEvents = 500)

Definition at line 7 of file runDigi.C.

References creator, ctime, digiparFile, Double_t, fRun, inFile, iVerbose, mvdPixProd, mvdStripProd, nEvents, outFile, parFile, parInput1, parInput2, rtdb, rtime, PndSttHitProducerRealFull::RunTimeBased(), PndSdsHybridHitProducer::RunTimeBased(), PndSdsStripHitProducer::RunTimeBased(), sttHitProducer, sttSorter, timer, and TString.

8 {
9  // ----- Timer --------------------------------------------------------
10  TStopwatch timer;
11  timer.Start();
12  // Verbosity level (0=quiet, 1=event level, 2=track level, 3=debug)
13  Int_t iVerbose = 0;
14 
15  gROOT->Macro("$VMCWORKDIR/gconfig/rootlogon.C");
16 
17  TString inFile = "Sim_Dpm_500.root";
18  TString parFile = "Sim_Dpm_500_params.root";
19  TString digiparFile = gSystem->Getenv("VMCWORKDIR");
20  digiparFile += "/macro/params/all.par";
21 
22  // Output file
23  PndFileNameCreator creator(inFile.Data());
24  TString outFile = creator.GetDigiFileName().c_str();
25  std::cout << "DigiFileName: " << outFile.Data() << std::endl;
26 
27  // ----- Reconstruction run -------------------------------------------
28  FairRunAna *fRun= new FairRunAna();
29  fRun->SetInputFile(inFile);
30  fRun->SetOutputFile(outFile);
31  fRun->SetEventMeanTime(50);
32 
33  // ----- Parameter database --------------------------------------------
34  FairRuntimeDb* rtdb = fRun->GetRuntimeDb();
35  FairParRootFileIo* parInput2 = new FairParRootFileIo(kTRUE);
36  parInput2->open(parFile.Data(),"UPDATE");
37  rtdb->setFirstInput(parInput2);
38 
39 
40  FairParAsciiFileIo* parInput1 = new FairParAsciiFileIo();
41  parInput1->open(digiparFile.Data(),"in");
42  rtdb->setSecondInput(parInput1);
43 /*
44  PndMvdDigiTask* mvddigi = new PndMvdDigiTask();
45  mvddigi->SetVerbose(iVerbose);
46  mvddigi->RunTimeBased();
47  fRun->AddTask(mvddigi);
48 */
50  sttHitProducer->RunTimeBased();
51  fRun->AddTask(sttHitProducer);
52 
53  PndSttHitSorterTask* sttSorter = new PndSttHitSorterTask(5000, 50, "STTHit", "STTSortedHits", "PndSTT");
54  fRun->AddTask(sttSorter);
55 
56 
57 
58  // ======================================================================
59  // 1) Default Task
60  // 2) Separate pixels/strips/noise
61  // Set parameters in pandroot/macro/params/mvd.digi.par
62 
63  // ----- Default Digitization ---------------------------------------
64  //PndMvdDigiTask* mvddigi = new PndMvdDigiTask();
65  //mvddigi->SetVerbose(iVerbose);
66  //mvddigi->RunTimeBased();
67  //fRun->AddTask(mvddigi);
68 
69 
70  // ----- OR custom settings to switch off something -----------------
72  mvdStripProd->SetVerbose(iVerbose);
73  mvdStripProd->RunTimeBased();
74  fRun->AddTask(mvdStripProd);
76  mvdPixProd->SetVerbose(0);
77  mvdPixProd->RunTimeBased();
78  fRun->AddTask(mvdPixProd);
79 
80  PndSdsDigiPixelSorterTask* sort = new PndSdsDigiPixelSorterTask(4000, 20, "MVDPixelDigis", "MVDSortedPixelDigis", "PndMvd");
81  fRun->AddTask(sort);
82  PndSdsDigiStripSorterTask* sortstrip = new PndSdsDigiStripSorterTask(1000, 10, "MVDStripDigis", "MVDSortedStripDigis", "PndMvd");
83  fRun->AddTask(sortstrip);
84 
85 // PndMvdNoiseProducer* mvdNoiseMaker = new PndMvdNoiseProducer();
86 // mvdNoiseMaker->RunTimeBased();
87 // mvdNoiseMaker->SetVerbose(iVerbose);
88 // fRun->AddTask(mvdNoiseMaker);
89 // PndMvdPixelDigiSorterTask* mvdPixelSorter = new PndMvdPixelDigiSorterTask();
90 // fRun->AddTask(mvdPixelSorter);
91 
92  rtdb->setOutput(parInput2);
93  rtdb->print();
94 
95  // ----- Intialise and run --------------------------------------------
96  fRun->Init();
97 
98  fRun->Run(0,nEvents);
99 
100  rtdb->saveOutput();
101  rtdb->print();
102 
103  // ----- Finish -------------------------------------------------------
104  timer.Stop();
105  Double_t rtime = timer.RealTime();
106  Double_t ctime = timer.CpuTime();
107  cout << endl << endl;
108  cout << "Macro finished succesfully." << endl;
109  cout << "Output file is " << outFile << endl;
110  cout << "Parameter file is " << parFile << endl;
111  cout << "Real time " << rtime << " s, CPU time " << ctime << " s\a\a" << endl;
112  cout << endl;
113 
114 }
Hit Producer Task for strip detectors.
TString outFile
Definition: hit_dirc.C:17
PndMvdHybridHitProducer * mvdPixProd
PndMvdStripHitProducer * mvdStripProd
PndSttHitProducerRealFast * sttHitProducer
FairRunAna * fRun
Definition: hit_dirc.C:58
TString inFile
Definition: hit_dirc.C:8
A simple class which adds the corresponding file extensions to a given base class.
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
FairParAsciiFileIo * parInput2
Definition: conMvdDigi.C:26
FairParRootFileIo * parInput1
Definition: hit_dirc.C:67
Double_t ctime
Definition: hit_dirc.C:114
PndMvdCreateDefaultApvMap * creator
Int_t iVerbose
Double_t rtime
Definition: hit_dirc.C:113
TString digiparFile