ROOT logo
void runAODFilterMC()
{
  // PROOF example

      gSystem->Load("libTree.so");
      gSystem->Load("libPhysics.so");
      gSystem->Load("libGeom.so");
      gSystem->Load("libVMC.so");

      bool bKineFilter = true;
      //      TProof::Mgr("alicecaf")->SetROOTVersion("v5-21-01-alice_dbg");
      TProof::Open("alicecaf");
      //      gProof->SetParallel(1);

      char *dataset = "/COMMON/COMMON/LHC08c11_10TeV_0.5T";
      //      char *dataset = "/PWG4/kleinb/LHC08q_jetjet100";
      // gProof->ClearPackages();
      gProof->UploadPackage("${ALICE_ROOT}/STEERBase.par");
      gProof->EnablePackage("STEERBase");
      gProof->UploadPackage("${ALICE_ROOT}/ESD.par");
      gProof->EnablePackage("ESD");
      gProof->UploadPackage("${ALICE_ROOT}/AOD.par");
      gProof->EnablePackage("AOD");
      gProof->UploadPackage("${ALICE_ROOT}/ANALYSIS.par");
      gProof->EnablePackage("ANALYSIS");
      gProof->UploadPackage("${ALICE_ROOT}/ANALYSISalice.par");
      gProof->EnablePackage("ANALYSISalice");
      
      //
      if (gApplication) gApplication->InitializeGraphics();
      // Create the chain
      //


	/////////////////////////////////////////////////////////////////////////////////// 
	// Create the analysis manager
	//
	// Input 
      AliESDInputHandler* inpHandler = new AliESDInputHandler();
      // Output
      AliAODHandler* aodHandler = new AliAODHandler();
      aodHandler->SetOutputFileName("aod_ckb2.root");
      // MC Truth
      AliMCEventHandler* mcHandler = new AliMCEventHandler();
      AliAnalysisManager *mgr  = new AliAnalysisManager("Filter Manager", "Filter Manager");
     if(bKineFilter){
       mgr->SetMCtruthEventHandler(mcHandler);
     }

      mgr->SetInputEventHandler  (inpHandler);
      mgr->SetOutputEventHandler (aodHandler);
      aodHandler->Dump();

      mgr->SetDebugLevel(10);

      // Filtering of MC particles (decays conversions etc)
      // this task is also needed to set the MCEventHandler
      // to the AODHandler, this will not be needed when
      // AODHandler goes to ANALYSISalice
      AliAnalysisTaskMCParticleFilter *kinefilter = new AliAnalysisTaskMCParticleFilter("Particle Filter");
      if(bKineFilter)mgr->AddTask(kinefilter);
      
      
      // 
      AliESDtrackCuts* esdTrackCutsL = new AliESDtrackCuts("AliESDtrackCuts", "Loose");
      esdTrackCutsL->SetMinNClustersTPC(50);
      esdTrackCutsL->SetMaxChi2PerClusterTPC(3.5);
      esdTrackCutsL->SetMaxCovDiagonalElements(2,2,0.5,0.5,2);
      esdTrackCutsL->SetRequireTPCRefit(kTRUE);
      esdTrackCutsL->SetDCAToVertexZ(3.0);
      esdTrackCutsL->SetDCAToVertexXY(3.0);
      esdTrackCutsL->SetDCAToVertex2D(kTRUE);
      esdTrackCutsL->SetRequireSigmaToVertex(kFALSE);
      esdTrackCutsL->SetAcceptKinkDaughters(kFALSE);

      AliESDtrackCuts* esdTrackCutsITSsa = new AliESDtrackCuts("AliESDtrackCuts", "ITS stand-alone");
      esdTrackCutsITSsa->SetRequireITSStandAlone(kTRUE);
      
      AliAnalysisFilter* trackFilter = new AliAnalysisFilter("trackFilter");
      trackFilter->AddCuts(esdTrackCutsL);
      trackFilter->AddCuts(esdTrackCutsITSsa);
      
      AliAnalysisTaskESDfilter *esdfilter = new AliAnalysisTaskESDfilter("ESD Filter");
      esdfilter->SetTrackFilter(trackFilter);
      
      mgr->AddTask(esdfilter);
    
    
      //
      // Create containers for input/output
      AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
      AliAnalysisDataContainer *coutput1 = mgr->GetCommonOutputContainer();
      
      coutput1->SetSpecialOutput();

      if(bKineFilter){
	mgr->ConnectInput  (kinefilter,     0, cinput1  );
	mgr->ConnectOutput (kinefilter,     0, coutput1 );
	AliAnalysisDataContainer *coutputEx = mgr->CreateContainer("cFilterList", TList::Class(),
								   AliAnalysisManager::kOutputContainer,"pyxsec_hists.root");
	mgr->ConnectOutput (kinefilter,     1, coutputEx );
      }

	mgr->ConnectInput  (esdfilter,     0, cinput1  );
	mgr->ConnectOutput (esdfilter,     0, coutput1 );
      
      //
      // Run the analysis
      //    
      mgr->InitAnalysis();
      mgr->PrintStatus();
      mgr->StartAnalysis("proof",dataset,10000);

}

 runAODFilterMC.C:1
 runAODFilterMC.C:2
 runAODFilterMC.C:3
 runAODFilterMC.C:4
 runAODFilterMC.C:5
 runAODFilterMC.C:6
 runAODFilterMC.C:7
 runAODFilterMC.C:8
 runAODFilterMC.C:9
 runAODFilterMC.C:10
 runAODFilterMC.C:11
 runAODFilterMC.C:12
 runAODFilterMC.C:13
 runAODFilterMC.C:14
 runAODFilterMC.C:15
 runAODFilterMC.C:16
 runAODFilterMC.C:17
 runAODFilterMC.C:18
 runAODFilterMC.C:19
 runAODFilterMC.C:20
 runAODFilterMC.C:21
 runAODFilterMC.C:22
 runAODFilterMC.C:23
 runAODFilterMC.C:24
 runAODFilterMC.C:25
 runAODFilterMC.C:26
 runAODFilterMC.C:27
 runAODFilterMC.C:28
 runAODFilterMC.C:29
 runAODFilterMC.C:30
 runAODFilterMC.C:31
 runAODFilterMC.C:32
 runAODFilterMC.C:33
 runAODFilterMC.C:34
 runAODFilterMC.C:35
 runAODFilterMC.C:36
 runAODFilterMC.C:37
 runAODFilterMC.C:38
 runAODFilterMC.C:39
 runAODFilterMC.C:40
 runAODFilterMC.C:41
 runAODFilterMC.C:42
 runAODFilterMC.C:43
 runAODFilterMC.C:44
 runAODFilterMC.C:45
 runAODFilterMC.C:46
 runAODFilterMC.C:47
 runAODFilterMC.C:48
 runAODFilterMC.C:49
 runAODFilterMC.C:50
 runAODFilterMC.C:51
 runAODFilterMC.C:52
 runAODFilterMC.C:53
 runAODFilterMC.C:54
 runAODFilterMC.C:55
 runAODFilterMC.C:56
 runAODFilterMC.C:57
 runAODFilterMC.C:58
 runAODFilterMC.C:59
 runAODFilterMC.C:60
 runAODFilterMC.C:61
 runAODFilterMC.C:62
 runAODFilterMC.C:63
 runAODFilterMC.C:64
 runAODFilterMC.C:65
 runAODFilterMC.C:66
 runAODFilterMC.C:67
 runAODFilterMC.C:68
 runAODFilterMC.C:69
 runAODFilterMC.C:70
 runAODFilterMC.C:71
 runAODFilterMC.C:72
 runAODFilterMC.C:73
 runAODFilterMC.C:74
 runAODFilterMC.C:75
 runAODFilterMC.C:76
 runAODFilterMC.C:77
 runAODFilterMC.C:78
 runAODFilterMC.C:79
 runAODFilterMC.C:80
 runAODFilterMC.C:81
 runAODFilterMC.C:82
 runAODFilterMC.C:83
 runAODFilterMC.C:84
 runAODFilterMC.C:85
 runAODFilterMC.C:86
 runAODFilterMC.C:87
 runAODFilterMC.C:88
 runAODFilterMC.C:89
 runAODFilterMC.C:90
 runAODFilterMC.C:91
 runAODFilterMC.C:92
 runAODFilterMC.C:93
 runAODFilterMC.C:94
 runAODFilterMC.C:95
 runAODFilterMC.C:96
 runAODFilterMC.C:97
 runAODFilterMC.C:98
 runAODFilterMC.C:99
 runAODFilterMC.C:100
 runAODFilterMC.C:101
 runAODFilterMC.C:102
 runAODFilterMC.C:103
 runAODFilterMC.C:104
 runAODFilterMC.C:105
 runAODFilterMC.C:106
 runAODFilterMC.C:107
 runAODFilterMC.C:108
 runAODFilterMC.C:109
 runAODFilterMC.C:110
 runAODFilterMC.C:111
 runAODFilterMC.C:112
 runAODFilterMC.C:113
 runAODFilterMC.C:114
 runAODFilterMC.C:115
 runAODFilterMC.C:116