]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG3/muon/AliAnalysisTaskTrigChEff.h
1a08acae46673883f221e80d4ae4aac1db3bf357
[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   AliESDEvent* fESD; //!< ESDevent object
32   AliAODEvent* fAOD; //!< AODevent object
33   TString fAnalysisType; //"ESD" or "AOD"
34
35   TList*  fList; //TList output object
36
37   enum {
38     kNcathodes = 2,  ///< Number of cathodes
39     kNchambers = 4,  ///< Number of chambers
40     kNplanes   = 8,  ///< Number of planes
41     kNslats    = 18 ///< Number of slats
42   };
43
44   enum {kAllChEff, kChNonEff, kNcounts};
45
46   enum {
47     kNoEff,
48     kChEff,
49     kSlatEff,
50     kBoardEff
51   };
52
53   enum {
54     kHtracksInSlat  = 0,  ///< Tracks in slat histogram index
55     kHtracksInBoard = 1,  ///< Tracks in board histogram index
56     kHchamberAllEff = 2,  ///< N44 per cathode histogram index
57     kHchamberNonEff = 4,  ///< N33 per cathode histogram index
58     kHslatAllEff    = 6,  ///< N44 per slat histogram index
59     kHslatNonEff    = 14, ///< N33 per slat histogram index
60     kHboardAllEff   = 22, ///< N44 per board histogram index
61     kHboardNonEff   = 30  ///< N33 per board histogram index
62   };
63   
64   /// Given cathode and chamber, return plane number
65   Int_t GetPlane(Int_t cathode, Int_t chamber) { return kNchambers*cathode + chamber; }
66
67   ClassDef(AliAnalysisTaskTrigChEff, 0); // Single muon analysis
68 };
69