1 AliAnalysisTask *AddTaskNuclexFilterMC( Bool_t onlyMuon = kTRUE,
2 Bool_t keepAllEvents = kTRUE,
11 //get the current analysis manager
13 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
15 Error("AddTaskNuclexFilter", "No analysis manager found.");
19 //check for output aod handler
20 if (!mgr->GetOutputEventHandler()||mgr->GetOutputEventHandler()->IsA()!=AliAODHandler::Class()) {
21 Warning("AddTaskNuclExFilter","No AOD output handler available. Not adding the task!");
25 //Do we have an MC handler?
26 // Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0)||hasMC_aod;
29 Bool_t isAOD=mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class();
31 //Allow merging of the filtered aods on grid trains
32 if(mgr->GetGridHandler()) {
33 printf(" SET MERGE FILTERED AODs \n");
34 mgr->GetGridHandler()->SetMergeAOD(kTRUE);
38 //add options to AliAODHandler to duplicate input event
39 AliAODHandler *aodHandler = (AliAODHandler*)mgr->GetOutputEventHandler();
40 aodHandler->SetCreateNonStandardAOD();
44 Bool_t isAOD=mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class();
46 Printf("ERROR! This task can only run on AODs!");
51 //========= Add task to the ANALYSIS manager =====
53 cout<<"\n\n=============== addtask Nuclex =================== "<<endl<<endl;
55 //AliAnalysisTaskSE *esdnuclexfilter = new AliAnalysisTaskESDNuclExFilter("NuclEx Filter",onlyMuon,keepAllEvents,mcMode,nsigmaTrk1,partType1,nsigmaTrk2,partType2);
57 AliAnalysisTaskESDNuclExFilterMC *esdnuclexfilter = new AliAnalysisTaskESDNuclExFilterMC("NuclEx Filter MC",onlyMuon,keepAllEvents,mcMode,nsigmaTrk1,partType1,nsigmaTrk2,partType2);
59 esdnuclexfilter->SetWriteMuonAOD(kTRUE);
61 //================================================
63 //================================================
64 // find input container
66 mgr->ConnectInput (esdnuclexfilter, 0, mgr->GetCommonInputContainer());
67 mgr->ConnectOutput (esdnuclexfilter, 0, mgr->GetCommonOutputContainer());
70 return esdnuclexfilter;