#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; class AliTriggerConfiguration; class AliVTrack; class AliVVertex; class AliESDtrackCuts; #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 SetIsAOD(Bool_t isAOD) { fIsAOD=isAOD; 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; } void SetCheckSDDIsIn(Int_t check=0) { fCheckSDDIsIn=check; } void SetTriggerClass(TString tclass="") { fTriggerClass=tclass; } void SetOCDBPath(TString path="") { fOCDBPath=path; } void SetESDtrackCuts(AliESDtrackCuts *esdCuts) {fESDtrackCuts=esdCuts;} 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 IsTrackSelected(AliVTrack *t,AliVVertex *v, AliESDtrackCuts *cuts) const; Bool_t fIsAOD; // flag to read AOD or ESD (default is ESD) 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 Int_t fCheckSDDIsIn; // check for ITSSDD in the trigger cluster: 0 no check; !=0 check from OCDB TString fTriggerClass; // trigger class to be inspected AliTriggerConfiguration *fTrigConfig; // trigger configuration (read from OCDB) TString fOCDBPath; // to the OCDB AliESDtrackCuts *fESDtrackCuts; // track cuts 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 *fOutputparticlePID; //! TList *fOutputWithTrackCuts; //! TList *fOutputPt; //! TH1F *fNentries; //! histogram of number of events TH1F *fEstimVtx; //! vertex resolution Bool_t IsSelectedCentrality(AliESDEvent *esd) const; ClassDef(AliAnalysisTaskSEImpParRes,8); // AliAnalysisTaskSE for the study of the impact parameter resolution }; #endif