/**************************************************************************
* This file is property of and copyright by the ALICE HLT Project *
* All rights reserved. *
* *
* Primary Authors: *
* Artur Szostak <artursz@iafrica.com> *
* *
* Permission to use, copy, modify and distribute this software and its *
* documentation strictly for non-commercial purposes is hereby granted *
* without fee, provided that the above copyright notice appears in all *
* copies and that both the copyright notice and this permission notice *
* appear in the supporting documentation. The authors make no claims *
* about the suitability of this software for any purpose. It is *
* provided "as is" without express or implied warranty. *
**************************************************************************/
/// \ingroup macros
/// \file RunLinkToMCAnalysisExample.C
/// \brief Example macro for running the AliAnalysisTaskLinkToMC analysis task.
/// \author Artur Szostak <artursz@iafrica.com>
///
/// This macro shows an example of how to run the AliAnalysisTaskLinkToMC analysis
/// task in local mode. It can be used as a quick check of the analysis task.
/// It will generate AliAOD.root and hists.root files. The hists.root can then
/// be used in the PlotEfficiency.C macro.
/// Run this macro as follows:
///
/// $ aliroot RunLinkToMCAnalysisExample.C\(\"AliESDs.root\"\)
///
/// where AliESDs.root should be the correct path to a root file containing ESD
/// objects created by the offline reconstruction.
#if !defined(__CINT__) || defined(__MAKECINT__)
#error This macro must be run in interpreted mode.
#endif
void RunLinkToMCAnalysisExample(const char* esdFile = "./AliESDs.root")
{
// Load needed libraries
gSystem->Load("libTree.so");
gSystem->Load("libGeom.so");
gSystem->Load("libVMC.so");
gSystem->Load("libPhysics.so");
gSystem->Load("libSTEERBase.so");
gSystem->Load("libESD.so");
gSystem->Load("libAOD.so");
gSystem->Load("libANALYSIS.so");
gSystem->Load("libANALYSISalice.so");
gSystem->Load("libPWGHFbase.so");
gSystem->Load("libPWGmuon.so");
// Create the TChain for esdTrees in the AliESDs.root file.
TChain* chain = new TChain("esdTree");
chain->Add(esdFile);
if (!chain) return;
// Create the analysis manager and event handlers.
AliAnalysisManager* mgr = new AliAnalysisManager("Analysis Train", "An example analysis train setup for AliAnalysisTaskLinkToMC.");
AliESDInputHandler* esdHandler = new AliESDInputHandler();
mgr->SetInputEventHandler(esdHandler);
AliMCEventHandler* mcHandler = new AliMCEventHandler();
mgr->SetMCtruthEventHandler(mcHandler);
mcHandler->SetReadTR(kTRUE);
AliAODHandler* aodHandler = new AliAODHandler();
mgr->SetOutputEventHandler(aodHandler);
aodHandler->SetOutputFileName("AliAOD.root");
// Create the analysis task and setup the parameters.
AliAnalysisTaskLinkToMC* linktask = new AliAnalysisTaskLinkToMC("Task to link ESD tracks to corresponding MC tracks.");
linktask->MinClusters(6);
linktask->HardCutLimitX(4);
linktask->HardCutLimitY(4);
linktask->SigmaCut(5.);
linktask->MinClustersInSt45(3);
linktask->StationMustMatch(1, true); // At least one cluster in station 1 must match.
linktask->StationMustMatch(2, true); // At least one cluster in station 2 must match.
linktask->StationMustMatch(3, true); // At least one cluster in station 3 must match.
linktask->GenerateHistograms(true);
mgr->AddTask(linktask);
// Create the input and output containers and connect them up to the analysis task.
AliAnalysisDataContainer* cinEsd = mgr->GetCommonInputContainer();
AliAnalysisDataContainer* coutAod = mgr->GetCommonOutputContainer();
AliAnalysisDataContainer* coutHists = mgr->CreateContainer("cHists", TList::Class(), AliAnalysisManager::kOutputContainer, "hists.root");
mgr->ConnectInput(linktask, 0, cinEsd);
mgr->ConnectOutput(linktask, 0, coutAod);
mgr->ConnectOutput(linktask, 1, coutHists);
if (mgr->InitAnalysis())
{
mgr->PrintStatus();
mgr->StartAnalysis("local", chain);
}
}
RunLinkToMCAnalysisExample.C:1 RunLinkToMCAnalysisExample.C:2 RunLinkToMCAnalysisExample.C:3 RunLinkToMCAnalysisExample.C:4 RunLinkToMCAnalysisExample.C:5 RunLinkToMCAnalysisExample.C:6 RunLinkToMCAnalysisExample.C:7 RunLinkToMCAnalysisExample.C:8 RunLinkToMCAnalysisExample.C:9 RunLinkToMCAnalysisExample.C:10 RunLinkToMCAnalysisExample.C:11 RunLinkToMCAnalysisExample.C:12 RunLinkToMCAnalysisExample.C:13 RunLinkToMCAnalysisExample.C:14 RunLinkToMCAnalysisExample.C:15 RunLinkToMCAnalysisExample.C:16 RunLinkToMCAnalysisExample.C:17 RunLinkToMCAnalysisExample.C:18 RunLinkToMCAnalysisExample.C:19 RunLinkToMCAnalysisExample.C:20 RunLinkToMCAnalysisExample.C:21 RunLinkToMCAnalysisExample.C:22 RunLinkToMCAnalysisExample.C:23 RunLinkToMCAnalysisExample.C:24 RunLinkToMCAnalysisExample.C:25 RunLinkToMCAnalysisExample.C:26 RunLinkToMCAnalysisExample.C:27 RunLinkToMCAnalysisExample.C:28 RunLinkToMCAnalysisExample.C:29 RunLinkToMCAnalysisExample.C:30 RunLinkToMCAnalysisExample.C:31 RunLinkToMCAnalysisExample.C:32 RunLinkToMCAnalysisExample.C:33 RunLinkToMCAnalysisExample.C:34 RunLinkToMCAnalysisExample.C:35 RunLinkToMCAnalysisExample.C:36 RunLinkToMCAnalysisExample.C:37 RunLinkToMCAnalysisExample.C:38 RunLinkToMCAnalysisExample.C:39 RunLinkToMCAnalysisExample.C:40 RunLinkToMCAnalysisExample.C:41 RunLinkToMCAnalysisExample.C:42 RunLinkToMCAnalysisExample.C:43 RunLinkToMCAnalysisExample.C:44 RunLinkToMCAnalysisExample.C:45 RunLinkToMCAnalysisExample.C:46 RunLinkToMCAnalysisExample.C:47 RunLinkToMCAnalysisExample.C:48 RunLinkToMCAnalysisExample.C:49 RunLinkToMCAnalysisExample.C:50 RunLinkToMCAnalysisExample.C:51 RunLinkToMCAnalysisExample.C:52 RunLinkToMCAnalysisExample.C:53 RunLinkToMCAnalysisExample.C:54 RunLinkToMCAnalysisExample.C:55 RunLinkToMCAnalysisExample.C:56 RunLinkToMCAnalysisExample.C:57 RunLinkToMCAnalysisExample.C:58 RunLinkToMCAnalysisExample.C:59 RunLinkToMCAnalysisExample.C:60 RunLinkToMCAnalysisExample.C:61 RunLinkToMCAnalysisExample.C:62 RunLinkToMCAnalysisExample.C:63 RunLinkToMCAnalysisExample.C:64 RunLinkToMCAnalysisExample.C:65 RunLinkToMCAnalysisExample.C:66 RunLinkToMCAnalysisExample.C:67 RunLinkToMCAnalysisExample.C:68 RunLinkToMCAnalysisExample.C:69 RunLinkToMCAnalysisExample.C:70 RunLinkToMCAnalysisExample.C:71 RunLinkToMCAnalysisExample.C:72 RunLinkToMCAnalysisExample.C:73 RunLinkToMCAnalysisExample.C:74 RunLinkToMCAnalysisExample.C:75 RunLinkToMCAnalysisExample.C:76 RunLinkToMCAnalysisExample.C:77 RunLinkToMCAnalysisExample.C:78 RunLinkToMCAnalysisExample.C:79 RunLinkToMCAnalysisExample.C:80 RunLinkToMCAnalysisExample.C:81 RunLinkToMCAnalysisExample.C:82 RunLinkToMCAnalysisExample.C:83 RunLinkToMCAnalysisExample.C:84 RunLinkToMCAnalysisExample.C:85 RunLinkToMCAnalysisExample.C:86 RunLinkToMCAnalysisExample.C:87 RunLinkToMCAnalysisExample.C:88 RunLinkToMCAnalysisExample.C:89 RunLinkToMCAnalysisExample.C:90 RunLinkToMCAnalysisExample.C:91 RunLinkToMCAnalysisExample.C:92 RunLinkToMCAnalysisExample.C:93 RunLinkToMCAnalysisExample.C:94 RunLinkToMCAnalysisExample.C:95 RunLinkToMCAnalysisExample.C:96 RunLinkToMCAnalysisExample.C:97 RunLinkToMCAnalysisExample.C:98