ATLAS Offline Software
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
GoodRunsListSelectorTool Class Reference

This file contains the class definition for the GoodRunsListSelectorTool class. More...

#include <GoodRunsListSelectorTool.h>

Inheritance diagram for GoodRunsListSelectorTool:
Collaboration diagram for GoodRunsListSelectorTool:

Public Member Functions

 GoodRunsListSelectorTool (const std::string &, const std::string &, const IInterface *)
 
virtual ~GoodRunsListSelectorTool ()
 
StatusCode queryInterface (const InterfaceID &riid, void **ppvIf)
 To allow access to the IGoodRunsListSelectorTool interface. More...
 
StatusCode initialize ()
 Initialize AlgTool. More...
 
bool passEvent (const EventIDBase &pEvent)
 called for each event by EventSelector to decide if the event should be passed More...
 
StatusCode finalize ()
 Finalize AlgTool. More...
 
bool passRunLB (int runNumber, int lumiBlockNr, const std::vector< std::string > &grlnameVec=std::vector< std::string >(), const std::vector< std::string > &brlnameVec=std::vector< std::string >())
 called for each event by GoodRunsListSelectorAlg to decide if the event should be passed More...
 
bool passThisRunLB (const std::vector< std::string > &grlnameVec=std::vector< std::string >(), const std::vector< std::string > &brlnameVec=std::vector< std::string >())
 called for each event by GoodRunsListSelectorAlg to decide if the event should be passed More...
 
bool registerGRLSelector (const std::string &name, const std::vector< std::string > &grlnameVec, const std::vector< std::string > &brlnameVec)
 register grl/brl combination More...
 
const std::map< std::string, vvPair > & getGRLSelectorRegistry ()
 get GRL selector registry More...
 
const Root::TGRLCollectiongetGRLCollection () const
 get grl/brl collection More...
 
const Root::TGRLCollectiongetBRLCollection () const
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Static Public Member Functions

static const InterfaceID & interfaceID ()
 
static const InterfaceID & interfaceID ()
 

Protected Member Functions

bool fileExists (const char *fileName)
 
void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
 
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed. More...
 

Protected Attributes

std::vector< std::string > m_goodrunslistVec
 
std::vector< std::string > m_blackrunslistVec
 
Root::TGRLCollectionm_grlcollection
 
Root::TGRLCollectionm_brlcollection
 
Root::TGoodRunsListReaderm_reader
 
std::map< std::string, TFormula * > m_dqformula
 
int m_boolop
 
bool m_passthrough
 
bool m_usecool
 
bool m_verbose
 
bool m_rejectanybrl
 
bool m_eventselectormode
 
std::map< std::string, vvPairm_registry
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

This file contains the class definition for the GoodRunsListSelectorTool class.

Definition at line 35 of file GoodRunsListSelectorTool.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ GoodRunsListSelectorTool()

GoodRunsListSelectorTool::GoodRunsListSelectorTool ( const std::string &  type,
const std::string &  name,
const IInterface *  parent 
)

Definition at line 23 of file GoodRunsListSelectorTool.cxx.

24  : AthAlgTool( type, name, parent )
25  , m_reader(0)
26  , m_boolop(0)
27  , m_passthrough(true)
28  , m_verbose(false)
29  , m_rejectanybrl(false)
30  , m_eventselectormode(false)
31 {
32  declareInterface<IGoodRunsListSelectorTool>(this);
33  declareInterface<IAthenaEvtLoopPreSelectTool>(this);
34 
35  declareProperty( "GoodRunsListVec", m_goodrunslistVec, "list of input xml files" );
36  declareProperty( "BlackRunsListVec", m_blackrunslistVec, "list of input xml files" );
37  declareProperty( "BoolOperation", m_boolop );
38  declareProperty( "PassThrough", m_passthrough = true);
39  declareProperty( "VerboseDetStatus", m_verbose = false);
40  declareProperty( "RejectBlackRunsInEventSelector", m_rejectanybrl = false );
41  declareProperty( "EventSelectorMode", m_eventselectormode = false );
42 
46 }

◆ ~GoodRunsListSelectorTool()

GoodRunsListSelectorTool::~GoodRunsListSelectorTool ( )
virtual

Definition at line 49 of file GoodRunsListSelectorTool.cxx.

50 {
51  if (m_grlcollection!=0) delete m_grlcollection;
52  if (m_brlcollection!=0) delete m_brlcollection;
53  if (m_reader!=0) delete m_reader;
54 
55  // delete all the formula pntrs in the map
56  while ( ! m_dqformula.empty() ) {
58  TFormula* form = (*itr).second;
59  m_dqformula.erase(itr);
60  delete form;
61  }
62 }

Member Function Documentation

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyArrayType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKeyArray>

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleBase>

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleBase. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 245 of file AthCommonDataStore.h.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleKey. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 221 of file AthCommonDataStore.h.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This is the generic version, for types that do not derive from SG::VarHandleKey. It just forwards to the base class version of declareProperty.

Definition at line 333 of file AthCommonDataStore.h.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This dispatches to either the generic declareProperty or the one for VarHandle/Key/KeyArray.

Definition at line 352 of file AthCommonDataStore.h.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T > &  t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ detStore()

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

◆ evtStore() [1/2]

ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( ) const
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase &  ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ fileExists()

bool GoodRunsListSelectorTool::fileExists ( const char *  fileName)
protected

stat() is able to get the file attributes, so the file obviously exists if filesize==0 assume the copying failed.

stat() is not able to get the file attributes, so the file obviously does not exist.

Definition at line 294 of file GoodRunsListSelectorTool.cxx.

295 {
296  struct stat info;
297  int ret = -1;
298 
299  //get the file attributes
300  ret = stat(fileName, &info);
301 
302  if(ret == 0) {
305  //if (info.st_size == 0) return false;
306  //else
307  return true;
308  } else {
310  return false;
311  }
312 }

◆ finalize()

StatusCode GoodRunsListSelectorTool::finalize ( )
virtual

Finalize AlgTool.

Implements IAthenaEvtLoopPreSelectTool.

Definition at line 286 of file GoodRunsListSelectorTool.cxx.

287 {
288  ATH_MSG_DEBUG ("finalize() ");
289  return StatusCode::SUCCESS;
290 }

◆ getBRLCollection()

const Root::TGRLCollection* GoodRunsListSelectorTool::getBRLCollection ( ) const
inlinevirtual

Implements IGoodRunsListSelectorTool.

Definition at line 71 of file GoodRunsListSelectorTool.h.

71 { return m_brlcollection; }

◆ getGRLCollection()

const Root::TGRLCollection* GoodRunsListSelectorTool::getGRLCollection ( ) const
inlinevirtual

get grl/brl collection

Implements IGoodRunsListSelectorTool.

Definition at line 70 of file GoodRunsListSelectorTool.h.

70 { return m_grlcollection; }

◆ getGRLSelectorRegistry()

const std::map< std::string, vvPair >& GoodRunsListSelectorTool::getGRLSelectorRegistry ( )
inlinevirtual

get GRL selector registry

Implements IGoodRunsListSelectorTool.

Definition at line 67 of file GoodRunsListSelectorTool.h.

67 { return m_registry; }

◆ initialize()

StatusCode GoodRunsListSelectorTool::initialize ( )
virtual

Initialize AlgTool.

reset pass-through mode

warn about pass-thru mode

checking existence of goodrunslists / blacklists

start reading xml files

this merge accounts for same identical metadata, version, name, etc.

this merge accounts for same identical metadata, version, name, etc.

Implements IAthenaEvtLoopPreSelectTool.

Definition at line 79 of file GoodRunsListSelectorTool.cxx.

80 {
81  ATH_MSG_DEBUG ("initialize() ");
82 
83  Root::TMsgLogger::SetMinLevel(static_cast<Root::TMsgLevel>(msgLevel()));
84 
86  if (!m_goodrunslistVec.empty() || !m_blackrunslistVec.empty() || m_usecool)
87  m_passthrough=false;
88 
90  if (m_passthrough) ATH_MSG_WARNING ("Set to pass-through mode.");
91 
94  for (itr=m_goodrunslistVec.begin(); itr!=m_goodrunslistVec.end() && !m_usecool; ++itr) {
95  //const char* fname;
96  std::string fname;
97  if ( itr->find("/")==0 || itr->find("$")==0 || itr->find(".")==0 || itr->find(":")!=string::npos ) {
98  fname = gSystem->ExpandPathName( itr->c_str() );
99  }
100  else {
101  fname = (PathResolverFindXMLFile( *itr ));
102  }
103  if ( !fileExists(fname.c_str()) ) {
104  ATH_MSG_ERROR ("Cannot open file : " << fname);
105  return StatusCode::FAILURE;
106  }
107  }
108  for (itr=m_blackrunslistVec.begin(); itr!=m_blackrunslistVec.end() && !m_usecool; ++itr) {
109  //const char* fname;
110  std::string fname;
111  if ( itr->find("/")==0 || itr->find("$")==0 || itr->find(".")==0 || itr->find(":")!=string::npos ) {
112  fname = gSystem->ExpandPathName( itr->c_str() );
113  }
114  else {
115  fname = (PathResolverFindXMLFile( *itr ));
116  }
117  if ( !fileExists(fname.c_str()) ) {
118  ATH_MSG_ERROR ("Cannot open file : " << fname);
119  return StatusCode::FAILURE;
120  }
121  }
123  if ( !m_goodrunslistVec.empty() ) {
124  m_reader->Reset();
125  for (itr=m_goodrunslistVec.begin(); itr!=m_goodrunslistVec.end() && !m_usecool; ++itr) {
126  //const char* fname;
127  std::string fname;
128  if ( itr->find("/")==0 || itr->find("$")==0 || itr->find(".")==0 || itr->find(":")!=string::npos ) {
129  fname = gSystem->ExpandPathName( itr->c_str() );
130  }
131  else {
132  fname = (PathResolverFindXMLFile( *itr ));
133  }
135  }
136  m_reader->Interpret();
139  }
140  if ( !m_blackrunslistVec.empty() ) {
141  m_reader->Reset();
142  for (itr=m_blackrunslistVec.begin(); itr!=m_blackrunslistVec.end() && !m_usecool; ++itr) {
143  //const char* fname;
144  std::string fname;
145  if ( itr->find("/")==0 || itr->find("$")==0 || itr->find(".")==0 || itr->find(":")!=string::npos ) {
146  fname = gSystem->ExpandPathName( itr->c_str() );
147  }
148  else {
149  fname = (PathResolverFindXMLFile( *itr ));
150  }
152  }
153  m_reader->Interpret();
156  }
157 
158  return StatusCode::SUCCESS;
159 }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ interfaceID() [1/2]

static const InterfaceID& IGoodRunsListSelectorTool::interfaceID ( )
inlinestaticinherited

Definition at line 22 of file IGoodRunsListSelectorTool.h.

22  {
23  static const InterfaceID IGoodRunsListSelectorToolID( "IGoodRunsListSelectorTool", 1, 0 );
24  return IGoodRunsListSelectorToolID;
25  }

◆ interfaceID() [2/2]

static const InterfaceID& IAthenaEvtLoopPreSelectTool::interfaceID ( )
inlinestaticinherited

Definition at line 26 of file IAthenaEvtLoopPreSelectTool.h.

26  {
27  static const InterfaceID IID_IAthenaEvtLoopPreSelectTool ("IAthenaEvtLoopPreSelectTool", 1, 0 );
28  return IID_IAthenaEvtLoopPreSelectTool;
29  }

◆ msg() [1/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24  {
25  return this->msgStream();
26  }

◆ msg() [2/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( const MSG::Level  lvl) const
inlineinherited

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30  {
31  return this->msgLevel(lvl);
32  }

◆ outputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ passEvent()

bool GoodRunsListSelectorTool::passEvent ( const EventIDBase &  pEvent)
virtual

called for each event by EventSelector to decide if the event should be passed

now make query decision ...

decide from XML files

Implements IAthenaEvtLoopPreSelectTool.

Definition at line 163 of file GoodRunsListSelectorTool.cxx.

164 {
165  ATH_MSG_DEBUG ("passEvent() ");
166 
167  auto eventNumber = pEvent.event_number();
168  int runNumber = pEvent.run_number();
169  int lumiBlockNr = pEvent.lumi_block();
170  auto timeStamp = pEvent.time_stamp();
171 
172  ATH_MSG_DEBUG ("passEvent() :: run number = " << runNumber <<
173  " ; event number = " << eventNumber <<
174  " ; lumiblock number = " << lumiBlockNr <<
175  " ; timestamp = " << timeStamp
176  );
177 
179  bool pass(false);
180  if (m_passthrough) {
181  ATH_MSG_DEBUG ("passEvent() :: Pass through mode.");
182  pass = true;
183  }
185  else {
186  pass = this->passRunLB(runNumber,lumiBlockNr);
187  }
188 
189  return pass;
190 }

◆ passRunLB()

bool GoodRunsListSelectorTool::passRunLB ( int  runNumber,
int  lumiBlockNr,
const std::vector< std::string > &  grlnameVec = std::vector<std::string>(),
const std::vector< std::string > &  brlnameVec = std::vector<std::string>() 
)
virtual

called for each event by GoodRunsListSelectorAlg to decide if the event should be passed

pass through

decision based on merged blackrunslist

decision based on specific blackrunlists

decision based on specific goodrunlists

decision based on merged goodrunslist

Implements IGoodRunsListSelectorTool.

Definition at line 228 of file GoodRunsListSelectorTool.cxx.

231 {
232  ATH_MSG_DEBUG ("passRunLB() ");
233 
235  if (m_passthrough) {
236  ATH_MSG_DEBUG ("passRunLB() :: Pass through mode.");
237  return true;
238  }
239 
242  if ( m_brlcollection->HasRunLumiBlock(runNumber,lumiBlockNr) ) {
243  ATH_MSG_DEBUG ("passRunLB() :: Event rejected by (_any_ of) merged black runs list.");
244  return false;
245  }
247  } else if (!brlnameVec.empty()) {
248  bool reject(false);
249  std::vector<Root::TGoodRunsList>::const_iterator brlitr;
250  for (unsigned int i=0; i<brlnameVec.size() && !reject; ++i) {
251  brlitr = m_brlcollection->find(brlnameVec[i]);
252  if (brlitr!=m_brlcollection->end())
253  reject = brlitr->HasRunLumiBlock(runNumber,lumiBlockNr);
254  }
255  if (reject) {
256  ATH_MSG_DEBUG ("passRunLB() :: Event rejected by specific black runs list.");
257  return false;
258  }
259  }
260 
262  if (!grlnameVec.empty()) {
263  bool pass(false);
264  std::vector<Root::TGoodRunsList>::const_iterator grlitr;
265  for (unsigned int i=0; i<grlnameVec.size() && !pass; ++i) {
266  grlitr = m_grlcollection->find(grlnameVec[i]);
267  if (grlitr!=m_grlcollection->end())
268  pass = grlitr->HasRunLumiBlock(runNumber,lumiBlockNr);
269  }
270  if (pass) {
271  ATH_MSG_DEBUG ("passRunLB() :: Event accepted by specific good runs list.");
272  return true;
273  }
275  } else if (m_grlcollection->HasRunLumiBlock(runNumber,lumiBlockNr)) {
276  ATH_MSG_DEBUG ("passRunLB() :: Event accepted by (_any_ of) merged good runs list.");
277  return true;
278  }
279 
280  ATH_MSG_DEBUG ("passRunLB() :: Event rejected, not in (any) good runs list.");
281  return false;
282 }

◆ passThisRunLB()

bool GoodRunsListSelectorTool::passThisRunLB ( const std::vector< std::string > &  grlnameVec = std::vector<std::string>(),
const std::vector< std::string > &  brlnameVec = std::vector<std::string>() 
)
virtual

called for each event by GoodRunsListSelectorAlg to decide if the event should be passed

now make query decision ...

decide from XML files

Implements IGoodRunsListSelectorTool.

Definition at line 194 of file GoodRunsListSelectorTool.cxx.

196 {
197  ATH_MSG_DEBUG ("passThisRunLB() ");
198 
199  const EventContext& ctx = Gaudi::Hive::currentContext();
200 
201  int eventNumber = ctx.eventID().event_number();
202  int runNumber = ctx.eventID().run_number();
203  int lumiBlockNr = ctx.eventID().lumi_block();
204  int timeStamp = ctx.eventID().time_stamp();
205 
206  ATH_MSG_DEBUG ("passThisRunLB() :: run number = " << runNumber <<
207  " ; event number = " << eventNumber <<
208  " ; lumiblock number = " << lumiBlockNr <<
209  " ; timestamp = " << timeStamp
210  );
211 
213  bool pass(false);
214  if (m_passthrough) {
215  ATH_MSG_DEBUG ("passThisRunLB() :: Pass through mode.");
216  pass = true;
217  }
219  else {
220  pass = this->passRunLB(runNumber,lumiBlockNr,grlnameVec,brlnameVec);
221  }
222 
223  return pass;
224 }

◆ queryInterface()

StatusCode GoodRunsListSelectorTool::queryInterface ( const InterfaceID &  riid,
void **  ppvIf 
)

To allow access to the IGoodRunsListSelectorTool interface.

Definition at line 66 of file GoodRunsListSelectorTool.cxx.

67 {
69  *ppvIf = (IGoodRunsListSelectorTool*)this;
70  addRef();
71  return StatusCode::SUCCESS;
72  }
73 
74  return AthAlgTool::queryInterface( riid, ppvIf );
75 }

◆ registerGRLSelector()

bool GoodRunsListSelectorTool::registerGRLSelector ( const std::string &  name,
const std::vector< std::string > &  grlnameVec,
const std::vector< std::string > &  brlnameVec 
)
virtual

register grl/brl combination

check if brl names are really known

check if grl names are really known

Implements IGoodRunsListSelectorTool.

Definition at line 316 of file GoodRunsListSelectorTool.cxx.

317 {
318  if (m_registry.find(name)!=m_registry.end()) {
319  ATH_MSG_WARNING ("registerGRLSelector() :: GRL selector with name <" << name << "> already registered. Return false.");
320  return false;
321  }
322 
324  if (!brlnameVec.empty()) {
325  std::vector<Root::TGoodRunsList>::const_iterator brlitr;
326  for (unsigned int i=0; i<brlnameVec.size(); ++i) {
327  brlitr = m_brlcollection->find(brlnameVec[i]);
328  if (brlitr==m_brlcollection->end()) {
329  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)?");
330  return false;
331  }
332  }
333  }
334 
336  if (!grlnameVec.empty()) {
337  std::vector<Root::TGoodRunsList>::const_iterator grlitr;
338  for (unsigned int i=0; i<grlnameVec.size(); ++i) {
339  grlitr = m_grlcollection->find(grlnameVec[i]);
340  if (grlitr==m_grlcollection->end()) {
341  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)?");
342  return false;
343  }
344  }
345  }
346 
347  ATH_MSG_DEBUG ("registerGRLSelector() :: GRL selector with name <" << name << "> registered.");
348  m_registry[name] = vvPair(grlnameVec,brlnameVec);
349  return true;
350 }

◆ renounce()

std::enable_if_t<std::is_void_v<std::result_of_t<decltype(&T::renounce)(T)> > && !std::is_base_of_v<SG::VarHandleKeyArray, T> && std::is_base_of_v<Gaudi::DataHandle, T>, void> AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T &  h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381  {
382  h.renounce();
383  PBASE::renounce (h);
384  }

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase &  )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308  {
309  // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310  // << " size: " << m_vhka.size() << endmsg;
311  for (auto &a : m_vhka) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

Member Data Documentation

◆ m_blackrunslistVec

std::vector<std::string> GoodRunsListSelectorTool::m_blackrunslistVec
protected

Definition at line 78 of file GoodRunsListSelectorTool.h.

◆ m_boolop

int GoodRunsListSelectorTool::m_boolop
protected

Definition at line 87 of file GoodRunsListSelectorTool.h.

◆ m_brlcollection

Root::TGRLCollection* GoodRunsListSelectorTool::m_brlcollection
protected

Definition at line 81 of file GoodRunsListSelectorTool.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_dqformula

std::map< std::string,TFormula* > GoodRunsListSelectorTool::m_dqformula
protected

Definition at line 85 of file GoodRunsListSelectorTool.h.

◆ m_eventselectormode

bool GoodRunsListSelectorTool::m_eventselectormode
protected

Definition at line 92 of file GoodRunsListSelectorTool.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_goodrunslistVec

std::vector<std::string> GoodRunsListSelectorTool::m_goodrunslistVec
protected

Definition at line 77 of file GoodRunsListSelectorTool.h.

◆ m_grlcollection

Root::TGRLCollection* GoodRunsListSelectorTool::m_grlcollection
protected

Definition at line 80 of file GoodRunsListSelectorTool.h.

◆ m_passthrough

bool GoodRunsListSelectorTool::m_passthrough
protected

Definition at line 88 of file GoodRunsListSelectorTool.h.

◆ m_reader

Root::TGoodRunsListReader* GoodRunsListSelectorTool::m_reader
protected

Definition at line 83 of file GoodRunsListSelectorTool.h.

◆ m_registry

std::map< std::string, vvPair > GoodRunsListSelectorTool::m_registry
protected

Definition at line 94 of file GoodRunsListSelectorTool.h.

◆ m_rejectanybrl

bool GoodRunsListSelectorTool::m_rejectanybrl
protected

Definition at line 91 of file GoodRunsListSelectorTool.h.

◆ m_usecool

bool GoodRunsListSelectorTool::m_usecool
protected

Definition at line 89 of file GoodRunsListSelectorTool.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_verbose

bool GoodRunsListSelectorTool::m_verbose
protected

Definition at line 90 of file GoodRunsListSelectorTool.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files:
grepfile.info
info
Definition: grepfile.py:38
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
Root::TGoodRunsListReader
Definition: TGoodRunsListReader.h:34
GoodRunsListSelectorTool::m_boolop
int m_boolop
Definition: GoodRunsListSelectorTool.h:87
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
GoodRunsListSelectorTool::m_grlcollection
Root::TGRLCollection * m_grlcollection
Definition: GoodRunsListSelectorTool.h:80
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
GoodRunsListSelectorTool::fileExists
bool fileExists(const char *fileName)
Definition: GoodRunsListSelectorTool.cxx:294
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
GoodRunsListSelectorTool::m_rejectanybrl
bool m_rejectanybrl
Definition: GoodRunsListSelectorTool.h:91
GoodRunsListSelectorTool::m_goodrunslistVec
std::vector< std::string > m_goodrunslistVec
Definition: GoodRunsListSelectorTool.h:77
Root::TGRLCollection::find
std::vector< TGoodRunsList >::iterator find(const TString &name)
Definition: TGRLCollection.cxx:226
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
GoodRunsListSelectorTool::m_eventselectormode
bool m_eventselectormode
Definition: GoodRunsListSelectorTool.h:92
IGoodRunsListSelectorTool
Definition: IGoodRunsListSelectorTool.h:19
vvPair
std::pair< std::vector< std::string >, std::vector< std::string > > vvPair
Definition: IGoodRunsListSelectorTool.h:13
GoodRunsListSelectorTool::passRunLB
bool passRunLB(int runNumber, int lumiBlockNr, const std::vector< std::string > &grlnameVec=std::vector< std::string >(), const std::vector< std::string > &brlnameVec=std::vector< std::string >())
called for each event by GoodRunsListSelectorAlg to decide if the event should be passed
Definition: GoodRunsListSelectorTool.cxx:228
FortranAlgorithmOptions.fileName
fileName
Definition: FortranAlgorithmOptions.py:13
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
lumiFormat.i
int i
Definition: lumiFormat.py:92
ret
T ret(T t)
Definition: rootspy.cxx:260
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
PathResolverFindXMLFile
std::string PathResolverFindXMLFile(const std::string &logical_file_name)
Definition: PathResolver.cxx:374
Root::TMsgLevel
TMsgLevel
Definition: TMsgLogger.h:42
GoodRunsListSelectorTool::m_brlcollection
Root::TGRLCollection * m_brlcollection
Definition: GoodRunsListSelectorTool.h:81
GoodRunsListSelectorTool::m_dqformula
std::map< std::string, TFormula * > m_dqformula
Definition: GoodRunsListSelectorTool.h:85
test_pyathena.parent
parent
Definition: test_pyathena.py:15
Root::TGRLCollection::HasRunLumiBlock
Bool_t HasRunLumiBlock(const Int_t &runnr, const Int_t &lumiblocknr) const
Definition: TGRLCollection.cxx:100
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
xAOD::eventNumber
eventNumber
Definition: EventInfo_v1.cxx:124
beamspotman.stat
stat
Definition: beamspotman.py:266
Root::TGRLCollection
Definition: TGRLCollection.h:29
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
IGoodRunsListSelectorTool::interfaceID
static const InterfaceID & interfaceID()
Definition: IGoodRunsListSelectorTool.h:22
xAOD::timeStamp
setEventNumber timeStamp
Definition: EventInfo_v1.cxx:128
python.AthDsoLogger.fname
string fname
Definition: AthDsoLogger.py:67
DeMoAtlasDataLoss.runNumber
string runNumber
Definition: DeMoAtlasDataLoss.py:64
GoodRunsListSelectorTool::m_blackrunslistVec
std::vector< std::string > m_blackrunslistVec
Definition: GoodRunsListSelectorTool.h:78
a
TList * a
Definition: liststreamerinfos.cxx:10
h
GoodRunsListSelectorTool::m_usecool
bool m_usecool
Definition: GoodRunsListSelectorTool.h:89
GoodRunsListSelectorTool::m_registry
std::map< std::string, vvPair > m_registry
Definition: GoodRunsListSelectorTool.h:94
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
Root::TGoodRunsListReader::Interpret
Bool_t Interpret()
Definition: TGoodRunsListReader.cxx:71
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
Root::TGoodRunsListReader::GetMergedGRLCollection
const TGRLCollection GetMergedGRLCollection(const Root::BoolOperation &operation=OR) const
Definition: TGoodRunsListReader.cxx:332
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
GoodRunsListSelectorTool::m_passthrough
bool m_passthrough
Definition: GoodRunsListSelectorTool.h:88
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
Root::TGoodRunsListReader::Reset
void Reset()
Definition: TGoodRunsListReader.cxx:60
Root::BoolOperation
BoolOperation
Definition: TGRLCollection.h:27
GoodRunsListSelectorTool::m_verbose
bool m_verbose
Definition: GoodRunsListSelectorTool.h:90
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
GoodRunsListSelectorTool::m_reader
Root::TGoodRunsListReader * m_reader
Definition: GoodRunsListSelectorTool.h:83
Root::TGoodRunsListReader::AddXMLFile
void AddXMLFile(const TString &xmlfile)
Definition: TGoodRunsListReader.h:48
fitman.k
k
Definition: fitman.py:528
Root::TMsgLogger::SetMinLevel
static void SetMinLevel(TMsgLevel minLevel)
Definition: TMsgLogger.h:96