]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGDQ/dielectron/macrosJPSI/AddTask_jbook_JPsi.C
-updates
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosJPSI / AddTask_jbook_JPsi.C
CommitLineData
2d7910f3 1AliAnalysisTask *AddTask_jbook_JPsi(TString prod=""){
8c06b662 2 //get the current analysis manager
3 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
4 if (!mgr) {
5 Error("AddTask_jbook_JPsi", "No analysis manager found.");
6 return 0;
7 }
d6aec652 8
8c06b662 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;
15 //(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);
16
8c06b662 17 //Do we have an AOD handler?
18 Bool_t isAOD=(mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class() ? kTRUE : kFALSE);
19
d6aec652 20 // set AOD debug levels
21 if(isAOD) {
22 mgr->AddClassDebug("AliAODTrack", AliLog::kFatal);
23 mgr->AddClassDebug("AliAODpidUtil", AliLog::kInfo);
24 }
25
8c06b662 26 //set config file name
27 TString configFile("$TRAIN_ROOT/jbook_jpsi/ConfigJpsi_jb_PbPb.C");
28 TString trainRoot=gSystem->Getenv("TRAIN_ROOT");
d41e5a99 29 if (trainRoot.IsNull()) configFile="$ALICE_ROOT/PWGDQ/dielectron/macrosJPSI/ConfigJpsi_jb_PbPb.C";
8c06b662 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="ConfigJpsi_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<5; ++i){ //nDie defined in config file
2d7910f3 45 AliDielectron *jpsi=ConfigJpsi_jb_PbPb(i,list);
8c06b662 46 if (jpsi ) task->AddDielectron(jpsi);
256b2ae5 47 // if (jpsi ) printf("add: %s\n",jpsi->GetName());
8c06b662 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("jbook_tree",
63 TTree::Class(),
64 AliAnalysisManager::kExchangeContainer,
65 "jbook_default");
66
67 AliAnalysisDataContainer *cOutputHist1 =
68 mgr->CreateContainer("jbook_QA",
69 TList::Class(),
70 AliAnalysisManager::kOutputContainer,
71 "jbook.root");
72
73 AliAnalysisDataContainer *cOutputHist2 =
74 mgr->CreateContainer("jbook_CF",
75 TList::Class(),
76 AliAnalysisManager::kOutputContainer,
77 "jbook.root");
78
79 AliAnalysisDataContainer *cOutputHist3 =
80 mgr->CreateContainer("jbook_EventStat",
81 TH1D::Class(),
82 AliAnalysisManager::kOutputContainer,
83 "jbook.root");
84
85 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
86 mgr->ConnectOutput(task, 0, coutput1 );
87 mgr->ConnectOutput(task, 1, cOutputHist1);
88 mgr->ConnectOutput(task, 2, cOutputHist2);
89 mgr->ConnectOutput(task, 3, cOutputHist3);
90
91 return task;
92}