FairRoot/PandaRoot
run_reco_sttnew.C
Go to the documentation of this file.
1 {
2  // ========================================================================
3  // Verbosity level (0=quiet, 1=event level, 2=track level, 3=debug)
4  Int_t iVerbose = 0;
5 
6  // Input file
7  TString inDigiFile = "digi_sttcombi.root";
8  TString inSimFile = "points_sttcombi.root";
9 
10  // Parameter file
11  TString parFile = "params_sttcombi.root";
12 
13  // Output file
14  TString outFile = "reco_sttcombi.root";
15 
16  // Number of events to process
17  Int_t nEvents = 0;
18 
19  // ---- Load libraries -------------------------------------------------
20  // gROOT->LoadMacro("$VMCWORKDIR/gconfig/rootlogon.C");
21  // rootlogon();
22  TString sysFile = gSystem->Getenv("VMCWORKDIR");
23  // ------------------------------------------------------------------------
24  // In general, the following parts need not be touched
25  // ========================================================================
26 
27  // ----- Timer --------------------------------------------------------
28  TStopwatch timer;
29  timer.Start();
30  // ------------------------------------------------------------------------
31 
32  // ----- Digitization run -------------------------------------------
33  FairRunAna *fRun= new FairRunAna();
34  fRun->SetInputFile(inDigiFile);
35  fRun->AddFriend(inSimFile);
36  fRun->SetOutputFile(outFile);
37  FairGeane *Geane = new FairGeane();
38  fRun->AddTask(Geane);
39  // ------------------------------------------------------------------------
40 
41  // ----- Parameter database --------------------------------------------
42  TString allDigiFile = sysFile+"/macro/params/all.par";
43 
44  FairRuntimeDb* rtdb = fRun->GetRuntimeDb();
45  FairParRootFileIo* parInput1 = new FairParRootFileIo();
46  parInput1->open(parFile.Data());
47 
48  FairParAsciiFileIo* parIo1 = new FairParAsciiFileIo();
49  parIo1->open(allDigiFile.Data(),"in");
50 
51  rtdb->setFirstInput(parInput1);
52  rtdb->setSecondInput(parIo1);
53  // ------------------------------------------------------------------------
54 
56  mvdTrackFinder->SetVerbose(iVerbose);
57  mvdTrackFinder->SetMaxDist(0.05);
58  mvdTrackFinder->SetPersistence(kFALSE);
59  fRun->AddTask(mvdTrackFinder);
60 
61  // Unified Pattern Recognition
62  //==========================================
63  // use the constructor with input :
64  // printout flag (int) , plotting flag (bool), MC comparison flag (bool), SciTil.
65  PndTrkTracking* tracking = new PndTrkTracking(0,false,false,false);
66  tracking->SetInputBranchName("STTHit","MVDHitsPixel","MVDHitsStrip");
67  // tracking->SetInputBranchName("STTHitMix","MVDHitsPixelMix","MVDHitsStripMix");
68  // don't do the Pattern Recognition second part, starting from the Mvd;
69  tracking->NoMvdAloneTracking();
70  // do Cleanup only when there is Mixing;
71  // tracking->Cleanup();
72  fRun->AddTask(tracking);
73 
75  //SttMvdGemTracking->SetPdgFromMC();
76  fRun->AddTask(SttMvdGemTracking);
77 
78  PndMCTrackAssociator* trackMC = new PndMCTrackAssociator();
79  trackMC->SetTrackInBranchName("SttMvdGemTrack");
80  trackMC->SetTrackOutBranchName("SttMvdGemTrackID");
81  fRun->AddTask(trackMC);
82 
84  recoKalman->SetTrackInBranchName("SttMvdGemTrack");
85 // recoKalman->SetTrackInIDBranchName("SttMvdGemTrackID");
86  recoKalman->SetTrackOutBranchName("SttMvdGemGenTrack");
87  recoKalman->SetBusyCut(50); // CHECK to be tuned
88  //recoKalman->SetIdealHyp(kTRUE);
89  //recoKalman->SetNumIterations(3);
90  fRun->AddTask(recoKalman);
91 
92  PndMCTrackAssociator* trackMC2 = new PndMCTrackAssociator();
93  trackMC2->SetTrackInBranchName("SttMvdGemGenTrack");
94  trackMC2->SetTrackOutBranchName("SttMvdGemGenTrackID");
95  fRun->AddTask(trackMC2);
96 
98  trackFts->SetRelativeMomentumSmearing(0.02);
99  trackFts->SetVertexSmearing(0.02, 0.02, 0.02);
100  trackFts->SetTrackingEfficiency(1.);
101  trackFts->SetTrackOutput("FtsIdealTrack");
102  fRun->AddTask(trackFts);
103 
105  recoKalmanFwd->SetTrackInBranchName("FtsIdealTrack");
106  //recoKalmanFwd->SetTrackInIDBranchName("FtsIdealTrackID");
107  recoKalmanFwd->SetTrackOutBranchName("FtsIdealGenTrack");
108  recoKalmanFwd->SetBusyCut(50); // CHECK to be tuned
109  //recoKalmanFwd->SetIdealHyp(kTRUE);
110  //recoKalmanFwd->SetNumIterations(3);
111  fRun->AddTask(recoKalmanFwd);
112 
113  PndMCTrackAssociator* trackMC3 = new PndMCTrackAssociator();
114  trackMC3->SetTrackInBranchName("FtsIdealGenTrack");
115  trackMC3->SetTrackOutBranchName("FtsIdealGenTrackID");
116  fRun->AddTask(trackMC3);
117 
118  // ----- Intialise and run --------------------------------------------
120  fRun->Init();
121  fRun->Run(0, nEvents);
122 
123  rtdb->saveOutput();
124  rtdb->print();
125 
126  // ------------------------------------------------------------------------
127 
128  // ----- Finish -------------------------------------------------------
129 
130  timer.Stop();
131  Double_t rtime = timer.RealTime();
132  Double_t ctime = timer.CpuTime();
133  cout << endl << endl;
134  cout << "Macro finished succesfully." << endl;
135  cout << "Output file is " << outFile << endl;
136  cout << "Parameter file is " << parFile << endl;
137  cout << "Real time " << rtime << " s, CPU time " << ctime << " s" << endl;
138  cout << endl;
139  // ------------------------------------------------------------------------
140 
141 
142 }
FairGeane * Geane
TStopwatch timer
PndMvdRiemannTrackFinderTask * mvdTrackFinder
void SetTrackOutput(TString name="FTSTrkIdeal")
void SetTrackingEfficiency(Double_t eff=1.)
FairParAsciiFileIo * parIo1
PndMCTrackAssociator * trackMC3
void SetTrackOutBranchName(const TString &name)
Double_t ctime
TString inDigiFile
Double_t
TString inSimFile
FairParRootFileIo * parInput1
void SetVertexSmearing(Double_t sigmax=-1., Double_t sigmay=-1., Double_t sigmaz=-1.)
static void Init(Int_t MapVersion)
TString parFile
PndTrkTracking * tracking
PndSttMvdGemTracking * SttMvdGemTracking
PndRecoKalmanTask * recoKalman
PndFtsTrackerIdeal * trackFts
void SetBusyCut(Int_t b)
TString outFile
void SetTrackInBranchName(const TString &name)
PndMCTrackAssociator * trackMC2
FairRunAna * fRun
TString sysFile
Int_t iVerbose
TString allDigiFile
PndMCTrackAssociator * trackMC
Double_t rtime
FairRuntimeDb * rtdb
Int_t nEvents
PndRecoKalmanTask * recoKalmanFwd
void SetRelativeMomentumSmearing(Double_t dpop=-1.)