#ifndef ALIANALYSISTASKSEIMPPARRES_H #define ALIANALYSISTASKSEIMPPARRES_H /* Copyright(c) 1998-2010, ALICE Experiment at CERN, All rights reserved. * * See cxx source for full Copyright notice */ //************************************************************************* // Class AliAnalysisTaskSEImpParRes // AliAnalysisTaskSE for the study of the track impact parameter resolution // // Authors: xianbao.yuan@pd.infn.it, andrea.dainese@pd.infn.it // //************************************************************************* class TList; class TH1F; #include "AliAnalysisTaskSE.h" class AliAnalysisTaskSEImpParRes : public AliAnalysisTaskSE { public: AliAnalysisTaskSEImpParRes(); AliAnalysisTaskSEImpParRes(const char *name); virtual ~AliAnalysisTaskSEImpParRes(); // Implementation of interface methods virtual void UserCreateOutputObjects(); virtual void UserExec(Option_t *option); virtual void Terminate(Option_t *option); void SetReadMC(Bool_t readMC) { fReadMC=readMC; return; } void SetSelectedPdg(Int_t pdg) { fSelectedPdg=pdg; return; } void SetUseDiamond(Bool_t use=kFALSE) { fUseDiamond=use; return; } void SetSkipTrack(Bool_t skip=kFALSE) { fSkipTrack=skip; return; } void SetMultiplicityRange(Int_t min,Int_t max) { fMinMult=min; fMaxMult=max; } private: AliAnalysisTaskSEImpParRes(const AliAnalysisTaskSEImpParRes &source); AliAnalysisTaskSEImpParRes& operator=(const AliAnalysisTaskSEImpParRes& source); Int_t PtBin(Double_t pt) const; Int_t SinThetaBin(Double_t sintheta) const; Double_t Getd0HistRange(Int_t i) const; Int_t PhiBin(Double_t phi) const; Int_t ClusterTypeOnITSLayer(AliESDtrack *t,Int_t layer) const; Bool_t fReadMC; // flag used to switch on/off MC reading Int_t fSelectedPdg; // only for a given particle species (-1 takes all tracks) Bool_t fUseDiamond; // use diamond constraint in primary vertex Bool_t fSkipTrack; // redo primary vertex for each track Int_t fMinMult; // minimum multiplicity Int_t fMaxMult; // maximum multiplicity TList *fOutputitspureSARec; //! ITS StandAlone: with track in vtx TList *fOutputitspureSASkip; //! ITS StandAlone: w/o track in vtx TList *fOutputallPointRec; //! ITS+TPC: 6 ITScls, with track in vtx TList *fOutputallPointSkip; //! ITS+TPC: 6 ITScls, w/o track in vtx TList *fOutputpartPointRec; //! ITS+TPC: >=1 SPD, with track in vtx TList *fOutputpartPointSkip; //! ITS+TPC: >=1 SPD, w/o track in vtx TList *fOutputonepointSPDRec; //! At least one point on SPD, with track in vtx TList *fOutputonepointSPDSkip;//! At least one point on SPD w/o track in vtx TList *fOutputpostvTracRec; //! ITS+TPC: >=1 SPD, positives, with track in vtx TList *fOutputpostvTracSkip; //! ITS+TPC: >=1 SPD, positives, w/o track in vtx TList *fOutputnegtvTracRec; //! ITS+TPC: >=1 SPD, negatives, with track in vtx TList *fOutputnegtvTracSkip; //! ITS+TPC: >=1 SPD, negatives, w/o track in vtx TList *fOutputpullAllpointRec; //! pull ITS+TPC: 6 ITScls, with track in vtx TList *fOutputpullAllpointSkip;//! pull ITS+TPC: 6 ITScls, w/o track in vtx TList *fOutputOnlyRefitRec; //! ITS+TPC: any ITScls, with track in vtx TList *fOutputOnlyRefitSkip; //! ITS+TPC: any ITScls, w/o track in vtx TList *fOutputSinThetaRec; //! ITS+TPC: TH2F(pt,sintheta), with track in vtx TList *fOutputSinThetaSkip; //! ITS+TPC: TH2F(pt,sintheta), w/o track in vtx TList *fOutputallPointTrue; //! TList *fOutputpostvTracTrue; //! TList *fOutputnegtvTracTrue; //! TList *fOutputpullAllpointTrue; //! TList *fOutputphiAllpointSkip; //! TList *fOutputphiPostvtracSkip; //! TList *fOutputphiNegtvtracSkip; //! TList *fOutputclusterTypeSPD01Skip; //! TList *fOutputclusterTypeSPD02Skip; //! TList *fOutputclusterTypeSPD03Skip; //! TList *fOutputclusterTypeSPD11Skip; //! TList *fOutputclusterTypeSPD12Skip; //! TList *fOutputclusterTypeSPD13Skip; //! TList *fOutputparticlePID; //! TList *fOutputPt; //! TH1F *fNentries; //! histogram of number of events TH1F *fEstimVtx; //! vertex resolution Bool_t IsSelectedCentrality(AliESDEvent *esd) const; ClassDef(AliAnalysisTaskSEImpParRes,5); // AliAnalysisTaskSE for the study of the impact parameter resolution }; #endif