]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGHF/hfe/AliAnalysisTaskFlowTPCTOFEPSP.cxx
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGHF / hfe / AliAnalysisTaskFlowTPCTOFEPSP.cxx
index be3043b9dc20cf65058f23da85df27e03e43d643..f79e24826be3f302d98e9ade65eb156c95583483 100644 (file)
@@ -115,6 +115,8 @@ AliAnalysisTaskSE(),
   fPrecisionPhi(0.001),
   fUseMCReactionPlane(kFALSE),
   fSP(kFALSE),
+  fVariableMultiplicity(0),
+  fTriggerUsed(0),
   fMCPID(kFALSE),
   fNoPID(kFALSE),
   fChi2OverNDFCut(3.0),
@@ -228,6 +230,8 @@ AliAnalysisTaskFlowTPCTOFEPSP:: AliAnalysisTaskFlowTPCTOFEPSP(const char *name)
   fPrecisionPhi(0.001),
   fUseMCReactionPlane(kFALSE),
   fSP(kFALSE),
+  fVariableMultiplicity(0),
+  fTriggerUsed(0),  
   fMCPID(kFALSE),
   fNoPID(kFALSE),
   fChi2OverNDFCut(3.0),
@@ -363,6 +367,8 @@ AliAnalysisTaskFlowTPCTOFEPSP::AliAnalysisTaskFlowTPCTOFEPSP(const AliAnalysisTa
   fPrecisionPhi(ref.fPrecisionPhi),
   fUseMCReactionPlane(ref.fUseMCReactionPlane),
   fSP(ref.fSP),
+  fVariableMultiplicity(ref.fVariableMultiplicity),
+  fTriggerUsed(ref.fTriggerUsed),
   fMCPID(ref.fMCPID),
   fNoPID(ref.fNoPID),
   fChi2OverNDFCut(ref.fChi2OverNDFCut),
@@ -494,6 +500,8 @@ void AliAnalysisTaskFlowTPCTOFEPSP::Copy(TObject &o) const {
   target.fPrecisionPhi = fPrecisionPhi;
   target.fUseMCReactionPlane = fUseMCReactionPlane;
   target.fSP = fSP;
+  target.fVariableMultiplicity = fVariableMultiplicity;
+  target.fTriggerUsed = fTriggerUsed;
   target.fMCPID = fMCPID;
   target.fNoPID = fNoPID;
   target.fChi2OverNDFCut = fChi2OverNDFCut;
@@ -849,7 +857,7 @@ void AliAnalysisTaskFlowTPCTOFEPSP::UserCreateOutputObjects()
   Double_t binLimAngle[nBinsAngle+1];
   for(Int_t i=0; i<=nBinsAngle; i++) {
     binLimAngle[i]=(Double_t)minAngle + (maxAngle-minAngle)/nBinsAngle*(Double_t)i ;
-    AliDebug(2,Form("bin phi is %f for %d",binLimPhi[i],i));
+    AliDebug(2,Form("bin phi is %f for %d",binLimAngle[i],i));
   }
 
   Int_t nBinsCharge = 2;
@@ -1379,6 +1387,46 @@ void AliAnalysisTaskFlowTPCTOFEPSP::UserExec(Option_t */*option*/)
     }
   }
 
+  /////////////////////
+  // Trigger selection
+  ////////////////////
+
+  UInt_t isEventSelected = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
+  if(fTriggerUsed==0){
+    
+    // MB, semi-central and central
+    
+    if ( !((isEventSelected & AliVEvent::kCentral) |
+          (isEventSelected & AliVEvent::kSemiCentral) |
+          (isEventSelected & AliVEvent::kMB)) ) return;
+    
+  }
+  else if(fTriggerUsed==1){
+    
+    // semi-central Ionut
+
+    if ( !((isEventSelected & AliVEvent::kCentral) |
+          (isEventSelected & AliVEvent::kSemiCentral) |
+          (isEventSelected & AliVEvent::kMB)) ) return;
+    
+    Bool_t isMB = (InputEvent()->GetTriggerMask() & (ULong64_t(1)<<1));
+    //Bool_t isCentral = (InputEvent()->GetTriggerMask() & (ULong64_t(1)<<4));
+    Bool_t isSemiCentral = (InputEvent()->GetTriggerMask() & (ULong64_t(1)<<7));
+    
+    if(!(isSemiCentral | isMB)) return;
+    
+  }
+  else if(fTriggerUsed==2){
+
+    // semi-central Andrea and Muons
+    
+    if ( !(isEventSelected & AliVEvent::kAny) ) return;
+    
+    //TString firedTriggerClasses = static_cast<const AliAODEvent*>(InputEvent())->GetFiredTriggerClasses();
+    TString firedTriggerClasses = InputEvent()->GetFiredTriggerClasses();
+        
+    if ( ! ( firedTriggerClasses.Contains("CVLN_B2-B-NOPF-ALLNOTRD") || firedTriggerClasses.Contains("CVLN_R1-B-NOPF-ALLNOTRD") || firedTriggerClasses.Contains("CSEMI_R1-B-NOPF-ALLNOTRD") ) ) return;
+  }
    
   /////////////////
   // centrality
@@ -2095,8 +2143,23 @@ void AliAnalysisTaskFlowTPCTOFEPSP::UserExec(Option_t */*option*/)
       if(!fMCPID) {
        // pid object
        AliHFEpidObject hfetrack;
-       if(!fAODAnalysis) hfetrack.SetAnalysisType(AliHFEpidObject::kESDanalysis);
-       else hfetrack.SetAnalysisType(AliHFEpidObject::kAODanalysis);
+       if(!fAODAnalysis){
+         hfetrack.SetAnalysisType(AliHFEpidObject::kESDanalysis);
+         if(fVariableMultiplicity==0) 
+           hfetrack.SetMulitplicity(cntr);
+         if(fVariableMultiplicity==1)
+           hfetrack.SetMulitplicity(((AliESDEvent*)fInputEvent)->GetNumberOfESDTracks()/8.);
+         if(fVariableMultiplicity==2)
+           hfetrack.SetMulitplicity(((AliESDEvent*)fInputEvent)->GetPrimaryVertexSPD()->GetNContributors());
+       }else{
+         hfetrack.SetAnalysisType(AliHFEpidObject::kAODanalysis);
+         if(fVariableMultiplicity==0) 
+           hfetrack.SetMulitplicity(cntr);
+         if(fVariableMultiplicity==1)
+           hfetrack.SetMulitplicity(((AliAODEvent*)fInputEvent)->GetNumberOfESDTracks()/8.);
+         if(fVariableMultiplicity==2)
+           hfetrack.SetMulitplicity(((AliAODEvent*)fInputEvent)->GetPrimaryVertexSPD()->GetNContributors());
+       }
        hfetrack.SetRecTrack(track);
        hfetrack.SetCentrality((Int_t)binct);
        AliDebug(2,Form("centrality %f and %d",binct,hfetrack.GetCentrality()));