]>
Commit | Line | Data |
---|---|---|
52d405b5 | 1 | // AliAnalysisMultPbCentralitySelector |
2 | // Interface class to centrality estimators for the PbPb | |
3 | // track-multiplicity analysis | |
4 | // Michele Floris, CERN | |
5 | ||
a23f7c97 | 6 | #include "AliAnalysisMultPbCentralitySelector.h" |
e0376287 | 7 | #include "AliESDtrackCuts.h" |
8 | #include "AliESDCentrality.h" | |
9 | #include "AliESDEvent.h" | |
10 | #include "AliLog.h" | |
3b8cbf2d | 11 | #include "AliESDVZERO.h" |
2bbfd8c6 | 12 | #include <iostream> |
a23f7c97 | 13 | |
2bbfd8c6 | 14 | using namespace std; |
52d405b5 | 15 | |
16 | ||
52d405b5 | 17 | |
a23f7c97 | 18 | ClassImp(AliAnalysisMultPbCentralitySelector) |
19 | ||
e0376287 | 20 | Bool_t AliAnalysisMultPbCentralitySelector::IsCentralityBinSelected(AliESDEvent* aEsd, AliESDtrackCuts * trackCuts) { |
21 | ||
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 | |
2bbfd8c6 | 25 | |
26 | // cout << "Tracks " << trackCuts->CountAcceptedTracks(aEsd) << endl; | |
3b8cbf2d | 27 | /// cout << "CENTRALITY " << fUseV0CutRange << " " << fUseMultRange << " " << fMultMin << " " << fMultMax << endl; |
2bbfd8c6 | 28 | |
29 | ||
3b8cbf2d | 30 | if (fUseV0CutRange) { |
31 | ||
32 | AliESDVZERO* esdV0 = aEsd->GetVZEROData(); | |
33 | Float_t multV0A=esdV0->GetMTotV0A(); | |
34 | Float_t multV0C=esdV0->GetMTotV0C(); | |
35 | Float_t multV0 = multV0A+multV0C; | |
36 | // cout << "V0 Mult: " << multV0 << " " << fMultMin << " " << fMultMax << endl; | |
37 | ||
38 | if (multV0 < fMultMin) return kFALSE; | |
39 | if (multV0 > fMultMax) return kFALSE; | |
40 | // cout << "ok" << endl; | |
41 | ||
42 | } | |
43 | else if(fIsMC || fUseMultRange) { | |
e0376287 | 44 | if(!trackCuts){ |
45 | AliFatal("Track cuts object is invalid"); | |
46 | } | |
eef42d18 | 47 | // cout << "Hey! " << fCentrBin << " " << fMultMin <<" - " << fMultMax << endl; |
2bbfd8c6 | 48 | |
49 | if (fCentrBin == -1) return kTRUE; | |
e0376287 | 50 | if (trackCuts->CountAcceptedTracks(aEsd) < fMultMin) return kFALSE; |
51 | if (trackCuts->CountAcceptedTracks(aEsd) > fMultMax) return kFALSE; | |
eef42d18 | 52 | } else { |
e0376287 | 53 | |
eef42d18 | 54 | AliESDCentrality *centrality = aEsd->GetCentrality(); |
55 | if(!centrality && !fUseMultRange) { | |
56 | AliFatal("Centrality object not available"); | |
57 | } | |
58 | else { | |
59 | Int_t centrBin = centrality->GetCentralityClass5(fCentrEstimator.Data()) ; | |
60 | if (centrBin != fCentrBin && fCentrBin != -1 && !fUseMultRange) return kFALSE; | |
61 | } | |
e0376287 | 62 | } |
63 | ||
2bbfd8c6 | 64 | // cout << "Selected" << endl; |
65 | ||
66 | ||
e0376287 | 67 | return kTRUE; |
68 | ||
69 | } | |
70 | ||
71 | void AliAnalysisMultPbCentralitySelector::Print(Option_t* option ) const { | |
72 | // Print some information | |
73 | ||
2bbfd8c6 | 74 | Printf("AliAnalysisMultPbCentralitySelector [%s]", option); |
e0376287 | 75 | Printf(" - Centrality estimator [%s]",fCentrEstimator.Data()); |
2bbfd8c6 | 76 | Printf(" - Centrality bin [%d]",fCentrBin); |
77 | Printf(" - File1 used for centrality estimate: [%s]", fFile1.Data()); | |
78 | Printf(" - File2 used for centrality estimate: [%s]", fFile2.Data()); | |
79 | if ( fUseMultRange ) { | |
3b8cbf2d | 80 | Printf ("Using multiplicity range [%1.1f - %1.1f]",fMultMin,fMultMax); |
81 | } | |
82 | if ( fUseV0CutRange ) { | |
83 | Printf ("Using V0 range [%1.1f - %1.1f]",fMultMin,fMultMax); | |
2bbfd8c6 | 84 | } |
e0376287 | 85 | if ( fIsMC ) { |
3b8cbf2d | 86 | Printf("Running on Monte Carlo, actual cut was on tracks multiplicity [%1.1f - %1.1f]",fMultMin,fMultMax); |
e0376287 | 87 | } |
88 | ||
89 | } |