]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/trigger/tasks/AliAnalysisTasktrigger.h
end-of-line normalization
[u/mrichter/AliRoot.git] / HLT / trigger / tasks / AliAnalysisTasktrigger.h
1 //-*- Mode: C++ -*-
2
3 #ifndef ALIANALYSISTASKTRIGGER_H
4 #define ALIANALYSISTASKTRIGGER_H
5
6 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
7  * See cxx source for full Copyright notice                               */
8
9 // Study trigger efficiencies for high-pt trigger
10 // Author: Jochen Thaeder <jochen@thaeder.de> 
11
12 #include "AliAnalysisTaskSE.h"
13
14 class TH1F;
15 class AliESDEvent;
16 class AliMCEvent;
17 class AliKineTrackCuts;
18
19 #include "AliStack.h"
20 #include "TParticle.h"
21 #include "TRandom3.h"
22
23 class AliAnalysisTasktrigger : public AliAnalysisTaskSE {
24
25  public:
26
27   /*
28    * ---------------------------------------------------------------------------------
29    *                            Constructor / Destructor
30    * ---------------------------------------------------------------------------------
31    */
32
33   AliAnalysisTasktrigger(const char *name = "AliAnalysisTasktrigger");
34   virtual ~AliAnalysisTasktrigger();
35   
36   /*
37    * ---------------------------------------------------------------------------------
38    *                                    Methods
39    * ---------------------------------------------------------------------------------
40    */
41
42   virtual void UserCreateOutputObjects();
43   virtual void UserExec(Option_t *option);
44
45   ///////////////////////////////////////////////////////////////////////////////////
46
47  private:
48
49   AliAnalysisTasktrigger(const AliAnalysisTasktrigger&); // not implemented
50   AliAnalysisTasktrigger& operator=(const AliAnalysisTasktrigger&); // not implemented
51
52   /*
53    * ---------------------------------------------------------------------------------
54    *                            Setup Methods - private
55    * ---------------------------------------------------------------------------------
56    */
57
58   Bool_t SetupEvent();
59
60   void   SetupESDTrackCuts();  
61
62   void   SetupTrigHistograms();
63   void   SetupPtHistograms();
64   void   SetupMultHistograms();
65
66   /*
67    * ---------------------------------------------------------------------------------
68    *                            Helper Methods - private
69    * ---------------------------------------------------------------------------------
70    */
71   
72   TParticle* GetChargedPhysicalPrimary( AliStack* stack, Int_t idx );
73   Bool_t IsFindableMC(Int_t idx, Float_t length);
74
75   void AddTriggerHist( TH1F* hist );
76   void AddPtHist( TH1F* hist );
77   void AddMultHist( TH1F* hist );
78   
79   /*
80    * ---------------------------------------------------------------------------------
81    *                            Trigger Methods - private
82    * ---------------------------------------------------------------------------------
83    */
84   
85   void EvaluateTrigger();
86
87   /*
88    * ---------------------------------------------------------------------------------
89    *                              Fill Methods - private
90    * ---------------------------------------------------------------------------------
91    */
92
93   void FillCutStudies( Int_t mode );
94   void FillCounters( Int_t mode );
95   void FillTriggerHistograms();
96
97   void FillTriggerStudies();
98   void FillTriggerStudiesMC();
99
100   /*
101    * ---------------------------------------------------------------------------------
102    *                         Static Members - private
103    * ---------------------------------------------------------------------------------
104    */
105
106   static const Int_t     fgkNSettings;       // N Settings
107   static const Int_t     fgkNTrigger;        // N Trigger 
108
109   static const Double_t  fgkTriggerPt[];     // Array of Pt Settings
110   static const Char_t   *fgkTrigger[];       // Array of Trigger Names
111
112   static const Int_t     fgkNSelectionCuts;  // N Selection and Cut Types
113   static const Char_t   *fgkSelectionCuts[]; // Selection and Cut Types
114
115   enum mode {kOFF, kHLT, kMC, kNModes};
116
117   /*
118    * ---------------------------------------------------------------------------------
119    *                             Members - private
120    * ---------------------------------------------------------------------------------
121    */
122   TRandom3        *fRandom;                  //! Random Generator
123
124   AliMCEvent      *fMC;                      //! MC object
125   AliESDEvent     *fESD;                     //! ESD object
126   AliESDEvent     *fESDHLT;                  //! ESD - HLT object
127
128   AliESDtrackCuts *fESDTrackCuts;            //! ESD cuts  
129   AliESDtrackCuts *fESDHLTTrackCuts;         //! HLT adopted track cuts 
130   AliKineTrackCuts*fMCTrackCuts;             //! MC track cuts
131
132   Bool_t           fIsSelected;              //! Event Selected by physics selection + Primary Vertex
133   Bool_t           fIsSelectedHLT;           //! HLT Event Selected by physics selection + Primary Vertex
134   Bool_t           fIsSelectedMC;            //! MC Event Selected by physics selection + Primary Vertex
135
136   Bool_t           fIsSelectedTask;          //! Event Selected by physics selection
137
138   TObjArray       *fOutputContainer;         //! output data container
139
140   // --------------------------------------------------------------------
141
142   Int_t           *fPtCount;                 //! Pt count per setting [kNModes*fgkTrigger]
143   Int_t           *fMultiplicity;            //! Multiplicty counters [fgkNSelectionCuts]
144
145   // --------------------------------------------------------------------
146
147   Bool_t          *fTrigger;                 // Trigger [kNModes*fgkNTrigger]
148
149   ClassDef(AliAnalysisTasktrigger, 3);
150 };
151
152 #endif