Program Listing for File HLTJetRoIBuilder.h¶
↰ Return to documentation for file (xAODAnaHelpers/HLTJetRoIBuilder.h)
#ifndef xAODAnaHelpers_HLTJetRoIBuilder_H
#define xAODAnaHelpers_HLTJetRoIBuilder_H
// algorithm wrapper
#include "xAODAnaHelpers/Algorithm.h"
// tools
#include "AsgTools/AnaToolHandle.h"
#include "xAODAnaHelpers/OnlineBeamSpotTool.h"
#include "TrigDecisionTool/TrigDecisionTool.h"
class HLTJetRoIBuilder : public xAH::Algorithm
{
public:
// configuration variables
std::string m_trigItem = "";
std::string m_trigItemVeto = "";
bool m_doHLTBJet = true;
bool m_doHLTJet = false;
bool m_readHLTTracks = true;
bool m_readHLTVtx = true;
std::string m_outContainerName = "";
private:
asg::AnaToolHandle<Trig::TrigDecisionTool> m_trigDecTool_handle{"Trig::TrigDecisionTool/TrigDecisionTool"};
std::string m_jetName = "EFJet";
std::string m_trkName = "InDetTrigTrackingxAODCnv_Bjet_IDTrig";
std::string m_vtxName = "EFHistoPrmVtx";
xAH::OnlineBeamSpotTool m_onlineBSTool;
EL::StatusCode buildHLTBJets ();
EL::StatusCode buildHLTJets ();
public:
// this is a standard constructor
HLTJetRoIBuilder ();
// these are the functions inherited from Algorithm
virtual EL::StatusCode setupJob (EL::Job& job);
virtual EL::StatusCode fileExecute ();
virtual EL::StatusCode histInitialize ();
virtual EL::StatusCode changeInput (bool firstFile);
virtual EL::StatusCode initialize ();
virtual EL::StatusCode execute ();
virtual EL::StatusCode postExecute ();
virtual EL::StatusCode finalize ();
virtual EL::StatusCode histFinalize ();
// this is needed to distribute the algorithm to the workers
ClassDef(HLTJetRoIBuilder, 1);
template<class Object, class Collection>
const Object* getTrigObject(Trig::Feature<Collection>& feature){
const Collection* trigCol = feature.cptr();
if ( !trigCol ) {
ANA_MSG_ERROR("ERROR: No Trig Collection pointer");
return 0;
}
if(trigCol->size() != 1){
ANA_MSG_ERROR("ERROR Trig Collection size " << trigCol->size());
return 0;;
}
return trigCol->at(0);
}
};
#endif