]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGDQ/dielectron/macros/analyzeJpsiME.C
.so cleanup: removed from gSystem->Load()
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macros / analyzeJpsiME.C
1 void analyzeJpsiME(TString tag="./"){
2
3   TStopwatch timer;
4   timer.Start();
5   
6   //_____________Setting up libraries_______________
7   gSystem->Load("libTree");
8   gSystem->Load("libSTEERBase");
9   gSystem->Load("libVMC");
10   gSystem->Load("libESD");
11   gSystem->Load("libANALYSIS");
12   gSystem->Load("libANALYSISalice");
13   gSystem->Load("libCORRFW");
14   gSystem->Load("libPWGDQdielectron");
15   gSystem->AddIncludePath("-I$ALICE_ROOT/PWGDQ/dielectron/ -I$ALICE_ROOT/ANALYSIS -I$ALICE_ROOT/CORRFW");
16
17   //_____________Load Macro_____________________________
18   gROOT->LoadMacro("ConfigJpsi2eeData.C");    // user Config file
19   
20   // Make the analysis manager__________________________
21   AliAnalysisManager *mgr       = new AliAnalysisManager("AnalysisManager");
22
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);
27   
28   // event pool setting
29   AliEventPoolOTF *myPool = new AliEventPoolOTF("event pool","ESD");
30   myPool->SetTagDirectory(tag.Data());
31   myPool->SetMultiplicityBin(0,100,100);  // (min, max, bin width)
32   myPool->Init();
33
34   mgr->SetEventPool(myPool);            // link event pool with manager
35   inputHandler->SetEventPool(myPool);   // link event pool with input handler
36
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
41   mgr->AddTask(task);
42
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);
47   }
48
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");
54   
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);
60
61   if (!mgr->InitAnalysis()) return;
62   mgr->PrintStatus();
63   TChain *chain = NULL;     // null pointer to avoid entering grid mode. temporary solution
64   mgr->StartAnalysis("mix",chain);
65   //mgr->Terminate();
66
67   timer.Stop();
68   timer.Print();
69 }