]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Adding safety check for missing matrix in GetTrackByTrackCorrection; Adding possibili...
authormiweber <miweber@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sat, 2 Feb 2013 11:13:47 +0000 (11:13 +0000)
committermiweber <miweber@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sat, 2 Feb 2013 11:13:47 +0000 (11:13 +0000)
PWGCF/EBYE/BalanceFunctions/AliAnalysisTaskBFPsi.cxx
PWGCF/EBYE/BalanceFunctions/AliBalancePsi.cxx
PWGCF/EBYE/BalanceFunctions/AliBalancePsi.h
PWGCF/EBYE/macros/AddTaskBalancePsiCentralityTrain.C
PWGCF/EBYE/macros/configBalanceFunctionPsiAnalysis.C

index 66ac8a1f78c4644b79891acc9df9133266d4ce06..1b0c569fe4a6d6e32b18d80dc5fcbe38daeb16e1 100755 (executable)
@@ -906,8 +906,8 @@ Double_t AliAnalysisTaskBFPsi::GetEventPlane(AliVEvent *event){
 //========================correction=============================//\r
 Double_t AliAnalysisTaskBFPsi::GetTrackbyTrackCorrectionMatrix( Double_t vEta, Double_t vPhi, \r
                                                                Double_t vPt, Short_t vCharge, Double_t gCentrality) {\r
-  // -- Get efficiency correction of particle dependent on (eta, phi, pt, charge, centrality)  \r
-  \r
+  // -- Get efficiency correction of particle dependent on (eta, phi, pt, charge, centrality) \r
+\r
   Double_t correction = 1.;\r
   //Double_t dimBin[3] = {vEta, vPhi, vPt, gCentrality}; // eta, phi, pt, centrality\r
  \r
@@ -924,6 +924,11 @@ Double_t AliAnalysisTaskBFPsi::GetTrackbyTrackCorrectionMatrix( Double_t vEta, D
       gCentralityInt = i;\r
     }\r
   }\r
+\r
+  // safety check if correction matrix is available --> return correction = 1.\r
+  if(!fHistMatrixCorrectionPlus[gCentralityInt-1] || !fHistMatrixCorrectionPlus[gCentralityInt-1]){\r
+    return 1.;\r
+  }\r
     \r
   if (vCharge > 0) {\r
     correction = fHistMatrixCorrectionPlus[gCentralityInt-1]->GetBinContent(fHistMatrixCorrectionPlus[gCentralityInt-1]->GetBin(binEta, binPt, binPhi));\r
index 3442a5181db5a73ee4faafb844c812b5bbd3e16c..5f37c6141ae4b0db36e14fc129f1d693dcfc0af6 100644 (file)
@@ -64,6 +64,7 @@ AliBalancePsi::AliBalancePsi() :
   fHistConversionafter(0),
   fHistPsiMinusPhi(0),
   fPsiInterval(15.),
+  fDeltaEtaMax(2.0),
   fHBTCut(kFALSE),
   fConversionCut(kFALSE),
   fEventClass("EventPlane"){
@@ -90,6 +91,7 @@ AliBalancePsi::AliBalancePsi(const AliBalancePsi& balance):
   fHistConversionafter(balance.fHistConversionafter),
   fHistPsiMinusPhi(balance.fHistPsiMinusPhi),
   fPsiInterval(balance.fPsiInterval),
+  fDeltaEtaMax(balance.fDeltaEtaMax),
   fHBTCut(balance.fHBTCut),
   fConversionCut(balance.fConversionCut),
   fEventClass("EventPlane"){
@@ -197,7 +199,7 @@ void AliBalancePsi::InitHistograms() {
   const Int_t kNDeltaEtaBins = 80;
   Double_t deltaEtaBins[kNDeltaEtaBins+1];
   for(Int_t i = 0; i < kNDeltaEtaBins+1; i++)
-    deltaEtaBins[i] = -2.0 + i * 0.05;
+    deltaEtaBins[i] = - fDeltaEtaMax + i * 2 * fDeltaEtaMax / (Double_t)kNDeltaEtaBins;
   iBinPair[1]       = kNDeltaEtaBins;
   dBinsPair[1]      = deltaEtaBins;
   axisTitlePair[1]  = "#Delta#eta"; 
index f2473e596b43fc3db549380531621bd7837bf2ce..0891b66e2df82279b71ff79319d6cb2e1ed2e1d0 100644 (file)
@@ -29,8 +29,8 @@ class TH1D;
 class TH2D;
 class TH3D;
 
-const Int_t kTrackVariablesSingle = 2;       // track variables in histogram (centrality, phi-Psi2, eta, phi, pTtrig)
-const Int_t kTrackVariablesPair   = 5;       // track variables in histogram (centrality, phi-Psi2, dEta, dPhi, pTtrig, ptAssociated)
+const Int_t kTrackVariablesSingle = 2;       // track variables in histogram (event class, pTtrig)
+const Int_t kTrackVariablesPair   = 5;       // track variables in histogram (event class, dEta, dPhi, pTtrig, ptAssociated)
 const TString gBFPsiAnalysisType[ANALYSIS_TYPES] = {"y","eta","qlong","qout","qside","qinv","phi"};
 
 class AliBalancePsi : public TObject {
@@ -57,6 +57,7 @@ class AliBalancePsi : public TObject {
   void SetShuffle(Bool_t shuffle) {fShuffle = shuffle;}
   void SetCentralityInterval(Double_t cStart, Double_t cStop)  { fCentStart = cStart; fCentStop = cStop;};
   void SetEventClass(TString receivedEventClass){ fEventClass = receivedEventClass; } 
+  void SetDeltaEtaMax(Double_t receivedDeltaEtaMax){ fDeltaEtaMax = receivedDeltaEtaMax; }
 
   void InitHistograms(void);
 
@@ -181,11 +182,12 @@ class AliBalancePsi : public TObject {
   TH2D *fHistPsiMinusPhi;//
 
   Double_t fPsiInterval;// interval in Psi-phi1
+  Double_t fDeltaEtaMax;// maximum delta eta for output THnSparse
 
   Bool_t fHBTCut;//HBT cut
   Bool_t fConversionCut;//conversion cut
 
-    TString fEventClass;
+  TString fEventClass;
 
   AliBalancePsi & operator=(const AliBalancePsi & ) {return *this;}
 
index e9895c2f71df3822f7d6f9451cd6b7168532a5f2..fedbca2b5ff73b78e9a74471e2aaa9bffa36d064 100644 (file)
@@ -28,6 +28,7 @@ AliAnalysisTaskBFPsi *AddTaskBalancePsiCentralityTrain(Double_t centrMin=0.,
                                                       Double_t ptMax=1.5,\r
                                                       Double_t etaMin=-0.8,\r
                                                       Double_t etaMax=0.8,\r
+                                                      Double_t deltaEtaMax=2.0,\r
                                                       Double_t maxTPCchi2 = -1, \r
                                                       Int_t minNClustersTPC = -1,\r
                                                       Bool_t kUsePID = kFALSE,\r
@@ -73,19 +74,19 @@ AliAnalysisTaskBFPsi *AddTaskBalancePsiCentralityTrain(Double_t centrMin=0.,
   AliBalancePsi *bfm = 0;  // mixing Balance function object\r
 \r
   if (analysisType=="ESD"){\r
-    bf  = GetBalanceFunctionObject("ESD",centralityEstimator,centrMin,centrMax,kFALSE,bHBTcut,bConversionCut,fArgEventClass);\r
-    if(gRunShuffling) bfs = GetBalanceFunctionObject("ESD",centralityEstimator,centrMin,centrMax,kTRUE,bHBTcut,bConversionCut,fArgEventClass);\r
-    if(gRunMixing)    bfm = GetBalanceFunctionObject("ESD",centralityEstimator,centrMin,centrMax,kFALSE,bHBTcut,bConversionCut,fArgEventClass);\r
+    bf  = GetBalanceFunctionObject("ESD",centralityEstimator,centrMin,centrMax,kFALSE,bHBTcut,bConversionCut,fArgEventClass,deltaEtaMax);\r
+    if(gRunShuffling) bfs = GetBalanceFunctionObject("ESD",centralityEstimator,centrMin,centrMax,kTRUE,bHBTcut,bConversionCut,fArgEventClass,deltaEtaMax);\r
+    if(gRunMixing)    bfm = GetBalanceFunctionObject("ESD",centralityEstimator,centrMin,centrMax,kFALSE,bHBTcut,bConversionCut,fArgEventClass,deltaEtaMax);\r
   }\r
   else if (analysisType=="AOD"){\r
-    bf  = GetBalanceFunctionObject("AOD",centralityEstimator,centrMin,centrMax,kFALSE,bHBTcut,bConversionCut,fArgEventClass);\r
-    if(gRunShuffling) bfs = GetBalanceFunctionObject("AOD",centralityEstimator,centrMin,centrMax,kTRUE,bHBTcut,bConversionCut,fArgEventClass);\r
-    if(gRunMixing)    bfm = GetBalanceFunctionObject("AOD",centralityEstimator,centrMin,centrMax,kFALSE,bHBTcut,bConversionCut,fArgEventClass);\r
+    bf  = GetBalanceFunctionObject("AOD",centralityEstimator,centrMin,centrMax,kFALSE,bHBTcut,bConversionCut,fArgEventClass,deltaEtaMax);\r
+    if(gRunShuffling) bfs = GetBalanceFunctionObject("AOD",centralityEstimator,centrMin,centrMax,kTRUE,bHBTcut,bConversionCut,fArgEventClass,deltaEtaMax);\r
+    if(gRunMixing)    bfm = GetBalanceFunctionObject("AOD",centralityEstimator,centrMin,centrMax,kFALSE,bHBTcut,bConversionCut,fArgEventClass,deltaEtaMax);\r
   }\r
   else if (analysisType=="MC"){\r
-    bf  = GetBalanceFunctionObject("MC",centralityEstimator,centrMin,centrMax,kFALSE,bHBTcut,bConversionCut,fArgEventClass);\r
-    if(gRunShuffling) bfs = GetBalanceFunctionObject("MC",centralityEstimator,centrMin,centrMax,kTRUE,bHBTcut,bConversionCut,fArgEventClass);\r
-    if(gRunMixing)    bfm = GetBalanceFunctionObject("MC",centralityEstimator,centrMin,centrMax,kFALSE,bHBTcut,bConversionCut,fArgEventClass);\r
+    bf  = GetBalanceFunctionObject("MC",centralityEstimator,centrMin,centrMax,kFALSE,bHBTcut,bConversionCut,fArgEventClass,deltaEtaMax);\r
+    if(gRunShuffling) bfs = GetBalanceFunctionObject("MC",centralityEstimator,centrMin,centrMax,kTRUE,bHBTcut,bConversionCut,fArgEventClass,deltaEtaMax);\r
+    if(gRunMixing)    bfm = GetBalanceFunctionObject("MC",centralityEstimator,centrMin,centrMax,kFALSE,bHBTcut,bConversionCut,fArgEventClass,deltaEtaMax);\r
   }\r
   else{\r
     ::Error("AddTaskBF", "analysis type NOT known.");\r
index ad6ff20bbb5f4cb17f4988f99223427375fd8bb4..8fbe6b214eeb28756bc9b4826f5ae8476e5df765 100644 (file)
@@ -6,7 +6,8 @@ AliBalancePsi *GetBalanceFunctionObject(const char* analysisLevel = "ESD",
                                        Bool_t bShuffle = kFALSE,\r
                                        Bool_t bHBTCut = kFALSE,\r
                                        Bool_t bConversionCut = kFALSE,\r
-                                       TString fArgEventClass = "EventPlane") {\r
+                                       TString fArgEventClass = "EventPlane",\r
+                                       Double_t deltaEtaMax = 2.0) {\r
   //Function to setup the AliBalance object and return it\r
   AliBalancePsi *gBalance = new AliBalancePsi();\r
   gBalance->SetAnalysisLevel(analysisLevel);\r
@@ -16,6 +17,7 @@ AliBalancePsi *GetBalanceFunctionObject(const char* analysisLevel = "ESD",
   if(centralityName) gBalance->SetCentralityIdentifier(centralityName);\r
   gBalance->SetCentralityInterval(centrMin,centrMax);\r
   gBalance->SetEventClass(fArgEventClass);\r
+  gBalance->SetDeltaEtaMax(deltaEtaMax);\r
 \r
   //Set all analyses separately\r
   //Rapidity\r