]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
fix from Salvatore
authorloizides <loizides@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 3 Sep 2012 12:57:11 +0000 (12:57 +0000)
committerloizides <loizides@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 3 Sep 2012 12:57:11 +0000 (12:57 +0000)
PWGJE/EMCALJetTasks/AliAnalysisTaskRhoAverage.cxx
PWGJE/EMCALJetTasks/AliAnalysisTaskRhoAverage.h

index 7ef498733e8e888290b2bb208dfbe6298b861a87..0fd320d5da5be914bf6121eb9100909887123865 100644 (file)
@@ -20,7 +20,8 @@ ClassImp(AliAnalysisTaskRhoAverage)
 AliAnalysisTaskRhoAverage::AliAnalysisTaskRhoAverage() : 
   AliAnalysisTaskRhoBase("AliAnalysisTaskRhoAverage"),
   fRhoType(0),
-  fNExclLeadPart(0)
+  fNExclLeadPart(0),
+  fUseMedian(kFALSE)
 {
   // Default constructor.
 }
@@ -29,7 +30,8 @@ AliAnalysisTaskRhoAverage::AliAnalysisTaskRhoAverage() :
 AliAnalysisTaskRhoAverage::AliAnalysisTaskRhoAverage(const char *name, Bool_t histo) :
   AliAnalysisTaskRhoBase(name, histo),
   fRhoType(0),
-  fNExclLeadPart(0)
+  fNExclLeadPart(0),
+  fUseMedian(kFALSE)
 {
   // Constructor.
 }
@@ -42,8 +44,8 @@ Bool_t AliAnalysisTaskRhoAverage::Run()
   static Double_t rhovec[9999];
   Int_t NpartAcc = 0;
 
-  Int_t   maxPartIds[] = {-1, -1};
-  Float_t maxPartPts[] = { 0,  0};
+  Int_t   maxPartIds[] = {0, 0};
+  Float_t maxPartPts[] = {0, 0};
 
   // push all jets within selected acceptance into stack
 
@@ -111,7 +113,7 @@ Bool_t AliAnalysisTaskRhoAverage::Run()
     }
  
     if (fNExclLeadPart < 2) {
-      maxPartIds[1] = -1;
+      maxPartIds[1] = 0;
       maxPartPts[1] = 0;
     }
   }
@@ -169,9 +171,22 @@ Bool_t AliAnalysisTaskRhoAverage::Run()
     }
   }
 
-  Double_t rho = TMath::Median(NpartAcc, rhovec);
+  Double_t rho = 0;
+
+  if (fUseMedian)
+    rho = TMath::Median(NpartAcc, rhovec);
+  else
+    rho = TMath::Mean(NpartAcc, rhovec);
  
-  Double_t area = (fTrackMaxEta - fTrackMinEta) * (fTrackMaxPhi - fTrackMinPhi);
+  Float_t maxEta = fTrackMaxEta;
+  Float_t minEta = fTrackMinEta;
+  Float_t maxPhi = fTrackMaxPhi;
+  Float_t minPhi = fTrackMinPhi;
+
+  if (maxPhi > TMath::Pi() * 2) maxPhi = TMath::Pi() * 2;
+  if (minPhi < 0) minPhi = 0;
+
+  Double_t area = (maxEta - minEta) * (maxPhi - minPhi);
 
   if (area > 0) {
     rho *= NpartAcc / area;
index e85682ce413da845602e21a988af56667ce228b5..96cf100064a862577fc15c243be5dd90921269d4 100644 (file)
@@ -14,16 +14,18 @@ class AliAnalysisTaskRhoAverage : public AliAnalysisTaskRhoBase {
 
   void             SetRhoType(Int_t t)             { fRhoType       = t    ; }
   void             SetExcludeLeadPart(UInt_t n)    { fNExclLeadPart = n    ; }
+  void             SetUseMedian(Bool_t b=kTRUE)    { fUseMedian     = b    ; }
   
  protected:
   Bool_t           Run();
 
   Int_t            fRhoType       ;// rho type: 0 = charged+neutral, 1 = charged, 2 = neutral
   UInt_t           fNExclLeadPart ;// number of leading particles to be excluded from the median calculation
+  Bool_t           fUseMedian     ;// whether or not use the median to calculate rho (mean is used if false)
 
   AliAnalysisTaskRhoAverage(const AliAnalysisTaskRhoAverage&);             // not implemented
   AliAnalysisTaskRhoAverage& operator=(const AliAnalysisTaskRhoAverage&);  // not implemented
   
-  ClassDef(AliAnalysisTaskRhoAverage, 3); // Rho task
+  ClassDef(AliAnalysisTaskRhoAverage, 4); // Rho task
 };
 #endif