ROOT logo
Bool_t AddAMEventMixingTest(TString analysisSource = "proof", TString analysisMode = "test",TString input="aod",TString inputMC="", TString postfix = "",TString idStr="0")
{
  
   Bool_t useEventMixingPar      = 0;

   Int_t usePhysSel              = 0;
   
   Bool_t useMC = !inputMC.CompareTo("mc");

   // ALICE stuff
   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
   if (!mgr) { Printf("Error[AddAMEventMixingTest] mgr is null !!!"); return kFALSE; }
   
   
   AliAnalysisGrid *analysisPlugin = mgr->GetGridHandler();
   if (!analysisPlugin) { Printf("Error[AddAMEventMixingTest] : analysisPlugin is null !!!"); return kFALSE; }

   TString myAdditionalLibs;
   if (useEventMixingPar) { AliAnalysisAlien::SetupPar("EventMixing"); myAdditionalLibs += " EventMixing.par"; }
   else { gSystem->Load("libEventMixing.so"); myAdditionalLibs += " libEventMixing.so"; }
   
   gROOT->LoadMacro("AliAnalysisTaskEx02.cxx++g");
   analysisPlugin->SetAnalysisSource("AliAnalysisTaskEx02.cxx+");
   myAdditionalLibs+=" AliAnalysisTaskEx02.h AliAnalysisTaskEx02.cxx";
   analysisPlugin->SetAdditionalLibs(myAdditionalLibs.Data());
   

  AliMultiInputEventHandler *multiInputHandler = mgr->GetInputEventHandler();

   if (usePhysSel) {
      gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
      AddTaskPhysicsSelection(useMC);

      // maybe we can put it in $ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C
      AliMultiInputEventHandler *multiIH = dynamic_cast<AliMultiInputEventHandler *>(mgr->GetInputEventHandler());
      if (multiIH){
         AliESDInputHandler *esdIH = dynamic_cast<AliESDInputHandler *>(multiIH->GetFirstInputEventHandler());
         if (esdIH) esdIH->SetEventSelection(multiIH->GetEventSelection());
         AliAODInputHandler *aodIH = dynamic_cast<AliAODInputHandler *>(multiIH->GetFirstInputEventHandler());
         if (aodIH) aodIH->SetEventSelection(multiIH->GetEventSelection());
      }
   }


  // add mixing handler (uncomment to turn on Mixnig)
  gROOT->LoadMacro("AddMixingHandler.C");
  AddMixingHandler(multiInputHandler, input, useMC,postfix);
  
   

//    // load and run AddTask macro
   gROOT->LoadMacro("AddEventMixingTestTask.C");
   AddEventMixingTestTask(input, useMC, postfix);

   return kTRUE;
}
 AddAMEventMixingTest.C:1
 AddAMEventMixingTest.C:2
 AddAMEventMixingTest.C:3
 AddAMEventMixingTest.C:4
 AddAMEventMixingTest.C:5
 AddAMEventMixingTest.C:6
 AddAMEventMixingTest.C:7
 AddAMEventMixingTest.C:8
 AddAMEventMixingTest.C:9
 AddAMEventMixingTest.C:10
 AddAMEventMixingTest.C:11
 AddAMEventMixingTest.C:12
 AddAMEventMixingTest.C:13
 AddAMEventMixingTest.C:14
 AddAMEventMixingTest.C:15
 AddAMEventMixingTest.C:16
 AddAMEventMixingTest.C:17
 AddAMEventMixingTest.C:18
 AddAMEventMixingTest.C:19
 AddAMEventMixingTest.C:20
 AddAMEventMixingTest.C:21
 AddAMEventMixingTest.C:22
 AddAMEventMixingTest.C:23
 AddAMEventMixingTest.C:24
 AddAMEventMixingTest.C:25
 AddAMEventMixingTest.C:26
 AddAMEventMixingTest.C:27
 AddAMEventMixingTest.C:28
 AddAMEventMixingTest.C:29
 AddAMEventMixingTest.C:30
 AddAMEventMixingTest.C:31
 AddAMEventMixingTest.C:32
 AddAMEventMixingTest.C:33
 AddAMEventMixingTest.C:34
 AddAMEventMixingTest.C:35
 AddAMEventMixingTest.C:36
 AddAMEventMixingTest.C:37
 AddAMEventMixingTest.C:38
 AddAMEventMixingTest.C:39
 AddAMEventMixingTest.C:40
 AddAMEventMixingTest.C:41
 AddAMEventMixingTest.C:42
 AddAMEventMixingTest.C:43
 AddAMEventMixingTest.C:44
 AddAMEventMixingTest.C:45
 AddAMEventMixingTest.C:46
 AddAMEventMixingTest.C:47
 AddAMEventMixingTest.C:48
 AddAMEventMixingTest.C:49
 AddAMEventMixingTest.C:50
 AddAMEventMixingTest.C:51
 AddAMEventMixingTest.C:52
 AddAMEventMixingTest.C:53
 AddAMEventMixingTest.C:54
 AddAMEventMixingTest.C:55
 AddAMEventMixingTest.C:56
 AddAMEventMixingTest.C:57