FairRoot/PandaRoot
run/reco_complete.C
Go to the documentation of this file.
1 // Macro for running Panda digitization tasks
2 // to run the macro:
3 // root digi_complete.C or in root session root>.x digi_complete.C
4 int reco_complete(Int_t nEvents = 0)
5 {
6  //-----User Settings:------------------------------------------------------
7  TString parAsciiFile = "all.par";
8  TString prefix = "evtcomplete";
9  TString input = "psi2s_Jpsi2pi_Jpsi_mumu.dec";
10  TString output = "reco";
11  TString friend1 = "sim";
12  TString friend2 = "digi";
13  TString friend3 = "";
14  TString friend4 = "";
15  TString fOptions = "gf2"; // "gf2" for genfit 2
16 
17  // ----- Initial Settings --------------------------------------------
19  fRun->SetInput(input);
20  fRun->SetOutput(output);
21  fRun->AddFriend(friend1);
22  fRun->AddFriend(friend2);
23  fRun->AddFriend(friend3);
24  fRun->AddFriend(friend4);
25  fRun->SetParamAsciiFile(parAsciiFile);
26  fRun->Setup(prefix);
27 
28  FairGeane *Geane = new FairGeane();
29  fRun->AddTask(Geane);
30 
31 
32  PndTrkTracking2* tracking = NULL;
33  fRun->AddTask(tracking = new PndTrkTracking2(0,false,false,true)); // 1
34  tracking->SetInputBranchName("STTHit","MVDHitsPixel","MVDHitsStrip");
35  tracking->NoMvdAloneTracking();
36  tracking->SetPersistency(kFALSE);
37 
39  fRun->AddTask(SttMvdGemTracking = new PndSttMvdGemTracking(0));
40  SttMvdGemTracking->SetPersistency(kFALSE);
41 
42  if (!fOptions.Contains("gf2")){
44  fRun->AddTask(recoKalman = new PndRecoKalmanTask());
45  recoKalman->SetTrackInBranchName("SttMvdGemTrack");
46  recoKalman->SetTrackOutBranchName("SttMvdGemGenTrack");
47 
48  recoKalman->SetBusyCut(50); // CHECK to be tuned
49  //recoKalman->SetIdealHyp(kTRUE);
50  //recoKalman->SetNumIterations(3);
51  recoKalman->SetTrackRep(0); // 0 Geane (default), 1 RK
52  //recoKalman->SetPropagateToIP(kFALSE);
53  } else {
55  fRun->AddTask(recoKalman = new PndRecoKalmanTask2());
56  recoKalman->SetTrackInBranchName("SttMvdGemTrack");
57  recoKalman->SetTrackOutBranchName("SttMvdGemGenTrack");
58 
59  recoKalman->SetBusyCut(50); // CHECK to be tuned
60  //recoKalman->SetIdealHyp(kTRUE);
61  //recoKalman->SetNumIterations(3);
62  //recoKalman->SetTrackRep(0); // 0 Geane (default), 1 RK
63  //recoKalman->SetPropagateToIP(kFALSE);
64  }
65 
66  if (fOptions.Contains("filtered")){
67  PndMissingPzCleanerTask* cleaner = NULL;
68  fRun->AddTask(cleaner = new PndMissingPzCleanerTask()); //4
69  if ( (!fOptions.Contains("day1")) || (fOptions.Contains("gem")) )
70  {
71  cleaner->SetInputTrackBranch("SttMvdGemGenTrack");
72  } else {
73  cleaner->SetInputTrackBranch("SttMvdGenTrack");
74  }
75  cleaner->SetRemoveTrack(kTRUE);
76  }
77 
79  fRun->AddTask(trackFts = new PndIdealTrackFinder());
80  trackFts->SetTrackSelector("FtsTrackFunctor");
81  trackFts->AddBranchName("FTSHit");
82  trackFts->AddBranchName("MVDHitsPixel");
83  trackFts->AddBranchName("MVDHitsStrip");
84  trackFts->SetRelativeMomentumSmearing(0.05);
85  trackFts->SetVertexSmearing(0.05, 0.05, 0.05);
86  trackFts->SetTrackingEfficiency(1.);
87  trackFts->SetOutputBranchName("FtsIdealTrack");
88  trackFts->SetPersistence(kFALSE);
89 
90  if (!fOptions.Contains("gf2")){
92  fRun->AddTask(recoKalmanFwd = new PndRecoKalmanTask());
93  recoKalmanFwd->SetTrackInBranchName("FtsIdealTrack");
94  //recoKalmanFwd->SetTrackInIDBranchName("FtsIdealTrackID");
95  recoKalmanFwd->SetTrackOutBranchName("FtsIdealGenTrack");
96  recoKalmanFwd->SetBusyCut(50); // CHECK to be tuned
97  //recoKalmanFwd->SetIdealHyp(kTRUE);
98  //recoKalmanFwd->SetNumIterations(3);
99  recoKalmanFwd->SetTrackRep(0); // 0 Geane (default), 1 RK
100  //recoKalmanFwd->SetPropagateToIP(kFALSE);
101  } else {
103  fRun->AddTask(recoKalmanFwd = new PndRecoKalmanTask2());
104  recoKalmanFwd->SetTrackInBranchName("FtsIdealTrack");
105  //recoKalmanFwd->SetTrackInIDBranchName("FtsIdealTrackID");
106  recoKalmanFwd->SetTrackOutBranchName("FtsIdealGenTrack");
107  recoKalmanFwd->SetBusyCut(50); // CHECK to be tuned
108  //recoKalmanFwd->SetIdealHyp(kTRUE);
109  //recoKalmanFwd->SetNumIterations(3);
110  //recoKalmanFwd->SetTrackRep(0); // 0 Geane (default), 1 RK
111  //recoKalmanFwd->SetPropagateToIP(kFALSE);
112  }
113 
114 
115 
116 
117  // ----- Intialise and run --------------------------------------------
118  fRun->Init();
119  fRun->Run(0, nEvents);
120  fRun->Finish();
121  return 0;
122 }
Class for the master reconstruction chain.
Bool_t Setup(TString outprefix="")
Initial setup.
void SetTrackingEfficiency(Double_t eff=1.)
void SetTrackInBranchName(const TString &name)
Ideal track finder for all types of tracking detectors The PndIdealTrackFinder combines all hits in ...
void SetPersistency(Bool_t val=kTRUE)
void SetPersistence(Bool_t persistence)
virtual void SetOutputBranchName(TString name)
void AddFriend(TString par)
Setter of friend root files.
FairParRootFileIo * output
Definition: sim_emc_apd.C:120
void SetTrackOutBranchName(const TString &name)
FairGeane * Geane
FairRunAna * fRun
Definition: hit_dirc.C:58
void SetInput(TString par)
Input of the macro.
void SetTrackOutBranchName(const TString &name)
void SetTrackSelector(TString selector)
int reco_complete()
PndRecoKalmanTask * recoKalmanFwd
Int_t nEvents
Definition: hit_dirc.C:11
PndTrkTracking * tracking
PndFtsTrackerIdeal * trackFts
void SetInputBranchName(const char *string1, const char *string2, const char *string3)
void SetTrackRep(Short_t num)
void SetVertexSmearing(Double_t sigmax=-1., Double_t sigmay=-1., Double_t sigmaz=-1.)
void NoMvdAloneTracking()
void SetBusyCut(Int_t b)
void SetTrackInBranchName(const TString &name)
PndSttMvdGemTracking * SttMvdGemTracking
void Finish()
Final diagnostics.
void SetInputTrackBranch(const TString &name)
void SetRemoveTrack(const Bool_t &remove)
PndRecoKalmanTask * recoKalman
void SetOutput(TString par)
Tag of the output file of the macro.
void SetParamAsciiFile(TString par)
Setter of the parameter ascii file.
virtual void AddBranchName(TString name)
Search for tracks only in given branches. If no BranchName is given all tracking detectors are taken...
void SetRelativeMomentumSmearing(Double_t dpop=-1.)
void SetBusyCut(Int_t b)