]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/muon/AliAnalysisMuonUtility.h
Added Tender to PHOSPi0Flow single-task macros.
[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   
38   static Bool_t IsAODTrack ( const AliVParticle* track );
39   static Bool_t IsMuonTrack ( const AliVParticle* track );
40   static Bool_t IsMuonGhost ( const AliVParticle* track );
41   static Double_t GetRabs ( const AliVParticle* track );
42   static Double_t GetThetaAbsDeg ( const AliVParticle* track );
43   static Int_t GetMatchTrigger ( const AliVParticle* track );
44   static Bool_t MatchApt ( const AliVParticle* track ) { return GetMatchTrigger(track) >= 1; }
45   static Bool_t MatchLpt ( const AliVParticle* track ) { return GetMatchTrigger(track) >= 2; }
46   static Bool_t MatchHpt ( const AliVParticle* track ) { return GetMatchTrigger(track) >= 3; }
47   static Double_t GetChi2perNDFtracker ( const AliVParticle* track );
48   static Double_t GetChi2MatchTrigger ( const AliVParticle* track );
49   static Double_t GetXatVertex ( const AliVParticle* track );
50   static Double_t GetYatVertex ( const AliVParticle* track );
51   static Double_t GetZatVertex ( const AliVParticle* track );
52   static Double_t GetXatDCA ( const AliVParticle* track );
53   static Double_t GetYatDCA ( const AliVParticle* track );
54   static Double_t GetZatDCA ( const AliVParticle* track ) { return GetZatVertex(track); }
55   static Bool_t IsTrkChamberHit( Int_t chamber, const AliVParticle* track );
56   static UInt_t GetMUONTrigHitsMapTrk ( const AliVParticle* track );
57   static UInt_t GetMUONTrigHitsMapTrg ( const AliVParticle* track );
58   static Int_t GetLoCircuit ( const AliVParticle* track );
59   static TLorentzVector GetTrackPair ( const AliVParticle* track1, const AliVParticle* track2 );
60
61   
62   // Transparently handle MC
63   static Bool_t IsMCEvent ( const AliVEvent* event, const AliMCEvent* mcEvent );
64   static Int_t GetNMCTracks ( const AliVEvent* event, const AliMCEvent* mcEvent );
65   static AliVParticle* GetMCTrack ( Int_t trackLabel, const AliVEvent* event, const AliMCEvent* mcEvent );
66   static Double_t GetMCVertexZ ( const AliVEvent* event, const AliMCEvent* mcEvent );
67   
68   static Bool_t IsAODMCTrack ( const AliVParticle* mcParticle );
69   static Int_t GetMotherIndex ( const AliVParticle* mcParticle );
70   static Int_t GetDaughterIndex ( const AliVParticle* mcParticle, Int_t idaughter );
71   static Bool_t IsPrimary ( const AliVParticle* mcParticle, const AliMCEvent* mcEvent );
72   
73   // A useful constant
74   static Double_t MuonMass2();
75   
76   // Transparently handle vertex
77   static AliVVertex* GetVertexSPD ( const AliVEvent* event );
78   
79   // Utilities for ESD/AOD
80   static Int_t GetPassNumber ( const AliInputEventHandler* eventHandler );
81   static Int_t GetPassNumber ( const char* str );
82   
83   ClassDef(AliAnalysisMuonUtility, 0);
84 };
85
86 #endif