]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGDQ/dielectron/macros/AddTaskJPSIFilter.C
-coverity fixes by Ionut
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macros / AddTaskJPSIFilter.C
CommitLineData
0c09cae4 1AliAnalysisTask *AddTaskJPSIFilter(Bool_t storeLS = kTRUE, Bool_t hasMC_aod = kFALSE, Bool_t storeTR = kTRUE){
8df8e382 2 //get the current analysis manager
3 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
4 if (!mgr) {
164bfb53 5 Error("AddTaskJPSIFilter", "No analysis manager found.");
8df8e382 6 return 0;
7 }
164bfb53 8
8df8e382 9 //check for output aod handler
10 if (!mgr->GetOutputEventHandler()||mgr->GetOutputEventHandler()->IsA()!=AliAODHandler::Class()) {
2a14a7b1 11 Warning("AddTaskJPSIFilter","No AOD output handler available. Not adding the task!");
8df8e382 12 return 0;
13 }
14
15 //Do we have an MC handler?
fb7d2d99 16 Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0)||hasMC_aod;
164bfb53 17
18 //Do we run on AOD?
19 Bool_t isAOD=mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class();
2a14a7b1 20
0c09cae4 21 gROOT->LoadMacro("$ALICE_ROOT/PWG3/dielectron/macros/ConfigJpsi2eeFilter.C");
fb7d2d99 22 AliDielectron *jpsi=ConfigJpsi2eeFilter(isAOD);
23
2a14a7b1 24 if(isAOD) {
25 //add options to AliAODHandler to duplicate input event
26 AliAODHandler *aodHandler = (AliAODHandler*)mgr->GetOutputEventHandler();
27 aodHandler->SetCreateNonStandardAOD();
28 aodHandler->SetNeedsHeaderReplication();
29 aodHandler->SetNeedsTracksBranchReplication();
30 aodHandler->SetNeedsVerticesBranchReplication();
31 aodHandler->SetNeedsV0sBranchReplication();
32 aodHandler->SetNeedsCascadesBranchReplication();
33 aodHandler->SetNeedsTrackletsBranchReplication();
34 aodHandler->SetNeedsPMDClustersBranchReplication();
35 aodHandler->SetNeedsJetsBranchReplication();
36 aodHandler->SetNeedsFMDClustersBranchReplication();
37 aodHandler->SetNeedsCaloClustersBranchReplication();
38 //aodHandler->SetNeedsMCParticlesBranchReplication();
39 aodHandler->SetNeedsDimuonsBranchReplication();
ffbede40 40 if(hasMC) aodHandler->SetNeedsMCParticlesBranchReplication();
fb7d2d99 41 jpsi->SetHasMC(hasMC);
2a14a7b1 42 }
164bfb53 43
8df8e382 44 //Create task and add it to the analysis manager
45 AliAnalysisTaskDielectronFilter *task=new AliAnalysisTaskDielectronFilter("jpsi_DielectronFilter");
46
8df8e382 47 if (!hasMC) task->UsePhysicsSelection();
48 task->SetDielectron(jpsi);
fb7d2d99 49 if(storeLS) task->SetStoreLikeSignCandidates(storeLS);
0c09cae4 50 task->SetStoreRotatedPairs(storeTR);
8df8e382 51 mgr->AddTask(task);
52
53 //----------------------
54 //create data containers
55 //----------------------
56
57
58 TString containerName = mgr->GetCommonFileName();
a14d0b3e 59 containerName += ":PWGDQ_dielectronFilter";
8df8e382 60
61 //create output container
62
63 AliAnalysisDataContainer *cOutputHist1 =
61d106d3 64 mgr->CreateContainer("jpsi_FilterQA",
65 THashList::Class(),
66 AliAnalysisManager::kOutputContainer,
8df8e382 67 containerName.Data());
68
69 AliAnalysisDataContainer *cOutputHist2 =
61d106d3 70 mgr->CreateContainer("jpsi_FilterEventStat",
71 TH1D::Class(),
72 AliAnalysisManager::kOutputContainer,
8df8e382 73 containerName.Data());
74
164bfb53 75
8df8e382 76 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
77 mgr->ConnectOutput(task, 1, cOutputHist1);
78 mgr->ConnectOutput(task, 2, cOutputHist2);
164bfb53 79
8df8e382 80 return task;
81}