FairRoot/PandaRoot
PndRhoTupleQA.h
Go to the documentation of this file.
1 #ifndef PNDRHOTUPLEQA_H
2 #define PNDRHOTUPLEQA_H 1
3 
4 #include "TLorentzVector.h"
5 #include "TVector3.h"
6 #include "TString.h"
7 #include "RhoCandList.h"
8 #include "RhoVtxPoca.h"
9 
10 class RhoCandidate;
11 class RhoTuple;
12 class PndEventShape;
13 class PndAnalysis;
14 class RhoFitterBase;
15 
17 public:
18  PndRhoTupleQA(PndAnalysis *ana=0, double pbarmom=15.15);
20 
21  // *** QA methods
22  // *** QA for candidates
23  void qaCand(TString pre, RhoCandidate *cc, RhoTuple *n, bool skip=false);
24  void qaP4(TString pre, TLorentzVector c, RhoTuple *n, bool skip=false);
25  void qaP4Cms(TString pre, TLorentzVector c, RhoTuple *n, bool skip=false);
26  void qaP4Cov(TString pre, RhoCandidate *c, RhoTuple *n, bool skip=false);
27  void qaPos(TString pre, TVector3 p, RhoTuple *n, bool skip=false);
28  void qaPull(TString pre, RhoCandidate *c, RhoTuple *n, bool skip=false);
29 
30  // *** QA for 2-prong
31  void qaComp(TString pre, RhoCandidate *c, RhoTuple *n, bool covs=false, bool pulls=false);
32  void qaKs0(TString pre, RhoCandidate *c, RhoTuple *n);
33  void qaPi0(TString pre, RhoCandidate *c, RhoTuple *n);
34 
35  // *** QA of event shape
36  void qaEventShape(TString pre, PndEventShape *evsh, RhoTuple *n);
37  void qaEventShapeShort(TString pre, PndEventShape *evsh, RhoTuple *n);
38 
39  // *** QA for parts of eventshape
40  void qaESPidMult(TString pre, PndEventShape *evsh, double prob, double pmin, RhoTuple *n);
41  void qaESMult(TString pre, PndEventShape *evsh, RhoTuple *n);
42  void qaESSum(TString pre, PndEventShape *evsh, RhoTuple *n);
43  void qaESMinMax(TString pre, PndEventShape *evsh, RhoTuple *n);
44  void qaESEventVars(TString pre, PndEventShape *evsh, RhoTuple *n);
45 
46  // *** QA track, vtx, PID, decay
47  void qaVtx(TString pre, RhoCandidate *c, RhoTuple *n);
48  void qaPoca(TString pre, RhoCandidate *c, RhoTuple *n);
49  void qaPRG(TString pre, RhoCandidate *c, RhoTuple *n);
50  void qa2Body(TString pre, RhoCandidate *c, RhoTuple *n);
51  void qaDalitz(TString pre, RhoCandidate *c, RhoTuple *n);
52  void qaTrk(TString pre, RhoCandidate *c, RhoTuple *n);
53  void qaPid(TString pre, RhoCandidate *c, RhoTuple *n);
54 
55  // *** QA PndPidCandidate raw values
56  void qaEmc(TString pre, RhoCandidate *c, RhoTuple *n);
57  void qaMvd(TString pre, RhoCandidate *c, RhoTuple *n);
58  void qaStt(TString pre, RhoCandidate *c, RhoTuple *n);
59  void qaGem(TString pre, RhoCandidate *c, RhoTuple *n);
60  void qaDrc(TString pre, RhoCandidate *c, RhoTuple *n);
61  void qaDsc(TString pre, RhoCandidate *c, RhoTuple *n);
62  void qaRich(TString pre, RhoCandidate *c, RhoTuple *n);
63  void qaTof(TString pre, RhoCandidate *c, RhoTuple *n);
64  void qaMuo(TString pre, RhoCandidate *c, RhoTuple *n);
65 
66  void qaRecoShort(TString pre, RhoCandidate *c, RhoTuple *n);
67  void qaRecoShortTree(TString pre, RhoCandidate *c, RhoTuple *n);
68  void qaRecoFull(TString pre, RhoCandidate *c, RhoTuple *n);
69  void qaRecoFullTree(TString pre, RhoCandidate *c, RhoTuple *n);
70 
71  // *** QA for the full MC list as array.
72  void qaMcList(TString pre, RhoCandList &l, RhoTuple *n, int max=10000);
73  void qaMcList(RhoTuple *n, int max=10000);
74  // *** QA for the MC truth of candidates and the difference of the relevant properties (pos, p4, etc.)
75  void qaMcDiff(TString pre, RhoCandidate *c, RhoTuple *n, bool skip=false);
76  void qaMc(TString pre, RhoCandidate *c, RhoTuple *n, bool skip=false);
77 
78  void qaFitter(TString pre, RhoFitterBase* fitter, RhoTuple *n, bool skip=false);
79 
80  // *** Setters and getters
81  void SetIniP4(TLorentzVector _ini) {fIniP4 = _ini;}
82  TLorentzVector GetIniP4() {return fIniP4;}
83 
84 private:
85 
86  RhoCandidate *fDummyCand; //empty RhoCandidate to replace "mct" if there is no MCTruth partner (added by J.Puetz in June 2018);
89 
90  TLorentzVector fIniP4; // initial 4-momentum
91 };
92 
93 #endif
void qaPi0(TString pre, RhoCandidate *c, RhoTuple *n)
void qaCand(TString pre, RhoCandidate *cc, RhoTuple *n, bool skip=false)
void qaRecoShortTree(TString pre, RhoCandidate *c, RhoTuple *n)
void qaPid(TString pre, RhoCandidate *c, RhoTuple *n)
int n
void qaRecoFullTree(TString pre, RhoCandidate *c, RhoTuple *n)
void qaTrk(TString pre, RhoCandidate *c, RhoTuple *n)
friend F32vec4 max(const F32vec4 &a, const F32vec4 &b)
Definition: P4_F32vec4.h:26
void qaStt(TString pre, RhoCandidate *c, RhoTuple *n)
void qaVtx(TString pre, RhoCandidate *c, RhoTuple *n)
void qaP4(TString pre, TLorentzVector c, RhoTuple *n, bool skip=false)
void qaKs0(TString pre, RhoCandidate *c, RhoTuple *n)
void qaGem(TString pre, RhoCandidate *c, RhoTuple *n)
void qaESMinMax(TString pre, PndEventShape *evsh, RhoTuple *n)
PndRhoTupleQA(PndAnalysis *ana=0, double pbarmom=15.15)
Double_t p
Definition: anasim.C:58
void qaRich(TString pre, RhoCandidate *c, RhoTuple *n)
void qaDalitz(TString pre, RhoCandidate *c, RhoTuple *n)
void qaMcList(TString pre, RhoCandList &l, RhoTuple *n, int max=10000)
void qaP4Cov(TString pre, RhoCandidate *c, RhoTuple *n, bool skip=false)
void qaPoca(TString pre, RhoCandidate *c, RhoTuple *n)
TLorentzVector fIniP4
Definition: PndRhoTupleQA.h:90
void qa2Body(TString pre, RhoCandidate *c, RhoTuple *n)
void qaComp(TString pre, RhoCandidate *c, RhoTuple *n, bool covs=false, bool pulls=false)
void qaDsc(TString pre, RhoCandidate *c, RhoTuple *n)
void qaESPidMult(TString pre, PndEventShape *evsh, double prob, double pmin, RhoTuple *n)
void qaMvd(TString pre, RhoCandidate *c, RhoTuple *n)
void qaEventShape(TString pre, PndEventShape *evsh, RhoTuple *n)
void qaEventShapeShort(TString pre, PndEventShape *evsh, RhoTuple *n)
void qaTof(TString pre, RhoCandidate *c, RhoTuple *n)
void qaRecoShort(TString pre, RhoCandidate *c, RhoTuple *n)
void qaRecoFull(TString pre, RhoCandidate *c, RhoTuple *n)
void qaEmc(TString pre, RhoCandidate *c, RhoTuple *n)
void SetIniP4(TLorentzVector _ini)
Definition: PndRhoTupleQA.h:81
PndAnalysis * fAnalysis
Definition: PndRhoTupleQA.h:88
void qaESSum(TString pre, PndEventShape *evsh, RhoTuple *n)
void qaMc(TString pre, RhoCandidate *c, RhoTuple *n, bool skip=false)
void qaPRG(TString pre, RhoCandidate *c, RhoTuple *n)
TLorentzVector GetIniP4()
Definition: PndRhoTupleQA.h:82
void qaFitter(TString pre, RhoFitterBase *fitter, RhoTuple *n, bool skip=false)
void qaDrc(TString pre, RhoCandidate *c, RhoTuple *n)
void qaPull(TString pre, RhoCandidate *c, RhoTuple *n, bool skip=false)
RhoVtxPoca * fVtxPoca
Definition: PndRhoTupleQA.h:87
void qaP4Cms(TString pre, TLorentzVector c, RhoTuple *n, bool skip=false)
RhoCandidate * fDummyCand
Definition: PndRhoTupleQA.h:86
void qaMuo(TString pre, RhoCandidate *c, RhoTuple *n)
void qaPos(TString pre, TVector3 p, RhoTuple *n, bool skip=false)
void qaMcDiff(TString pre, RhoCandidate *c, RhoTuple *n, bool skip=false)
void qaESEventVars(TString pre, PndEventShape *evsh, RhoTuple *n)
void qaESMult(TString pre, PndEventShape *evsh, RhoTuple *n)