]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG3/muon/AliMuonInfoStoreMC.h
Update (Francesco, Gian Michele)
[u/mrichter/AliRoot.git] / PWG3 / muon / AliMuonInfoStoreMC.h
index b8a2ddd946d2c4be7d5a5d1598ec039b73eb5f8c..2690d7df5e95a8cda178245c7fc6bcbb9a214223 100644 (file)
@@ -4,6 +4,8 @@
 /* Copyright(c) 1998-2006, ALICE Experiment at CERN, All rights reserved. *
  * See cxx source for full Copyright notice                               */
 
+/* $Id$ */ 
+
 //***********************************************************
 // Class AliMuonInfoStoreRD
 // class used to extract and store info of MC particle
 #include "AliESDMuonTrack.h"
 #include "AliAODTrack.h"
 #include "AliMuonInfoStoreRD.h"
+#include "AliMCEvent.h"
 
 class AliMuonInfoStoreMC : public AliMuonInfoStoreRD {
  public:
 
   AliMuonInfoStoreMC();
-  AliMuonInfoStoreMC(AliAODTrack *trkAOD, TClonesArray *mcClArr, Bool_t full=kFALSE);
-  AliMuonInfoStoreMC(AliESDMuonTrack *trkESD, AliESDEvent *esd, AliMCEventHandler *mcH, Bool_t full=kFALSE);
-  AliMuonInfoStoreMC(AliESDMuonTrack *trkESD, AliMCEventHandler *mcH, Bool_t full=kFALSE);
-  AliMuonInfoStoreMC(AliESDMuonTrack *trkESD, AliStack *stack);
+  AliMuonInfoStoreMC(AliAODTrack     *trkAOD, AliMCEvent *mcEvent, Bool_t full=kFALSE);
+  AliMuonInfoStoreMC(AliESDMuonTrack *trkESD, AliMCEvent *mcEvent, Bool_t full=kFALSE);
   AliMuonInfoStoreMC(const AliMuonInfoStoreMC &src);
   AliMuonInfoStoreMC& operator=(const AliMuonInfoStoreMC &src);
   virtual ~AliMuonInfoStoreMC();
 
-  Int_t ParentFlavour(Int_t i=0) const;
+  Int_t  ParentFlavour(Int_t i=0)    const;
   Bool_t IsMotherAResonance(Int_t i) const;
-  Bool_t IsAMuon() const { return (fSource>=0 && fSource!=4); }
-
-  TLorentzVector LorentzP()      const { return fLorentzP; }
-  Int_t MuonSource()             const { return fSource; }
-  Int_t TrackIndex()             const { return fTrackIndex; }
-  Int_t TrackPDGCode()           const { return fTrackPDGCode; }
-  Int_t NParents()               const { return fNParents; }
-  Int_t ParentIndex(Int_t i=0)   const { return (i<fNParents ? fParentIndex[i] : -1); }
-  Int_t ParentPDGCode(Int_t i=0) const { return (i<fNParents ? fParentPDGCode[i] : 0); }
-  Int_t QuarkIndex(Int_t i=0)    const { return (i<4 ? fQuarkIndex[i] : -1); }
-  Int_t QuarkPDGCode(Int_t i=0)  const { return (i<4 ? fQuarkPDGCode[i] : 0); }
-  Bool_t IsOscillation()         const { return fOscillation; }
-  Double_t Weight()              const { return fWeight; }
+
+  TLorentzVector LorentzP()         const { return fLorentzP; }
+  Int_t    Source()                 const { return fSource; }
+  Int_t    TrackIndex()             const { return fTrackIndex; }
+  Int_t    TrackPDGCode()           const { return fTrackPDGCode; }
+  Int_t    ParentsN()               const { return fNParents; }
+  Int_t    ParentIndex(Int_t i=0)   const { return (i<fNParents ? fParentIndex[i] : -1); }
+  Int_t    ParentPDGCode(Int_t i=0) const { return (i<fNParents ? fParentPDGCode[i] : 0); }
+  Int_t    QuarkIndex(Int_t i=0)    const { return (i<4 ? fQuarkIndex[i] : -1); }
+  Int_t    QuarkPDGCode(Int_t i=0)  const { return (i<4 ? fQuarkPDGCode[i] : 0); }
+  Bool_t   IsOscillation()          const { return fOscillation; }
+  Double_t Weight()                 const { return fWeight; }
 
   static const char* StdBranchName() { return fgkStdBranchName.Data(); }
-  static const Int_t NSources()      { return fgkNSources;             }
+  static Int_t SourcesN()            { return fgkSourcesN;             }
 
  private:
 
-  AliAODMCParticle* FindTrackRef(AliAODTrack*     const trkAOD, TClonesArray* const mcClArr);
-  TParticle*        FindTrackRef(AliESDMuonTrack* const trkESD, AliMCEventHandler* const mcH);
-  TParticle*        FindTrackRef(AliESDMuonTrack* const trkESD, AliESDEvent* const esd, AliMCEventHandler* const mcH);
-  void SetMCInfo(AliAODMCParticle *pMC, TClonesArray* const mcClArr);
-  void SetMCInfo(TParticle *pMC, AliMCEventHandler *mcH);
-  void FillHistoryParents(Int_t lineM, TClonesArray* const mcClArr);
-  void FillHistoryParents(Int_t lineM, AliStack* const stack);
-  void FillHistoryQuarks(Int_t lineM, TClonesArray *mcClArr);
-  void FillHistoryQuarks(Int_t lineM, AliStack *stack);
+  void SetMCInfoAOD(AliMCEvent *mcEvent, Int_t label);
+  void SetMCInfoESD(AliMCEvent *mcEvent, Int_t label);
+  void FillHistoryQuarksAOD(AliMCEvent *mcEvent, Int_t lineM);
+  void FillHistoryQuarksESD(AliMCEvent *mcEvent, Int_t lineM);
   Int_t SelectHFMuon();
 
   Bool_t IsDiquark(Int_t pdg);
   void ResetQuarkInfo();
 
   static const TString fgkStdBranchName;  // Standard branch name
-  static const Int_t   fgkNSources;       // num. of muon sources
+  static const Int_t   fgkSourcesN;       // num. of muon sources
 
   Bool_t fIsFull;            // whether to use full mode (Pb-Pb)
   TLorentzVector fLorentzP;  // lorentz momentum of particle
@@ -95,7 +90,7 @@ class AliMuonInfoStoreMC : public AliMuonInfoStoreRD {
 
   Double_t fWeight;  // for PbPb collisoions
 
-  ClassDef(AliMuonInfoStoreMC, 3);
+  ClassDef(AliMuonInfoStoreMC, 5);
 };
 
 #endif