]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGDQ/dielectron/macrosJPSI/AddTask_jbook_JPsiQA.C
05b861e5a783e10ddf7e7526cf44b0ec1165e31a
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosJPSI / AddTask_jbook_JPsiQA.C
1 AliAnalysisTask *AddTask_jbook_JPsiQA(TString prod=""){
2   //get the current analysis manager
3   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
4   if (!mgr) {
5     Error("AddTask_jbook_JPsiQA", "No analysis manager found.");
6     return 0;
7   }
8
9   //Do we have an MC handler?
10   Bool_t hasMC = kFALSE;
11   TString list = gSystem->Getenv("LIST");
12   if( list.IsNull()) list=prod;
13   if( list.Contains("LHC10h")   || list.Contains("LHC11h")   ) hasMC=kFALSE;
14   if( list.Contains("LHC11a10") || list.Contains("LHC12a17") ) hasMC=kTRUE;
15   //(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);
16
17   //Do we have an AOD handler?
18   Bool_t isAOD=(mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class() ? kTRUE : kFALSE);
19
20   // set AOD debug levels
21   if(isAOD) {
22     mgr->AddClassDebug("AliAODTrack", AliLog::kFatal);
23     mgr->AddClassDebug("AliAODpidUtil", AliLog::kInfo); 
24   }
25   
26   //set config file name
27   TString configFile("$TRAIN_ROOT/jbook_jpsi/ConfigJpsiQA_jb_PbPb.C");
28   TString trainRoot=gSystem->Getenv("TRAIN_ROOT");                                                                                   
29   if (trainRoot.IsNull()) configFile="$ALICE_ROOT/PWGDQ/dielectron/macrosJPSI/ConfigJpsiQA_jb_PbPb.C";
30
31   
32   //create task and add it to the manager
33   AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDieData");
34   task->SetTriggerMask(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
35   if (!hasMC) task->UsePhysicsSelection();
36   mgr->AddTask(task);
37   
38   //load dielectron configuration file
39   TString checkconfig="ConfigJpsiQA_jb_PbPb";
40   if (!gROOT->GetListOfGlobalFunctions()->FindObject(checkconfig.Data()))
41     gROOT->LoadMacro(configFile.Data());
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=ConfigJpsiQA_jb_PbPb(i,list);
46     if (jpsi ) task->AddDielectron(jpsi);
47     if (jpsi ) printf("add: %s\n",jpsi->GetName());
48   }
49   
50   //Add event filter
51   AliDielectronEventCuts *eventCuts=new AliDielectronEventCuts("eventCuts","Vertex Track && |vtxZ|<10 && ncontrib>0");
52   if (isAOD) eventCuts->SetVertexType(AliDielectronEventCuts::kVtxAny);
53   eventCuts->SetRequireVertex();
54   eventCuts->SetMinVtxContributors(1);
55   eventCuts->SetVertexZ(-10.,10.);
56   eventCuts->SetCentralityRange(0.0,80.0);
57   task->SetEventFilter(eventCuts);
58
59   
60   //create output container
61   AliAnalysisDataContainer *coutput1 =
62     mgr->CreateContainer("jbookQA_tree",
63                          TTree::Class(),
64                          AliAnalysisManager::kExchangeContainer,
65                          "jbook_default");
66   
67   AliAnalysisDataContainer *cOutputHist1 =
68     mgr->CreateContainer("jbookQA",
69                          TList::Class(),
70                          AliAnalysisManager::kOutputContainer,
71                          "jbookQA.root");
72
73   
74   AliAnalysisDataContainer *cOutputHist2 =
75     mgr->CreateContainer("jbookQA_CF",
76                          TList::Class(),
77                          AliAnalysisManager::kOutputContainer,
78                          "dummy");
79     
80   AliAnalysisDataContainer *cOutputHist3 =
81     mgr->CreateContainer("jbookQA_EventStat",
82                          TH1D::Class(),
83                          AliAnalysisManager::kOutputContainer,
84                          "jbookQA.root");
85   
86   mgr->ConnectInput(task,  0, mgr->GetCommonInputContainer());
87   mgr->ConnectOutput(task, 0, coutput1 );
88   mgr->ConnectOutput(task, 1, cOutputHist1);
89   mgr->ConnectOutput(task, 2, cOutputHist2);
90   mgr->ConnectOutput(task, 3, cOutputHist3);
91   
92   return task;
93 }