]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGCF/EBYE/macros/AddMixingHandler.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGCF / EBYE / macros / AddMixingHandler.C
index 816a21cb3b132b8346165eb72b4c47754ebf64dc..8fc547f3fa6348d5f8bfb48a301955321acace0e 100644 (file)
@@ -7,12 +7,39 @@
 #include <AliVEvent.h>//|
 #endif//|
 
-void AddMixingHandler(Double_t centMin = 70, Double_t centMax = 80, Double_t centStep = 2, AliMultiInputEventHandler* multiInputHandler, Bool_t useMC = kFALSE, Bool_t usePhysSel = kFALSE,TString opts = "")
+void AddMixingHandler(Double_t centMin = 70, Double_t centMax = 80, Double_t centStep = 2, Bool_t bAOD = kTRUE, Bool_t useMC = kFALSE, Bool_t usePhysSel = kTRUE, Bool_t bCentralTrigger = kFALSE, TString opts = "")
 {
+  
+    AliESDInputHandler *esdInputHandler = 0;
+    AliAODInputHandler *aodInputHandler = 0;
+    AliMCEventHandler  *mcInputHandler  = 0;
+  
+    AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
+
+    AliMultiInputEventHandler *multiInputHandler = new AliMultiInputEventHandler();
+    mgr->SetInputEventHandler(multiInputHandler);
+    
+    if (!bAOD) {
+      esdInputHandler = new AliESDInputHandler();
+      multiInputHandler->AddInputEventHandler(esdInputHandler);
+      //centralityInputHandler = new AliCentralityInputHandler();
+      //multiInputHandler->AddInputEventHandler(centralityInputHandler);
+      if (bMCtruth) {
+       mcInputHandler = new AliMCEventHandler();
+       multiInputHandler->AddInputEventHandler(mcInputHandler);
+       // Not reading track references
+       mchandler->SetReadTR(kFALSE);
+      }
+    } else if (bAOD) {
+      aodInputHandler = new AliAODInputHandler();
+      multiInputHandler->AddInputEventHandler(aodInputHandler);
+    } else {
+      Printf("Error: Only ESD and AOD input format is supported !!!");
+     return;
+    }
 
    if (!multiInputHandler) return;
 
-   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
    const Int_t bufferSize = 1;
    const Int_t mixNum = 5;
    AliMixInputEventHandler *mixHandler = new AliMixInputEventHandler(bufferSize, mixNum);
@@ -32,8 +59,15 @@ void AddMixingHandler(Double_t centMin = 70, Double_t centMax = 80, Double_t cen
    mixHandler->SetEventPool(evPool);
 
    // only use events with physics selection
-   if (usePhysSel) mixHandler->SelectCollisionCandidates(AliVEvent::kMB);
-
+   if (usePhysSel){
+     if (bCentralTrigger){
+       mixHandler->SelectCollisionCandidates(AliVEvent::kMB | AliVEvent::kCentral | AliVEvent::kSemiCentral);
+     }
+     else{ 
+       mixHandler->SelectCollisionCandidates(AliVEvent::kMB);
+     }
+   }
+   
    multiInputHandler->AddInputEventHandler(mixHandler);
 
 }