ROOT logo
AliAnalysisTask *AddTaskNuclexFilterMC( Bool_t onlyMuon = kTRUE,
					Bool_t keepAllEvents = kTRUE,
					Int_t mcMode = 0,
					Int_t nsigmaTrk1 = 3,
					Int_t partType1 = 2,
					Int_t nsigmaTrk2 = 5, 
					Int_t partType2 = 7
					)
{

  //get the current analysis manager

  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    Error("AddTaskNuclexFilter", "No analysis manager found.");
    return 0;
  }
  
  //check for output aod handler
  if (!mgr->GetOutputEventHandler()||mgr->GetOutputEventHandler()->IsA()!=AliAODHandler::Class()) {
    Warning("AddTaskNuclExFilter","No AOD output handler available. Not adding the task!");
    return 0;
  }

  //Do we have an MC handler?
  //  Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0)||hasMC_aod;
  /*  
  //Do we run on AOD?
  Bool_t isAOD=mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class();

  //Allow merging of the filtered aods on grid trains
  if(mgr->GetGridHandler()) {
    printf(" SET MERGE FILTERED AODs \n");
    mgr->GetGridHandler()->SetMergeAOD(kTRUE);
  }
  
  if(isAOD) {
    //add options to AliAODHandler to duplicate input event
    AliAODHandler *aodHandler = (AliAODHandler*)mgr->GetOutputEventHandler();
    aodHandler->SetCreateNonStandardAOD();
    }
 */

  Bool_t isAOD=mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class();
  if ( !isAOD) {
    Printf("ERROR! This task can only run on AODs!");
  }

  
 
  //========= Add task to the ANALYSIS manager =====
  
  cout<<"\n\n=============== addtask Nuclex =================== "<<endl<<endl;

  //AliAnalysisTaskSE *esdnuclexfilter = new AliAnalysisTaskESDNuclExFilter("NuclEx Filter",onlyMuon,keepAllEvents,mcMode,nsigmaTrk1,partType1,nsigmaTrk2,partType2);

  AliAnalysisTaskESDNuclExFilterMC  *esdnuclexfilter = new AliAnalysisTaskESDNuclExFilterMC("NuclEx Filter MC",onlyMuon,keepAllEvents,mcMode,nsigmaTrk1,partType1,nsigmaTrk2,partType2);
  
  esdnuclexfilter->SetWriteMuonAOD(kTRUE);

  //================================================
  //              data containers
  //================================================
  //            find input container

  mgr->ConnectInput  (esdnuclexfilter,  0, mgr->GetCommonInputContainer());
  mgr->ConnectOutput (esdnuclexfilter,  0, mgr->GetCommonOutputContainer());


  return esdnuclexfilter;
}
 AddTaskNuclexFilterMC.C:1
 AddTaskNuclexFilterMC.C:2
 AddTaskNuclexFilterMC.C:3
 AddTaskNuclexFilterMC.C:4
 AddTaskNuclexFilterMC.C:5
 AddTaskNuclexFilterMC.C:6
 AddTaskNuclexFilterMC.C:7
 AddTaskNuclexFilterMC.C:8
 AddTaskNuclexFilterMC.C:9
 AddTaskNuclexFilterMC.C:10
 AddTaskNuclexFilterMC.C:11
 AddTaskNuclexFilterMC.C:12
 AddTaskNuclexFilterMC.C:13
 AddTaskNuclexFilterMC.C:14
 AddTaskNuclexFilterMC.C:15
 AddTaskNuclexFilterMC.C:16
 AddTaskNuclexFilterMC.C:17
 AddTaskNuclexFilterMC.C:18
 AddTaskNuclexFilterMC.C:19
 AddTaskNuclexFilterMC.C:20
 AddTaskNuclexFilterMC.C:21
 AddTaskNuclexFilterMC.C:22
 AddTaskNuclexFilterMC.C:23
 AddTaskNuclexFilterMC.C:24
 AddTaskNuclexFilterMC.C:25
 AddTaskNuclexFilterMC.C:26
 AddTaskNuclexFilterMC.C:27
 AddTaskNuclexFilterMC.C:28
 AddTaskNuclexFilterMC.C:29
 AddTaskNuclexFilterMC.C:30
 AddTaskNuclexFilterMC.C:31
 AddTaskNuclexFilterMC.C:32
 AddTaskNuclexFilterMC.C:33
 AddTaskNuclexFilterMC.C:34
 AddTaskNuclexFilterMC.C:35
 AddTaskNuclexFilterMC.C:36
 AddTaskNuclexFilterMC.C:37
 AddTaskNuclexFilterMC.C:38
 AddTaskNuclexFilterMC.C:39
 AddTaskNuclexFilterMC.C:40
 AddTaskNuclexFilterMC.C:41
 AddTaskNuclexFilterMC.C:42
 AddTaskNuclexFilterMC.C:43
 AddTaskNuclexFilterMC.C:44
 AddTaskNuclexFilterMC.C:45
 AddTaskNuclexFilterMC.C:46
 AddTaskNuclexFilterMC.C:47
 AddTaskNuclexFilterMC.C:48
 AddTaskNuclexFilterMC.C:49
 AddTaskNuclexFilterMC.C:50
 AddTaskNuclexFilterMC.C:51
 AddTaskNuclexFilterMC.C:52
 AddTaskNuclexFilterMC.C:53
 AddTaskNuclexFilterMC.C:54
 AddTaskNuclexFilterMC.C:55
 AddTaskNuclexFilterMC.C:56
 AddTaskNuclexFilterMC.C:57
 AddTaskNuclexFilterMC.C:58
 AddTaskNuclexFilterMC.C:59
 AddTaskNuclexFilterMC.C:60
 AddTaskNuclexFilterMC.C:61
 AddTaskNuclexFilterMC.C:62
 AddTaskNuclexFilterMC.C:63
 AddTaskNuclexFilterMC.C:64
 AddTaskNuclexFilterMC.C:65
 AddTaskNuclexFilterMC.C:66
 AddTaskNuclexFilterMC.C:67
 AddTaskNuclexFilterMC.C:68
 AddTaskNuclexFilterMC.C:69
 AddTaskNuclexFilterMC.C:70
 AddTaskNuclexFilterMC.C:71
 AddTaskNuclexFilterMC.C:72