FairRoot/PandaRoot
tutorials/feb12/run_reco_sttcombi.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  // PndSttTrackFinderIdeal* sttTrackFinder = new PndSttTrackFinderIdeal(iVerbose);
63  PndSttFindTracks* sttFindTracks = new PndSttFindTracks("Track Finder", "FairTask", sttTrackFinder, iVerbose);
64  sttFindTracks->AddHitCollectionName("STTHit", "STTPoint");
65  //sttFindTracks->SetPersistence(kFALSE);
66  fRun->AddTask(sttFindTracks);
67 
68  PndSttMvdTracking * SttMvdTracking = new PndSttMvdTracking(0, false, false);
69  //SttMvdTracking->Cleanup();
70  SttMvdTracking->SetPersistence(kFALSE);
71  fRun->AddTask(SttMvdTracking);
72 
73  //PndMCTrackAssociator* trackMC0 = new PndMCTrackAssociator();
74  //trackMC0->SetTrackInBranchName("SttMvdTrack");
75  //trackMC0->SetTrackOutBranchName("SttMvdTrackID");
76  //trackMC0->SetPersistence(kFALSE);
77  //fRun->AddTask(trackMC0);
78 
80  //SttMvdGemTracking->SetPdgFromMC();
81  fRun->AddTask(SttMvdGemTracking);
82 
83  PndMCTrackAssociator* trackMC = new PndMCTrackAssociator();
84  trackMC->SetTrackInBranchName("SttMvdGemTrack");
85  trackMC->SetTrackOutBranchName("SttMvdGemTrackID");
86  fRun->AddTask(trackMC);
87 
89  recoKalman->SetTrackInBranchName("SttMvdGemTrack");
90  recoKalman->SetTrackInIDBranchName("SttMvdGemTrackID");
91  recoKalman->SetTrackOutBranchName("SttMvdGemGenTrack");
92  recoKalman->SetBusyCut(50); // CHECK to be tuned
93  //recoKalman->SetIdealHyp(kTRUE);
94  //recoKalman->SetNumIterations(3);
95  fRun->AddTask(recoKalman);
96 
97  PndMCTrackAssociator* trackMC2 = new PndMCTrackAssociator();
98  trackMC2->SetTrackInBranchName("SttMvdGemGenTrack");
99  trackMC2->SetTrackOutBranchName("SttMvdGemGenTrackID");
100  fRun->AddTask(trackMC2);
101 
103  trackFts->SetRelativeMomentumSmearing(0.02);
104  trackFts->SetVertexSmearing(0.02, 0.02, 0.02);
105  trackFts->SetTrackingEfficiency(1.);
106  trackFts->SetTrackOutput("FtsIdealTrack");
107  fRun->AddTask(trackFts);
108 
110  recoKalmanFwd->SetTrackInBranchName("FtsIdealTrack");
111  //recoKalmanFwd->SetTrackInIDBranchName("FtsIdealTrackID");
112  recoKalmanFwd->SetTrackOutBranchName("FtsIdealGenTrack");
113  recoKalmanFwd->SetBusyCut(50); // CHECK to be tuned
114  //recoKalmanFwd->SetIdealHyp(kTRUE);
115  //recoKalmanFwd->SetNumIterations(3);
116  fRun->AddTask(recoKalmanFwd);
117 
118  PndMCTrackAssociator* trackMC3 = new PndMCTrackAssociator();
119  trackMC3->SetTrackInBranchName("FtsIdealGenTrack");
120  trackMC3->SetTrackOutBranchName("FtsIdealGenTrackID");
121  fRun->AddTask(trackMC3);
122 
123  // ----- Intialise and run --------------------------------------------
125  fRun->Init();
126  fRun->Run(0, nEvents);
127 
128  rtdb->saveOutput();
129  rtdb->print();
130 
131  // ------------------------------------------------------------------------
132 
133  // ----- Finish -------------------------------------------------------
134 
135  timer.Stop();
136  Double_t rtime = timer.RealTime();
137  Double_t ctime = timer.CpuTime();
138  cout << endl << endl;
139  cout << "Macro finished succesfully." << endl;
140  cout << "Output file is " << outFile << endl;
141  cout << "Parameter file is " << parFile << endl;
142  cout << "Real time " << rtime << " s, CPU time " << ctime << " s" << endl;
143  cout << endl;
144  // ------------------------------------------------------------------------
145 
146 
147 }
PndMCTrackAssociator * trackMC2
FairRuntimeDb * rtdb
FairParAsciiFileIo * parIo1
void SetTrackOutput(TString name="FTSTrkIdeal")
void SetTrackingEfficiency(Double_t eff=1.)
FairGeane * Geane
FairRunAna * fRun
PndSttFindTracks * sttFindTracks
PndRecoKalmanTask * recoKalman
PndFtsTrackerIdeal * trackFts
PndMCTrackAssociator * trackMC
void SetTrackOutBranchName(const TString &name)
PndMvdRiemannTrackFinderTask * mvdTrackFinder
Double_t
void SetVertexSmearing(Double_t sigmax=-1., Double_t sigmay=-1., Double_t sigmaz=-1.)
PndRecoKalmanTask * recoKalmanFwd
static void Init(Int_t MapVersion)
void SetBusyCut(Int_t b)
void SetTrackInBranchName(const TString &name)
PndMCTrackAssociator * trackMC3
PndSttTrackFinderReal * sttTrackFinder
PndSttMvdTracking * SttMvdTracking
PndSttMvdGemTracking * SttMvdGemTracking
FairParRootFileIo * parInput1
Int_t iVerbose
void AddHitCollectionName(char *hitCollectionName, char *pointCollectionName)
void SetRelativeMomentumSmearing(Double_t dpop=-1.)