d1c66dfc00c5e9acae6c09a4403b200e1bd13a2f
[u/mrichter/AliRoot.git] / PWG3 / muon / AliAnalysisTaskSingleMu.h
1 #include "TH2.h"
2 #include "TObjArray.h"
3
4 #include "AliAODEvent.h"
5 #include "AliAODVertex.h"
6 #include "AliAODTrack.h"
7
8 class AliAnalysisTaskSingleMu : public AliAnalysisTask {
9  public:
10   AliAnalysisTaskSingleMu(const char *name = "AliAnalysisTaskSingleMu");
11   virtual ~AliAnalysisTaskSingleMu() {}
12   
13   virtual void   ConnectInputData(Option_t *);
14   virtual void   CreateOutputObjects();
15   virtual void   Exec(Option_t *option);
16   virtual void   Terminate(Option_t *);
17
18 protected:
19   Bool_t MuonPassesCuts(AliAODTrack &muonTrack,
20                         TLorentzVector &lorVec,
21                         Int_t &trigMatch);
22
23   const AliAODVertex* GetVertex();
24   void ResetHistos();
25
26 private:
27   AliAnalysisTaskSingleMu(const AliAnalysisTaskSingleMu&);
28   AliAnalysisTaskSingleMu& operator=(const AliAnalysisTaskSingleMu&);
29
30   AliAODEvent *fAOD; //!< ESDevent object
31
32   static const Int_t fgkNhistos = 1;
33   static const Int_t fgkNTrigCuts = 4;
34
35   enum
36   {
37     kNoMatchTrig,
38     kAllPtTrig,
39     kLowPtTrig,
40     kHighPtTrig
41   };
42
43   TString trigName[fgkNTrigCuts]; //!< trigger cut names 
44
45   TObjArray * fOutputContainer; //!< output data container
46
47   TH2F *fVzVsPt[fgkNTrigCuts]; //!< Single muon spectrum
48      
49   ClassDef(AliAnalysisTaskSingleMu, 0); // Single muon analysis
50 };
51