3 #ifndef ALIANALYSISTASKTRIGGER_H
\r
4 #define ALIANALYSISTASKTRIGGER_H
\r
6 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
\r
7 * See cxx source for full Copyright notice */
\r
9 // Study trigger efficiencies for high-pt trigger
\r
10 // Author: Jochen Thaeder <jochen@thaeder.de>
\r
12 #include "AliAnalysisTaskSE.h"
\r
17 class AliKineTrackCuts;
\r
19 #include "AliStack.h"
\r
20 #include "TParticle.h"
\r
21 #include "TRandom3.h"
\r
23 class AliAnalysisTasktrigger : public AliAnalysisTaskSE {
\r
28 * ---------------------------------------------------------------------------------
\r
29 * Constructor / Destructor
\r
30 * ---------------------------------------------------------------------------------
\r
33 AliAnalysisTasktrigger(const char *name = "AliAnalysisTasktrigger");
\r
34 virtual ~AliAnalysisTasktrigger();
\r
37 * ---------------------------------------------------------------------------------
\r
39 * ---------------------------------------------------------------------------------
\r
42 virtual void UserCreateOutputObjects();
\r
43 virtual void UserExec(Option_t *option);
\r
45 ///////////////////////////////////////////////////////////////////////////////////
\r
49 AliAnalysisTasktrigger(const AliAnalysisTasktrigger&); // not implemented
\r
50 AliAnalysisTasktrigger& operator=(const AliAnalysisTasktrigger&); // not implemented
\r
53 * ---------------------------------------------------------------------------------
\r
54 * Setup Methods - private
\r
55 * ---------------------------------------------------------------------------------
\r
58 Bool_t SetupEvent();
\r
60 void SetupESDTrackCuts();
\r
62 void SetupTrigHistograms();
\r
63 void SetupPtHistograms();
\r
64 void SetupMultHistograms();
\r
67 * ---------------------------------------------------------------------------------
\r
68 * Helper Methods - private
\r
69 * ---------------------------------------------------------------------------------
\r
72 TParticle* GetChargedPhysicalPrimary( AliStack* stack, Int_t idx );
\r
73 Bool_t IsFindableMC(Int_t idx, Float_t length);
\r
75 void AddTriggerHist( TH1F* hist );
\r
76 void AddPtHist( TH1F* hist );
\r
77 void AddMultHist( TH1F* hist );
\r
80 * ---------------------------------------------------------------------------------
\r
81 * Trigger Methods - private
\r
82 * ---------------------------------------------------------------------------------
\r
85 void EvaluateTrigger();
\r
88 * ---------------------------------------------------------------------------------
\r
89 * Fill Methods - private
\r
90 * ---------------------------------------------------------------------------------
\r
93 void FillCutStudies( Int_t mode );
\r
94 void FillCounters( Int_t mode );
\r
95 void FillTriggerHistograms();
\r
97 void FillTriggerStudies();
\r
98 void FillTriggerStudiesMC();
\r
101 * ---------------------------------------------------------------------------------
\r
102 * Static Members - private
\r
103 * ---------------------------------------------------------------------------------
\r
106 static const Int_t fgkNSettings; // N Settings
\r
107 static const Int_t fgkNTrigger; // N Trigger
\r
109 static const Double_t fgkTriggerPt[]; // Array of Pt Settings
\r
110 static const Char_t *fgkTrigger[]; // Array of Trigger Names
\r
112 static const Int_t fgkNSelectionCuts; // N Selection and Cut Types
\r
113 static const Char_t *fgkSelectionCuts[]; // Selection and Cut Types
\r
115 enum mode {kOFF, kHLT, kMC, kNModes};
\r
118 * ---------------------------------------------------------------------------------
\r
119 * Members - private
\r
120 * ---------------------------------------------------------------------------------
\r
122 TRandom3 *fRandom; //! Random Generator
\r
124 AliMCEvent *fMC; //! MC object
\r
125 AliESDEvent *fESD; //! ESD object
\r
126 AliESDEvent *fESDHLT; //! ESD - HLT object
\r
128 AliESDtrackCuts *fESDTrackCuts; //! ESD cuts
\r
129 AliESDtrackCuts *fESDHLTTrackCuts; //! HLT adopted track cuts
\r
130 AliKineTrackCuts*fMCTrackCuts; //! MC track cuts
\r
132 Bool_t fIsSelected; //! Event Selected by physics selection + Primary Vertex
\r
133 Bool_t fIsSelectedHLT; //! HLT Event Selected by physics selection + Primary Vertex
\r
134 Bool_t fIsSelectedMC; //! MC Event Selected by physics selection + Primary Vertex
\r
136 Bool_t fIsSelectedTask; //! Event Selected by physics selection
\r
138 TObjArray *fOutputContainer; //! output data container
\r
140 // --------------------------------------------------------------------
\r
142 Int_t *fPtCount; //! Pt count per setting [kNModes*fgkTrigger]
\r
143 Int_t *fMultiplicity; //! Multiplicty counters [fgkNSelectionCuts]
\r
145 // --------------------------------------------------------------------
\r
147 Bool_t *fTrigger; // Trigger [kNModes*fgkNTrigger]
\r
149 ClassDef(AliAnalysisTasktrigger, 3);
\r