AliAnalysisTaskSE * AddTaskMatchingChain(
const char* periodstr = "LHC11h",
const UInt_t pSel = AliVEvent::kAny,
const char* inClus = "EmcCaloClusters",
const Double_t trackeff = 1.0,
const Bool_t doAODTrackProp = kTRUE,
const Double_t maxMatchR = 0.1,
const Bool_t modifyMatchObjs = kTRUE,
const Bool_t doHistos = kFALSE
) {
// Add task macros for EMCal cluster track matching
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
if (!mgr)
{
Error("AddTaskClusTrackMatching","No analysis manager found.");
return NULL;
}
AliVEventHandler *evhand = mgr->GetInputEventHandler();
if (!evhand) {
Error("AddTaskClusTrackMatching", "This task requires an input event handler");
return NULL;
}
TString dType("ESD");
if (!evhand->InheritsFrom("AliESDInputHandler"))
dType = "AOD";
// Set trackcuts according to period.
TString period(periodstr);
TString inputClus = TString::Format(inClus);
TString inputTracks = "AODFilterTracks";
//----------------------- Filter Tracks -----------------------------------------------------
const Double_t edist = 440;
if (dType == "ESD") {
inputTracks = "ESDFilterTracks";
TString trackCuts(Form("Hybrid_%s", period.Data()));
gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalEsdTrackFilter.C");
AliEmcalEsdTrackFilterTask *esdfilter = AddTaskEmcalEsdTrackFilter(inputTracks,trackCuts);
esdfilter->SetDoPropagation(kTRUE);
esdfilter->SetDist(edist);
esdfilter->SelectCollisionCandidates(pSel);
esdfilter->SetTrackEfficiency(trackeff);
} else if (dType == "AOD") {
gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalAodTrackFilter.C");
AliEmcalAodTrackFilterTask *aodfilter = AddTaskEmcalAodTrackFilter(inputTracks,"tracks",period);
if (doAODTrackProp) {
aodfilter->SetDist(edist);
aodfilter->SetAttemptPropMatch(kTRUE);
}
aodfilter->SelectCollisionCandidates(pSel);
aodfilter->SetTrackEfficiency(trackeff);
}
//----------------------- Produce EmcalParticles -----------------------------------------------------
// Produce objects (AliEmcalParticle) for tracks and clusters
// used for cluster-track matching
TString emctracks = Form("EmcalTracks_%s",inputTracks.Data());
TString emcclusters = Form("EmcalClusters_%s",inputClus.Data());
Printf("emctracks: %s inputTracks: %s",emctracks.Data(),inputTracks.Data());
gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalParticleMaker.C");
AliEmcalParticleMaker *emcalParts = AddTaskEmcalParticleMaker(inputTracks,inputClus,emctracks,emcclusters);
emcalParts->SelectCollisionCandidates(pSel);
//----------------------- Cluster-Track matching -----------------------------------------------------
gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalClusTrackMatcher.C");
AliEmcalClusTrackMatcherTask *emcalClus = AddTaskEmcalClusTrackMatcher(emctracks,emcclusters,maxMatchR,modifyMatchObjs,doHistos);
emcalClus->SelectCollisionCandidates(pSel);
Printf("3-- inputTracks: %s emctracks: %s emcclusters: %s",inputTracks.Data(),emctracks.Data(),emcclusters.Data());
return emcalClus;
}
AddTaskMatchingChain.C:10 AddTaskMatchingChain.C:11 AddTaskMatchingChain.C:12 AddTaskMatchingChain.C:13 AddTaskMatchingChain.C:14 AddTaskMatchingChain.C:15 AddTaskMatchingChain.C:16 AddTaskMatchingChain.C:17 AddTaskMatchingChain.C:18 AddTaskMatchingChain.C:19 AddTaskMatchingChain.C:20 AddTaskMatchingChain.C:21 AddTaskMatchingChain.C:22 AddTaskMatchingChain.C:23 AddTaskMatchingChain.C:24 AddTaskMatchingChain.C:25 AddTaskMatchingChain.C:26 AddTaskMatchingChain.C:27 AddTaskMatchingChain.C:28 AddTaskMatchingChain.C:29 AddTaskMatchingChain.C:30 AddTaskMatchingChain.C:31 AddTaskMatchingChain.C:32 AddTaskMatchingChain.C:33 AddTaskMatchingChain.C:34 AddTaskMatchingChain.C:35 AddTaskMatchingChain.C:36 AddTaskMatchingChain.C:37 AddTaskMatchingChain.C:38 AddTaskMatchingChain.C:39 AddTaskMatchingChain.C:40 AddTaskMatchingChain.C:41 AddTaskMatchingChain.C:42 AddTaskMatchingChain.C:43 AddTaskMatchingChain.C:44 AddTaskMatchingChain.C:45 AddTaskMatchingChain.C:46 AddTaskMatchingChain.C:47 AddTaskMatchingChain.C:48 AddTaskMatchingChain.C:49 AddTaskMatchingChain.C:50 AddTaskMatchingChain.C:51 AddTaskMatchingChain.C:52 AddTaskMatchingChain.C:53 AddTaskMatchingChain.C:54 AddTaskMatchingChain.C:55 AddTaskMatchingChain.C:56 AddTaskMatchingChain.C:57 AddTaskMatchingChain.C:58 AddTaskMatchingChain.C:59 AddTaskMatchingChain.C:60 AddTaskMatchingChain.C:61 AddTaskMatchingChain.C:62 AddTaskMatchingChain.C:63 AddTaskMatchingChain.C:64 AddTaskMatchingChain.C:65 AddTaskMatchingChain.C:66 AddTaskMatchingChain.C:67 AddTaskMatchingChain.C:68 AddTaskMatchingChain.C:69 AddTaskMatchingChain.C:70 AddTaskMatchingChain.C:71 AddTaskMatchingChain.C:72 AddTaskMatchingChain.C:73 AddTaskMatchingChain.C:74 AddTaskMatchingChain.C:75 AddTaskMatchingChain.C:76 AddTaskMatchingChain.C:77 AddTaskMatchingChain.C:78