1 AliAnalysisTask *AddTaskJPSIFilter(){
2 //get the current analysis manager
3 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
5 Error("AddTaskJPSIFilter", "No analysis manager found.");
9 //check for output aod handler
10 if (!mgr->GetOutputEventHandler()||mgr->GetOutputEventHandler()->IsA()!=AliAODHandler::Class()) {
11 Warning("AddTaskJPSIFilter","No AOD output handler available. Not adding the task!");
15 //Do we have an MC handler?
16 Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);
19 Bool_t isAOD=mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class();
22 //add options to AliAODHandler to duplicate input event
23 AliAODHandler *aodHandler = (AliAODHandler*)mgr->GetOutputEventHandler();
24 aodHandler->SetCreateNonStandardAOD();
25 aodHandler->SetNeedsHeaderReplication();
26 aodHandler->SetNeedsTracksBranchReplication();
27 aodHandler->SetNeedsVerticesBranchReplication();
28 aodHandler->SetNeedsV0sBranchReplication();
29 aodHandler->SetNeedsCascadesBranchReplication();
30 aodHandler->SetNeedsTrackletsBranchReplication();
31 aodHandler->SetNeedsPMDClustersBranchReplication();
32 aodHandler->SetNeedsJetsBranchReplication();
33 aodHandler->SetNeedsFMDClustersBranchReplication();
34 aodHandler->SetNeedsCaloClustersBranchReplication();
35 //aodHandler->SetNeedsMCParticlesBranchReplication();
36 aodHandler->SetNeedsDimuonsBranchReplication();
37 if(hasMC) aodHandler->SetNeedsMCParticlesBranchReplication();
40 //Create task and add it to the analysis manager
41 AliAnalysisTaskDielectronFilter *task=new AliAnalysisTaskDielectronFilter("jpsi_DielectronFilter");
43 gROOT->LoadMacro("$ALICE_ROOT/PWG3/dielectron/macros/ConfigJpsi2eeFilterPbPb.C");
44 AliDielectron *jpsi=ConfigJpsi2eeFilter(isAOD);
45 if (!hasMC) task->UsePhysicsSelection();
46 task->SetDielectron(jpsi);
49 //----------------------
50 //create data containers
51 //----------------------
54 TString containerName = mgr->GetCommonFileName();
55 containerName += ":PWG3_dielectronFilter";
57 //create output container
59 AliAnalysisDataContainer *cOutputHist1 =
60 mgr->CreateContainer("jpsi_FilterQA",
62 AliAnalysisManager::kOutputContainer,
63 containerName.Data());
65 AliAnalysisDataContainer *cOutputHist2 =
66 mgr->CreateContainer("jpsi_FilterEventStat",
68 AliAnalysisManager::kOutputContainer,
69 containerName.Data());
72 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
73 mgr->ConnectOutput(task, 1, cOutputHist1);
74 mgr->ConnectOutput(task, 2, cOutputHist2);