1 // AliAnalysisMultPbCentralitySelector
2 // Interface class to centrality estimators for the PbPb
3 // track-multiplicity analysis
4 // Michele Floris, CERN
6 #include "AliAnalysisMultPbCentralitySelector.h"
7 #include "AliESDtrackCuts.h"
8 #include "AliESDCentrality.h"
9 #include "AliESDEvent.h"
16 // FIXME: bookkeep here all parameters of centrality estimate (files, estimator, selected bin...)
18 ClassImp(AliAnalysisMultPbCentralitySelector)
20 Bool_t AliAnalysisMultPbCentralitySelector::IsCentralityBinSelected(AliESDEvent* aEsd, AliESDtrackCuts * trackCuts) {
22 // Centrality selection
23 // On MC cuts on the number of good tracks,
24 // On data cuts using AliESDCentrality and the cut requested in ntracks
26 // cout << "Tracks " << trackCuts->CountAcceptedTracks(aEsd) << endl;
29 if(fIsMC || fUseMultRange) {
31 AliFatal("Track cuts object is invalid");
33 // cout << "Hey!" << endl;
35 if (fCentrBin == -1) return kTRUE;
36 if (trackCuts->CountAcceptedTracks(aEsd) < fMultMin) return kFALSE;
37 if (trackCuts->CountAcceptedTracks(aEsd) > fMultMax) return kFALSE;
40 AliESDCentrality *centrality = aEsd->GetCentrality();
41 if(!centrality && !fUseMultRange) {
42 AliFatal("Centrality object not available");
45 Int_t centrBin = centrality->GetCentralityClass5(fCentrEstimator.Data()) ;
46 if (centrBin != fCentrBin && fCentrBin != -1 && !fUseMultRange) return kFALSE;
49 // cout << "Selected" << endl;
56 void AliAnalysisMultPbCentralitySelector::Print(Option_t* option ) const {
57 // Print some information
59 Printf("AliAnalysisMultPbCentralitySelector [%s]", option);
60 Printf(" - Centrality estimator [%s]",fCentrEstimator.Data());
61 Printf(" - Centrality bin [%d]",fCentrBin);
62 Printf(" - File1 used for centrality estimate: [%s]", fFile1.Data());
63 Printf(" - File2 used for centrality estimate: [%s]", fFile2.Data());
64 if ( fUseMultRange ) {
65 Printf ("Using multiplicity range [%d - %d]",fMultMin,fMultMax);
68 Printf("Running on Monte Carlo, actual cut was on tracks multiplicity [%d - %d]",fMultMin,fMultMax);