// $Id$ //-*- Mode: C++ -*- //* This file is property of and copyright by the ALICE HLT Project * //* ALICE Experiment at CERN, All rights reserved. * //* See cxx source for full Copyright notice * #ifndef ALIANALYSISTASKHLT_H #define ALIANALYSISTASKHLT_H /** @file AliAnalysisTaskHLT.h @author Kalliopi Kanaki, Hege Erdal @date @brief An analysis task to compare the offline and HLT esd trees */ // forward declarations class TH1F; class TH2F; class TList; class TText; class AliCentrality; #include "AliAnalysisTaskSE.h" class AliAnalysisTaskHLT : public AliAnalysisTaskSE { public: AliAnalysisTaskHLT(); AliAnalysisTaskHLT(const char *name, float eta=2, float pt=0, float DCAr=20, float DCAz=20, float vertexZ=20); virtual ~AliAnalysisTaskHLT() {} virtual void UserCreateOutputObjects(); virtual void UserExec(Option_t *option); virtual void Terminate(Option_t *); //Use only triggered events void SetUseHLTTriggerDecision(Bool_t useHLT = kFALSE) { fUseHLTTrigger = useHLT; } // function to set the beam type void SetBeamType(TString beamType) { fBeamType = beamType; } private: /** copy constructor */ AliAnalysisTaskHLT(const AliAnalysisTaskHLT&); /** assignment operator */ AliAnalysisTaskHLT& operator=(const AliAnalysisTaskHLT&); //void SetupESDtrackCuts(); Bool_t fUseHLTTrigger; // use HLT Trigger Decision //AliESDtrackCuts *fESDOfftrackCuts; //! ESD cuts //AliESDtrackCuts *fESDHLTtrackCuts; //! ESD cuts - on HLT object TList *fOutputList; // list of output histograms //TH1F *fHistTrigger; //! trigger counters TH1F *fChargeOff; //! Charge distribution TH1F *fMomentumOff; //! momentum TH1F *fDCArOff; //! track DCAr TH1F *fDCAzOff; //! track DCAz TH1F *fNclusterOff; //! #clusters per track TH1F *fNITSclusterOff; //! # ITS clusters per track TH1F *fPhiOff; //! azimuthal angle distribution TH1F *fEtaOff; //! pseudorapidity TH1F *fMultOff; //! track multiplicity of the event TH1F *fXvertexOff; //! X primary vertex distribution TH1F *fYvertexOff; //! Y primary vertex distribution TH1F *fZvertexOff; //! Z primary vertex distribution TH1F *fSPDXvertexOff; //! SPD X primary vertex distribution TH1F *fSPDYvertexOff; //! SPD Y primary vertex distribution TH1F *fSPDZvertexOff; //! SPD Z primary vertex distribution TH1F *fEventSpecieOff; //! Event Specie Offline TH1F *fV0cent; //! V0 centrality information TH1F *fNcontOff; //! # of contributors to the vertex estimate //---------------------------------// TH1F *fChargeHLT; //! Charge distribution TH1F *fMomentumHLT; //! momentum TH1F *fDCArHLT; //! track DCAr to beam line TH1F *fDCAzHLT; //! track DCAz to beam line TH1F *fNclusterHLT; //! #clusters per track TH1F *fNITSclusterHLT; //! # ITS clusters per track TH1F *fPhiHLT; //! azimuthal angle distribution TH1F *fEtaHLT; //! pseudorapidity TH1F *fChargeHLTcut; //! Charge distribution with cuts for selecting primary tracks TH1F *fMomentumHLTcut; //! momentum TH1F *fDCArHLTcut; //! track DCAr TH1F *fDCAzHLTcut; //! track DCAz TH1F *fNclusterHLTcut; //! #clusters per track TH1F *fNITSclusterHLTcut; //! # ITS clusters per track TH1F *fPhiHLTcut; //! azimuthal angle distribution TH1F *fEtaHLTcut; //! pseudorapidity TH1F *fMultHLT; //! track multiplicity of the event TH1F *fXvertexHLT; //! X primary vertex distribution TH1F *fYvertexHLT; //! Y primary vertex distribution TH1F *fZvertexHLT; //! Z primary vertex distribution TH1F *fSPDXvertexHLT; //! SPD X primary vertex distribution TH1F *fSPDYvertexHLT; //! SPD Y primary vertex distribution TH1F *fSPDZvertexHLT; //! SPD Z primary vertex distribution TH1F *fEventSpecieHLT; //! Event Specie HLT TH1F *fNcontHLT; //! # of contributors to the vertex estimate TString fBeamType; //! beam type: p-p, Pb-Pb, No beam TText *fTextBox; //! TText box containing run number info and date TText *fCuts; //! TText box containing the cuts Bool_t fSwitch; //! boolean used to execute parts of the code in the UserExec only once, although // the function is called once per event AliCentrality *fCentrality;//! Centrality holder Float_t fEta; //! cut value Float_t fPt; //! cut value Float_t fDCAr; //! cut value Float_t fDCAz; //! cut value Float_t fVertexZ; //! cut value ClassDef(AliAnalysisTaskHLT, 0); }; #endif