1 void analyzeJpsiME(TString tag="./"){
6 //_____________Setting up libraries_______________
7 gSystem->Load("libTree.so");
8 gSystem->Load("libSTEERBase.so");
9 gSystem->Load("libVMC.so");
10 gSystem->Load("libESD.so");
11 gSystem->Load("libANALYSIS.so");
12 gSystem->Load("libANALYSISalice");
13 gSystem->Load("libCORRFW");
14 gSystem->Load("libPWG3dielectron.so");
15 gSystem->AddIncludePath("-I$ALICE_ROOT/PWG3/dielectron/ -I$ALICE_ROOT/ANALYSIS -I$ALICE_ROOT/CORRFW");
17 //_____________Load Macro_____________________________
18 gROOT->LoadMacro("ConfigJpsi2eeData.C"); // user Config file
20 // Make the analysis manager__________________________
21 AliAnalysisManager *mgr = new AliAnalysisManager("AnalysisManager");
23 // Event handler setting
24 Int_t nEventsToLoad = 5; // pool depth
25 AliMultiEventInputHandler *inputHandler = new AliMultiEventInputHandler(nEventsToLoad,0); // 0 for ESD, 1 for AOD
26 mgr->SetInputEventHandler(inputHandler);
29 AliEventPoolOTF *myPool = new AliEventPoolOTF("event pool","ESD");
30 myPool->SetTagDirectory(tag.Data());
31 myPool->SetMultiplicityBin(0,100,100); // (min, max, bin width)
34 mgr->SetEventPool(myPool); // link event pool with manager
35 inputHandler->SetEventPool(myPool); // link event pool with input handler
37 // Analysis Task Jpsi->e+e-___________________________
38 AliAnalysisTaskDielectronME *task = new AliAnalysisTaskDielectronME("DielectronTaskME");
39 task->RequireFreshBuffer(); // refresh mode in the pool
40 task->SetPoolDepth(nEventsToLoad); // set pool depth in the task
43 // add dielectron analysis with different cuts to the task
44 for (Int_t i=0; i<nDie; ++i){ //nDie defined in config file
45 AliDielectron *jpsi=ConfigJpsi2ee(i);
46 task->AddDielectron(jpsi);
49 // Create containers for input/output_________________
50 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("jpsi_treeEff",TTree::Class(),AliAnalysisManager::kExchangeContainer,"jpsi_Effdefault");
51 AliAnalysisDataContainer *cOutputHist1 = mgr->CreateContainer("QA", TList::Class(), AliAnalysisManager::kOutputContainer, "jpsi_QA.root");
52 AliAnalysisDataContainer *cOutputHist2 = mgr->CreateContainer("CF", TList::Class(), AliAnalysisManager::kOutputContainer, "jpsi_CF.root");
53 AliAnalysisDataContainer *cOutputHist3 = mgr->CreateContainer("jpsi_Eff_EventStat",TH1D::Class(),AliAnalysisManager::kOutputContainer,"jpsi_Eff.root");
55 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
56 mgr->ConnectOutput(task, 0, coutput1 );
57 mgr->ConnectOutput(task, 1, cOutputHist1);
58 mgr->ConnectOutput(task, 2, cOutputHist2);
59 mgr->ConnectOutput(task, 3, cOutputHist3);
61 if (!mgr->InitAnalysis()) return;
63 TChain *chain = NULL; // null pointer to avoid entering grid mode. temporary solution
64 mgr->StartAnalysis("mix",chain);