ROOT logo
//===========================================================================================

// Analysis Train driving an AliAnalysisTaskCreateMixedDimuons multiple-event task 
// creating mixed muon pairs
//
// Authors Alessandro De Falco and Antonio Uras, INFN Cagliari
// alessandro.de.falco@ca.infn.it  antonio.uras@ca.infn.it

//===========================================================================================

void AnalysisTrainCreateMixedDimuons(Char_t *nameTagDir = ".",
				     Char_t *nameOutFileAOD = "AliAODsMixedEvents.root",
				     Int_t   bufferSize = 2) {
  
  gSystem->Load("libANALYSIS.so");
  gSystem->Load("libANALYSISalice.so"); 
  gSystem->Load("libCORRFW.so"); 
  gSystem->Load("libPWGmuon.so"); 

  AliMultiEventInputHandler *inputHandler  = new AliMultiEventInputHandler(bufferSize);

  // setting pools definition...

  AliEventPoolMuon *pool = new AliEventPoolMuon("eventPool", "AOD");
  pool->SetTagDirectory(nameTagDir);
  pool->SetMultiplicityRange(1, 100, 100);         // min, max, step
  pool->SetNFWMuonRange(1, 10, 10);                // min, max, step
  pool->SetPrimaryVertexZRange(-100., -90., 1.);   // min, max, step
  pool->Init();
  
  // ... done!

  AliAnalysisManager *mgr  = new AliAnalysisManager("MixingAnalysisTest");
  mgr -> SetInputEventHandler(inputHandler);
  mgr -> SetEventPool(pool);

  inputHandler->SetEventPool(pool);
    
  AliAnalysisTaskCreateMixedDimuons *mixTask = new AliAnalysisTaskCreateMixedDimuons("AliAnalysisTaskCreateMixedDimuons");
  mixTask -> SetDebugLevel(10);
  mgr -> AddTask(mixTask);
  
  AliAnalysisDataContainer *cInputChain  = mgr->GetCommonInputContainer();
  
  AliAnalysisDataContainer *cOutputUserAODTree = mgr->CreateContainer("cOutputUserAODTree", TTree::Class(),    
								      AliAnalysisManager::kOutputContainer, 
								      nameOutFileAOD);
 
  mgr -> ConnectInput (mixTask, 0, cInputChain);
  mgr -> ConnectOutput(mixTask, 1, cOutputUserAODTree);

  mgr -> SetDebugLevel(10);
  
  if (!mgr->InitAnalysis()) return;
  mgr->PrintStatus();
  mgr->StartAnalysis("mix");
  
}

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