]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG2/RESONANCES/AliRsnDaughter.h
Block of updates on RSN package:
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnDaughter.h
index 9eb536fe51cf513515876a8933a598611081df5a..73138fb3f248940313b3cd6097c1924fcd48fb32 100644 (file)
@@ -1,9 +1,8 @@
 //
 // Class AliRsnDaughter
 //
-// Interface to candidate daughters of a resonance (tracks).
-// Points to the source of information, which is generally an AliVParticle-derived object
-// and contains few internal data-members to store "on fly" some important information
+// Interface to candidate daughters of a resonance (tracks or V0s).
+// It contains two pointers to two AliVParticle-derived objects.
 // for the computations required during resonance analysis.
 // ---
 // Since the package revision, this object is not supposed to be stacked in memory
 #include <TLorentzVector.h>
 
 #include "AliESDtrack.h"
-#include "AliAODTrack.h"
 #include "AliESDv0.h"
-#include "AliAODv0.h"
 #include "AliMCParticle.h"
+
+#include "AliAODTrack.h"
+#include "AliAODv0.h"
 #include "AliAODMCParticle.h"
 
 typedef AliPID::EParticleType EPARTYPE;
@@ -40,69 +40,68 @@ class AliRsnDaughter : public TObject
 
     AliRsnDaughter();
     AliRsnDaughter(const AliRsnDaughter &copy);
-    virtual ~AliRsnDaughter();
     AliRsnDaughter& operator= (const AliRsnDaughter& copy);
+    virtual ~AliRsnDaughter() { /*nothing*/ }
     
-    // utilities
-    void    Reset();
-    void    Print(Option_t* const option = "") const;
+    // basic getters (for data members)
+    Bool_t              IsOK() const {return fOK;}
+    Int_t               GetLabel() const {return fLabel;}
+    Int_t               GetMotherPDG() const {return fMotherPDG;}
+    TLorentzVector&     Prec() {return fPrec;}
+    TLorentzVector&     Psim() {return fPsim;}
+    TLorentzVector&     P(Bool_t mc = kFALSE) {return (mc ? fPsim : fPrec);}
+    AliVParticle*       GetRef() {return fRef;}
+    AliVParticle*       GetRefMC() {return fRefMC;}
     
-    // flags and labels
-    Bool_t  IsOK() const {return fOK;}
-    Int_t   GetLabel() const {return fLabel;}
-    Int_t   GetPDG(Bool_t abs = kTRUE) const;
-    Int_t   GetMotherPDG() const {return fMotherPDG;}
-    Int_t   GetID() const;
-    Bool_t  HasFlag(ULong_t flag) const;
-    void    SetBad() {fOK = kFALSE;}
-    void    SetGood() {fOK = kTRUE;}
-    void    SetLabel(Int_t label) {fLabel = label;}
-    void    SetMotherPDG(Int_t value) {fMotherPDG = value;}
-
-    // 4-momentum
-    TLorentzVector& P(Bool_t mc = kFALSE) {return (mc ? fPMC : fP);}
-    TLorentzVector& Prec() {return fP;}
-    TLorentzVector& Psim() {return fPMC;}
-    Bool_t          SetMass(Double_t mass);
+    // basic setters (for data members)
+    void            SetBad() {fOK = kFALSE;}
+    void            SetGood() {fOK = kTRUE;}
+    void            SetLabel(Int_t label) {fLabel = label;}
+    void            SetMotherPDG(Int_t value) {fMotherPDG = value;}
+    void            SetRef(AliVParticle *p) {fRef = p;}
+    void            SetRefMC(AliVParticle *p = 0x0) {fRefMC = p;}
     
-    // charge
+    // charge checkers
     Bool_t  IsPos()             const {return (fRef->Charge() > 0);}
     Bool_t  IsNeg()             const {return (fRef->Charge() < 0);}
     Bool_t  IsNeutral()         const {return (!IsPos() && !IsNeg());}
     Bool_t  IsSign(Char_t sign) const {if (sign=='+') return IsPos(); else if (sign=='-') return IsNeg(); else return IsNeutral();}
     Short_t Charge()            const {if (IsPos()) return  1 ; else if (IsNeg()) return -1 ; else return  0 ;}
     Char_t  ChargeChar()        const {if (IsPos()) return '+'; else if (IsNeg()) return '-'; else return '0';}
+    
+    // utilities
+    void    Reset();
+    Int_t   GetPDG(Bool_t abs = kTRUE);
+    Int_t   GetID();
+    Bool_t  HasFlag(ULong_t flag);
+    Bool_t  SetMass(Double_t mass);
 
     // getters which automatically convert refs into allowed types
-    AliVParticle*     GetRef()         const {return fRef;}
-    AliVParticle*     GetRefMC()       const {return fRefMC;}
-    AliMCParticle*    GetRefMCtrack()  const {return dynamic_cast<AliMCParticle*>(fRef);}
-    AliESDtrack*      GetRefESDtrack() const {return dynamic_cast<AliESDtrack*>(fRef);}
-    AliAODTrack*      GetRefAODtrack() const {return dynamic_cast<AliAODTrack*>(fRef);}
-    AliESDv0*         GetRefESDv0()    const {return dynamic_cast<AliESDv0*>(fRef);}
-    AliAODv0*         GetRefAODv0()    const {return dynamic_cast<AliAODv0*>(fRef);}
-    AliMCParticle*    GetRefMCESD()    const {return dynamic_cast<AliMCParticle*>(fRefMC);}
-    AliAODMCParticle* GetRefMCAOD()    const {return dynamic_cast<AliAODMCParticle*>(fRefMC);}
-    Bool_t            IsMC()           const {if (GetRefMCtrack()) return kTRUE; return kFALSE;}
-    Bool_t            IsAOD()          const {if (GetRefAODtrack() || GetRefAODv0()) return kTRUE; return kFALSE;}
-    Bool_t            IsESD()          const {if (GetRefESDtrack() || GetRefESDv0()) return kTRUE; return kFALSE;}
-    Bool_t            IsTrack()        const {if (GetRefESDtrack() || GetRefAODtrack() || GetRefMCtrack()) return kTRUE; return kFALSE;}
-    Bool_t            IsV0()           const {if (GetRefESDv0() || GetRefAODv0()) return kTRUE; return kFALSE;}
-    ERefType          RefType()        const {if (IsTrack()) return kTrack; if (IsV0()) return kV0; return kNoType;}
-    void              SetRef(AliVParticle *ref) {fRef = ref;}
-    void              SetRefMC(AliVParticle *refMC) {fRefMC = refMC;}
+    AliMCParticle*    GetRefMCtrack()  {return dynamic_cast<AliMCParticle*>(fRef);}
+    AliESDtrack*      GetRefESDtrack() {return dynamic_cast<AliESDtrack*>(fRef);}
+    AliAODTrack*      GetRefAODtrack() {return dynamic_cast<AliAODTrack*>(fRef);}
+    AliESDv0*         GetRefESDv0()    {return dynamic_cast<AliESDv0*>(fRef);}
+    AliAODv0*         GetRefAODv0()    {return dynamic_cast<AliAODv0*>(fRef);}
+    AliMCParticle*    GetRefMCESD()    {return dynamic_cast<AliMCParticle*>(fRefMC);}
+    AliAODMCParticle* GetRefMCAOD()    {return dynamic_cast<AliAODMCParticle*>(fRefMC);}
+    Bool_t            IsMC()           {if (GetRefMCtrack()) return kTRUE; return kFALSE;}
+    Bool_t            IsAOD()          {if (GetRefAODtrack() || GetRefAODv0()) return kTRUE; return kFALSE;}
+    Bool_t            IsESD()          {if (GetRefESDtrack() || GetRefESDv0()) return kTRUE; return kFALSE;}
+    Bool_t            IsTrack()        {if (GetRefESDtrack() || GetRefAODtrack() || GetRefMCtrack()) return kTRUE; return kFALSE;}
+    Bool_t            IsV0()           {if (GetRefESDv0() || GetRefAODv0()) return kTRUE; return kFALSE;}
+    ERefType          RefType()        {if (IsTrack()) return kTrack; if (IsV0()) return kV0; return kNoType;}
 
   private:
 
-    Bool_t         fOK;                // internal utility flag which is kFALSE when this object should not be used
-    Int_t          fLabel;             // GEANT label of corresponding MC (not trivial for V0s)
-    Int_t          fMotherPDG;         // PDG code of mother (makes sense only if fRefMC is defined)
+    Bool_t         fOK;          // internal utility flag which is kFALSE when this object should not be used
+    Int_t          fLabel;       // GEANT label of corresponding MC (not trivial for V0s)
+    Int_t          fMotherPDG;   // PDG code of mother (makes sense only if fRefMC is defined)
     
-    TLorentzVector fP;                 // 4-vector filled with track info from default ref (if present)
-    TLorentzVector fPMC;               // 4-vector filled with track info from MC ref (if present)
+    TLorentzVector fPrec;        // 4-vector filled with track info from default ref (if present)
+    TLorentzVector fPsim;        // 4-vector filled with track info from MC ref (if present)
     
-    AliVParticle  *fRef;               // reference to reconstructed track in ESD/AOD
-    AliVParticle  *fRefMC;             // reference to corresponding MC particle
+    AliVParticle  *fRef;         // reference to reconstructed track in ESD/AOD
+    AliVParticle  *fRefMC;       // reference to corresponding MC particle
 
     ClassDef(AliRsnDaughter, 8)
 };