]>
Commit | Line | Data |
---|---|---|
03d23846 | 1 | #ifndef ALIRSNMINIPARTICLE_H |
2 | #define ALIRSNMINIPARTICLE_H | |
3 | ||
4 | // | |
5 | // This object is used as lightweight temporary container | |
6 | // of all information needed from any input object and | |
7 | // useful for resonance analysis. | |
8 | // | |
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 | |
17392566 | 21 | Int_t& Index() {return fIndex;} |
03d23846 | 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;} | |
33 | Short_t PDGAbs() {return TMath::Abs(fPDG);} | |
34 | Short_t& Mother() {return fMother;} | |
35 | Short_t& MotherPDG() {return fMotherPDG;} | |
36 | UShort_t& CutBits() {return fCutBits;} | |
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);} | |
40 | ||
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 | |
54 | ||
17392566 | 55 | ClassDef(AliRsnMiniParticle,2) |
03d23846 | 56 | }; |
57 | ||
58 | #endif |