ROOT logo
AliAnalysisTaskFullpAJets *AddTaskFullpAJets(const char* proj_name, const Double_t jetRadius=0.4, Bool_t IsMC=kFALSE, const char* track_name="PicoTracks", const char* clus_name="caloClusters", const char* corrclus_name="caloClustersCorr", const char* mcpart_name="MCParticles", TString Centrality_name="V0A", Double_t scaleFactor = 1.28, Double_t nefJetCut = 1.0, Bool_t doNEF=kFALSE, Bool_t signalTrackBias=kFALSE, Bool_t doTrackQA=kFALSE, Bool_t doClusterQA=kFALSE, Int_t calcRhoJet=0, Bool_t doNEFSignalOnly=kTRUE, Bool_t doVertexRCut=kTRUE, Bool_t isMCParticleLevel=kFALSE, Double_t jetRAccept = 0.4, Bool_t doTHnSparse = kFALSE, Bool_t doJetRhoDensity = kFALSE)
{
    char *usedTracks = track_name;
    char *usedClusters = clus_name;
    char *outClusName = corrclus_name;
    char *usedMCParticles = mcpart_name;
    char *projName = proj_name;
    const Double_t minTrackPt=0.15;
    const Double_t minClusterPt=0.30;
    const Double_t minMCPartPt=0.00;
    
    TString centEst = Centrality_name;

    Double_t scaleFac = scaleFactor; // Obtained from previous runs...
    Double_t NEFSignalJetCut = nefJetCut; // Require signal jet to not exceed a Neutral Energy Fraction of this setting...
    
    // Some constants for the jet finders
    const Int_t cKT=0;
    const Int_t cANTIKT=1;
    const Int_t cFULLJETS=0;
    const Int_t cCHARGEDJETS=1;
    const Int_t cNEUTRALJETS=2;

    AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
    if (!mgr)
    {
        Error("AddTaskJetCommon","No analysis manager found.");
        return 0;
    }

    // Determine the int of the jet radius for naming purposes
    Int_t drjet=Int_t(100*jetRadius);
    if (drjet%10 == 0)
    {
        drjet/=10;
    }
    
    TString taskName = Form("AnalysisFullpAJetsR%d",drjet);
    TString listName = Form("List%sR%d",projName,drjet);
    TString fileName = Form("%s:FullpAJets", AliAnalysisManager::GetCommonFileName());
    
    // Jet finders (RECONSTRUCTED DATA)
    TString tmpTaskName("");
    AliEmcalJetTask* jetFinderTask = NULL;

    gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJet.C");
    
    // Add User Task
    AliAnalysisTaskFullpAJets *task = new AliAnalysisTaskFullpAJets(taskName);

    // Used for physics selection
    task->SetUseAliAnaUtils(kTRUE);
    task->DoVertexRCut(doVertexRCut);

    if (IsMC == kTRUE)
    {
        task->SetTrackName(usedMCParticles);
        task->SetClusterName("");
        task->SetTrackPtCut(minMCPartPt);
        task->SetClusterPtCut(minMCPartPt);
        task->SetMCParticleLevel(isMCParticleLevel);
        
        // ########## CHARGED JETS ##########
        jetFinderTask = AddTaskEmcalJet(usedMCParticles,"",cKT,jetRadius,cCHARGEDJETS,minMCPartPt,minMCPartPt,0.005,1,"Jet");
        task->SetkTChargedJetName(jetFinderTask->GetName());
        
        jetFinderTask = AddTaskEmcalJet(usedMCParticles,"",cANTIKT,jetRadius,cCHARGEDJETS,minMCPartPt,minMCPartPt,0.005,1,"Jet");
        task->SetAkTChargedJetName(jetFinderTask->GetName());
        
        // ########## FULL JETS ##########
        // No Full jets or clusters are used if run over MCParticles!
        task->SetkTFullJetName("");
        task->SetAkTFullJetName("");
    }
    else
    {
        task->SetTrackName(usedTracks);
        task->SetClusterName(outClusName);
        task->SetTrackPtCut(minTrackPt);
        task->SetClusterPtCut(minClusterPt);

        // ########## CHARGED JETS ##########
        jetFinderTask = AddTaskEmcalJet(usedTracks,"",cKT,jetRadius,cCHARGEDJETS,minTrackPt,minClusterPt,0.005,1,"Jet");
        task->SetkTChargedJetName(jetFinderTask->GetName());
        
        jetFinderTask = AddTaskEmcalJet(usedTracks,"",cANTIKT,jetRadius,cCHARGEDJETS,minTrackPt,minClusterPt,0.005,1,"Jet");
        task->SetAkTChargedJetName(jetFinderTask->GetName());
        
        // ########## FULL JETS ##########
        jetFinderTask = AddTaskEmcalJet(usedTracks,outClusName,cKT,jetRadius,cFULLJETS,minTrackPt,minClusterPt,0.005,1,"Jet");
        task->SetkTFullJetName(jetFinderTask->GetName());

        jetFinderTask = AddTaskEmcalJet(usedTracks,outClusName,cANTIKT,jetRadius,cFULLJETS,minTrackPt,minClusterPt,0.005,1,"Jet");
        task->SetAkTFullJetName(jetFinderTask->GetName());
    }

    task->SetRjet(drjet);
    task->SetJetRAcceptance(jetRAccept);
    task->SetCentralityTag(centEst.Data());
    task->SetScaleFactor(scaleFac);
    task->SelectCollisionCandidates(AliVEvent::kINT7);
    task->SetNColl(7);
    task->SetNEFSignalJetCut(NEFSignalJetCut);
    task->DoNEFCalibration(doNEF);
    task->DoNEFSignalOnly(doNEFSignalOnly);
    task->SetJetChargeBias(signalTrackBias);
    task->DoTrackQA(doTrackQA);
    task->DoClusterQA(doClusterQA);
    task->CalculateRhoJet(calcRhoJet);
    task->DoTHnSparse(doTHnSparse);
    task->DoJetRhoDensity(doJetRhoDensity);
    
    mgr->AddTask(task);

    AliAnalysisDataContainer *coutput = mgr->CreateContainer(listName,TList::Class(),AliAnalysisManager::kOutputContainer,fileName);
    mgr->ConnectInput(task,0,mgr->GetCommonInputContainer());
    mgr->ConnectOutput(task,1,coutput);

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