]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Added function for finer centrality binning
authormfloris <mfloris@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 4 Apr 2011 10:25:02 +0000 (10:25 +0000)
committermfloris <mfloris@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 4 Apr 2011 10:25:02 +0000 (10:25 +0000)
PWG2/SPECTRA/LambdaK0PbPb/AliAnalysisCentralitySelector.cxx
PWG2/SPECTRA/LambdaK0PbPb/AliAnalysisCentralitySelector.h

index 2ad2bd77a2c2379ef27449ffcde95cbae1d70f1c..7a47e70d1ef9f8a2ad1a08096dc61024376854e4 100644 (file)
@@ -55,7 +55,7 @@ Bool_t AliAnalysisCentralitySelector::IsCentralityBinSelected(AliESDEvent* aEsd,
     //    cout << "ok" << endl;
 
   }
- else if(fUseMultRange) {
 else if(fUseMultRange) {
     if(!trackCuts){
       AliFatal("Track cuts object is invalid");
     }
@@ -65,9 +65,16 @@ Bool_t AliAnalysisCentralitySelector::IsCentralityBinSelected(AliESDEvent* aEsd,
     if (fCentrBin == -1 && !fUseMultRange) return kTRUE;
     if (ntracks < fMultMin) return kFALSE;
     if (ntracks > fMultMax) return kFALSE;                                                    
-  } else {
+  } 
+  else if(fUsePercentile) {
+    AliCentrality *centrality = (AliCentrality*) aEsd->GetCentrality(); 
+    return centrality->IsEventInCentralityClass(fMultMin, fMultMax, fCentrEstimator.Data()) ;
+
+  }
+  
+  else {
 
-   AliCentrality *centrality = (AliCentrality*) aEsd->GetCentrality(); // FIXME: change to alicentrality?
+   AliCentrality *centrality = (AliCentrality*) aEsd->GetCentrality();
     if(!centrality && !fUseMultRange) {
       AliFatal("Centrality object not available"); 
     }
index 2049a7ea42d68bf473ab1716d3a0a8443d2efaff..fcb5020ed7df09fd346b8e66bbfd0694fd44c2d9 100644 (file)
@@ -30,7 +30,7 @@ class AliAnalysisCentralitySelector : public AliAnalysisCuts
 {
 public:
 
-  AliAnalysisCentralitySelector() : fIsMC (0), fCentrEstimator(""), fCentrBin(-1), fMultMin(0), fMultMax(1000000), fUseMultRange(kFALSE), fUseV0CutRange(kFALSE), fUseSPDOuterRange(kFALSE) {;}
+  AliAnalysisCentralitySelector() : AliAnalysisCuts("CentralityCuts", "Centrality Cuts"), fIsMC (0), fCentrEstimator(""), fCentrBin(-1), fMultMin(0), fMultMax(1000000), fUseMultRange(kFALSE), fUseV0CutRange(kFALSE), fUseSPDOuterRange(kFALSE), fUsePercentile(kFALSE) {;}
   virtual ~AliAnalysisCentralitySelector(){}
     
   // AliAnalysisCuts interface
@@ -46,7 +46,8 @@ public:
   void SetUseV0Range(Bool_t flag = kTRUE) {fUseV0CutRange = flag;}
   void SetUseSPDOuterRange(Bool_t flag = kTRUE) {fUseSPDOuterRange = flag;}
   void SetCentralityEstimator(const char * estimator) { fCentrEstimator = estimator; }
-  void SetCentralityBin(Int_t bin) { fCentrBin = bin; }
+  void SetCentralityBin(Int_t bin) { fCentrBin = bin; } // uses 10% percentiles
+  void SetCentralityBin(Float_t min, Float_t max) { fMultMin = min; fMultMax = max; fUsePercentile=kTRUE;}
   virtual void Print(Option_t* option = "") const ;
   virtual Long64_t Merge(TCollection* list){list->GetEntries();return 0;}
   
@@ -59,6 +60,7 @@ protected:
   Bool_t fUseMultRange; // if true, use track bins rather than multiplicity estimator
   Bool_t fUseV0CutRange; // if true, use v0 range rather than multiplicity estimator
   Bool_t fUseSPDOuterRange; // if true, use SPD outer cluster range rather than multiplicity estimator
+  Bool_t fUsePercentile; // if true, use the specified centrality percentile
 
   ClassDef(AliAnalysisCentralitySelector, 2)