example macros to run on proof
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnMiniParticle.h
CommitLineData
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
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
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
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
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