]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/muon/AliUtilityMuonAncestor.h
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWG / muon / AliUtilityMuonAncestor.h
1 #ifndef ALIUTILITYMUONANCESTOR_H
2 #define ALIUTILITYMUONANCESTOR_H
3
4 /* $Id: AliUtilityMuonAncestor.h 47782 2011-02-24 18:37:31Z martinez $ */ 
5
6 //
7 // MC utility to classify single muons
8 //
9 // Author: Diego Stocco
10 //
11
12 #include "TObject.h"
13
14 class AliMCEvent;
15 class AliVParticle;
16
17 class AliUtilityMuonAncestor : public TObject {
18 public:
19   
20   AliUtilityMuonAncestor();
21   ~AliUtilityMuonAncestor();
22   AliUtilityMuonAncestor(const AliUtilityMuonAncestor& obj);
23   AliUtilityMuonAncestor& operator=(const AliUtilityMuonAncestor& obj);
24   
25   enum {
26     kIsID,
27     kIsMuon,
28     kIsSecondary,
29     kHasLightParent,
30     kHasCharmParent,
31     kHasBeautyParent,
32     kHasQuarkoniumParent
33   };
34   
35   Bool_t CheckAncestor ( AliVParticle* track, const AliMCEvent* mcEvent, Int_t ancestorPdg, Bool_t matchAbsPdg = kTRUE );
36   
37   Int_t GetAncestor ( AliVParticle* track, const AliMCEvent* mcEvent );
38   Int_t GetAncestorPdg ( AliVParticle* track, const AliMCEvent* mcEvent );
39   Long64_t GetMask ( AliVParticle* track, const AliMCEvent* mcEvent );
40
41   Bool_t IsBeautyMu ( AliVParticle* track, const AliMCEvent* mcEvent );
42   Bool_t IsBJpsiMu ( AliVParticle* track, const AliMCEvent* mcEvent );
43   Bool_t IsCharmMu ( AliVParticle* track, const AliMCEvent* mcEvent );
44   Bool_t IsDecayMu ( AliVParticle* track, const AliMCEvent* mcEvent );
45   Bool_t IsHadron ( AliVParticle* track, const AliMCEvent* mcEvent );
46   Bool_t IsMuon ( AliVParticle* track, const AliMCEvent* mcEvent );
47   Bool_t IsQuarkoniumMu ( AliVParticle* track, const AliMCEvent* mcEvent );
48   Bool_t IsSecondaryMu ( AliVParticle* track, const AliMCEvent* mcEvent );
49   Bool_t IsUnidentified ( AliVParticle* track, const AliMCEvent* mcEvent );
50   Bool_t IsWBosonMu ( AliVParticle* track, const AliMCEvent* mcEvent );
51   Bool_t IsZBosonMu ( AliVParticle* track, const AliMCEvent* mcEvent );
52
53   
54 private:
55   Bool_t BuildAncestor ( AliVParticle* track, const AliMCEvent* mcEvent );
56   
57   
58   
59   Double_t fPx; ///< Particle px
60   Double_t fPy; ///< Particle py
61   Double_t fPz; ///< Particle pz
62   Long64_t fMask; ///< Mask
63   Int_t fAncestor; ///< Ancestor position in stack
64   
65   ClassDef(AliUtilityMuonAncestor, 0);
66 };
67
68 #endif