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 = nullptr, 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 qaCompP4(TString pre, RhoCandidate *c, RhoTuple *n);
32  void qaComp(TString pre, RhoCandidate *c, RhoTuple *n, bool covs = false, bool pulls = false);
33  void qaKs0(TString pre, RhoCandidate *c, RhoTuple *n);
34  void qaPi0(TString pre, RhoCandidate *c, RhoTuple *n);
35 
36  // *** QA of event shape
37  void qaEventShape(TString pre, PndEventShape *evsh, RhoTuple *n);
38  void qaEventShapeShort(TString pre, PndEventShape *evsh, RhoTuple *n);
39 
40  // *** QA for parts of eventshape
41  void qaESPidMult(TString pre, PndEventShape *evsh, double prob, double pmin, RhoTuple *n);
42  void qaESMult(TString pre, PndEventShape *evsh, RhoTuple *n);
43  void qaESSum(TString pre, PndEventShape *evsh, RhoTuple *n);
44  void qaESMinMax(TString pre, PndEventShape *evsh, RhoTuple *n);
45  void qaESEventVars(TString pre, PndEventShape *evsh, RhoTuple *n);
46 
47  // *** QA track, vtx, PID, decay
48  void qaVtx(TString pre, RhoCandidate *c, RhoTuple *n);
49  void qaPoca(TString pre, RhoCandidate *c, RhoTuple *n);
50  void qaPRG(TString pre, RhoCandidate *c, RhoTuple *n);
51  void qa2Body(TString pre, RhoCandidate *c, RhoTuple *n);
52  void qaDalitz(TString pre, RhoCandidate *c, RhoTuple *n);
53  void qaTrk(TString pre, RhoCandidate *c, RhoTuple *n);
54  void qaPid(TString pre, RhoCandidate *c, RhoTuple *n);
55 
56  // *** QA PndPidCandidate raw values
57  void qaEmc(TString pre, RhoCandidate *c, RhoTuple *n);
58  void qaMvd(TString pre, RhoCandidate *c, RhoTuple *n);
59  void qaStt(TString pre, RhoCandidate *c, RhoTuple *n);
60  void qaGem(TString pre, RhoCandidate *c, RhoTuple *n);
61  void qaDrc(TString pre, RhoCandidate *c, RhoTuple *n);
62  void qaDsc(TString pre, RhoCandidate *c, RhoTuple *n);
63  void qaRich(TString pre, RhoCandidate *c, RhoTuple *n);
64  void qaTof(TString pre, RhoCandidate *c, RhoTuple *n);
65  void qaMuo(TString pre, RhoCandidate *c, RhoTuple *n);
66 
67  void qaRecoShort(TString pre, RhoCandidate *c, RhoTuple *n);
68  void qaRecoShortTree(TString pre, RhoCandidate *c, RhoTuple *n);
69  void qaRecoFull(TString pre, RhoCandidate *c, RhoTuple *n);
70  void qaRecoFullTree(TString pre, RhoCandidate *c, RhoTuple *n);
71 
72  // *** QA for the full MC list as array.
73  void qaMcList(TString pre, RhoCandList &l, RhoTuple *n, int max = 10000);
74  void qaMcList(RhoTuple *n, int max = 10000);
75  // *** QA for the MC truth of candidates and the difference of the relevant properties (pos, p4, etc.)
76  void qaMcDiff(TString pre, RhoCandidate *c, RhoTuple *n, bool skip = false);
77  void qaMc(TString pre, RhoCandidate *c, RhoTuple *n, bool skip = false);
78 
79  void qaFitter(TString pre, RhoFitterBase *fitter, RhoTuple *n, bool skip = false);
80 
81  // *** Setters and getters
82  void SetIniP4(TLorentzVector _ini) { fIniP4 = _ini; }
83  TLorentzVector GetIniP4() { return fIniP4; }
84 
85  private:
86  RhoCandidate *fDummyCand; // empty RhoCandidate to replace "mct" if there is no MCTruth partner (added by J.Puetz in June 2018);
87  RhoVtxPoca *fVtxPoca;
88  PndAnalysis *fAnalysis;
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)
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:25
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)
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 qaCompP4(TString pre, RhoCandidate *c, RhoTuple *n)
void qaPoca(TString pre, RhoCandidate *c, RhoTuple *n)
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)
PndRhoTupleQA(PndAnalysis *ana=nullptr, double pbarmom=15.15)
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:82
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:83
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)
void qaP4Cms(TString pre, TLorentzVector c, RhoTuple *n, bool skip=false)
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)