]>
Commit | Line | Data |
---|---|---|
03d23846 | 1 | #ifndef ALIRSNMINIPARTICLE_H |
2 | #define ALIRSNMINIPARTICLE_H | |
3 | ||
4 | // | |
5 | // This object is used as lightweight temporary container | |
61f275d1 | 6 | // of all information needed from any input object and |
03d23846 | 7 | // useful for resonance analysis. |
61f275d1 | 8 | // |
03d23846 | 9 | |
10 | #include <TMath.h> | |
11 | #include <TObject.h> | |
12 | #include <TLorentzVector.h> | |
13 | ||
14 | class AliRsnDaughter; | |
15 | ||
16 | class AliRsnMiniParticle : public TObject { | |
17 | public: | |
18 | ||
17392566 | 19 | AliRsnMiniParticle() : fIndex(-1), fCharge(0), fPDG(0), fMother(0), fMotherPDG(0), fCutBits(0x0) {Int_t i = 3; while (i--) fPsim[i] = fPrec[i] = 0.0;} |
03d23846 | 20 | |
61f275d1 | 21 | Int_t &Index() {return fIndex;} |
22 | Char_t &Charge() {return fCharge;} | |
23 | Float_t &PsimX() {return fPsim[0];} | |
24 | Float_t &PsimY() {return fPsim[1];} | |
25 | Float_t &PsimZ() {return fPsim[2];} | |
26 | Float_t &PrecX() {return fPrec[0];} | |
27 | Float_t &PrecY() {return fPrec[1];} | |
28 | Float_t &PrecZ() {return fPrec[2];} | |
29 | Float_t &Px(Bool_t mc) {return (mc ? fPsim[0] : fPrec[0]);} | |
30 | Float_t &Py(Bool_t mc) {return (mc ? fPsim[1] : fPrec[1]);} | |
31 | Float_t &Pz(Bool_t mc) {return (mc ? fPsim[2] : fPrec[2]);} | |
32 | Short_t &PDG() {return fPDG;} | |
03d23846 | 33 | Short_t PDGAbs() {return TMath::Abs(fPDG);} |
61f275d1 | 34 | Short_t &Mother() {return fMother;} |
35 | Short_t &MotherPDG() {return fMotherPDG;} | |
36 | UShort_t &CutBits() {return fCutBits;} | |
03d23846 | 37 | Bool_t HasCutBit(Int_t i) {UShort_t bit = 1 << i; return ((fCutBits & bit) != 0);} |
38 | void SetCutBit(Int_t i) {UShort_t bit = 1 << i; fCutBits |= bit;} | |
39 | void ClearCutBit(Int_t i) {UShort_t bit = 1 << i; fCutBits &= (~bit);} | |
61f275d1 | 40 | |
03d23846 | 41 | void Set4Vector(TLorentzVector &v, Float_t mass, Bool_t mc) {v.SetXYZM(Px(mc), Py(mc), Pz(mc), mass);} |
42 | void CopyDaughter(AliRsnDaughter *daughter); | |
43 | ||
44 | private: | |
45 | ||
17392566 | 46 | Int_t fIndex; // ID of track in its event |
03d23846 | 47 | Char_t fCharge; // track charge *character*: '+', '-', '0' (whatever else = undefined) |
48 | Float_t fPsim[3]; // MC momentum of the track | |
49 | Float_t fPrec[3]; // reconstructed momentum of the track | |
50 | Short_t fPDG; // particle PDG code | |
51 | Short_t fMother; // index of mother in its container | |
52 | Short_t fMotherPDG; // PDG code of mother | |
53 | UShort_t fCutBits; // list of bits used to know what cuts were passed by this track | |
61f275d1 | 54 | |
17392566 | 55 | ClassDef(AliRsnMiniParticle,2) |
03d23846 | 56 | }; |
57 | ||
58 | #endif |