#ifndef ALIANALYSISTASKTRIGGEREDBF_CXX #define ALIANALYSISTASKTRIGGEREDBF_CXX // Analysis task for the TriggeredBF code // Authors: Panos Cristakoglou@cern.ch, m.weber@cern.ch class TList; class TH1F; class TH2F; class TF1; class AliBalanceTriggered; class AliESDtrackCuts; #include "AliAnalysisTaskSE.h" #include "AliBalanceTriggered.h" class AliAnalysisTaskTriggeredBF : public AliAnalysisTaskSE { public: AliAnalysisTaskTriggeredBF(const char *name = "AliAnalysisTaskTriggeredBF"); virtual ~AliAnalysisTaskTriggeredBF(); virtual void UserCreateOutputObjects(); virtual void UserExec(Option_t *option); virtual void UserExecMix(Option_t*); virtual void FinishTaskOutput(); virtual void Terminate(Option_t *); void SetAnalysisObject(AliBalanceTriggered *const analysis) { fBalance = analysis; } void SetShufflingObject(AliBalanceTriggered *const analysisShuffled) { fRunShuffling = kTRUE; fShuffledBalance = analysisShuffled; } void SetVertexDiamond(Double_t vx, Double_t vy, Double_t vz) { fVxMax = vx; fVyMax = vy; fVzMax = vz; } //==============AOD analysis==============// void SetAODtrackCutBit(Int_t bit){ nAODtrackCutBit = bit; } void SetKinematicsCutsAOD(Double_t ptmin, Double_t ptmax, Double_t etamin, Double_t etamax){ fPtMin = ptmin; fPtMax = ptmax; fEtaMin = etamin; fEtaMax = etamax; } void SetExtraDCACutsAOD(Double_t DCAxy, Double_t DCAz){ fDCAxyCut = DCAxy; fDCAzCut = DCAz; } void SetExtraTPCCutsAOD(Double_t maxTPCchi2, Int_t minNClustersTPC){ fTPCchi2Cut = maxTPCchi2; fNClustersTPCCut = minNClustersTPC; } //Centrality void SetCentralityEstimator(const char* centralityEstimator) {fCentralityEstimator = centralityEstimator;} const char* GetCentralityEstimator(void) {return fCentralityEstimator;} void SetCentralityPercentileRange(Double_t min, Double_t max) { fUseCentrality = kTRUE; fCentralityPercentileMin=min; fCentralityPercentileMax=max; } void SetImpactParameterRange(Double_t min, Double_t max) { fUseCentrality = kTRUE; fImpactParameterMin=min; fImpactParameterMax=max; } //multiplicity void SetMultiplicityRange(Int_t min, Int_t max) { fUseMultiplicity = kTRUE; fNumberOfAcceptedTracksMin = min; fNumberOfAcceptedTracksMax = max;} void UseOfflineTrigger() {fUseOfflineTrigger = kTRUE;} private: AliBalanceTriggered *fBalance; //TriggeredBF object Bool_t fRunShuffling;//run shuffling or not AliBalanceTriggered *fShuffledBalance; //TriggeredBF object (shuffled) TList *fList; //fList object TList *fListTriggeredBF; //fList object TList *fListTriggeredBFS; //fList object TList *fHistListPIDQA; //! list of histograms TH1F *fHistEventStats; //event stats TH2F *fHistCentStats; //centrality stats TH1F *fHistTriggerStats; //trigger stats TH1F *fHistTrackStats; //Track filter bit stats TH1F *fHistVx; //x coordinate of the primary vertex TH1F *fHistVy; //y coordinate of the primary vertex TH1F *fHistVz; //z coordinate of the primary vertex TH2F *fHistClus;// TH2F *fHistDCA;// TH1F *fHistChi2;// TH1F *fHistPt;// TH1F *fHistEta;// TH1F *fHistPhi;// TH1F *fHistPhiBefore;// TH1F *fHistPhiAfter;// TH2F *fHistV0M;// TH2F *fHistRefTracks;// TString fCentralityEstimator; //"V0M","TRK","TKL","ZDC","FMD" Bool_t fUseCentrality;//use the centrality (PbPb) or not (pp) Double_t fCentralityPercentileMin;//centrality percentile min Double_t fCentralityPercentileMax;//centrality percentile max Double_t fImpactParameterMin;//impact parameter min (used for MC) Double_t fImpactParameterMax;//impact parameter max (used for MC) Bool_t fUseMultiplicity;//use the multiplicity cuts Int_t fNumberOfAcceptedTracksMin;//min. number of number of accepted tracks (used for the multiplicity dependence study - pp) Int_t fNumberOfAcceptedTracksMax;//max. number of number of accepted tracks (used for the multiplicity dependence study - pp) TH1F *fHistNumberOfAcceptedTracks;//hisot to store the number of accepted tracks Bool_t fUseOfflineTrigger;//Usage of the offline trigger selection Double_t fVxMax;//vxmax Double_t fVyMax;//vymax Double_t fVzMax;//vzmax Int_t nAODtrackCutBit;//track cut bit from track selection (only used for AODs) Double_t fPtMin;//only used for AODs Double_t fPtMax;//only used for AODs Double_t fEtaMin;//only used for AODs Double_t fEtaMax;//only used for AODs Double_t fDCAxyCut;//only used for AODs Double_t fDCAzCut;//only used for AODs Double_t fTPCchi2Cut;//only used for AODs Int_t fNClustersTPCCut;//only used for AODs AliAnalysisTaskTriggeredBF(const AliAnalysisTaskTriggeredBF&); // not implemented AliAnalysisTaskTriggeredBF& operator=(const AliAnalysisTaskTriggeredBF&); // not implemented ClassDef(AliAnalysisTaskTriggeredBF, 1); // example of analysis }; #endif