//========================================================================= // This macro loops on the entries of a TChain (argument) containing ESDs // and saves a file containing a TTree of AliRsnEvents. //========================================================================= void AliRsnReadTask(TChain *analysisChain) { // if the used class libraries are not in memory, load them if (gClassTable->GetID("AliAnalysisTaskSE") < 0) { gSystem->Load("libANALYSIS"); gSystem->Load("libANALYSISalice.so"); } if (gClassTable->GetID("AliRsnDaughter") < 0) gSystem->Load("libPWG2resonances.so"); // instantiate the analysis manager AliAnalysisManager *mgr = new AliAnalysisManager("TestManager"); // create and connect containers for input/output AliAnalysisDataContainer *input = mgr->CreateContainer("in", TChain::Class(), AliAnalysisManager::kInputContainer); AliAnalysisDataContainer *output = mgr->CreateContainer("out", TTree::Class(), AliAnalysisManager::kOutputContainer, "default"); input->SetData(analysisChain); // add interface to MC AliMCEventHandler* mcHandler = new AliMCEventHandler(); mgr->SetMCtruthEventHandler(mcHandler); // add interface to ESD AliESDInputHandler *esdHandler = new AliESDInputHandler(); esdHandler->SetInactiveBranches("FMD CaloCluster"); mgr->SetInputEventHandler(esdHandler); // output AliAODHandler* aodHandler = new AliAODHandler(); aodHandler->SetOutputFileName("output_rsn.root"); aodHandler->SetCreateNonStandardAOD(); mgr->SetOutputEventHandler(aodHandler); // create readerTask AliRsnReaderTask *reader = new AliRsnReaderTask("AliRsnReaderTask"); reader->SetMaxRadius(3.0); reader->SetDebugFlag(kFALSE); // PID settings AliRsnPID &pid = reader->PID(); pid.SetMethod(AliRsnPID::kPerfect); // connect containers to AnalysisManager mgr->AddTask(reader); mgr->ConnectInput(reader, 0, input); mgr->ConnectOutput(reader, 0, output); // run analysis if (mgr->InitAnalysis()) { mgr->PrintStatus(); mgr->StartAnalysis("rsnEvents", analysisChain); } }