]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Adding the option to analyze events vs multiplicity (for pp)
authorpchrista <pchrista@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 11 Apr 2013 12:45:25 +0000 (12:45 +0000)
committerpchrista <pchrista@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 11 Apr 2013 12:45:25 +0000 (12:45 +0000)
PWGCF/EBYE/BalanceFunctions/AliAnalysisTaskBFPsi.cxx
PWGCF/EBYE/BalanceFunctions/AliAnalysisTaskBFPsi.h
PWGCF/EBYE/BalanceFunctions/AliBalancePsi.h
PWGCF/EBYE/macros/AddTaskBalancePsiCentralityTrain.C

index 1a0aa7ef58f09b51fba9b2d47445af6933d3d309..3c01eb5ceb8c9a62f02ecdeb646fe5cb0fd3390f 100755 (executable)
@@ -604,10 +604,12 @@ void AliAnalysisTaskBFPsi::UserExec(Option_t *) {
   Double_t lMultiplicityVar = GetRefMultiOrCentrality( eventMain );\r
 \r
   // get the reaction plane\r
-  gReactionPlane = GetEventPlane(eventMain);\r
-  fHistEventPlane->Fill(gReactionPlane,lMultiplicityVar);\r
-  if(gReactionPlane < 0){\r
-    return;\r
+  if(fEventClass != "Multiplicity") {\r
+    gReactionPlane = GetEventPlane(eventMain);\r
+    fHistEventPlane->Fill(gReactionPlane,lMultiplicityVar);\r
+    if(gReactionPlane < 0){\r
+      return;\r
+    }\r
   }\r
   \r
   // get the accepted tracks in main event\r
@@ -616,12 +618,8 @@ void AliAnalysisTaskBFPsi::UserExec(Option_t *) {
 \r
   //multiplicity cut (used in pp)\r
   fHistNumberOfAcceptedTracks->Fill(gNumberOfAcceptedTracks,lMultiplicityVar);\r
-  if(fUseMultiplicity) {\r
-    if((gNumberOfAcceptedTracks < fNumberOfAcceptedTracksMin)||(gNumberOfAcceptedTracks > fNumberOfAcceptedTracksMax))\r
-      return;\r
-  }\r
 \r
-  // store charges of all accepted tracks, shuffle and reassign (two extra loops!)\r
+  // store charges of all accepted tracks,shuffle and reassign(two extra loops)\r
   TObjArray* tracksShuffled = NULL;\r
   if(fRunShuffling){\r
     tracksShuffled = GetShuffledTracks(tracksMain,lMultiplicityVar);\r
@@ -697,6 +695,7 @@ Double_t AliAnalysisTaskBFPsi::IsEventAccepted(AliVEvent *event){
   \r
   Bool_t isSelectedMain = kTRUE;\r
   Float_t gCentrality = -1.;\r
+  Float_t gRefMultiplicity = -1.;\r
   TString gAnalysisLevel = fBalance->GetAnalysisLevel();\r
 \r
   fHistEventStats->Fill(1,gCentrality); //all events\r
@@ -775,6 +774,10 @@ Double_t AliAnalysisTaskBFPsi::IsEventAccepted(AliVEvent *event){
        gCentrality = -1.;\r
       }\r
     }\r
+\r
+    //Multiplicity stuff \r
+    if(fUseMultiplicity) \r
+      gRefMultiplicity = GetRefMultiOrCentrality(event);\r
     \r
     // Event Vertex MC\r
     if(gAnalysisLevel == "MC"){\r
@@ -793,20 +796,35 @@ Double_t AliAnalysisTaskBFPsi::IsEventAccepted(AliVEvent *event){
          //gVertexArray.At(0),\r
          //gVertexArray.At(1),\r
          //gVertexArray.At(2));\r
-         fHistEventStats->Fill(3,gCentrality); //events with a proper vertex\r
+         if(fUseMultiplicity) \r
+           fHistEventStats->Fill(3,gRefMultiplicity); //events with a proper vertex\r
+         else \r
+           fHistEventStats->Fill(3,gCentrality); //events with a proper vertex\r
          if(TMath::Abs(gVertexArray.At(0)) < fVxMax) {\r
            if(TMath::Abs(gVertexArray.At(1)) < fVyMax) {\r
              if(TMath::Abs(gVertexArray.At(2)) < fVzMax) {\r
-               fHistEventStats->Fill(4,gCentrality); //analayzed events\r
+               if(fUseMultiplicity) \r
+                 fHistEventStats->Fill(4,gRefMultiplicity);//analyzed events\r
+               else \r
+                 fHistEventStats->Fill(4,gCentrality); //analyzed events\r
                fHistVx->Fill(gVertexArray.At(0));\r
                fHistVy->Fill(gVertexArray.At(1));\r
                fHistVz->Fill(gVertexArray.At(2),gCentrality);\r
                \r
                // take only events inside centrality class\r
-               if((fImpactParameterMin < gCentrality) && (fImpactParameterMax > gCentrality)){\r
-                 fHistEventStats->Fill(5,gCentrality); //events with correct centrality\r
-                 return gCentrality;       \r
-               }//centrality class\r
+               if(fUseCentrality) {\r
+                 if((fImpactParameterMin < gCentrality) && (fImpactParameterMax > gCentrality)){\r
+                   fHistEventStats->Fill(5,gCentrality); //events with correct centrality\r
+                   return gCentrality;     \r
+                 }//centrality class\r
+               }\r
+               // take events only within the same multiplicity class\r
+               else if(fUseMultiplicity) {\r
+                 if((gRefMultiplicity > fNumberOfAcceptedTracksMin)||(gRefMultiplicity < fNumberOfAcceptedTracksMax)) {\r
+                   fHistEventStats->Fill(5,gRefMultiplicity); //events with correct multiplicity\r
+                   return gRefMultiplicity;\r
+                 }\r
+               }//multiplicity range\r
              }//Vz cut\r
            }//Vy cut\r
          }//Vx cut\r
@@ -823,20 +841,35 @@ Double_t AliAnalysisTaskBFPsi::IsEventAccepted(AliVEvent *event){
        vertex->GetCovarianceMatrix(fCov);\r
        if(vertex->GetNContributors() > 0) {\r
          if(fCov[5] != 0) {\r
-           fHistEventStats->Fill(3,gCentrality); //events with a proper vertex\r
+           if(fUseMultiplicity) \r
+             fHistEventStats->Fill(3,gRefMultiplicity); //proper vertex\r
+           else \r
+             fHistEventStats->Fill(3,gCentrality); //proper vertex\r
            if(TMath::Abs(vertex->GetX()) < fVxMax) {\r
              if(TMath::Abs(vertex->GetY()) < fVyMax) {\r
                if(TMath::Abs(vertex->GetZ()) < fVzMax) {\r
-                 fHistEventStats->Fill(4,gCentrality); //analyzed events\r
+                 if(fUseMultiplicity) \r
+                   fHistEventStats->Fill(4,gRefMultiplicity);//analyzed events\r
+                 else \r
+                   fHistEventStats->Fill(4,gCentrality); //analyzed events\r
                  fHistVx->Fill(vertex->GetX());\r
                  fHistVy->Fill(vertex->GetY());\r
                  fHistVz->Fill(vertex->GetZ(),gCentrality);\r
                  \r
                  // take only events inside centrality class\r
-                 if((gCentrality > fCentralityPercentileMin) && (gCentrality < fCentralityPercentileMax)){\r
-                   fHistEventStats->Fill(5,gCentrality); //events with correct centrality\r
-                   return gCentrality;         \r
-                 }//centrality class\r
+                 if(fUseCentrality) {\r
+                   if((gCentrality > fCentralityPercentileMin) && (gCentrality < fCentralityPercentileMax)){\r
+                     fHistEventStats->Fill(5,gCentrality); //events with correct centrality\r
+                     return gCentrality;               \r
+                   }//centrality class\r
+                 }\r
+                 // take events only within the same multiplicity class\r
+                 else if(fUseMultiplicity) {\r
+                   if((gRefMultiplicity > fNumberOfAcceptedTracksMin)||(gRefMultiplicity < fNumberOfAcceptedTracksMax)) {\r
+                     fHistEventStats->Fill(5,gRefMultiplicity); //events with correct multiplicity\r
+                     return gRefMultiplicity;\r
+                   }\r
+                 }//multiplicity range\r
                }//Vz cut\r
              }//Vy cut\r
            }//Vx cut\r
@@ -859,9 +892,8 @@ Double_t AliAnalysisTaskBFPsi::GetRefMultiOrCentrality(AliVEvent *event){
   Float_t gCentrality = -1.;\r
   Double_t fMultiplicity = -100.;\r
   TString gAnalysisLevel = fBalance->GetAnalysisLevel();\r
-  if(fEventClass == "Centrality"){\r
-    \r
 \r
+  if(fEventClass == "Centrality"){\r
     if(gAnalysisLevel == "AOD") { //centrality in AOD header\r
       AliAODHeader *header = (AliAODHeader*) event->GetHeader();\r
       if(header){\r
@@ -894,12 +926,17 @@ Double_t AliAnalysisTaskBFPsi::GetRefMultiOrCentrality(AliVEvent *event){
       fMultiplicity = fESDtrackCuts->GetReferenceMultiplicity(gESDEvent, AliESDtrackCuts::kTrackletsITSTPC,0.5);\r
     }//AliESDevent cast\r
   }\r
-  if(fEventClass=="Multiplicity"&&gAnalysisLevel != "ESD"){\r
+  else if(fEventClass=="Multiplicity"&&gAnalysisLevel == "AOD"){\r
     AliAODHeader *header = (AliAODHeader*) event->GetHeader();\r
     if(header){\r
       fMultiplicity = header->GetRefMultiplicity();\r
     }//AOD header\r
   }\r
+  else if(fEventClass=="Multiplicity"&&gAnalysisLevel == "MC") {\r
+    AliMCEvent* gMCEvent = dynamic_cast<AliMCEvent*>(event);\r
+    fMultiplicity = gMCEvent->GetNumberOfPrimaries();\r
+  }\r
+\r
   Double_t lReturnVal = -100;\r
   if(fEventClass=="Multiplicity"){\r
     lReturnVal = fMultiplicity;\r
index c0322f031adf44719e89a3ccb5cd4f5d2ab51937..44c9e3fcfba741874ea53a68dfb6a408e318ba6d 100755 (executable)
@@ -115,7 +115,7 @@ class AliAnalysisTaskBFPsi : public AliAnalysisTaskSE {
   }\r
 \r
   //multiplicity\r
-  void SetMultiplicityRange(Int_t min, Int_t max) {\r
+  void SetMultiplicityRange(Double_t min, Double_t max) {\r
     fUseMultiplicity = kTRUE;\r
     fNumberOfAcceptedTracksMin = min;\r
     fNumberOfAcceptedTracksMax = max;}\r
@@ -242,8 +242,8 @@ class AliAnalysisTaskBFPsi : public AliAnalysisTaskSE {
   Double_t fImpactParameterMax;//impact parameter max (used for MC)\r
 \r
   Bool_t fUseMultiplicity;//use the multiplicity cuts\r
-  Int_t fNumberOfAcceptedTracksMin;//min. number of number of accepted tracks (used for the multiplicity dependence study - pp)\r
-  Int_t fNumberOfAcceptedTracksMax;//max. number of number of accepted tracks (used for the multiplicity dependence study - pp)\r
+  Double_t fNumberOfAcceptedTracksMin;//min. number of number of accepted tracks (used for the multiplicity dependence study - pp)\r
+  Double_t fNumberOfAcceptedTracksMax;//max. number of number of accepted tracks (used for the multiplicity dependence study - pp)\r
   TH2F *fHistNumberOfAcceptedTracks;//hisot to store the number of accepted tracks\r
 \r
   Bool_t fUseOfflineTrigger;//Usage of the offline trigger selection\r
index 55208de18fd06c73d574cdb46e12306a0206fc5f..d8fae6d3553dc0d63e8bb7e52e8c0fa472818d34 100644 (file)
@@ -1,4 +1,4 @@
- #ifndef ALIBALANCEPSI_H
+#ifndef ALIBALANCEPSI_H
 #define ALIBALANCEPSI_H
 /*  See cxx source for full Copyright notice */
 
index 054712b9ff724122891e17c632051786e72683b1..5d61051b56f56593a61e71071816d8723482b3e5 100644 (file)
@@ -34,6 +34,7 @@ AliAnalysisTaskBFPsi *AddTaskBalancePsiCentralityTrain(Double_t centrMin=0.,
                                                       Bool_t bResonancesCut = kFALSE,\r
                                                       Bool_t bHBTcut = kFALSE,\r
                                                       Bool_t bConversionCut = kFALSE,\r
+                                                      \r
                                                       Bool_t bMomentumDifferenceCut = kFALSE,\r
                                                       Int_t AODfilterBit = 128,\r
                                                       Bool_t bCentralTrigger = kFALSE,\r
@@ -104,6 +105,10 @@ AliAnalysisTaskBFPsi *AddTaskBalancePsiCentralityTrain(Double_t centrMin=0.,
   \r
   //Event characteristics scheme\r
   taskBF->SetEventClass(fArgEventClass);\r
+  if(fArgEventClass = "Multiplicity")\r
+    taskBF->SetMultiplicityRange(centrMin,centrMax);\r
+  else \r
+    taskBF->SetCentralityPercentileRange(centrMin,centrMax);\r
   \r
   taskBF->SetAnalysisObject(bf);\r
   if(gRunShuffling) taskBF->SetShufflingObject(bfs);\r
@@ -115,7 +120,6 @@ AliAnalysisTaskBFPsi *AddTaskBalancePsiCentralityTrain(Double_t centrMin=0.,
     }\r
   }\r
 \r
-  taskBF->SetCentralityPercentileRange(centrMin,centrMax);\r
   if(analysisType == "ESD") {\r
     AliESDtrackCuts *trackCuts = GetTrackCutsObject(ptMin,ptMax,etaMin,etaMax,maxTPCchi2,DCAxy,DCAz,minNClustersTPC);\r
     taskBF->SetAnalysisCutObject(trackCuts);\r