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 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  RhoCandidate *fDummyCand; // empty RhoCandidate to replace "mct" if there is no MCTruth partner (added by J.Puetz in June 2018);
86  RhoVtxPoca *fVtxPoca;
87  PndAnalysis *fAnalysis;
88 
89  TLorentzVector fIniP4; // initial 4-momentum
90 };
91 
92 #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 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:81
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)
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)