]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/RESONANCES/AliRsnMiniParticle.h
Modified macros for phi analysis: improved pseudorapidity cut flexibility (A.Knospe)
[u/mrichter/AliRoot.git] / PWGLF / RESONANCES / AliRsnMiniParticle.h
CommitLineData
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
14class AliRsnDaughter;
15
16class AliRsnMiniParticle : public TObject {
17public:
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);}
2036eec8 34 Int_t &Mother() {return fMother;}
61f275d1 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
44private:
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
2036eec8 51 Int_t fMother; // index of mother in its container
03d23846 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