1 #ifndef ALIANALYSISMUONUTILITY_H
2 #define ALIANALYSISMUONUTILITY_H
4 /* $Id: AliAnalysisMuonUtility.h 47782 2011-02-24 18:37:31Z martinez $ */
7 // Utilities for muon analysis
9 // Author: Diego Stocco
16 class AliInputEventHandler;
21 class AliCFGridSparse;
23 class AliAnalysisMuonUtility : public TObject {
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,
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 );
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 );
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 );
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 );
74 static Double_t MuonMass2();
76 // Transparently handle vertex
77 static AliVVertex* GetVertexSPD ( const AliVEvent* event );
79 // Utilities for ESD/AOD
80 static Int_t GetPassNumber ( const AliInputEventHandler* eventHandler );
81 static Int_t GetPassNumber ( const char* str );
83 ClassDef(AliAnalysisMuonUtility, 0);