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