]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGDQ/dielectron/macrosJPSI/AddTask_jbook_JPsiQA.C
-add filter bit cut for aod
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosJPSI / AddTask_jbook_JPsiQA.C
CommitLineData
2d7910f3 1AliAnalysisTask *AddTask_jbook_JPsiQA(TString prod=""){
d28542ba 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?
2d7910f3 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;
d28542ba 15 //(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);
2d7910f3 16
d28542ba 17 //Do we have an AOD handler?
18 Bool_t isAOD=(mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class() ? kTRUE : kFALSE);
d6aec652 19
20 // set AOD debug levels
21 if(isAOD) {
22 mgr->AddClassDebug("AliAODTrack", AliLog::kFatal);
23 mgr->AddClassDebug("AliAODpidUtil", AliLog::kInfo);
24 }
d28542ba 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
2d7910f3 45 AliDielectron *jpsi=ConfigJpsiQA_jb_PbPb(i,list);
d28542ba 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
2d7910f3 73
74 AliAnalysisDataContainer *cOutputHist2 =
d28542ba 75 mgr->CreateContainer("jbookQA_CF",
76 TList::Class(),
4a1bef93 77 AliAnalysisManager::kExchangeContainer, //AliAnalysisManager::kOutputContainer,
2d7910f3 78 "dummy");
79
d28542ba 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);
2d7910f3 89 mgr->ConnectOutput(task, 2, cOutputHist2);
d28542ba 90 mgr->ConnectOutput(task, 3, cOutputHist3);
91
92 return task;
93}