ATLAS Offline Software
EvtIdModifierSvc.h
Go to the documentation of this file.
1 
3 /*
4  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 // EvtIdModifierSvc.h
8 // Header file for class EvtIdModifierSvc
9 // Author: S.Binet<binet@cern.ch>
11 #ifndef ATHENASERVICES_EVTIDMODIFIERSVC_H
12 #define ATHENASERVICES_EVTIDMODIFIERSVC_H 1
13 
14 // STL includes
15 #include <string>
16 #include <vector>
17 
18 // FrameWork includes
20 
21 // AthenaKernel
23 
24 // event includes
25 #include "EventInfo/EventID.h"
26 
27 // Forward declaration
28 class ISvcLocator;
29 template <class TYPE>
30 class SvcFactory;
31 
32 struct ItemModifier {
38  int flags{0};
39 };
40 
41 class EvtIdModifierSvc : virtual public ::IEvtIdModifierSvc,
42  public ::AthService {
43  friend class SvcFactory<EvtIdModifierSvc>;
44 
46  // Public methods:
48  public:
50  EvtIdModifierSvc(const std::string& name, ISvcLocator* pSvcLocator);
51 
53 
54  virtual StatusCode initialize() override;
55  virtual StatusCode queryInterface(const InterfaceID& riid,
56  void** ppvInterface) override;
58 
60  // Const methods:
62 
65  virtual std::vector<number_type> run_number_list() const override;
66 
68  // Non-const methods:
70 
71  static const InterfaceID& interfaceID();
72 
75  virtual void modify_evtid(EventID& evt_id, event_number_t evt_index,
76  bool consume_stream) override;
77 
79  // Private data:
81  private:
84 
89 
92  std::vector<uint64_t> m_evtNpletsProp;
93 
95  std::string m_evtStoreName;
96 
99  std::vector<ItemModifier> m_evtNplets;
100 
102  std::vector<event_number_t> m_numEvtTotals;
103 };
104 
106 // Inline methods:
108 
109 inline const InterfaceID& EvtIdModifierSvc::interfaceID() {
111 }
112 
113 #endif //> !ATHENASERVICES_EVTIDMODIFIERSVC_H
EvtIdModifierSvc::m_evtNplets
std::vector< ItemModifier > m_evtNplets
db of list of ItemModifiers: (run-nbr, evt-nbr, time-stamp, lbk-nbr, nbr-of-events-per-lbk,...
Definition: EvtIdModifierSvc.h:99
ItemModifier
Definition: EvtIdModifierSvc.h:32
EvtIdModifierSvc::run_number_list
virtual std::vector< number_type > run_number_list() const override
return the (sorted) list of run-numbers which will be modified.
Definition: EvtIdModifierSvc.cxx:142
EvtIdModifierSvc
Definition: EvtIdModifierSvc.h:42
EvtIdModifierSvc::EvtIdModifierSvc
EvtIdModifierSvc()
Default constructor:
SvcFactory
Definition: AthCnvSvc.h:28
EvtIdModifierSvc::m_evtStoreName
std::string m_evtStoreName
(prop) Name of the event store whose EventIDs will be modified.
Definition: EvtIdModifierSvc.h:95
ItemModifier::flags
int flags
Definition: EvtIdModifierSvc.h:38
IEvtIdModifierSvc::interfaceID
static const InterfaceID & interfaceID()
Definition: IEvtIdModifierSvc.h:76
EvtIdModifierSvc::m_firstEvtIdx
event_number_t m_firstEvtIdx
(prop) first event number at which we begin to modify event ids
Definition: EvtIdModifierSvc.h:88
IEvtIdModifierSvc
Definition: IEvtIdModifierSvc.h:37
EvtIdModifierSvc::m_numEvtTotals
std::vector< event_number_t > m_numEvtTotals
Running total of numEvts before each modifier.
Definition: EvtIdModifierSvc.h:102
ItemModifier::timestamp
EventID::number_type timestamp
Definition: EvtIdModifierSvc.h:35
event_number_t
EventIDBase::event_number_t event_number_t
Definition: IEvtIdModifierSvc.h:30
EventID.h
This class provides a unique identification for each event, in terms of run/event number and/or a tim...
IEvtIdModifierSvc.h
EventID::number_type
EventIDBase::number_type number_type
Definition: EventID.h:37
EvtIdModifierSvc::modify_evtid
virtual void modify_evtid(EventID &evt_id, event_number_t evt_index, bool consume_stream) override
modify an EventID's lumi block content.
Definition: EvtIdModifierSvc.cxx:159
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthService
Definition: AthService.h:32
ItemModifier::runnbr
EventID::number_type runnbr
Definition: EvtIdModifierSvc.h:33
EvtIdModifierSvc::m_evtNpletsProp
std::vector< uint64_t > m_evtNpletsProp
(prop) list of n-plets (run-nbr, evt-nbr, time-stamp, lbk-nbr, nbr-of-events-per-lbk,...
Definition: EvtIdModifierSvc.h:92
EvtIdModifierSvc::m_skippedEvents
event_number_t m_skippedEvents
(prop) number of events skipped in the event selector
Definition: EvtIdModifierSvc.h:86
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
EventID
This class provides a unique identification for each event, in terms of run/event number and/or a tim...
Definition: EventID.h:35
AthService.h
EvtIdModifierSvc::interfaceID
static const InterfaceID & interfaceID()
Definition: EvtIdModifierSvc.h:109
ItemModifier::evtnbr
event_number_t evtnbr
Definition: EvtIdModifierSvc.h:34
ItemModifier::nevts
event_number_t nevts
Definition: EvtIdModifierSvc.h:37
EvtIdModifierSvc::initialize
virtual StatusCode initialize() override
Gaudi Service Implementation.
Definition: EvtIdModifierSvc.cxx:69
ItemModifier::lbknbr
EventID::number_type lbknbr
Definition: EvtIdModifierSvc.h:36
EvtIdModifierSvc::queryInterface
virtual StatusCode queryInterface(const InterfaceID &riid, void **ppvInterface) override
Definition: EvtIdModifierSvc.cxx:124