// $Id$ /** * @file print-ESD-HLTdecision.C * @brief Print HLT decisions per event of ESD * *
* Usage: aliroot -b -q print-ESD-HLTdecision.C ** * The input file can be a file on Grid like e.g. * "alien:///alice/data/2009/LHC09d/000104321/ESDs/pass5/09000104321018.30/AliESDs.root" * In that case you need a valid token in order to connect to the Grid. * Use 'alien-token-init' from your alien installation. * * @author Matthias.Richter@ift.uib.no * @ingroup alihlt_programs */ int print_ESD_HLTdecision(const char* esdFileName="AliESDs.root", int minEvent=0, int maxEvent=-1) { TString strfile=esdFileName; if (strfile.Contains("://") && !strfile.Contains("local://")) { TGrid::Connect("alien"); } TFile* esdFile=NULL; if (esdFileName && esdFileName[0]!=0) esdFile=TFile::Open(esdFileName); if (!esdFileName || esdFileName[0]==0 || !esdFile || esdFile->IsZombie()) { if (esdFileName && esdFileName[0]!=0) cerr << "can not open esd file " << esdFileName << endl; else cerr << "print-ESD-HLTdecision.C Print HLT decisions per event of ESD" << endl; cerr << "===============================================================" << endl; cerr << "usage: aliroot -b -q -l print-ESD-HLTdecision.C'(\"AliESDs.root\" " << endl; cerr << " minEvent, maxEvent)'" << endl << endl; cerr << " Parameter:" << endl; cerr << " esdFileName default \"AliESDs.root\"" << endl; cerr << " minEvent first event (optional)" << endl; cerr << " maxEvent last event (optional)" << endl << endl; cerr << " The input file can be a file on Grid like e.g." << endl; cerr << " \"alien:///alice/data/2009/LHC09d/000104321/ESDs/pass5/09000104321018.30/AliESDs.root\"" << endl; cerr << "===============================================================" << endl; return -1; } TTree* pTree=NULL; esdFile->GetObject("esdTree", pTree); if (!pTree) { cerr << "can not find ESD tree" << endl; return -1; } AliESDEvent* esd=new AliESDEvent; esd->CreateStdContent(); esd->ReadFromTree(pTree); TTree* pHLTTree=NULL; esdFile->GetObject("HLTesdTree", pHLTTree); if (!pHLTTree) { cerr << "can not find HLT ESD tree" << endl; return -1; } if (pTree->GetEntries() != pHLTTree->GetEntries()) { cerr << "entries differ: ESD tree " << pTree->GetEntries() << " HLT ESD tree " << pHLTTree->GetEntries() << endl; } AliESDEvent* HLTesd=new AliESDEvent; HLTesd->CreateStdContent(); HLTesd->ReadFromTree(pHLTTree); for (int event=minEvent; event