Update in LHC code
authorsjena <sjena@cern.ch>
Fri, 21 Mar 2014 11:05:59 +0000 (12:05 +0100)
committersjena <sjena@cern.ch>
Fri, 21 Mar 2014 11:05:59 +0000 (12:05 +0100)
PWGCF/Correlations/DPhi/AliAnalysisTaskLongRangeCorrelations.cxx
PWGCF/Correlations/DPhi/AliAnalysisTaskLongRangeCorrelations.h
PWGCF/Correlations/macros/AddTaskLongRangeCorrelations.C

index d0b297e..a636af0 100644 (file)
@@ -13,7 +13,7 @@
  * about the suitability of this software for any purpose. It is          *
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
-// $Id: AliAnalysisTaskLongRangeCorrelations.cxx 359 2013-10-29 15:39:09Z cmayer $
+// $Id: AliAnalysisTaskLongRangeCorrelations.cxx 371 2013-11-30 19:23:47Z cmayer $
 
 #include <numeric>
 #include <functional>
@@ -61,6 +61,7 @@ AliAnalysisTaskLongRangeCorrelations::AliAnalysisTaskLongRangeCorrelations(const
   , fSelectPrimaryMCDataParticles(0)
   , fNMin(-1)
   , fNMax(-1)
+  , fDeltaEta(-1)
   , fnBinsCent( 220), fnBinsPt(400), fnBinsPhi(4),              fnBinsEta(120)
   , fxMinCent( -5.0), fxMinPt( 0.0), fxMinPhi( 0.0),            fxMinEta(-1.5)
   , fxMaxCent(105.0), fxMaxPt( 4.0), fxMaxPhi( TMath::TwoPi()), fxMaxEta( 1.5) {
@@ -292,6 +293,8 @@ TString AliAnalysisTaskLongRangeCorrelations::GetOutputListName() const {
     listName += TString::Format("_nMin%d", fNMin);
   if (-1 != fNMax)
     listName += TString::Format("_nMax%d", fNMax);
+  if (fDeltaEta >= 0)
+    listName += TString::Format("_deltaEta%02.0f", 10*fDeltaEta);
   return listName;
 }
 
@@ -484,19 +487,31 @@ void AliAnalysisTaskLongRangeCorrelations::CalculateMoments(TString prefix,
                                                            TObjArray* tracks2,
                                                            Double_t vertexZ,
                                                            Double_t weight) {
-  const Long64_t nc1(tracks1->GetEntriesFast());
-  if (fNMin != -1 && nc1 < fNMin) return;
-  if (fNMax != -1 && nc1 > fNMax) return;
+  THnSparse* hN1ForThisEvent(ComputeNForThisEvent(tracks1, "hN1", vertexZ));
+
+  hN1ForThisEvent->GetAxis(1)->SetRangeUser( fDeltaEta-0.10001,  fDeltaEta+0.09999);
+  TH1 *hTemp = hN1ForThisEvent->Projection(0);
+  const Long64_t ncPlus = Long64_t(hTemp->GetEntries());
+  delete hTemp;
+
+  hN1ForThisEvent->GetAxis(1)->SetRangeUser(-fDeltaEta-0.10001, -fDeltaEta+0.09999);
+  hTemp = hN1ForThisEvent->Projection(0);
+  const Long64_t ncMinus = Long64_t(hTemp->GetEntries());
+  delete hTemp;
 
-  const Long64_t nc2(tracks1->GetEntriesFast());
-  if (fNMin != -1 && nc2 < fNMin) return;
-  if (fNMax != -1 && nc2 > fNMax) return;
+  // restore full axis range
+  hN1ForThisEvent->GetAxis(1)->SetRange(0, -1);
+
+  if (fNMin != -1 && ncPlus < fNMin) return;
+  if (fNMax != -1 && ncPlus > fNMax) return;
+  
+  if (fNMin != -1 && ncMinus < fNMin) return;
+  if (fNMax != -1 && ncMinus > fNMax) return;
 
   AliTHn* hN1(dynamic_cast<AliTHn*>(fOutputList->FindObject(prefix+"histMoment1PhiEta_1")));
   if (NULL == hN1) return;
 
   // <n_1>
-  THnSparse* hN1ForThisEvent(ComputeNForThisEvent(tracks1, "hN1", vertexZ));
   AddTHnSparseToAliTHn(hN1,hN1ForThisEvent, weight); 
 //   hN1->GetGrid(0)->GetGrid()->Add(hN1ForThisEvent, weight);
 
index 1920a84..3a2e300 100644 (file)
@@ -1,5 +1,5 @@
 // -*- C++ -*-
-// $Id: AliAnalysisTaskLongRangeCorrelations.h 341 2013-09-30 15:59:19Z cmayer $
+// $Id: AliAnalysisTaskLongRangeCorrelations.h 371 2013-11-30 19:23:47Z cmayer $
 #ifndef _AliAnalysisTaskLongRangeCorrelations_H_
 #define _AliAnalysisTaskLongRangeCorrelations_H_
 
@@ -64,9 +64,10 @@ public:
     fSelectPrimaryMCDataParticles = flagMCData;
   }
 
-  void SetRangeN(Int_t nMin, Int_t nMax) {
+  void SetRangeN(Int_t nMin, Int_t nMax, Double_t deltaEta) {
     fNMin = nMin;
     fNMax = nMax;
+    fDeltaEta = deltaEta;
   }
 
   TString GetOutputListName() const;
@@ -111,6 +112,7 @@ private:
   Int_t                fSelectPrimaryMCDataParticles; // 0: no, 1: yes, -1: only non-primary particles
   Int_t                fNMin;
   Int_t                fNMax;
+  Double_t             fDeltaEta;
   // histogram data
   Int_t    fnBinsCent, fnBinsPt, fnBinsPhi, fnBinsEta;
   Double_t fxMinCent,  fxMinPt,  fxMinPhi,  fxMinEta;
index 8b0c17d..79684a3 100644 (file)
@@ -1,11 +1,13 @@
 // -*- c++ -*-
-// $Id: AddTaskLongRangeCorrelations.C 341 2013-09-30 15:59:19Z cmayer $
+// $Id: AddTaskLongRangeCorrelations.C 371 2013-11-30 19:23:47Z cmayer $
 
 const Double_t centMin[] = {  0,   0,  10,  20,  30,  40,  50,  60,  70,  80 };
 const Double_t centMax[] = {  5,  10,  20,  30,  40,  50,  60,  70,  80, 100 };
 const Int_t    nMin[]    = { -1, 120,  70,  35,  20,   5,   0,   0,   0,  -1 };
 const Int_t    nMax[]    = { -1, 400, 275, 200, 145, 100,  68,  46,  30,  -1 };
 
+const Double_t deltaEta[] = { -1, 0, 0.2, 0.4, 0.6, 1.4 };
+
 AliAnalysisTaskLongRangeCorrelations*
 AddTaskLongRangeCorrelations(Int_t  trackFilter  = 128, // TPC only
                             Bool_t runMixing    = !kTRUE,
@@ -35,23 +37,27 @@ AddTaskLongRangeCorrelations(Int_t  trackFilter  = 128, // TPC only
   outputFileName += ":PWGCFEbyE.outputLongRangeCorrelations.root";
 
   for (Int_t i=0; i<sizeof(centMin)/sizeof(Double_t); ++i) {
-    taskLRC = new AliAnalysisTaskLongRangeCorrelations("TaskLongRangeCorrelations");
-    taskLRC->SetRunMixing(runMixing);
-    taskLRC->SetMixingTracks(mixingTracks);
-    taskLRC->SetTrackFilter(trackFilter);
-    taskLRC->SetCentralityRange(centMin[i], centMax[i]);
-    taskLRC->SetPtRange(ptMin, 1e20);
-    taskLRC->SetPhiRange(phiMin, phiMax);
-    taskLRC->SelectCollisionCandidates(AliVEvent::kMB);
-    taskLRC->SetSelectPrimaryMCParticles(selPrimMC, selPrimMCData);
-    taskLRC->SetRangeN(nMin[i], nMax[i]);
-
-    listLRC = mgr->CreateContainer(taskLRC->GetOutputListName(), TList::Class(),
-                                  AliAnalysisManager::kOutputContainer,
-                                  outputFileName.Data());
-    mgr->AddTask(taskLRC);
-    mgr->ConnectInput(taskLRC,  0, mgr->GetCommonInputContainer());
-    mgr->ConnectOutput(taskLRC, 1, listLRC);
+    size_t jMin = (nMin[i] < 0) ? 0 : 1;
+    size_t jMax = (nMin[i] < 0) ? 1 : sizeof(deltaEta)/sizeof(Double_t);
+    for (Int_t j=jMin; j<jMax; ++j) {      
+      taskLRC = new AliAnalysisTaskLongRangeCorrelations("TaskLongRangeCorrelations");
+      taskLRC->SetRunMixing(runMixing);
+      taskLRC->SetMixingTracks(mixingTracks);
+      taskLRC->SetTrackFilter(trackFilter);
+      taskLRC->SetCentralityRange(centMin[i], centMax[i]);
+      taskLRC->SetPtRange(ptMin, 1e20);
+      taskLRC->SetPhiRange(phiMin, phiMax);
+      taskLRC->SelectCollisionCandidates(AliVEvent::kMB);
+      taskLRC->SetSelectPrimaryMCParticles(selPrimMC, selPrimMCData);
+      taskLRC->SetRangeN(nMin[i], nMax[i], deltaEta[j]);
+      Printf("%f %f %d %d %f", centMin[i], centMax[i], nMin[i], nMax[i], deltaEta[j]);
+      listLRC = mgr->CreateContainer(taskLRC->GetOutputListName(), TList::Class(),
+                                    AliAnalysisManager::kOutputContainer,
+                                    outputFileName.Data());
+      mgr->AddTask(taskLRC);
+      mgr->ConnectInput(taskLRC,  0, mgr->GetCommonInputContainer());
+      mgr->ConnectOutput(taskLRC, 1, listLRC);
+    }
   }
 
   return taskLRC;