]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG0/multPbPb/AliAnalysisMultPbCentralitySelector.cxx
Glauber files for real data (Alberica)
[u/mrichter/AliRoot.git] / PWG0 / multPbPb / AliAnalysisMultPbCentralitySelector.cxx
1 // AliAnalysisMultPbCentralitySelector 
2 // Interface class to centrality estimators for the PbPb
3 // track-multiplicity analysis
4 // Michele Floris, CERN
5
6 #include "AliAnalysisMultPbCentralitySelector.h"
7 #include "AliESDtrackCuts.h"
8 #include "AliESDCentrality.h"
9 #include "AliESDEvent.h"
10 #include "AliLog.h"
11 #include <iostream>
12
13 using namespace std;
14
15
16 // FIXME: bookkeep here all parameters of centrality estimate (files, estimator, selected bin...)
17
18 ClassImp(AliAnalysisMultPbCentralitySelector)
19
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
25
26   //  cout << "Tracks " << trackCuts->CountAcceptedTracks(aEsd) << endl;
27   
28
29   if(fIsMC || fUseMultRange) {
30     if(!trackCuts){
31       AliFatal("Track cuts object is invalid");
32     }
33     //    cout << "Hey!" << endl;
34     
35     if (fCentrBin == -1) return kTRUE;
36     if (trackCuts->CountAcceptedTracks(aEsd) < fMultMin) return kFALSE;
37     if (trackCuts->CountAcceptedTracks(aEsd) > fMultMax) return kFALSE;                                                
38   }
39
40   AliESDCentrality *centrality = aEsd->GetCentrality();
41   if(!centrality && !fUseMultRange) {
42     AliFatal("Centrality object not available"); 
43   }
44   else {
45     Int_t centrBin = centrality->GetCentralityClass5(fCentrEstimator.Data()) ;    
46     if (centrBin != fCentrBin && fCentrBin != -1 && !fUseMultRange) return kFALSE;
47   }
48
49   //  cout << "Selected" << endl;
50   
51
52   return kTRUE;
53
54 }
55
56 void AliAnalysisMultPbCentralitySelector::Print(Option_t* option ) const {
57   // Print some information
58
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);
66   }
67   if ( fIsMC ) {    
68     Printf("Running on Monte Carlo, actual cut was on tracks multiplicity [%d - %d]",fMultMin,fMultMax);    
69   } 
70   
71 }