51fb389323cdb2825e215b6545c9d6231c0666aa
[u/mrichter/AliRoot.git] / PWG / muon / AnalysisTrainCreateMixedDimuons.C
1 //===========================================================================================
2
3 // Analysis Train driving an AliAnalysisTaskCreateMixedDimuons multiple-event task 
4 // creating mixed muon pairs
5 //
6 // Authors Alessandro De Falco and Antonio Uras, INFN Cagliari
7 // alessandro.de.falco@ca.infn.it  antonio.uras@ca.infn.it
8
9 //===========================================================================================
10
11 void AnalysisTrainCreateMixedDimuons(Char_t *nameTagDir = ".",
12                                      Char_t *nameOutFileAOD = "AliAODsMixedEvents.root",
13                                      Int_t   bufferSize = 2) {
14   
15   gSystem->Load("libANALYSIS.so");
16   gSystem->Load("libANALYSISalice.so"); 
17   gSystem->Load("libCORRFW.so"); 
18   gSystem->Load("libPWGmuon.so"); 
19
20   AliMultiEventInputHandler *inputHandler  = new AliMultiEventInputHandler(bufferSize);
21
22   // setting pools definition...
23
24   AliEventPoolMuon *pool = new AliEventPoolMuon("eventPool", "AOD");
25   pool->SetTagDirectory(nameTagDir);
26   pool->SetMultiplicityRange(1, 100, 100);         // min, max, step
27   pool->SetNFWMuonRange(1, 10, 10);                // min, max, step
28   pool->SetPrimaryVertexZRange(-100., -90., 1.);   // min, max, step
29   pool->Init();
30   
31   // ... done!
32
33   AliAnalysisManager *mgr  = new AliAnalysisManager("MixingAnalysisTest");
34   mgr -> SetInputEventHandler(inputHandler);
35   mgr -> SetEventPool(pool);
36
37   inputHandler->SetEventPool(pool);
38     
39   AliAnalysisTaskCreateMixedDimuons *mixTask = new AliAnalysisTaskCreateMixedDimuons("AliAnalysisTaskCreateMixedDimuons");
40   mixTask -> SetDebugLevel(10);
41   mgr -> AddTask(mixTask);
42   
43   AliAnalysisDataContainer *cInputChain  = mgr->GetCommonInputContainer();
44   
45   AliAnalysisDataContainer *cOutputUserAODTree = mgr->CreateContainer("cOutputUserAODTree", TTree::Class(),    
46                                                                       AliAnalysisManager::kOutputContainer, 
47                                                                       nameOutFileAOD);
48  
49   mgr -> ConnectInput (mixTask, 0, cInputChain);
50   mgr -> ConnectOutput(mixTask, 1, cOutputUserAODTree);
51
52   mgr -> SetDebugLevel(10);
53   
54   if (!mgr->InitAnalysis()) return;
55   mgr->PrintStatus();
56   mgr->StartAnalysis("mix");
57   
58 }
59
60 //===========================================================================================