FairRoot/PandaRoot
PndAnalysis.h
Go to the documentation of this file.
1 #ifndef PNDANALYSIS_H
2 #define PNDANALYSIS_H 1
3 
4 #include <string>
5 #include <vector>
6 #include <array>
7 
8 #include "TString.h"
9 #include "TVector3.h"
10 #include "TLorentzVector.h"
11 #include "TMatrixD.h"
12 
13 #include "RhoCandList.h"
14 #include "FairRootManager.h"
15 #include "FairTrackParP.h"
16 class TChain;
17 class TClonesArray;
18 class TBranch;
19 
20 class TDatabasePDG;
21 class FairMCEventHeader;
22 class PndAnaPidSelector;
23 class PndAnaPidCombiner;
24 class PndMCTrack;
25 class PndTrack;
26 //class PndEventInfo;
27 
28 class TGeant3;
29 
31 {
32  public:
33  PndAnalysis(TString tname1="", TString tname2="",TString algnamec="PidAlgoIdealCharged", TString algnamen="PidAlgoIdealNeutral");
34  virtual ~PndAnalysis();
35 
36  void Rewind();
37  void Reset() { Rewind(); }
38  Int_t GetEvent(Int_t n=-1);
39  void GetEventInTask();
40  FairMCEventHeader* GetEventHeader();
41  Int_t GetEntries();
42  Bool_t FillList(RhoCandList& l, TString listkey="All", TString pidTcaNames="", int trackHypothesis=-1 );
43  void SetVerbose(Int_t level) {fVerbose = level;}
44  //void SetPidChargedName(TString s) {fChargedPidName = s;}
45  //void SetPidNeutralName(TString s) {fNeutralPidName = s;}
46  //void SetTracksName(TString s) {fTracksName = s;}
47  //void SetTracksName2(TString s) {fTracksName2 = s;}
48 
51  Bool_t PropagateToPoint(RhoCandidate* cand, TVector3 mypoint);
52  Bool_t PropagateToPlane(RhoCandidate* cand, TVector3 origin, TVector3 dj, TVector3 dk);
53 
54  PndTrack* GetTrack ( RhoCandidate* cand );
55  FairTrackParP GetFirstPar(RhoCandidate* cand);
56 
59  Bool_t McTruthMatch(RhoCandidate* cand, Int_t level = 2, bool verbose=false);
60  Int_t McTruthMatch(RhoCandList& list, Int_t level = 2, bool verbose=false);
61  // this also allows match, when some soft photons are missing in decay
62  void McMatchAllowPhotos(int maxn=1, double thresh=0.05){fPhotosMax=maxn;fPhotosThresh=thresh;}
63 
64  //FIXME: This is an aweful solution to access the correct
65  //track array from a fitter object. [R.K.03'11]
66  //todo:removed this because fuck it
67  //TClonesArray* GetTrackArrayPointer() const {return fTracks;};
68 
69  Bool_t Propagator(int mode, FairTrackParP& tStart, RhoCandidate* cand,
70  TVector3 point=TVector3(0,0,0), Bool_t skipcov=kFALSE, Bool_t overwrite=kFALSE, TVector3 planej=TVector3(1,0,0), TVector3 planek=TVector3(0,1,0));
71 
72  private:
73 
74  void Init();
75  void BuildMcCands();
77  void ReadRecoCandidates();
78  void Cleanup();
79  //void ReadCandidates();
80 
81  TClonesArray* ReadTCA(TString tcaname);
82 
83  Bool_t MctMatch(RhoCandidate& c, RhoCandList& mct, Int_t level = 2, bool verbose=false){ return MctMatch(&c,mct,level,verbose); };
84  Bool_t MctMatch(RhoCandidate* c, RhoCandList& mct, Int_t level = 2, bool verbose=false);
85  // Private Member Variables
86 
87  FairRootManager* fRootManager;
90  Int_t fEvtCount;
94  Int_t fVerbose;
95  Int_t fPhotosMax;
97 
98  std::map<int,RhoCandidate*> fMcPresenceMap;
99 
100  std::array<TClonesArray*,6> fChargedCands; //0-4 for trk hypothesis, 5 for fallback
101  std::array<TClonesArray*,6> fBremCorr; //0-4 for trk hypothesis, 5 for fallback
102  TClonesArray* fNeutralCands;
103  std::array<TClonesArray*,6> fChargedProbability; //0-4 for trk hypothesis, 5 for fallback
104  //TClonesArray* fNeutralProbability;
105  std::array<TClonesArray*,6> fTracks; //0-4 for trk hypothesis, 5 for fallback
106  std::array<TClonesArray*,6> fTracks2; //0-4 for trk hypothesis, 5 for fallback
107  TClonesArray* fMcCands;
108  TClonesArray* fMcTracks;
109 
110  std::array<RhoCandList,6> fChargedCandList; //0-4 for trk hypothesis, 5 for fallback
113 
118 
119  TString fPidHypoStr[6]; //0-4 for trk hypothesis, 5 for fallback
120  Int_t fHypoPdg[6]; //0-4 for trk hypothesis, 5 for fallback
122  Int_t fDefaultHypo; //Default hypothesis (pion), used if no hypo is specified by user
124 };
125 
126 
127 #endif
Int_t GetEntries()
std::array< TClonesArray *, 6 > fChargedProbability
Definition: PndAnalysis.h:103
Int_t fHypoPdg[6]
Definition: PndAnalysis.h:120
Bool_t ResetCandidate(RhoCandidate *cand)
TClonesArray * ReadTCA(TString tcaname)
Definition: PndAnalysis.cxx:78
Bool_t PropagateToPoint(RhoCandidate *cand, TVector3 mypoint)
PndTrack * GetTrack(RhoCandidate *cand)
TClonesArray * fMcCands
Definition: PndAnalysis.h:107
Bool_t fBuildMcCands
Definition: PndAnalysis.h:93
FairTrackParP GetFirstPar(RhoCandidate *cand)
virtual ~PndAnalysis()
Definition: PndAnalysis.cxx:71
std::array< RhoCandList, 6 > fChargedCandList
Definition: PndAnalysis.h:110
Int_t fVerbose
Definition: PndAnalysis.h:94
FairMCEventHeader * GetEventHeader()
std::map< int, RhoCandidate * > fMcPresenceMap
Definition: PndAnalysis.h:98
#define verbose
Bool_t PropagateToZAxis(RhoCandidate *cand)
Double_t fPhotosThresh
Definition: PndAnalysis.h:96
RhoCandList fMcCandList
Definition: PndAnalysis.h:112
int n
PndAnaPidSelector * fPidSelector
Definition: PndAnalysis.h:88
TString fNeutralPidName
Definition: PndAnalysis.h:115
Bool_t FillList(RhoCandList &l, TString listkey="All", TString pidTcaNames="", int trackHypothesis=-1)
Bool_t MctMatch(RhoCandidate &c, RhoCandList &mct, Int_t level=2, bool verbose=false)
Definition: PndAnalysis.h:83
ClassDef(PndAnalysis, 0)
Int_t fEvtCount
Definition: PndAnalysis.h:90
Bool_t GetMcCandList(RhoCandList &l)
Bool_t PropagateToPlane(RhoCandidate *cand, TVector3 origin, TVector3 dj, TVector3 dk)
Int_t fDefaultHypo
Flag to check which hypo lists exists //0-4 for trk hypothesis, 5 for fallback.
Definition: PndAnalysis.h:122
Int_t mode
Definition: autocutx.C:47
PndAnaPidCombiner * fPidCombiner
Definition: PndAnalysis.h:89
std::array< TClonesArray *, 6 > fBremCorr
Definition: PndAnalysis.h:101
void GetEventInTask()
void BuildMcCands()
Double_t
TClonesArray * fMcTracks
Definition: PndAnalysis.h:108
PndAnalysis(TString tname1="", TString tname2="", TString algnamec="PidAlgoIdealCharged", TString algnamen="PidAlgoIdealNeutral")
Definition: PndAnalysis.cxx:48
void ReadRecoCandidates()
TString fChargedPidName
Definition: PndAnalysis.h:114
TClonesArray * point
Definition: anaLmdDigi.C:29
void Reset()
Definition: PndAnalysis.h:37
void Cleanup()
Bool_t Propagator(int mode, FairTrackParP &tStart, RhoCandidate *cand, TVector3 point=TVector3(0, 0, 0), Bool_t skipcov=kFALSE, Bool_t overwrite=kFALSE, TVector3 planej=TVector3(1, 0, 0), TVector3 planek=TVector3(0, 1, 0))
TString fPidHypoStr[6]
Definition: PndAnalysis.h:119
TString fTracksName2
Definition: PndAnalysis.h:117
std::array< TClonesArray *, 6 > fTracks
Definition: PndAnalysis.h:105
FairRootManager * fRootManager
Definition: PndAnalysis.h:87
void McMatchAllowPhotos(int maxn=1, double thresh=0.05)
Definition: PndAnalysis.h:62
TString fTracksName
Definition: PndAnalysis.h:116
Bool_t PropagateToIp(RhoCandidate *cand)
RhoCandList fNeutralCandList
Definition: PndAnalysis.h:111
Int_t fChainEntries
Definition: PndAnalysis.h:91
Bool_t McTruthMatch(RhoCandidate *cand, Int_t level=2, bool verbose=false)
Int_t fPhotosMax
Definition: PndAnalysis.h:95
Bool_t fHypoFlagCharged[6]
Definition: PndAnalysis.h:121
Int_t GetEvent(Int_t n=-1)
std::array< TClonesArray *, 6 > fTracks2
Definition: PndAnalysis.h:106
Bool_t fEventRead
Definition: PndAnalysis.h:92
TClonesArray * fNeutralCands
Definition: PndAnalysis.h:102
std::array< TClonesArray *, 6 > fChargedCands
Definition: PndAnalysis.h:100
Bool_t ResetDaughters(RhoCandidate *cand)
void SetVerbose(Int_t level)
Definition: PndAnalysis.h:43