ROOT logo
#ifndef ALIUTILITYMUONANCESTOR_H
#define ALIUTILITYMUONANCESTOR_H

/* $Id: AliUtilityMuonAncestor.h 47782 2011-02-24 18:37:31Z martinez $ */ 

//
// MC utility to classify single muons
//
// Author: Diego Stocco
//

#include "TObject.h"

class AliMCEvent;
class AliVParticle;

class AliUtilityMuonAncestor : public TObject {
public:
  
  AliUtilityMuonAncestor();
  ~AliUtilityMuonAncestor();
  AliUtilityMuonAncestor(const AliUtilityMuonAncestor& obj);
  AliUtilityMuonAncestor& operator=(const AliUtilityMuonAncestor& obj);
  
  enum {
    kIsID,
    kIsMuon,
    kIsSecondary,
    kHasLightParent,
    kHasCharmParent,
    kHasBeautyParent,
    kHasQuarkoniumParent
  };
  
  Bool_t CheckAncestor ( AliVParticle* track, const AliMCEvent* mcEvent, Int_t ancestorPdg, Bool_t matchAbsPdg = kTRUE );
  
  Int_t GetAncestor ( AliVParticle* track, const AliMCEvent* mcEvent );
  Int_t GetAncestorPdg ( AliVParticle* track, const AliMCEvent* mcEvent );
  Long64_t GetMask ( AliVParticle* track, const AliMCEvent* mcEvent );

  Bool_t IsBeautyMu ( AliVParticle* track, const AliMCEvent* mcEvent );
  Bool_t IsBJpsiMu ( AliVParticle* track, const AliMCEvent* mcEvent );
  Bool_t IsCharmMu ( AliVParticle* track, const AliMCEvent* mcEvent );
  Bool_t IsDecayMu ( AliVParticle* track, const AliMCEvent* mcEvent );
  Bool_t IsHadron ( AliVParticle* track, const AliMCEvent* mcEvent );
  Bool_t IsMuon ( AliVParticle* track, const AliMCEvent* mcEvent );
  Bool_t IsQuarkoniumMu ( AliVParticle* track, const AliMCEvent* mcEvent );
  Bool_t IsSecondaryMu ( AliVParticle* track, const AliMCEvent* mcEvent );
  Bool_t IsUnidentified ( AliVParticle* track, const AliMCEvent* mcEvent );
  Bool_t IsWBosonMu ( AliVParticle* track, const AliMCEvent* mcEvent );
  Bool_t IsZBosonMu ( AliVParticle* track, const AliMCEvent* mcEvent );

  
private:
  Bool_t BuildAncestor ( AliVParticle* track, const AliMCEvent* mcEvent );
  
  
  
  Double_t fPx; ///< Particle px
  Double_t fPy; ///< Particle py
  Double_t fPz; ///< Particle pz
  Long64_t fMask; ///< Mask
  Int_t fAncestor; ///< Ancestor position in stack
  
  ClassDef(AliUtilityMuonAncestor, 0);
};

#endif
 AliUtilityMuonAncestor.h:1
 AliUtilityMuonAncestor.h:2
 AliUtilityMuonAncestor.h:3
 AliUtilityMuonAncestor.h:4
 AliUtilityMuonAncestor.h:5
 AliUtilityMuonAncestor.h:6
 AliUtilityMuonAncestor.h:7
 AliUtilityMuonAncestor.h:8
 AliUtilityMuonAncestor.h:9
 AliUtilityMuonAncestor.h:10
 AliUtilityMuonAncestor.h:11
 AliUtilityMuonAncestor.h:12
 AliUtilityMuonAncestor.h:13
 AliUtilityMuonAncestor.h:14
 AliUtilityMuonAncestor.h:15
 AliUtilityMuonAncestor.h:16
 AliUtilityMuonAncestor.h:17
 AliUtilityMuonAncestor.h:18
 AliUtilityMuonAncestor.h:19
 AliUtilityMuonAncestor.h:20
 AliUtilityMuonAncestor.h:21
 AliUtilityMuonAncestor.h:22
 AliUtilityMuonAncestor.h:23
 AliUtilityMuonAncestor.h:24
 AliUtilityMuonAncestor.h:25
 AliUtilityMuonAncestor.h:26
 AliUtilityMuonAncestor.h:27
 AliUtilityMuonAncestor.h:28
 AliUtilityMuonAncestor.h:29
 AliUtilityMuonAncestor.h:30
 AliUtilityMuonAncestor.h:31
 AliUtilityMuonAncestor.h:32
 AliUtilityMuonAncestor.h:33
 AliUtilityMuonAncestor.h:34
 AliUtilityMuonAncestor.h:35
 AliUtilityMuonAncestor.h:36
 AliUtilityMuonAncestor.h:37
 AliUtilityMuonAncestor.h:38
 AliUtilityMuonAncestor.h:39
 AliUtilityMuonAncestor.h:40
 AliUtilityMuonAncestor.h:41
 AliUtilityMuonAncestor.h:42
 AliUtilityMuonAncestor.h:43
 AliUtilityMuonAncestor.h:44
 AliUtilityMuonAncestor.h:45
 AliUtilityMuonAncestor.h:46
 AliUtilityMuonAncestor.h:47
 AliUtilityMuonAncestor.h:48
 AliUtilityMuonAncestor.h:49
 AliUtilityMuonAncestor.h:50
 AliUtilityMuonAncestor.h:51
 AliUtilityMuonAncestor.h:52
 AliUtilityMuonAncestor.h:53
 AliUtilityMuonAncestor.h:54
 AliUtilityMuonAncestor.h:55
 AliUtilityMuonAncestor.h:56
 AliUtilityMuonAncestor.h:57
 AliUtilityMuonAncestor.h:58
 AliUtilityMuonAncestor.h:59
 AliUtilityMuonAncestor.h:60
 AliUtilityMuonAncestor.h:61
 AliUtilityMuonAncestor.h:62
 AliUtilityMuonAncestor.h:63
 AliUtilityMuonAncestor.h:64
 AliUtilityMuonAncestor.h:65
 AliUtilityMuonAncestor.h:66
 AliUtilityMuonAncestor.h:67
 AliUtilityMuonAncestor.h:68