ROOT logo
AliAnalysisTaskLRC *AddTaskLRCtrain(
        Bool_t RunKine = kFALSE
        , Bool_t isIonsAnalysis = kFALSE
        , TString strPrefixTaskName = "testTask"
        , TString strRunMode = "default"
        , int nEtaWindows = 8
        , int nPhiWindows = 8
        , double etaWinWidth = 0.2
        , double etaWindowStep = 0.1
        , double phiWinWidth = TMath::Pi()/4
        , int nEventPhiRotations = 8
        , double ptMin = 0.3
        , double ptMax = 1.5
        , int multMin = 0
        , int multMax = 100000
        , double vertexZmax = 10.0
        )
{
    //!!!!!!
    gROOT->LoadMacro("$ALICE_ROOT/PWGCF/EBYE/macros/configLRCAnalysis.C");
    //gROOT->LoadMacro("AliAnalysisTaskIA.cxx+g");
    
    // A. Get the pointer to the existing analysis manager via the static access method.
    //==============================================================================
    AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
    if (!mgr) {
        Error("AddTaskLRC", "No analysis manager to connect to.");
        return NULL;
    }
    
    // B. Check the analysis type using the event handlers connected to the analysis
    //    manager. The availability of MC handler cann also be checked here.
    //==============================================================================
    if (!mgr->GetInputEventHandler()) {
        Error("AddTaskLRC", "This task requires an input event handler");
        return NULL;
    }
    TString type = mgr->GetInputEventHandler()->GetDataType();
    cout << " # TaskLRC - input :" << type << "\n";

    // ########## Task LRC
    AliAnalysisTaskLRC* taskLRC = 0x0;
    taskLRC = createLRCtaskSkeleton("Task_LRC_" + strPrefixTaskName /*+ "_MB_Global2"*/,RunKine);
    //addAliLRCProcessors(taskLRC,windowsConfigId, nPhiSectors,gapAsPartOfPi);//, whichParticleToFill, whichPidCondition);
    
    tuneEtaPhiWindows( taskLRC
                       , nEtaWindows
                       , nPhiWindows
                       , etaWinWidth
                       , etaWindowStep
                       , 0
                       , phiWinWidth
                       );
    
    taskLRC->SetNumberOfPhiSectors( nEventPhiRotations );
    taskLRC->SetAnalysisLevel( type );
    
    if ( type == "AOD" )
        taskLRC->SetAODtrackCutBit( 128 );//128 );//128 );
    else if ( type == "ESD" )
        taskLRC->SetTrackCuts(createAliLRCcuts( "StandardTPCOnlyTrackCuts" )); // "Global2" ));

    taskLRC->SetVtxDiamond(0.4,0.4,vertexZmax);
    taskLRC->SetMaxPtLimit(ptMax);
    taskLRC->SetMinPtLimit(ptMin);
    //taskLRC->SetMinNumberOfSPDtracklets( systConfig->minNtracklets );
    taskLRC->SetNchCuts( multMin, multMax ); // !!! for mult studies
    
    int maxMultInHistograms = ( !isIonsAnalysis ? 15 : 70 );
    setHistMultRange( taskLRC,  0, 0, maxMultInHistograms );
    const double ptBinWidth = 0.01;
    //int nPtBinsInHist = ( ptMax - ptMin ) / ptBinWidth;
    setHistPtRange( taskLRC, ptMin, ptMax, ptBinWidth, 1 );
    
    //if PbPb or pPb analysis
    taskLRC->SetIonsAnalysis(isIonsAnalysis);
    // to be set in the train wagon config: taskLRC->SetCentralityClass(min, max);
    
    taskLRC->SelectCollisionCandidates(AliVEvent::kMB); // if physics selection performed in UserExec(), this line should be commented
    mgr->AddTask(taskLRC);
    
    configureLRCtaskOutput(taskLRC, /*strOutputRootFolder,*/ strPrefixTaskName, strRunMode);
    
    return taskLRC;
}



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