ATLAS Offline Software
SelectEventNumber.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
8 
9 #include <fstream>
10 
11 namespace Trk {
12 
13 //___________________________________________________________________________
14 SelectEventNumber::SelectEventNumber(const std::string& name, ISvcLocator* pSvcLocator)
15  : AthAlgorithm (name, pSvcLocator)
16  , m_lastGoodEvt(0)
17 {
18 
19  declareProperty("EventList", m_eventListName = "goodEvents.txt");
20 
21 }
22 
23 //___________________________________________________________________________
25 = default;
26 
27 //___________________________________________________________________________
29 {
30  ATH_MSG_DEBUG("in SelectEventNumber::initialize()");
31  std::ifstream input(m_eventListName.c_str());
32  int run,event;
33  if (input.is_open()) {
34  while (input>>run>>event) {
35  m_goodEventList.emplace_back(run,event);
36  ATH_MSG_DEBUG("adding run "<<run<<", event "<<event);
37  }
38  }
39  else {
40  ATH_MSG_WARNING("could not open "<<m_eventListName);
41  }
42 
43  return StatusCode::SUCCESS;
44 }
45 
46 //___________________________________________________________________________
48 {
49  ATH_MSG_DEBUG("in SelectEventNumber::execute()");
50 
51  const xAOD::EventInfo* eventInfo = nullptr;
52  StatusCode sc=evtStore()->retrieve(eventInfo);
53  if (sc.isFailure()) {
54  ATH_MSG_ERROR("Couldn't retrieve event info");
55  }
56 
57  int run=eventInfo->runNumber();
58  int evt=eventInfo->eventNumber();
59 
60  // check if this run/evt is in the good file
61  int currentevt=m_lastGoodEvt;
62  bool goodevt=false;
63  std::vector<std::pair<int,int> >::iterator it=
65  for (; it!=m_goodEventList.end(); ++it,currentevt++) {
66 
67  if (evt==(*it).second &&
68  run==(*it).first) {
69  m_lastGoodEvt=currentevt;
70  goodevt=true;
71  break;
72  }
73  }
74 
75  ATH_MSG_DEBUG("setting filter passed to "<<goodevt);
76 
77  setFilterPassed(goodevt);
78 
79  ATH_MSG_DEBUG("goodevt "<<goodevt);
80  return StatusCode::SUCCESS;
81 }
82 
83 
84 //___________________________________________________________________________
86 {
87  return StatusCode::SUCCESS;
88 }
89 
90 }
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
Trk::SelectEventNumber::m_lastGoodEvt
int m_lastGoodEvt
good events read in from ASCII file
Definition: SelectEventNumber.h:45
Trk::SelectEventNumber::initialize
virtual StatusCode initialize()
initialize method
Definition: SelectEventNumber.cxx:28
xAOD::EventInfo_v1::eventNumber
uint64_t eventNumber() const
The current event's event number.
AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
skel.it
it
Definition: skel.GENtoEVGEN.py:423
run
int run(int argc, char *argv[])
Definition: ttree2hdf5.cxx:28
LArG4FSStartPointFilter.evt
evt
Definition: LArG4FSStartPointFilter.py:42
Trk::SelectEventNumber::m_goodEventList
std::vector< std::pair< int, int > > m_goodEventList
name of event list ASCII file
Definition: SelectEventNumber.h:43
xAOD::EventInfo_v1::runNumber
uint32_t runNumber() const
The current event's run number.
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
Trk::SelectEventNumber::execute
virtual StatusCode execute()
execute method
Definition: SelectEventNumber.cxx:47
AthCommonDataStore< AthCommonMsg< Algorithm > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
event
POOL::TEvent event(POOL::TEvent::kClassAccess)
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
PlotPulseshapeFromCool.input
input
Definition: PlotPulseshapeFromCool.py:106
run
Definition: run.py:1
Trk::SelectEventNumber::~SelectEventNumber
virtual ~SelectEventNumber()
destructor
Trk::SelectEventNumber::SelectEventNumber
SelectEventNumber(const std::string &name, ISvcLocator *pSvcLocator)
constructor
Definition: SelectEventNumber.cxx:14
Trk::SelectEventNumber::finalize
virtual StatusCode finalize()
finalize method
Definition: SelectEventNumber.cxx:85
AthAlgorithm
Definition: AthAlgorithm.h:47
Trk::SelectEventNumber::m_eventListName
std::string m_eventListName
Definition: SelectEventNumber.h:42
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
EventInfo.h
xAOD::EventInfo_v1
Class describing the basic event information.
Definition: EventInfo_v1.h:43
SelectEventNumber.h
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32