15 #include "TLorentzVector.h" 30 PndSmpCand(TLorentzVector lv, Float_t chrg, Int_t pdg = 0, Int_t uid = -1);
33 PndSmpCand(TLorentzVector *lv, Float_t chrg, Int_t pdg = 0, Int_t uid = -1);
42 PndSmpCand(Int_t pdg,
PndSmpCand &c0,
PndSmpCand &c1,
PndSmpCand &c2,
PndSmpCand &c3,
PndSmpCand &c4) {
CombCand(pdg, &c0, &c1, &c2, &c3, &c4); }
45 PndSmpCand(Int_t pdg,
PndSmpCand *c0,
PndSmpCand *c1,
PndSmpCand *c2 =
nullptr,
PndSmpCand *c3 =
nullptr,
PndSmpCand *c4 =
nullptr) {
CombCand(pdg, c0, c1, c2, c3, c4); }
49 void SetP4(TLorentzVector p4) { fLV = p4; }
51 void SetM(Double_t
m) { fLV.SetVectM(fLV.Vect(),
m); }
57 Bool_t
operator==(
const PndSmpCand &c1)
const {
return (c1.fMarker == fMarker) && (c1.fPdgCode == fPdgCode); }
64 TLorentzVector
P4() {
return fLV; }
66 Int_t
Pdg() {
return fPdgCode; }
67 Int_t
NDau() {
return fNDau; }
71 if (idx >= 0 && idx < fNDau)
72 return fDaughter[idx];
83 void PrintBinary(ULong_t x)
85 ULong_t bit = ULong_t(1) << 63;
87 cout << ((x & bit) ? 1 : 0);
89 if (bit & 0x8080808080808080)
void SetM(Double_t m)
Sets mass (used for different mass hypotheses in filter.
Bool_t operator==(const PndSmpCand &c1) const
Overload of == operator needed to compare std::vectors of candidates.
void SetCharge(Float_t ch)
Sets charge.
PndSmpCand(Int_t pdg, PndSmpCand *c0, PndSmpCand *c1, PndSmpCand *c2=nullptr, PndSmpCand *c3=nullptr, PndSmpCand *c4=nullptr)
Constructor from up to 5 daughter pointers. Calls CombCand.
PndSmpCand(Int_t pdg, PndSmpCand &c0, PndSmpCand &c1)
Constructor from 2 daughters. Calls CombCand.
PndSmpCand()
Default constructor.
Bool_t Overlap(PndSmpCand &c)
void SetP4(TLorentzVector p4)
Sets LorentzVector.
void CombCand(Int_t pdg, PndSmpCand *c0, PndSmpCand *c1, PndSmpCand *c2=nullptr, PndSmpCand *c3=nullptr, PndSmpCand *c4=nullptr)
Combines this candidate from several daughters (adds P4 and charges).
Bool_t Overlap(PndSmpCand *c)
PndSmpCand(Int_t pdg, PndSmpCand &c0, PndSmpCand &c1, PndSmpCand &c2, PndSmpCand &c3)
Constructor from 4 daughters. Calls CombCand.
PndSmpCand(Int_t pdg, PndSmpCand &c0, PndSmpCand &c1, PndSmpCand &c2)
Constructor from 3 daughters. Calls CombCand.
PndSmpCand * Dau(Int_t idx)
Bool_t operator!=(const PndSmpCand &c1) const
Overload of == operator needed to compare std::vectors of candidates.
PndSmpCand(Int_t pdg, PndSmpCand &c0, PndSmpCand &c1, PndSmpCand &c2, PndSmpCand &c3, PndSmpCand &c4)
Constructor from 5 daughters. Calls CombCand.
Simple particle candidate to perform simple combinatorics and particle counting for event filtering...