ROOT logo
void runFilteringTask( const char* esdList,   
        Float_t scalingTracks,
        Float_t scalingV0,
        const char* ocdb = "local:///cvmfs/alice.gsi.de/alice/data/2010/OCDB/" ,
        Int_t nFiles = 1000000,  
        Int_t firstFile=0, 
        Int_t nEvents=30000000, 
        Int_t firstEvent =0,
        const char* esdFileName="AliESDs.root",
        Bool_t mc=kFALSE)
{
    TStopwatch timer;
    timer.Start();

    printf("\n\n\n");
    printf("scalingTracks=%d\n",scalingTracks);
    printf("scalingV0=%d\n",scalingV0);
    printf("nFiles=%d\n",nFiles);

    gSystem->SetIncludePath("-I$ROOTSYS/include -I$ALICE_ROOT/include -I$ALICE_ROOT/ITS -I$ALICE_ROOT -I$ALICE_ROOT/TRD");

    gSystem->Load("libANALYSIS");
    gSystem->Load("libANALYSISalice");
    gSystem->Load("libTENDER");
    gSystem->Load("libCORRFW");
    gSystem->Load("libPWGUDbase");
    gSystem->Load("libTPCcalib");
    gSystem->Load("libPWGPP");
    gSystem->Load("libPWGLFspectra");

    //____________________________________________//
    // Make the analysis manager
    AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
    mgr->SetDebugLevel(0);
    mgr->SetNSysInfo(10);

    AliESDInputHandler* esdH = new AliESDInputHandler();
    esdH->SetReadFriends(1);
    mgr->SetInputEventHandler(esdH);  

    // Enable MC event handler
    AliMCEventHandler* handlerMC = new AliMCEventHandler;
    //handler->SetReadTR(kFALSE);
    mgr->SetMCtruthEventHandler(handlerMC);

    gROOT->LoadMacro("$ALICE_ROOT/PWGPP/PilotTrain/AddTaskCDBconnect.C");
    AddTaskCDBconnect(ocdb);

    if (gSystem->AccessPathName("localOCDBaccessConfig.C", kFileExists)==0) {
      gROOT->LoadMacro("localOCDBaccessConfig.C");
      localOCDBaccessConfig();
    }

    // Create input chain
    //gROOT->LoadMacro("$ALICE_ROOT/PWGUD/macros/CreateESDChain.C");
    //TChain* chain = CreateESDChain(esdList, nFiles,firstFile);
    AliXRDPROOFtoolkit toolkit;
    AliXRDPROOFtoolkit::FilterList(esdList,Form("%s esdTree",esdFileName),0);
    TChain * chain = toolkit.MakeChain(Form("%s.Good",esdList),"esdTree","asd",nFiles,firstFile);

    if(!chain) {
        printf("ERROR: chain cannot be created\n");
        return;
    }
    chain->Lookup();

    //
    // Wagons to run 
    //


    gROOT->LoadMacro("$ALICE_ROOT/PWGPP/macros/AddTaskFilteredTree.C");
    AliAnalysisTaskFilteredTree* task = (AliAnalysisTaskFilteredTree*)AddTaskFilteredTree("FilterEvents_Trees.root");
    task->SetLowPtTrackDownscaligF(scalingTracks);
    task->SetLowPtV0DownscaligF(scalingV0);
    task->SetUseESDfriends(kTRUE);

    // Init
    if (!mgr->InitAnalysis()) 
        mgr->PrintStatus();

    //
    // Run on dataset
    mgr->StartAnalysis("local",chain,nEvents, firstEvent);

    timer.Stop();
    timer.Print();

    delete mgr;
}
 runFilteringTask.C:1
 runFilteringTask.C:2
 runFilteringTask.C:3
 runFilteringTask.C:4
 runFilteringTask.C:5
 runFilteringTask.C:6
 runFilteringTask.C:7
 runFilteringTask.C:8
 runFilteringTask.C:9
 runFilteringTask.C:10
 runFilteringTask.C:11
 runFilteringTask.C:12
 runFilteringTask.C:13
 runFilteringTask.C:14
 runFilteringTask.C:15
 runFilteringTask.C:16
 runFilteringTask.C:17
 runFilteringTask.C:18
 runFilteringTask.C:19
 runFilteringTask.C:20
 runFilteringTask.C:21
 runFilteringTask.C:22
 runFilteringTask.C:23
 runFilteringTask.C:24
 runFilteringTask.C:25
 runFilteringTask.C:26
 runFilteringTask.C:27
 runFilteringTask.C:28
 runFilteringTask.C:29
 runFilteringTask.C:30
 runFilteringTask.C:31
 runFilteringTask.C:32
 runFilteringTask.C:33
 runFilteringTask.C:34
 runFilteringTask.C:35
 runFilteringTask.C:36
 runFilteringTask.C:37
 runFilteringTask.C:38
 runFilteringTask.C:39
 runFilteringTask.C:40
 runFilteringTask.C:41
 runFilteringTask.C:42
 runFilteringTask.C:43
 runFilteringTask.C:44
 runFilteringTask.C:45
 runFilteringTask.C:46
 runFilteringTask.C:47
 runFilteringTask.C:48
 runFilteringTask.C:49
 runFilteringTask.C:50
 runFilteringTask.C:51
 runFilteringTask.C:52
 runFilteringTask.C:53
 runFilteringTask.C:54
 runFilteringTask.C:55
 runFilteringTask.C:56
 runFilteringTask.C:57
 runFilteringTask.C:58
 runFilteringTask.C:59
 runFilteringTask.C:60
 runFilteringTask.C:61
 runFilteringTask.C:62
 runFilteringTask.C:63
 runFilteringTask.C:64
 runFilteringTask.C:65
 runFilteringTask.C:66
 runFilteringTask.C:67
 runFilteringTask.C:68
 runFilteringTask.C:69
 runFilteringTask.C:70
 runFilteringTask.C:71
 runFilteringTask.C:72
 runFilteringTask.C:73
 runFilteringTask.C:74
 runFilteringTask.C:75
 runFilteringTask.C:76
 runFilteringTask.C:77
 runFilteringTask.C:78
 runFilteringTask.C:79
 runFilteringTask.C:80
 runFilteringTask.C:81
 runFilteringTask.C:82
 runFilteringTask.C:83
 runFilteringTask.C:84
 runFilteringTask.C:85
 runFilteringTask.C:86
 runFilteringTask.C:87
 runFilteringTask.C:88
 runFilteringTask.C:89
 runFilteringTask.C:90
 runFilteringTask.C:91