]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG3/muon/AliAnalysisTaskTrigChEff.h
Single Muon Analysis from generic or muon-selected AOD's (Diego)
[u/mrichter/AliRoot.git] / PWG3 / muon / AliAnalysisTaskTrigChEff.h
1 #include "TH1.h"
2 #include "TList.h"
3
4 #include "AliESDEvent.h"
5 #include "AliAODEvent.h"
6
7 class AliAnalysisTaskTrigChEff : public AliAnalysisTask {
8  public:
9   AliAnalysisTaskTrigChEff(const char *name = "AliAnalysisTaskTrigChEff");
10   virtual ~AliAnalysisTaskTrigChEff() {}
11   
12   virtual void   ConnectInputData(Option_t *);
13   virtual void   CreateOutputObjects();
14   virtual void   Exec(Option_t *option);
15   virtual void   Terminate(Option_t *);
16
17   void SetType(const char* type) {fAnalysisType = type;}
18
19 protected:
20   void ResetHistos();
21   
22   /// Getting flag telling which efficiency is performable for current track
23   Int_t GetEffFlag(UShort_t pattern) { return (pattern >> 8) & 0x03; }
24   
25   /// Getting crossed slat
26   Int_t GetSlat(UShort_t pattern) { return (pattern >> 10) & 0x1F; }
27   
28   Int_t IsChInefficient(UShort_t pattern, Int_t cathode);
29
30 private:
31   /// Not implemented
32   AliAnalysisTaskTrigChEff(const AliAnalysisTaskTrigChEff& rhs);
33   /// Not implemented
34   AliAnalysisTaskTrigChEff& operator = (const AliAnalysisTaskTrigChEff& rhs);
35     
36   AliESDEvent* fESD; //!< ESDevent object
37   AliAODEvent* fAOD; //!< AODevent object
38   TString fAnalysisType; //"ESD" or "AOD"
39
40   TList*  fList; //TList output object
41
42   enum {
43     kNcathodes = 2,  ///< Number of cathodes
44     kNchambers = 4,  ///< Number of chambers
45     kNplanes   = 8,  ///< Number of planes
46     kNslats    = 18 ///< Number of slats
47   };
48
49   enum {kAllChEff, kChNonEff, kNcounts};
50
51   enum {
52     kNoEff,
53     kChEff,
54     kSlatEff,
55     kBoardEff
56   };
57
58   enum {
59     kHtracksInSlat  = 0,  ///< Tracks in slat histogram index
60     kHtracksInBoard = 1,  ///< Tracks in board histogram index
61     kHchamberAllEff = 2,  ///< N44 per cathode histogram index
62     kHchamberNonEff = 4,  ///< N33 per cathode histogram index
63     kHslatAllEff    = 6,  ///< N44 per slat histogram index
64     kHslatNonEff    = 14, ///< N33 per slat histogram index
65     kHboardAllEff   = 22, ///< N44 per board histogram index
66     kHboardNonEff   = 30  ///< N33 per board histogram index
67   };
68   
69   /// Given cathode and chamber, return plane number
70   Int_t GetPlane(Int_t cathode, Int_t chamber) { return kNchambers*cathode + chamber; }
71
72   ClassDef(AliAnalysisTaskTrigChEff, 0); // Single muon analysis
73 };
74