1 AliAnalysisTask *AddTask_jbook_v2(TString prod=""){
2 //get the current analysis manager
3 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
5 Error("AddTask_jbook_v2", "No analysis manager found.");
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);
17 //Do we have an AOD handler?
18 Bool_t isAOD=(mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class() ? kTRUE : kFALSE);
20 // set AOD debug levels
22 mgr->AddClassDebug("AliAODTrack", AliLog::kFatal);
23 mgr->AddClassDebug("AliAODpidUtil", AliLog::kInfo);
26 //set config file name
27 TString configFile("$TRAIN_ROOT/jbook_jpsi/ConfigJpsi_jb_PbPb.C");
28 TString trainRoot=gSystem->Getenv("TRAIN_ROOT");
29 if (trainRoot.IsNull()) configFile="$ALICE_ROOT/PWGDQ/dielectron/macrosJPSI/ConfigJpsi_jb_PbPb.C";
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();
38 //load dielectron configuration file
39 TString checkconfig="ConfigJpsi_jb_PbPb";
40 if (!gROOT->GetListOfGlobalFunctions()->FindObject(checkconfig.Data()))
41 gROOT->LoadMacro(configFile.Data());
43 //add dielectron analysis with different cuts to the task
44 for (Int_t i=16; i<nDie; ++i){ //nDie defined in config file
45 AliDielectron *jpsi=ConfigJpsi_jb_PbPb(i,list);
46 if (jpsi ) task->AddDielectron(jpsi);
47 if (jpsi ) printf("add: %s\n",jpsi->GetName());
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);
60 //create output container
61 AliAnalysisDataContainer *coutput1 =
62 mgr->CreateContainer("jbook_v2_tree",
64 AliAnalysisManager::kExchangeContainer,
67 AliAnalysisDataContainer *cOutputHist1 =
68 mgr->CreateContainer("jbook_v2_QA",
70 AliAnalysisManager::kOutputContainer,
73 AliAnalysisDataContainer *cOutputHist2 =
74 mgr->CreateContainer("jbook_v2_CF",
76 AliAnalysisManager::kOutputContainer,
79 AliAnalysisDataContainer *cOutputHist3 =
80 mgr->CreateContainer("jbook_v2_EventStat",
82 AliAnalysisManager::kOutputContainer,
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);