//-*- Mode: C++ -*- #ifndef ALIANALYSISTASKNETPARTICLE_H #define ALIANALYSISTASKNETPARTICLE_H /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * * See cxx source for full Copyright notice */ // Task for NetParticle Distributions // Authors: Jochen Thaeder #include "AliAnalysisTaskSE.h" #include "TList.h" #include "THnSparse.h" #include "AliAnalysisNetParticleHelper.h" #include "AliAnalysisNetParticleEffCont.h" #include "AliAnalysisNetParticleDCA.h" #include "AliAnalysisNetParticleDistribution.h" class AliESDEvent; class AliESDInputHandler; class AliMCEvent; class AliStack; class AliPIDResponse; class AliESDResponse; class AliAnalysisTaskNetParticle : public AliAnalysisTaskSE { public: /* * --------------------------------------------------------------------------------- * Constructor / Destructor * --------------------------------------------------------------------------------- */ AliAnalysisTaskNetParticle(const char *name = "AliAnalysisTaskNetParticle"); virtual ~AliAnalysisTaskNetParticle(); /* * --------------------------------------------------------------------------------- * Task Methods * --------------------------------------------------------------------------------- */ virtual void UserCreateOutputObjects(); virtual void UserExec(Option_t *option); virtual void Terminate(Option_t *); /* * --------------------------------------------------------------------------------- * Public Methods * --------------------------------------------------------------------------------- */ /** Initialize Task */ Int_t Initialize(); /* * --------------------------------------------------------------------------------- * Setter * --------------------------------------------------------------------------------- */ void SetIsMC() {fIsMC = kTRUE;} void SetUseQATHnSparse(Bool_t b) {fUseQATHnSparse = b;} void SetESDTrackCutMode(Int_t i) {fESDTrackCutMode = i;} void SetModeEffCreation(Int_t i) {fModeEffCreation = i;} void SetModeDCACreation(Int_t i) {fModeDCACreation = i;} void SetModeDistCreation(Int_t i) {fModeDistCreation = i;} void SetEtaMax(Float_t f) {fEtaMax = f;} void SetPtRange(Float_t f1, Float_t f2) {fPtRange[0] = f1; fPtRange[1] = f2;} void SetPtRangeEff(Float_t f1, Float_t f2) {fPtRangeEff[0] = f1; fPtRangeEff[1] = f2;} /* * --------------------------------------------------------------------------------- * Setter - Pass-Through * --------------------------------------------------------------------------------- */ void SetCentralityBinMax(Int_t d) {fHelper->SetCentralityBinMax(d);} void SetVertexZMax(Float_t f) {fHelper->SetVertexZMax(f);} void SetRapidityMax(Float_t f) {fHelper->SetRapidityMax(f);} void SetMinTrackLengthMC(Float_t f) {fHelper->SetMinTrackLengthMC(f);} void SetNSigmaMaxCdd(Float_t f) {fHelper->SetNSigmaMaxCdd(f);} void SetNSigmaMaxCzz(Float_t f) {fHelper->SetNSigmaMaxCzz(f);} void SetParticleSpecies(AliPID::EParticleType pid) {fHelper->SetParticleSpecies(pid);} void SetControlParticleSpecies(Int_t pdgCode, Bool_t isNeutral, const Char_t *name) { fHelper->SetControlParticleSpecies(pdgCode, isNeutral, name); } void SetNSigmaMaxTPC(Float_t f) {fHelper->SetNSigmaMaxTPC(f);} void SetNSigmaMaxTOF(Float_t f) {fHelper->SetNSigmaMaxTOF(f);} void SetMinPtForTOFRequired(Float_t f) {fHelper->SetMinPtForTOFRequired(f);} /////////////////////////////////////////////////////////////////////////////////// private: AliAnalysisTaskNetParticle(const AliAnalysisTaskNetParticle&); // not implemented AliAnalysisTaskNetParticle& operator=(const AliAnalysisTaskNetParticle&); // not implemented /* * --------------------------------------------------------------------------------- * Setup/Reset Methods - private * --------------------------------------------------------------------------------- */ /** Setup Event */ Int_t SetupEvent(); /** Setup ESD Event */ Int_t SetupESDEvent(); /** Setup MC Event */ Int_t SetupMCEvent(); /** Reset Event */ void ResetEvent(); /* * --------------------------------------------------------------------------------- * Members - private * --------------------------------------------------------------------------------- */ AliAnalysisNetParticleHelper *fHelper; //! Helper class AliAnalysisNetParticleEffCont *fEffCont; //! Efficiency and Contamination class AliAnalysisNetParticleDCA *fDCA; //! DCA class AliAnalysisNetParticleDistribution *fDist; //! Distributions class // --- OutLists ---------------------------------------------------------- TList *fOutList; //! Ptr to output data container TList *fOutListEff; //! Ptr to output data container - efficiency TList *fOutListCont; //! Ptr to output data container - contamination TList *fOutListDCA; //! Ptr to output data container - DCA TList *fOutListQA; //! Ptr to QA output data container // --- ESD only ---------------------------------------------------------- AliESDEvent *fESD; //! Ptr to ESD event AliESDInputHandler *fESDHandler; //! Ptr to ESD Handler AliESDtrackCuts *fESDTrackCutsBase; //! ESD cuts - base settings AliESDtrackCuts *fESDTrackCuts; //! ESD cuts AliESDtrackCuts *fESDTrackCutsBkg; //! ESD cuts for Bkg AliESDtrackCuts *fESDTrackCutsEff; //! ESD cuts for efficiency determination -> larger pt Range // --- Flags ------------------------------------------------------------- Bool_t fIsMC; // Is MC event Int_t fESDTrackCutMode; // ESD track cut mode : 0 = clean | 1 dirty Int_t fModeEffCreation ; // Correction creation mode : 1 = on | 0 = off Int_t fModeDCACreation; // DCA creation mode : 1 = on | 0 = off Int_t fModeDistCreation; // Dist creation mode : 1 = on | 0 = off // --- MC only ----------------------------------------------------------- AliMCEvent *fMCEvent; //! Ptr to MC event AliStack *fMCStack; //! Ptr to MC stack // ----------------------------------------------------------------------- THnSparseF *fHnQA; // THnSparseF : tracks for QA Float_t fUseQATHnSparse; // Usage of THnSparse for QA // ----------------------------------------------------------------------- Float_t fEtaMax; // Max, absolut eta Float_t *fPtRange; // Array of pt [min,max] Float_t *fPtRangeEff; // Array of pt [min,max] for efficiency // ----------------------------------------------------------------------- ClassDef(AliAnalysisTaskNetParticle, 1); }; #endif