FairRoot/PandaRoot
SimpleCand.C
Go to the documentation of this file.
1 #include "TLorentzVector.h"
2 
3 class SimpleCand {
4 public:
6  {fLV.SetXYZT(0.,0.,0.,0.); fPid = 0; fId = 0; fCh = 0; fMotherIdx=-1;
7  fMct=false; fMcPid=false; fNSiblings=1; fNFS=1; fMarker=1<<fId; fDauF=-1; fDauL=-1; fNDau = 0; fEvtId=-1;fDaus.clear();}
8 
9  SimpleCand(TLorentzVector lv, int pid, int id, int ch)
10  {Set(lv,pid,id,ch); fMotherIdx=-1; fMct=false; fMcPid=false;
11  fNSiblings=1; fNFS=1; fMarker=1<<fId; fDauF=-1; fDauL=-1;; fEvtId=-1;fNDau = 0; fDaus.clear();}
12 
13  SimpleCand(double x, double y, double z, double t, int pid, int id, int ch)
14  {fLV.SetXYZT(x,y,z,t); fPid = pid; fId = id; fCh=ch; fMotherIdx=-1;
15  fMct=false; fMcPid=false; fNSiblings=1;fNFS=1; fMarker=1<<fId; fDauF=-1; fDauL=-1;fNDau = 0 ; fEvtId=-1;fDaus.clear();}
16 
18 
19  void Set(TLorentzVector lv, int pid, int id, int ch) {fLV = lv; fPid = pid; fId = id; fCh = ch; fMarker=1<<fId;}
20  void SetP4(TLorentzVector lv) {fLV = lv;}
21  void SetP4(double x, double y, double z, double t) {fLV.SetXYZT(x,y,z,t);}
22  void SetMass(double mass) { fLV.SetVectM(fLV.Vect(),fabs(mass)); }
23 
24  void SetPid(int pid) {fPid = pid;}
25  void SetPdg(int pdg) {fPdg = pdg;}
26  void SetId(int id) {fId = id;}
27  void SetCharge(int ch) {fCh = ch;}
29  void SetMct(bool mct=true) { fMct=mct; }
30  void SetMcPid(bool mct=true) { fMcPid=mct; }
31  void SetNSiblings(int n) { fNSiblings=n; }
32  void SetNFS(int n) { fNFS=n; }
33  void SetMarker(unsigned int i) {fMarker = i;}
34  void SetDau(int n, int m=0) {fDauF=n; fDauL=m==0?n:m;}
35  void SetEvtId(int ev) {fEvtId = ev;}
36 
37  void AddDau(SimpleCand *c) {fDaus.push_back(c); fNDau++;}
38 
39  TLorentzVector P4() const {return fLV;}
40  int Pid()const {return fPid;}
41  int Pdg()const {return fPdg;}
42  int Id() const {return fId;}
43  int EvtId() const {return fEvtId;}
44  int Charge() const {return fCh;}
45  int MotherIdx()const {return fMotherIdx;}
46  int NSiblings()const {return fNSiblings;}
47  int NFS()const {return fNFS;}
48  bool Mct() const {return fMct;}
49  bool McPid() const {return fMcPid;}
50  unsigned int Marker() const {return fMarker;}
51  int DauF() const {return fDauF;}
52  int DauL()const {return fDauL;}
53  int NDau() const { return (fDauF>0 && fDauL>0) ? fDauL-fDauF+1 : 0;}
54  bool IsDau(int idx) const {return NDau()>0 ? (idx>=fDauF && idx<=fDauL) : false;}
55  SimpleCand* Dau(int idx) {return fDaus[idx];}
56 
57 private:
58  TLorentzVector fLV;
59  int fPid;
60  int fPdg;
61  int fId;
62  int fEvtId;
63  int fCh;
66  int fNFS;
67  bool fMct;
68  bool fMcPid;
69  unsigned int fMarker;
70  int fDauF;
71  int fDauL;
72  int fNDau;
73  std::vector<SimpleCand*> fDaus;
74 };
75 
76 typedef std::vector<SimpleCand> CandList;
void SetPdg(int pdg)
Definition: SimpleCand.C:25
unsigned int fMarker
Definition: SimpleCand.C:69
void SetPid(int pid)
Definition: SimpleCand.C:24
void SetP4(TLorentzVector lv)
Definition: SimpleCand.C:20
int DauL() const
Definition: SimpleCand.C:52
int fEvtId
Definition: SimpleCand.C:62
void SetEvtId(int ev)
Definition: SimpleCand.C:35
Int_t i
Definition: run_full.C:25
SimpleCand()
Definition: SimpleCand.C:5
__m128 m
Definition: P4_F32vec4.h:28
SimpleCand * Dau(int idx)
Definition: SimpleCand.C:55
int ev
int n
int Pdg() const
Definition: SimpleCand.C:41
int pid()
int NFS() const
Definition: SimpleCand.C:47
bool Mct() const
Definition: SimpleCand.C:48
void SetMcPid(bool mct=true)
Definition: SimpleCand.C:30
int Pid() const
Definition: SimpleCand.C:40
std::vector< SimpleCand > CandList
Definition: SimpleCand.C:76
void SetMarker(unsigned int i)
Definition: SimpleCand.C:33
void SetP4(double x, double y, double z, double t)
Definition: SimpleCand.C:21
void SetCharge(int ch)
Definition: SimpleCand.C:27
void SetMct(bool mct=true)
Definition: SimpleCand.C:29
std::vector< SimpleCand * > fDaus
Definition: SimpleCand.C:73
int NSiblings() const
Definition: SimpleCand.C:46
int idx[MAX]
Definition: autocutx.C:38
int DauF() const
Definition: SimpleCand.C:51
void SetMass(double mass)
Definition: SimpleCand.C:22
bool fMct
Definition: SimpleCand.C:67
void SetNSiblings(int n)
Definition: SimpleCand.C:31
int Id() const
Definition: SimpleCand.C:42
void SetId(int id)
Definition: SimpleCand.C:26
int EvtId() const
Definition: SimpleCand.C:43
bool IsDau(int idx) const
Definition: SimpleCand.C:54
void Set(TLorentzVector lv, int pid, int id, int ch)
Definition: SimpleCand.C:19
Double_t z
TLorentzVector P4() const
Definition: SimpleCand.C:39
friend F32vec4 fabs(const F32vec4 &a)
Definition: P4_F32vec4.h:47
SimpleCand(TLorentzVector lv, int pid, int id, int ch)
Definition: SimpleCand.C:9
Double_t x
void AddDau(SimpleCand *c)
Definition: SimpleCand.C:37
int fMotherIdx
Definition: SimpleCand.C:64
int fNSiblings
Definition: SimpleCand.C:65
TTree * t
Definition: bump_analys.C:13
int NDau() const
Definition: SimpleCand.C:53
Double_t y
void SetMotherIdx(int idx)
Definition: SimpleCand.C:28
void SetNFS(int n)
Definition: SimpleCand.C:32
bool fMcPid
Definition: SimpleCand.C:68
void SetDau(int n, int m=0)
Definition: SimpleCand.C:34
int MotherIdx() const
Definition: SimpleCand.C:45
unsigned int Marker() const
Definition: SimpleCand.C:50
int Charge() const
Definition: SimpleCand.C:44
bool McPid() const
Definition: SimpleCand.C:49
TLorentzVector fLV
Definition: SimpleCand.C:58
SimpleCand(double x, double y, double z, double t, int pid, int id, int ch)
Definition: SimpleCand.C:13