1 AliAnalysisTask *AddTask_jbook_JPsiQA(Bool_t isMC=kFALSE){
2 //get the current analysis manager
3 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
5 Error("AddTask_jbook_JPsiQA", "No analysis manager found.");
9 //Do we have an MC handler?
11 //(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);
12 //Do we have an AOD handler?
13 Bool_t isAOD=(mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class() ? kTRUE : kFALSE);
15 //set config file name
16 TString configFile("$TRAIN_ROOT/jbook_jpsi/ConfigJpsiQA_jb_PbPb.C");
17 TString trainRoot=gSystem->Getenv("TRAIN_ROOT");
18 if (trainRoot.IsNull()) configFile="$ALICE_ROOT/PWGDQ/dielectron/macrosJPSI/ConfigJpsiQA_jb_PbPb.C";
21 //create task and add it to the manager
22 AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDieData");
23 task->SetTriggerMask(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral);
24 if (!hasMC) task->UsePhysicsSelection();
27 //load dielectron configuration file
28 TString checkconfig="ConfigJpsiQA_jb_PbPb";
29 if (!gROOT->GetListOfGlobalFunctions()->FindObject(checkconfig.Data()))
30 gROOT->LoadMacro(configFile.Data());
32 //add dielectron analysis with different cuts to the task
33 for (Int_t i=0; i<nDie; ++i){ //nDie defined in config file
34 AliDielectron *jpsi=ConfigJpsiQA_jb_PbPb(i,hasMC);
35 if (jpsi ) task->AddDielectron(jpsi);
36 if (jpsi ) printf("add: %s\n",jpsi->GetName());
40 AliDielectronEventCuts *eventCuts=new AliDielectronEventCuts("eventCuts","Vertex Track && |vtxZ|<10 && ncontrib>0");
41 if (isAOD) eventCuts->SetVertexType(AliDielectronEventCuts::kVtxAny);
42 eventCuts->SetRequireVertex();
43 eventCuts->SetMinVtxContributors(1);
44 eventCuts->SetVertexZ(-10.,10.);
45 eventCuts->SetCentralityRange(0.0,80.0);
46 task->SetEventFilter(eventCuts);
49 //create output container
50 AliAnalysisDataContainer *coutput1 =
51 mgr->CreateContainer("jbookQA_tree",
53 AliAnalysisManager::kExchangeContainer,
56 AliAnalysisDataContainer *cOutputHist1 =
57 mgr->CreateContainer("jbookQA",
59 AliAnalysisManager::kOutputContainer,
63 AliAnalysisDataContainer *cOutputHist2 =
64 mgr->CreateContainer("jbookQA_CF",
66 AliAnalysisManager::kOutputContainer,
69 AliAnalysisDataContainer *cOutputHist3 =
70 mgr->CreateContainer("jbookQA_EventStat",
72 AliAnalysisManager::kOutputContainer,
75 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
76 mgr->ConnectOutput(task, 0, coutput1 );
77 mgr->ConnectOutput(task, 1, cOutputHist1);
78 // mgr->ConnectOutput(task, 2, cOutputHist2);
79 mgr->ConnectOutput(task, 3, cOutputHist3);