]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGDQ/dielectron/macrosJPSI/AddTask_mwinn_Efficiency.C
-one more user update (michael)
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosJPSI / AddTask_mwinn_Efficiency.C
1 AliAnalysisTask *AddTask_mwinn_Efficiency(){
2   //get the current analysis manager
3   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
4   if (!mgr) {
5     Error("AddTask_jpsi_Efficiency", "No analysis manager found.");
6     return 0;
7   }
8
9   //set config file name
10   if (mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class()){
11     ::Info("AddTask_jpsi_Efficiency", "Not running in AOD");
12     return 0;
13   }
14
15   //Do we have an MC handler?
16   Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);
17   
18   
19   //create task and add it to the manager
20   AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDieDataEfficiency");
21   if (!hasMC) task->UsePhysicsSelection();
22   mgr->AddTask(task);
23   
24   //load dielectron configuration file
25   TString configFile("$ALICE_ROOT/PWGDQ/dielectron/macrosJPSI/ConfigJpsi_mw_EffpPb.C");
26   gROOT->LoadMacro(configFile.Data());
27   
28   //add dielectron analysis with different cuts to the task
29   for (Int_t i=0; i<nDieEff; ++i){ //nDie defined in config file
30     AliDielectron *jpsi=ConfigJpsi_mw_EffpPb(i);
31     task->AddDielectron(jpsi);
32   }
33   
34
35   //create output container
36   TString containerName = "JPSI.root";
37   AliAnalysisDataContainer *coutput1 =
38     mgr->CreateContainer("mwinnEff_tree",
39                          TTree::Class(),
40                          AliAnalysisManager::kExchangeContainer,
41                          containerName.Data());
42   
43   AliAnalysisDataContainer *cOutputHist1 =
44     mgr->CreateContainer("mwinnEff_QA",
45                          TList::Class(),
46                          AliAnalysisManager::kOutputContainer,
47                          containerName.Data());
48
49   AliAnalysisDataContainer *cOutputHist2 =
50     mgr->CreateContainer("mwinnEff_CF",
51                          TList::Class(),
52                          AliAnalysisManager::kOutputContainer,
53                          containerName.Data());
54   
55   AliAnalysisDataContainer *cOutputHist3 =
56     mgr->CreateContainer("mwinnEff_EventStat",
57                          TH1D::Class(),
58                          AliAnalysisManager::kOutputContainer,
59                          containerName.Data());
60   
61   mgr->ConnectInput(task,  0, mgr->GetCommonInputContainer());
62   mgr->ConnectOutput(task, 0, coutput1 );
63   mgr->ConnectOutput(task, 1, cOutputHist1);
64   mgr->ConnectOutput(task, 2, cOutputHist2);
65   mgr->ConnectOutput(task, 3, cOutputHist3);
66   
67   return task;
68 }