14#include "GaudiKernel/MsgStream.h"
24 : base_class(
type, name, parent )
31 declareProperty(
"GoodRunsListVec",
m_goodrunslistVec,
"list of input xml files" );
33 declareProperty(
"BoolOperation",
m_boolop );
35 declareProperty(
"RejectBlackRunsInEventSelector",
m_rejectanybrl =
false );
52 std::map< std::string,TFormula* >::iterator itr=
m_dqformula.begin();
53 TFormula* form = (*itr).second;
75 std::vector<std::string>::iterator itr;
79 if ( itr->find(
'/')==0 || itr->find(
'$')==0 || itr->find(
'.')==0 || itr->find(
':')!=string::npos ) {
80 fname = gSystem->ExpandPathName( itr->c_str() );
87 return StatusCode::FAILURE;
93 if ( itr->find(
'/')==0 || itr->find(
'$')==0 || itr->find(
'.')==0 || itr->find(
':')!=string::npos ) {
94 fname = gSystem->ExpandPathName( itr->c_str() );
101 return StatusCode::FAILURE;
110 if ( itr->find(
'/')==0 || itr->find(
'$')==0 || itr->find(
'.')==0 || itr->find(
':')!=string::npos ) {
111 fname = gSystem->ExpandPathName( itr->c_str() );
127 if ( itr->find(
'/')==0 || itr->find(
'$')==0 || itr->find(
'.')==0 || itr->find(
':')!=string::npos ) {
128 fname = gSystem->ExpandPathName( itr->c_str() );
140 return StatusCode::SUCCESS;
149 auto eventNumber = pEvent.event_number();
150 int runNumber = pEvent.run_number();
151 int lumiBlockNr = pEvent.lumi_block();
152 auto timeStamp = pEvent.time_stamp();
154 ATH_MSG_DEBUG (
"passEvent() :: run number = " << runNumber <<
155 " ; event number = " << eventNumber <<
156 " ; lumiblock number = " << lumiBlockNr <<
157 " ; timestamp = " << timeStamp
168 pass = this->
passRunLB(runNumber,lumiBlockNr);
177 const std::vector<std::string>& brlnameVec )
181 const EventContext& ctx = Gaudi::Hive::currentContext();
183 int eventNumber = ctx.eventID().event_number();
184 int runNumber = ctx.eventID().run_number();
185 int lumiBlockNr = ctx.eventID().lumi_block();
186 int timeStamp = ctx.eventID().time_stamp();
188 ATH_MSG_DEBUG (
"passThisRunLB() :: run number = " << runNumber <<
189 " ; event number = " << eventNumber <<
190 " ; lumiblock number = " << lumiBlockNr <<
191 " ; timestamp = " << timeStamp
202 pass = this->
passRunLB(runNumber,lumiBlockNr,grlnameVec,brlnameVec);
211 const std::vector<std::string>& grlnameVec,
212 const std::vector<std::string>& brlnameVec )
225 ATH_MSG_DEBUG (
"passRunLB() :: Event rejected by (_any_ of) merged black runs list.");
229 }
else if (!brlnameVec.empty()) {
231 std::vector<Root::TGoodRunsList>::const_iterator brlitr;
232 for (
unsigned int i=0; i<brlnameVec.size() && !reject; ++i) {
235 reject = brlitr->HasRunLumiBlock(runNumber,lumiBlockNr);
238 ATH_MSG_DEBUG (
"passRunLB() :: Event rejected by specific black runs list.");
244 if (!grlnameVec.empty()) {
246 std::vector<Root::TGoodRunsList>::const_iterator grlitr;
247 for (
unsigned int i=0; i<grlnameVec.size() && !pass; ++i) {
250 pass = grlitr->HasRunLumiBlock(runNumber,lumiBlockNr);
253 ATH_MSG_DEBUG (
"passRunLB() :: Event accepted by specific good runs list.");
258 ATH_MSG_DEBUG (
"passRunLB() :: Event accepted by (_any_ of) merged good runs list.");
262 ATH_MSG_DEBUG (
"passRunLB() :: Event rejected, not in (any) good runs list.");
271 return StatusCode::SUCCESS;
282 ret = stat(fileName, &info);
301 ATH_MSG_WARNING (
"registerGRLSelector() :: GRL selector with name <" << name <<
"> already registered. Return false.");
306 if (!brlnameVec.empty()) {
307 std::vector<Root::TGoodRunsList>::const_iterator brlitr;
308 for (
unsigned int i=0; i<brlnameVec.size(); ++i) {
311 ATH_MSG_ERROR (
"registerGRLSelector() :: requested BRL object with name <" << brlnameVec[i] <<
"> not found. Have you provided an object name from the BRL xml-file(s)?");
318 if (!grlnameVec.empty()) {
319 std::vector<Root::TGoodRunsList>::const_iterator grlitr;
320 for (
unsigned int i=0; i<grlnameVec.size(); ++i) {
323 ATH_MSG_ERROR (
"registerGRLSelector() :: requested GRL object with name <" << grlnameVec[i] <<
"> not found. Have you provided an object name from the GRL xml-file(s)?");
329 ATH_MSG_DEBUG (
"registerGRLSelector() :: GRL selector with name <" << name <<
"> registered.");
#define ATH_MSG_WARNING(x)
std::string PathResolverFindXMLFile(const std::string &logical_file_name)
static void SetMinLevel(TMsgLevel minLevel)