]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGDQ/dielectron/macrosJPSI/AddTask_ffionda_BJPsi.C
including switch to set on/off iso-track core removal, cleaning and bug fix
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosJPSI / AddTask_ffionda_BJPsi.C
CommitLineData
d5bd5a6c 1AliAnalysisTask *AddTask_ffionda_BJPsi(Bool_t isMC=kFALSE){
2 //get the current analysis manager
3 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
4 if (!mgr) {
5 Error("AddTask_ffionda_BJPsi", "No analysis manager found.");
6 return 0;
7 }
8
9 //Do we have an MC handler?
10 Bool_t hasMC=isMC;
11 //(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);
12 //Do we have an AOD handler?
13 Bool_t isAOD=(mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class() ? kTRUE : kFALSE);
14
15 //set config file name
16 TString configFile("$TRAIN_ROOT/jbook_jpsi/ConfigJpsi_jb_PbPb.C");
17 TString trainRoot=gSystem->Getenv("TRAIN_ROOT");
18 if (trainRoot.IsNull()) configFile="$ALICE_ROOT/PWGDQ/dielectron/macrosJPSI/ConfigBJpsi_ff_PbPb.C";
19
20
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();
25 mgr->AddTask(task);
26
27
28 //load dielectron configuration file
29 TString checkconfig="ConfigJpsi_ff_PbPb";
30 if (!gROOT->GetListOfGlobalFunctions()->FindObject(checkconfig.Data()))
31 gROOT->LoadMacro(configFile.Data());
32
33 //add dielectron analysis with different cuts to the task
34 for (Int_t i=0; i<2; ++i){ //nDie defined in config file
35 AliDielectron *jpsi=ConfigBJpsi_ff_PbPb(i,hasMC);
36 if (jpsi ) task->AddDielectron(jpsi);
37 if (jpsi ) printf("add: %s\n",jpsi->GetName());
38 }
39
40 //Add event filter
41 AliDielectronEventCuts *eventCuts=new AliDielectronEventCuts("eventCuts","Vertex Track && |vtxZ|<10 && ncontrib>0");
42 if(!hasMC) eventCuts->SetRequireVertex();
43 if (isAOD) eventCuts->SetVertexType(AliDielectronEventCuts::kVtxAny);
44 eventCuts->SetMinVtxContributors(1);
45 eventCuts->SetVertexZ(-10.,10.);
46 eventCuts->SetCentralityRange(0.0,80.0);
47 task->SetEventFilter(eventCuts);
48
49
50 //create output container
1c96a71e 51 TString containerName = "JPSI.root";
d5bd5a6c 52 AliAnalysisDataContainer *coutput1 =
1c96a71e 53 mgr->CreateContainer("ffionda_tree",
d5bd5a6c 54 TTree::Class(),
55 AliAnalysisManager::kExchangeContainer,
1c96a71e 56 containerName.Data());
d5bd5a6c 57
58 AliAnalysisDataContainer *cOutputHist1 =
1c96a71e 59 mgr->CreateContainer("ffionda_QA",
d5bd5a6c 60 TList::Class(),
61 AliAnalysisManager::kOutputContainer,
1c96a71e 62 containerName.Data());
d5bd5a6c 63
64 AliAnalysisDataContainer *cOutputHist2 =
1c96a71e 65 mgr->CreateContainer("ffionda_CF",
d5bd5a6c 66 TList::Class(),
67 AliAnalysisManager::kOutputContainer,
1c96a71e 68 containerName.Data());
d5bd5a6c 69
70 AliAnalysisDataContainer *cOutputHist3 =
1c96a71e 71 mgr->CreateContainer("ffionda_EventStat",
d5bd5a6c 72 TH1D::Class(),
73 AliAnalysisManager::kOutputContainer,
1c96a71e 74 containerName.Data());
d5bd5a6c 75
76 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
77 mgr->ConnectOutput(task, 0, coutput1 );
78 mgr->ConnectOutput(task, 1, cOutputHist1);
79 mgr->ConnectOutput(task, 2, cOutputHist2);
80 mgr->ConnectOutput(task, 3, cOutputHist3);
81 return task;
82}