]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/muon/AliAnalysisMuonUtility.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWG / muon / AliAnalysisMuonUtility.h
1 #ifndef ALIANALYSISMUONUTILITY_H
2 #define ALIANALYSISMUONUTILITY_H
3
4 /* $Id: AliAnalysisMuonUtility.h 47782 2011-02-24 18:37:31Z martinez $ */ 
5
6 //
7 // Utilities for muon analysis
8 //
9 // Author: Diego Stocco
10 //
11
12 #include "TObject.h"
13 #include "TString.h"
14
15 class TLorentzVector;
16 class AliInputEventHandler;
17 class AliVEvent;
18 class AliMCEvent;
19 class AliVParticle;
20 class AliVVertex;
21 class AliCFGridSparse;
22
23 class AliAnalysisMuonUtility : public TObject {
24  public:
25   
26   // Utility methods for CF container
27   static Bool_t SetSparseRange(AliCFGridSparse* gridSparse,
28                                Int_t ivar, TString labelName,
29                                Double_t varMin, Double_t varMax,
30                                TString option = "");
31   
32   // Transparently handle ESD/AOD
33   static Bool_t IsAODEvent ( const AliVEvent* event );
34   static TString GetFiredTriggerClasses ( const AliVEvent* event );
35   static Int_t GetNTracks ( const AliVEvent* event );
36   static AliVParticle* GetTrack ( Int_t itrack, const AliVEvent* event );
37   static UInt_t GetL0TriggerInputs ( const AliVEvent* event );
38   static UInt_t GetL1TriggerInputs ( const AliVEvent* event );
39   static UInt_t GetL2TriggerInputs ( const AliVEvent* event );
40   
41   static Bool_t IsAODTrack ( const AliVParticle* track );
42   static Bool_t IsMuonTrack ( const AliVParticle* track );
43   static Bool_t IsMuonGhost ( const AliVParticle* track );
44   static Double_t GetRabs ( const AliVParticle* track );
45   static Double_t GetThetaAbsDeg ( const AliVParticle* track );
46   static Int_t GetMatchTrigger ( const AliVParticle* track );
47   static Bool_t MatchApt ( const AliVParticle* track ) { return GetMatchTrigger(track) >= 1; }
48   static Bool_t MatchLpt ( const AliVParticle* track ) { return GetMatchTrigger(track) >= 2; }
49   static Bool_t MatchHpt ( const AliVParticle* track ) { return GetMatchTrigger(track) >= 3; }
50   static Double_t GetChi2perNDFtracker ( const AliVParticle* track );
51   static Double_t GetChi2MatchTrigger ( const AliVParticle* track );
52   static Double_t GetXatVertex ( const AliVParticle* track );
53   static Double_t GetYatVertex ( const AliVParticle* track );
54   static Double_t GetZatVertex ( const AliVParticle* track );
55   static Double_t GetXatDCA ( const AliVParticle* track );
56   static Double_t GetYatDCA ( const AliVParticle* track );
57   static Double_t GetZatDCA ( const AliVParticle* track ) { return GetZatVertex(track); }
58   static Bool_t IsTrkChamberHit( Int_t chamber, const AliVParticle* track );
59   static UInt_t GetMUONTrigHitsMapTrk ( const AliVParticle* track );
60   static UInt_t GetMUONTrigHitsMapTrg ( const AliVParticle* track );
61   static Int_t GetMuonTrigDevSign ( const AliVParticle* track );
62   static Int_t GetLoCircuit ( const AliVParticle* track );
63   static TLorentzVector GetTrackPair ( const AliVParticle* track1, const AliVParticle* track2 );
64
65   
66   // Transparently handle MC
67   static Double_t GetMCVertexZ ( const AliVEvent* event, const AliMCEvent* mcEvent );
68   
69   static Bool_t IsAODMCTrack ( const AliVParticle* mcParticle );
70   static Bool_t IsMCTrack ( const AliVParticle* mcParticle );
71   static Int_t GetMotherIndex ( const AliVParticle* mcParticle );
72   static Int_t GetDaughterIndex ( const AliVParticle* mcParticle, Int_t idaughter );
73   static Bool_t IsPrimary ( const AliVParticle* mcParticle, const AliMCEvent* mcEvent );
74   static UInt_t GetMCProcess ( const AliVParticle* mcParticle );
75   static UInt_t GetStatusCode ( const AliVParticle* mcParticle );
76   
77   static Bool_t EAGetTZEROFlags(const AliVEvent* event, Bool_t& backgroundFlag, Bool_t& pileupFlag, Bool_t& satelliteFlag);
78
79   // A useful constant
80   static Double_t MuonMass2();
81   
82   // Transparently handle vertex
83   static AliVVertex* GetVertexSPD ( const AliVEvent* event );
84   
85   // Utilities for ESD/AOD
86   static Int_t GetPassNumber ( const AliInputEventHandler* eventHandler );
87   static Int_t GetPassNumber ( const char* str );
88   static TString GetPassName ( const AliInputEventHandler* eventHandler );
89   static TString GetPassName ( const char* str );
90   
91   // Utilities for MC
92   static TString GetTrackHistory ( const AliVParticle* track, const AliMCEvent* mcEvent, Bool_t verbose = kFALSE );
93   
94   ClassDef(AliAnalysisMuonUtility, 0);
95 };
96
97 #endif