Main Page
Namespaces
Classes
Package Documentation
FWCore
Framework
interface
EDLooperBase.h
Go to the documentation of this file.
1
#ifndef FWCore_Framework_EDLooperBase_h
2
#define FWCore_Framework_EDLooperBase_h
3
// -*- C++ -*-
4
//
5
// Package: Framework
6
// Module: EDLooperBase
7
//
51
//
52
// Author: Chris Jones
53
// Created: Mon Aug 9 12:42:17 EDT 2010
54
//
55
56
#include "
DataFormats/Provenance/interface/ModuleDescription.h
"
57
#include "
FWCore/Framework/interface/Frameworkfwd.h
"
58
#include "
FWCore/ServiceRegistry/interface/ModuleCallingContext.h
"
59
#include "
FWCore/Utilities/interface/propagate_const.h
"
60
61
#include <set>
62
#include <memory>
63
64
namespace
edm
{
65
namespace
eventsetup {
66
class
EventSetupRecordKey
;
67
class
EventSetupProvider
;
68
}
69
class
ExceptionToActionTable;
70
class
ProcessContext;
71
class
ScheduleInfo
;
72
class
StreamContext;
73
class
ModuleChanger
;
74
class
ProcessingController
;
75
class
ActivityRegistry
;
76
77
class
EDLooperBase
{
78
public
:
79
enum
Status
{kContinue, kStop};
80
81
EDLooperBase
();
82
virtual
~
EDLooperBase
()
noexcept
(
false
);
83
84
EDLooperBase
(
EDLooperBase
const
&) =
delete
;
// Disallow copying and moving
85
EDLooperBase
& operator=(
EDLooperBase
const
&) =
delete
;
// Disallow copying and moving
86
87
void
doStartingNewLoop();
88
Status
doDuringLoop(
EventPrincipal
& eventPrincipal,
EventSetup
const
& es,
ProcessingController
&,
StreamContext
*);
89
Status
doEndOfLoop(
EventSetup
const
& es);
90
void
prepareForNextLoop(
eventsetup::EventSetupProvider
* esp);
91
void
doBeginRun(
RunPrincipal
&,
EventSetup
const
&,
ProcessContext
*);
92
void
doEndRun(
RunPrincipal
&,
EventSetup
const
&,
ProcessContext
*);
93
void
doBeginLuminosityBlock(
LuminosityBlockPrincipal
&,
EventSetup
const
&,
ProcessContext
*);
94
void
doEndLuminosityBlock(
LuminosityBlockPrincipal
&,
EventSetup
const
&,
ProcessContext
*);
95
96
//This interface is deprecated
97
virtual
void
beginOfJob(
EventSetup
const
&);
98
virtual
void
beginOfJob();
99
100
virtual
void
endOfJob();
101
103
virtual
void
attachTo(
ActivityRegistry
&);
104
105
void
setActionTable
(
ExceptionToActionTable
const
* actionTable) { act_table_ = actionTable; }
106
107
virtual
std::set<eventsetup::EventSetupRecordKey> modifyingRecords()
const
;
108
109
void
copyInfo(
ScheduleInfo
const
&);
110
void
setModuleChanger(
ModuleChanger
*);
111
112
protected
:
114
ModuleChanger
* moduleChanger();
116
ScheduleInfo
const
* scheduleInfo()
const
;
117
private
:
118
123
virtual
void
startingNewLoop(
unsigned
int
) = 0;
124
127
virtual
Status
duringLoop(
Event
const
&,
EventSetup
const
&,
ProcessingController
&) = 0;
128
133
virtual
Status
endOfLoop(
EventSetup
const
&,
unsigned
int
iCounter) = 0;
134
136
virtual
void
beginRun(
Run
const
&,
EventSetup
const
&);
137
139
virtual
void
endRun
(
Run
const
&,
EventSetup
const
&);
140
142
virtual
void
beginLuminosityBlock(
LuminosityBlock
const
&,
EventSetup
const
&);
143
145
virtual
void
endLuminosityBlock(
LuminosityBlock
const
&,
EventSetup
const
&);
146
147
148
unsigned
int
iCounter_
;
149
ExceptionToActionTable
const
*
act_table_
;
150
151
edm::propagate_const<std::unique_ptr<ScheduleInfo>
>
scheduleInfo_
;
152
edm::propagate_const<ModuleChanger*>
moduleChanger_
;
153
154
ModuleDescription
moduleDescription_
;
155
ModuleCallingContext
moduleCallingContext_
;
156
};
157
}
158
159
#endif
edm::propagate_const
Definition:
propagate_const.h:32
edm::EDLooperBase::moduleCallingContext_
ModuleCallingContext moduleCallingContext_
Definition:
EDLooperBase.h:155
edm::ModuleCallingContext
Definition:
ModuleCallingContext.h:30
edm::EDLooperBase::Status
Status
Definition:
EDLooperBase.h:79
edm::LuminosityBlock
Definition:
LuminosityBlock.h:46
edm::EDLooperBase::iCounter_
unsigned int iCounter_
Definition:
EDLooperBase.h:148
edm::EDLooperBase
Definition:
EDLooperBase.h:77
edm::EventPrincipal
Definition:
EventPrincipal.h:46
noexcept
#define noexcept
edm::ProcessingController
Definition:
ProcessingController.h:29
edm::LuminosityBlockPrincipal
Definition:
LuminosityBlockPrincipal.h:33
ModuleDescription.h
ScheduleInfo
edm::ProcessContext
Definition:
ProcessContext.h:27
Frameworkfwd.h
ProcessingController
edm::ModuleChanger
Definition:
ModuleChanger.h:35
edm::EDLooperBase::moduleDescription_
ModuleDescription moduleDescription_
Definition:
EDLooperBase.h:154
edm::EventSetup
Definition:
EventSetup.h:47
ActivityRegistry
edm::EDLooperBase::scheduleInfo_
edm::propagate_const< std::unique_ptr< ScheduleInfo > > scheduleInfo_
Definition:
EDLooperBase.h:151
edm::EDLooperBase::setActionTable
void setActionTable(ExceptionToActionTable const *actionTable)
Definition:
EDLooperBase.h:105
edm::EDLooperBase::act_table_
ExceptionToActionTable const * act_table_
Definition:
EDLooperBase.h:149
edm::RunPrincipal
Definition:
RunPrincipal.h:30
EventSetupRecordKey
ModuleChanger
EventSetupProvider
edm
HLT enums.
Definition:
AlignableModifier.h:17
edm::eventsetup::EventSetupProvider
Definition:
EventSetupProvider.h:50
edm::EDLooperBase::moduleChanger_
edm::propagate_const< ModuleChanger * > moduleChanger_
Definition:
EDLooperBase.h:152
edm::Event
Definition:
Event.h:69
Ecal2004TBTDCRanges_v1_cff.endRun
endRun
Definition:
Ecal2004TBTDCRanges_v1_cff.py:4
edm::ModuleDescription
Definition:
ModuleDescription.h:22
edm::StreamContext
Definition:
StreamContext.h:31
ModuleCallingContext.h
propagate_const.h
edm::ActivityRegistry
Definition:
ActivityRegistry.h:87
edm::ExceptionToActionTable
Definition:
ExceptionActions.h:22
edm::Run
Definition:
Run.h:43
edm::ScheduleInfo
Definition:
ScheduleInfo.h:32
Generated for CMSSW Reference Manual by
1.8.11