1 #ifndef __HPARTICLEPAIRMAKER_H__
2 #define __HPARTICLEPAIRMAKER_H__
14 #include "TLorentzVector.h"
68 void selectPID(
HParticleCand* cand1,Int_t& pid1,Bool_t warn=kTRUE);
76 void setPIDs(Int_t pid1,Int_t pid2,Int_t motherpid) {
79 fMotherPID = motherpid;
87 fuserFilter=userfilter;
110 void filterPairsVector(vector<HParticlePair*>& filterpairs,UInt_t flag=0);
111 void filterPairsVector(vector<HParticlePair*>& filterpairs,vector<UInt_t>& flags);
112 Int_t filterCandidates (
HVirtualCand* cand,vector<HVirtualCand*>& candidates,UInt_t flag=0,Float_t oAngle=-1);
113 Int_t filterCandidates (
HVirtualCand* cand,vector<HParticlePair*>& filterpairs,UInt_t flag=0,Float_t oAngle=-1);
117 Int_t getSameRich (
HParticleCand* cand,vector<HParticleCand*>& candidates,UInt_t flag=0,Bool_t isReference = kTRUE);
118 Int_t getSameInnerMdc(
HParticleCand* cand,vector<HParticleCand*>& candidates,UInt_t flag=0,Bool_t isReference = kTRUE);
119 Int_t getSameOuterMdc(
HParticleCand* cand,vector<HParticleCand*>& candidates,UInt_t flag=0,Bool_t isReference = kTRUE);
120 Int_t getSameMeta (
HParticleCand* cand,vector<HParticleCand*>& candidates,UInt_t flag=0,Bool_t isReference = kTRUE);
122 void plotPairCaseStat();
127 #endif // __HPARTICLEPAIRMAKER_H__
static Bool_t frequireRich
== kTRUE build also pairs of skipped full reco cands (inner/outer MDC+META) with others ...
static void setRequireRich(Bool_t use)
Int_t fPID1
user filter function to avoid unneeded combinatorics
void setVertex(HVertex &v)
Int_t fVertexCase
ask for rich index in selctPos/selectNeg function
void setVertex(HGeomVector &v)
vector< HParticleCand * > ffullrecoOthers
other candidates (not KIsLepton flagged)
map< Int_t, vector< HParticleCand * > > mInnerMdctoCand
EMC Cluster lookup detector hit ind -> list of candidates using this hit.
vector< HParticlePair > fpairs
not full reco cands (inner/outer MDC or META missing) inside others
map< Int_t, vector< HParticleCand * > > mShowertoCand
RPC cluster lookup detector hit ind -> list of candidates using this hit.
map< Int_t, vector< HParticleCand * > > mRpcClsttoCand
TOF cluster lookup detector hit ind -> list of candidates using this hit.
HGeomVector fVertex
which eventvertex to use (see eVertex in hparticledef.h)
map< HVirtualCand *, vector< HParticlePair * > > mCandtoPair
RICH hit lookup detector hit ind -> list of candidates using this hit.
HGeomVector & getPos(void)
Int_t fMotherPID
pid2 (default electrons)
static Bool_t getRequireRich()
map< Int_t, vector< HParticleCand * > > mRichtoCand
outer Seg lookup detector hit ind -> list of candidates using this hit
void setDoSkippedFullCandPairs(Bool_t doit)
void setVertexCase(Particle::eVertex vertexCase)
Int_t richCandCt
vector for pair cases
vector< HParticleCand * > & getReferenceVector()
map< Int_t, vector< HParticleCand * > > mEmctoCand
SHOWER hit lookup detector hit ind -> list of candidates using this hit.
void setPIDs(Int_t pid1, Int_t pid2, Int_t motherpid)
map< Int_t, vector< HParticleCand * > > mTofClsttoCand
TOF hit lookup detector hit ind -> list of candidates using this hit.
Int_t fPID2
pid1 (default positrons)
vector< HParticleCand * > fothers
reference candidates (kIsLepton flagged)
Bool_t fdoSkippedFullCandPairs
== kTRUE use kIsLepton as refererence selection (default)
vector< HParticleCand * > freference
vector< HParticleCand * > & getOthersVector()
map< Int_t, vector< HParticleCand * > > mOuterMdctoCand
inner Seg lookup detector hit ind -> list of candidates using this hit
void setPIDsSelection(Bool_t(*selPID1)(HParticleCand *), Bool_t(*selPID2)(HParticleCand *))
map< Int_t, vector< HParticleCand * > > mTofHittoCand
all pair combinations freference x fothers
void setUseLeptons(Bool_t use)
vector< HParticlePair > & getPairsVector()
vector< HParticleCand * > fnofullrecoOthers
full reco cands (inner/outer MDC + META) inside others
Bool_t fuse_kIsLepton
default dilepton
vector< UInt_t > fCaseVec
counter array for cases
void setUserFilter(Bool_t(*userfilter)(HParticleCand *))