1 #ifndef ALIANALYSISMULTPBCENTRALITYSELECTOR_H
2 #define ALIANALYSISMULTPBCENTRALITYSELECTOR_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 //-------------------------------------------------------------------------
8 // AliAnalysisMultPbCentralitySelector
10 // This class selects collision candidates from data runs, applying selection cuts on triggers
11 // and background rejection based on the content of the ESD
13 // Author: Michele Floris, CERN
14 //-------------------------------------------------------------------------
16 #include <AliAnalysisCuts.h>
25 class AliTriggerAnalysis;
26 class AliAnalysisTaskSE;
27 class AliESDtrackCuts;
29 class AliAnalysisMultPbCentralitySelector : public AliAnalysisCuts
33 AliAnalysisMultPbCentralitySelector() : fIsMC (0), fCentrEstimator(""), fCentrBin(-1), fMultMin(0), fMultMax(1000000), fFile1(""), fFile2(""), fUseMultRange(kFALSE), fUseV0CutRange(kFALSE), fUseCorrV0(kTRUE), fUseSPDOuterRange(kFALSE) {;}
34 virtual ~AliAnalysisMultPbCentralitySelector(){}
36 // AliAnalysisCuts interface
37 virtual UInt_t GetSelectionMask(const TObject* obj) { return (UInt_t) IsCentralityBinSelected((AliESDEvent*) obj, NULL); }
38 virtual Bool_t IsSelected(TList*) { AliFatal("Not implemented"); return kFALSE; }
39 virtual Bool_t IsSelected(TObject* obj) {return (UInt_t) IsCentralityBinSelected ( (AliESDEvent*) obj, NULL);}
41 Bool_t IsCentralityBinSelected(AliESDEvent* aEsd, AliESDtrackCuts * trackCuts);
43 void SetIsMC(Bool_t flag = kTRUE, Int_t multMin = 0, Int_t multMax=10000) { fIsMC = flag; fMultMin = multMin; fMultMax = multMax; }
44 void SetMultRange(Int_t multMin = 0, Int_t multMax=10000) { fMultMin = multMin; fMultMax = multMax; }
45 void SetUseMultRange(Bool_t flag = kTRUE) {fUseMultRange = flag;}
46 void SetUseV0Range(Bool_t flag = kTRUE) {fUseV0CutRange = flag;}
47 void SetUseCorrV0(Bool_t flag) { fUseCorrV0 = flag;}
48 void SetUseSPDOuterRange(Bool_t flag = kTRUE) {fUseSPDOuterRange = flag;}
49 void SetCentralityEstimator(const char * estimator) { fCentrEstimator = estimator; }
50 void SetCentralityBin(Int_t bin) { fCentrBin = bin; }
51 void SetCentrTaskFiles(const char * file1, const char * file2) { fFile1 = file1; fFile2 = file2; }
54 Float_t GetCorrV0(const AliESDEvent* esd, float &v0CorrResc) const ;
55 virtual void Print(Option_t* option = "") const ;
56 virtual Long64_t Merge(TCollection* list){list->GetEntries();return 0;}
59 Bool_t fIsMC; // flag if MC is analyzed
60 TString fCentrEstimator; // Centrality estimator for AliESDCentrality
61 Int_t fCentrBin; // centrality bin to be selected
62 Float_t fMultMin ; // Minimum multiplicity, because on MC we cut on tracks rather than on the estimator . Also used for other estimators
63 Float_t fMultMax ; // Maximum multiplicity, because on MC we cut on tracks rather than on the estimator . Also used for other estimators
64 TString fFile1; // file used by centrality task. Set here for bookkeeping
65 TString fFile2; // file used by centrality task. Set here for bookkeeping
66 Bool_t fUseMultRange; // if true, use track bins rather than multiplicity estimator
67 Bool_t fUseV0CutRange; // if true, use v0 range rather than multiplicity estimator
68 Bool_t fUseCorrV0; // linearized V0
69 Bool_t fUseSPDOuterRange; // if true, use SPD outer cluster range rather than multiplicity estimator
71 ClassDef(AliAnalysisMultPbCentralitySelector, 3)
74 AliAnalysisMultPbCentralitySelector(const AliAnalysisMultPbCentralitySelector&); // not implemented
75 AliAnalysisMultPbCentralitySelector& operator=(const AliAnalysisMultPbCentralitySelector&); // not implemented