FairRoot/PandaRoot
Functions
TimeOrderedSim/runMvdDigi.C File Reference

Go to the source code of this file.

Functions

 runMvdDigi (Int_t nEvents=500)
 

Function Documentation

runMvdDigi ( Int_t  nEvents = 500)

Definition at line 4 of file TimeOrderedSim/runMvdDigi.C.

References creator, ctime, digiparFile, Double_t, fRun, inFile, iVerbose, mvddigi, nEvents, outFile, parFile, parInput1, parInput2, rtdb, rtime, PndMvdDigiTask::RunTimeBased(), PndSttHitProducerRealFull::RunTimeBased(), PndBlackBoxTask::SetVerbose(), sttHitProducer, sttSorter, timer, and TString.

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