CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
OccurrenceTraits.h
Go to the documentation of this file.
1 #ifndef FWCore_Framework_OccurrenceTraits_h
2 #define FWCore_Framework_OccurrenceTraits_h
3 
4 /*----------------------------------------------------------------------
5 
6 OccurrenceTraits:
7 
8 ----------------------------------------------------------------------*/
9 
26 
27 #include<string>
28 
29 namespace edm {
30 
31  class ProcessContext;
32 
33  template <typename T, BranchActionType B> class OccurrenceTraits;
34 
35  template <>
37  public:
40  static BranchType const branchType_ = InEvent;
41  static bool const begin_ = true;
42  static bool const isEvent_ = true;
43 
44  static void setStreamContext(StreamContext& streamContext, MyPrincipal const& principal) {
46  streamContext.setEventID(principal.id());
47  streamContext.setTimestamp(principal.time());
48  }
49 
50  static void preScheduleSignal(ActivityRegistry *a, StreamContext const* streamContext) {
51  a->preEventSignal_(*streamContext);
52  }
53  static void postScheduleSignal(ActivityRegistry *a, StreamContext const* streamContext) {
54  a->postEventSignal_(*streamContext);
55  }
56  static void prePathSignal(ActivityRegistry *a, PathContext const* pathContext) {
57  a->prePathEventSignal_(*pathContext->streamContext(), *pathContext);
58  }
59  static void postPathSignal(ActivityRegistry *a, HLTPathStatus const& status, PathContext const* pathContext) {
60  a->postPathEventSignal_(*pathContext->streamContext(), *pathContext, status);
61  }
62  static void preModuleSignal(ActivityRegistry *a, StreamContext const* streamContext, ModuleCallingContext const* moduleCallingContext) {
63  a->preModuleEventSignal_(*streamContext, *moduleCallingContext);
64  }
65  static void postModuleSignal(ActivityRegistry *a, StreamContext const* streamContext, ModuleCallingContext const* moduleCallingContext) {
66  a->postModuleEventSignal_(*streamContext, *moduleCallingContext);
67  }
68  };
69 
70  template <>
72  public:
75  static BranchType const branchType_ = InRun;
76  static bool const begin_ = true;
77  static bool const isEvent_ = false;
78 
79  static GlobalContext makeGlobalContext(MyPrincipal const& principal, ProcessContext const* processContext) {
81  LuminosityBlockID(principal.run(), 0),
82  principal.index(),
84  principal.beginTime(),
85  processContext);
86  }
87 
88  static void preScheduleSignal(ActivityRegistry *a, GlobalContext const* globalContext) {
89  a->preGlobalBeginRunSignal_(*globalContext);
90  }
91  static void postScheduleSignal(ActivityRegistry *a, GlobalContext const* globalContext) {
92  a->postGlobalBeginRunSignal_(*globalContext);
93  }
94  static void prePathSignal(ActivityRegistry *, PathContext const* ) {
95  }
96  static void postPathSignal(ActivityRegistry *, HLTPathStatus const& , PathContext const* ) {
97  }
98  static void preModuleSignal(ActivityRegistry *a, GlobalContext const* globalContext, ModuleCallingContext const* moduleCallingContext) {
99  a->preModuleGlobalBeginRunSignal_(*globalContext, *moduleCallingContext);
100  }
101  static void postModuleSignal(ActivityRegistry *a, GlobalContext const* globalContext, ModuleCallingContext const* moduleCallingContext) {
102  a->postModuleGlobalBeginRunSignal_(*globalContext, *moduleCallingContext);
103  }
104  };
105 
106  template <>
108  public:
111  static BranchType const branchType_ = InRun;
112  static bool const begin_ = true;
113  static bool const isEvent_ = false;
114 
115  static void setStreamContext(StreamContext& streamContext, MyPrincipal const& principal) {
117  streamContext.setEventID(EventID(principal.run(), 0, 0));
118  streamContext.setRunIndex(principal.index());
120  streamContext.setTimestamp(principal.beginTime());
121  }
122 
123  static void preScheduleSignal(ActivityRegistry *a, StreamContext const* streamContext) {
124  a->preStreamBeginRunSignal_(*streamContext);
125  }
126  static void postScheduleSignal(ActivityRegistry *a, StreamContext const* streamContext) {
127  a->postStreamBeginRunSignal_(*streamContext);
128  }
129  static void prePathSignal(ActivityRegistry *a, PathContext const* pathContext) {
130  }
131  static void postPathSignal(ActivityRegistry *a, HLTPathStatus const& status, PathContext const* pathContext) {
132  }
133  static void preModuleSignal(ActivityRegistry *a, StreamContext const* streamContext, ModuleCallingContext const* moduleCallingContext) {
134  a->preModuleStreamBeginRunSignal_(*streamContext, *moduleCallingContext);
135  }
136  static void postModuleSignal(ActivityRegistry *a, StreamContext const* streamContext, ModuleCallingContext const* moduleCallingContext) {
137  a->postModuleStreamBeginRunSignal_(*streamContext, *moduleCallingContext);
138  }
139  };
140 
141  template <>
143  public:
146  static BranchType const branchType_ = InRun;
147  static bool const begin_ = false;
148  static bool const isEvent_ = false;
149 
150  static void setStreamContext(StreamContext& streamContext, MyPrincipal const& principal) {
152  streamContext.setEventID(EventID(principal.run(), 0, 0));
153  streamContext.setRunIndex(principal.index());
155  streamContext.setTimestamp(principal.endTime());
156  }
157 
158  static void preScheduleSignal(ActivityRegistry *a, StreamContext const* streamContext) {
159  a->preStreamEndRunSignal_(*streamContext);
160  }
161  static void postScheduleSignal(ActivityRegistry *a, StreamContext const* streamContext) {
162  a->postStreamEndRunSignal_(*streamContext);
163  }
164  static void prePathSignal(ActivityRegistry *a, PathContext const* pathContext) {
165  }
166  static void postPathSignal(ActivityRegistry *a, HLTPathStatus const& status, PathContext const* pathContext) {
167  }
168  static void preModuleSignal(ActivityRegistry *a, StreamContext const* streamContext, ModuleCallingContext const* moduleCallingContext) {
169  a->preModuleStreamEndRunSignal_(*streamContext, *moduleCallingContext);
170  }
171  static void postModuleSignal(ActivityRegistry *a, StreamContext const* streamContext, ModuleCallingContext const* moduleCallingContext) {
172  a->postModuleStreamEndRunSignal_(*streamContext, *moduleCallingContext);
173  }
174  };
175 
176  template <>
178  public:
181  static BranchType const branchType_ = InRun;
182  static bool const begin_ = false;
183  static bool const isEvent_ = false;
184 
185  static GlobalContext makeGlobalContext(MyPrincipal const& principal, ProcessContext const* processContext) {
187  LuminosityBlockID(principal.run(), 0),
188  principal.index(),
190  principal.endTime(),
191  processContext);
192  }
193 
194  static void preScheduleSignal(ActivityRegistry *a, GlobalContext const* globalContext) {
195  a->preGlobalEndRunSignal_(*globalContext);
196  }
197  static void postScheduleSignal(ActivityRegistry *a, GlobalContext const* globalContext) {
198  a->postGlobalEndRunSignal_(*globalContext);
199  }
200  static void prePathSignal(ActivityRegistry *a, PathContext const* pathContext) {
201  }
202  static void postPathSignal(ActivityRegistry *a, HLTPathStatus const& status, PathContext const* pathContext) {
203  }
204  static void preModuleSignal(ActivityRegistry *a, GlobalContext const* globalContext, ModuleCallingContext const* moduleCallingContext) {
205  a->preModuleGlobalEndRunSignal_(*globalContext, *moduleCallingContext);
206  }
207  static void postModuleSignal(ActivityRegistry *a, GlobalContext const* globalContext, ModuleCallingContext const* moduleCallingContext) {
208  a->postModuleGlobalEndRunSignal_(*globalContext, *moduleCallingContext);
209  }
210  };
211 
212  template <>
214  public:
217  static BranchType const branchType_ = InLumi;
218  static bool const begin_ = true;
219  static bool const isEvent_ = false;
220 
221  static GlobalContext makeGlobalContext(MyPrincipal const& principal, ProcessContext const* processContext) {
223  principal.id(),
224  principal.runPrincipal().index(),
225  principal.index(),
226  principal.beginTime(),
227  processContext);
228  }
229 
230  static void preScheduleSignal(ActivityRegistry *a, GlobalContext const* globalContext) {
231  a->preGlobalBeginLumiSignal_(*globalContext);
232  }
233  static void postScheduleSignal(ActivityRegistry *a, GlobalContext const* globalContext) {
234  a->postGlobalBeginLumiSignal_(*globalContext);
235  }
236  static void prePathSignal(ActivityRegistry *a, PathContext const* pathContext) {
237  }
238  static void postPathSignal(ActivityRegistry *a, HLTPathStatus const& status, PathContext const* pathContext) {
239  }
240  static void preModuleSignal(ActivityRegistry *a, GlobalContext const* globalContext, ModuleCallingContext const* moduleCallingContext) {
241  a->preModuleGlobalBeginLumiSignal_(*globalContext, *moduleCallingContext);
242  }
243  static void postModuleSignal(ActivityRegistry *a, GlobalContext const* globalContext, ModuleCallingContext const* moduleCallingContext) {
244  a->postModuleGlobalBeginLumiSignal_(*globalContext, *moduleCallingContext);
245  }
246  };
247 
248  template <>
250  public:
253  static BranchType const branchType_ = InLumi;
254  static bool const begin_ = true;
255  static bool const isEvent_ = false;
256 
257  static void setStreamContext(StreamContext& streamContext, MyPrincipal const& principal) {
259  streamContext.setEventID(EventID(principal.run(), principal.luminosityBlock(), 0));
260  streamContext.setRunIndex(principal.runPrincipal().index());
261  streamContext.setLuminosityBlockIndex(principal.index());
262  streamContext.setTimestamp(principal.beginTime());
263  }
264 
265  static void preScheduleSignal(ActivityRegistry *a, StreamContext const* streamContext) {
266  a->preStreamBeginLumiSignal_(*streamContext);
267  }
268  static void postScheduleSignal(ActivityRegistry *a, StreamContext const* streamContext) {
269  a->postStreamBeginLumiSignal_(*streamContext);
270  }
271  static void prePathSignal(ActivityRegistry *a, PathContext const* pathContext) {
272  }
273  static void postPathSignal(ActivityRegistry *a, HLTPathStatus const& status, PathContext const* pathContext) {
274  }
275  static void preModuleSignal(ActivityRegistry *a, StreamContext const* streamContext, ModuleCallingContext const* moduleCallingContext) {
276  a->preModuleStreamBeginLumiSignal_(*streamContext, *moduleCallingContext);
277  }
278  static void postModuleSignal(ActivityRegistry *a, StreamContext const* streamContext, ModuleCallingContext const* moduleCallingContext) {
279  a->postModuleStreamBeginLumiSignal_(*streamContext, *moduleCallingContext);
280  }
281  };
282 
283  template <>
285  public:
288  static BranchType const branchType_ = InLumi;
289  static bool const begin_ = false;
290  static bool const isEvent_ = false;
291 
292  static StreamContext const* context(StreamContext const* s, GlobalContext const* g) { return s; }
293 
294  static void setStreamContext(StreamContext& streamContext, MyPrincipal const& principal) {
296  streamContext.setEventID(EventID(principal.run(), principal.luminosityBlock(), 0));
297  streamContext.setRunIndex(principal.runPrincipal().index());
298  streamContext.setLuminosityBlockIndex(principal.index());
299  streamContext.setTimestamp(principal.endTime());
300  }
301 
302  static void preScheduleSignal(ActivityRegistry *a, StreamContext const* streamContext) {
303  a->preStreamEndLumiSignal_(*streamContext);
304  }
305  static void postScheduleSignal(ActivityRegistry *a, StreamContext const* streamContext) {
306  a->postStreamEndLumiSignal_(*streamContext);
307  }
308  static void prePathSignal(ActivityRegistry *a, PathContext const* pathContext) {
309  }
310  static void postPathSignal(ActivityRegistry *a, HLTPathStatus const& status, PathContext const* pathContext) {
311  }
312  static void preModuleSignal(ActivityRegistry *a, StreamContext const* streamContext, ModuleCallingContext const* moduleCallingContext) {
313  a->preModuleStreamEndLumiSignal_(*streamContext, *moduleCallingContext);
314  }
315  static void postModuleSignal(ActivityRegistry *a, StreamContext const* streamContext, ModuleCallingContext const* moduleCallingContext) {
316  a->postModuleStreamEndLumiSignal_(*streamContext, *moduleCallingContext);
317  }
318  };
319 
320  template <>
322  public:
325  static BranchType const branchType_ = InLumi;
326  static bool const begin_ = false;
327  static bool const isEvent_ = false;
328 
329  static GlobalContext makeGlobalContext(MyPrincipal const& principal, ProcessContext const* processContext) {
331  principal.id(),
332  principal.runPrincipal().index(),
333  principal.index(),
334  principal.beginTime(),
335  processContext);
336  }
337 
338  static void preScheduleSignal(ActivityRegistry *a, GlobalContext const* globalContext) {
339  a->preGlobalEndLumiSignal_(*globalContext);
340  }
341  static void postScheduleSignal(ActivityRegistry *a, GlobalContext const* globalContext) {
342  a->postGlobalEndLumiSignal_(*globalContext);
343  }
344  static void prePathSignal(ActivityRegistry *a, PathContext const* pathContext) {
345  }
346  static void postPathSignal(ActivityRegistry *a, HLTPathStatus const& status, PathContext const* pathContext) {
347  }
348  static void preModuleSignal(ActivityRegistry *a, GlobalContext const* globalContext, ModuleCallingContext const* moduleCallingContext) {
349  a->preModuleGlobalEndLumiSignal_(*globalContext, *moduleCallingContext);
350  }
351  static void postModuleSignal(ActivityRegistry *a, GlobalContext const* globalContext, ModuleCallingContext const* moduleCallingContext) {
352  a->postModuleGlobalEndLumiSignal_(*globalContext, *moduleCallingContext);
353  }
354  };
355 }
356 #endif
RunPrincipal const & runPrincipal() const
PreModuleStreamBeginRun preModuleStreamBeginRunSignal_
static void postScheduleSignal(ActivityRegistry *a, GlobalContext const *globalContext)
static void preModuleSignal(ActivityRegistry *a, StreamContext const *streamContext, ModuleCallingContext const *moduleCallingContext)
PreStreamBeginRun preStreamBeginRunSignal_
PostModuleStreamEndRun postModuleStreamEndRunSignal_
static void postModuleSignal(ActivityRegistry *a, StreamContext const *streamContext, ModuleCallingContext const *moduleCallingContext)
static void postPathSignal(ActivityRegistry *a, HLTPathStatus const &status, PathContext const *pathContext)
static void postPathSignal(ActivityRegistry *a, HLTPathStatus const &status, PathContext const *pathContext)
static void postPathSignal(ActivityRegistry *a, HLTPathStatus const &status, PathContext const *pathContext)
void setTimestamp(Timestamp const &v)
Definition: StreamContext.h:69
static void preScheduleSignal(ActivityRegistry *a, GlobalContext const *globalContext)
static void preModuleSignal(ActivityRegistry *a, GlobalContext const *globalContext, ModuleCallingContext const *moduleCallingContext)
PrePathEvent prePathEventSignal_
Timestamp const & beginTime() const
PostModuleGlobalBeginRun postModuleGlobalBeginRunSignal_
static void preScheduleSignal(ActivityRegistry *a, GlobalContext const *globalContext)
PreGlobalBeginRun preGlobalBeginRunSignal_
signal is emitted after the Run has been created by the InputSource but before any modules have seen ...
static void preScheduleSignal(ActivityRegistry *a, StreamContext const *streamContext)
static void postModuleSignal(ActivityRegistry *a, GlobalContext const *globalContext, ModuleCallingContext const *moduleCallingContext)
static void postModuleSignal(ActivityRegistry *a, GlobalContext const *globalContext, ModuleCallingContext const *moduleCallingContext)
PostModuleEvent postModuleEventSignal_
PreGlobalEndRun preGlobalEndRunSignal_
PostEvent postEventSignal_
signal is emitted after all modules have finished processing the Event
PostStreamEndLumi postStreamEndLumiSignal_
PostGlobalBeginRun postGlobalBeginRunSignal_
Timestamp const & endTime() const
static void postPathSignal(ActivityRegistry *a, HLTPathStatus const &status, PathContext const *pathContext)
EventID const & id() const
static void prePathSignal(ActivityRegistry *a, PathContext const *pathContext)
static void preModuleSignal(ActivityRegistry *a, GlobalContext const *globalContext, ModuleCallingContext const *moduleCallingContext)
static void setStreamContext(StreamContext &streamContext, MyPrincipal const &principal)
static void preModuleSignal(ActivityRegistry *a, StreamContext const *streamContext, ModuleCallingContext const *moduleCallingContext)
LuminosityBlockIndex index() const
PostModuleStreamBeginLumi postModuleStreamBeginLumiSignal_
RunNumber_t run() const
Definition: RunPrincipal.h:61
static void postScheduleSignal(ActivityRegistry *a, GlobalContext const *globalContext)
static void setStreamContext(StreamContext &streamContext, MyPrincipal const &principal)
static void postModuleSignal(ActivityRegistry *a, StreamContext const *streamContext, ModuleCallingContext const *moduleCallingContext)
static void postModuleSignal(ActivityRegistry *a, GlobalContext const *globalContext, ModuleCallingContext const *moduleCallingContext)
static void postModuleSignal(ActivityRegistry *a, GlobalContext const *globalContext, ModuleCallingContext const *moduleCallingContext)
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
Definition: Activities.doc:4
BranchType
Definition: BranchType.h:11
PreModuleStreamEndLumi preModuleStreamEndLumiSignal_
static void postPathSignal(ActivityRegistry *a, HLTPathStatus const &status, PathContext const *pathContext)
void setTransition(Transition v)
Definition: StreamContext.h:65
PostGlobalEndLumi postGlobalEndLumiSignal_
Timestamp const & time() const
static GlobalContext makeGlobalContext(MyPrincipal const &principal, ProcessContext const *processContext)
PreGlobalBeginLumi preGlobalBeginLumiSignal_
static void postScheduleSignal(ActivityRegistry *a, StreamContext const *streamContext)
LuminosityBlockNumber_t luminosityBlock() const
PostModuleGlobalEndRun postModuleGlobalEndRunSignal_
void setLuminosityBlockIndex(LuminosityBlockIndex const &v)
Definition: StreamContext.h:68
PostModuleGlobalEndLumi postModuleGlobalEndLumiSignal_
Timestamp const & beginTime() const
Definition: RunPrincipal.h:73
static void postScheduleSignal(ActivityRegistry *a, StreamContext const *streamContext)
PreModuleStreamEndRun preModuleStreamEndRunSignal_
PostStreamEndRun postStreamEndRunSignal_
PreStreamEndRun preStreamEndRunSignal_
static void preScheduleSignal(ActivityRegistry *a, GlobalContext const *globalContext)
Timestamp const & endTime() const
Definition: RunPrincipal.h:77
PreGlobalEndLumi preGlobalEndLumiSignal_
static void postScheduleSignal(ActivityRegistry *a, StreamContext const *streamContext)
static GlobalContext makeGlobalContext(MyPrincipal const &principal, ProcessContext const *processContext)
static LuminosityBlockIndex invalidLuminosityBlockIndex()
static void preModuleSignal(ActivityRegistry *a, GlobalContext const *globalContext, ModuleCallingContext const *moduleCallingContext)
PreStreamBeginLumi preStreamBeginLumiSignal_
PreModuleStreamBeginLumi preModuleStreamBeginLumiSignal_
PostStreamBeginRun postStreamBeginRunSignal_
PreModuleGlobalBeginRun preModuleGlobalBeginRunSignal_
static void preModuleSignal(ActivityRegistry *a, StreamContext const *streamContext, ModuleCallingContext const *moduleCallingContext)
static void setStreamContext(StreamContext &streamContext, MyPrincipal const &principal)
static void prePathSignal(ActivityRegistry *a, PathContext const *pathContext)
static void postScheduleSignal(ActivityRegistry *a, GlobalContext const *globalContext)
static void postPathSignal(ActivityRegistry *, HLTPathStatus const &, PathContext const *)
static GlobalContext makeGlobalContext(MyPrincipal const &principal, ProcessContext const *processContext)
PreModuleGlobalBeginLumi preModuleGlobalBeginLumiSignal_
static void postModuleSignal(ActivityRegistry *a, StreamContext const *streamContext, ModuleCallingContext const *moduleCallingContext)
static void preModuleSignal(ActivityRegistry *a, StreamContext const *streamContext, ModuleCallingContext const *moduleCallingContext)
PreModuleGlobalEndLumi preModuleGlobalEndLumiSignal_
static void postModuleSignal(ActivityRegistry *a, StreamContext const *streamContext, ModuleCallingContext const *moduleCallingContext)
PostGlobalEndRun postGlobalEndRunSignal_
static void preScheduleSignal(ActivityRegistry *a, StreamContext const *streamContext)
static void prePathSignal(ActivityRegistry *a, PathContext const *pathContext)
RunIndex index() const
Definition: RunPrincipal.h:53
static void prePathSignal(ActivityRegistry *, PathContext const *)
PreModuleEvent preModuleEventSignal_
static void preModuleSignal(ActivityRegistry *a, StreamContext const *streamContext, ModuleCallingContext const *moduleCallingContext)
PostGlobalBeginLumi postGlobalBeginLumiSignal_
StreamContext const * streamContext() const
Definition: PathContext.h:38
void setEventID(EventID const &v)
Definition: StreamContext.h:66
static void prePathSignal(ActivityRegistry *a, PathContext const *pathContext)
static void preScheduleSignal(ActivityRegistry *a, GlobalContext const *globalContext)
static void prePathSignal(ActivityRegistry *a, PathContext const *pathContext)
static void setStreamContext(StreamContext &streamContext, MyPrincipal const &principal)
double a
Definition: hdecay.h:121
static GlobalContext makeGlobalContext(MyPrincipal const &principal, ProcessContext const *processContext)
PostPathEvent postPathEventSignal_
PostStreamBeginLumi postStreamBeginLumiSignal_
static void preScheduleSignal(ActivityRegistry *a, StreamContext const *streamContext)
PreStreamEndLumi preStreamEndLumiSignal_
static void postScheduleSignal(ActivityRegistry *a, GlobalContext const *globalContext)
static void postPathSignal(ActivityRegistry *a, HLTPathStatus const &status, PathContext const *pathContext)
PostModuleStreamEndLumi postModuleStreamEndLumiSignal_
static void postScheduleSignal(ActivityRegistry *a, StreamContext const *streamContext)
PreModuleGlobalEndRun preModuleGlobalEndRunSignal_
static void postPathSignal(ActivityRegistry *a, HLTPathStatus const &status, PathContext const *pathContext)
tuple status
Definition: ntuplemaker.py:245
static void preScheduleSignal(ActivityRegistry *a, StreamContext const *streamContext)
static void setStreamContext(StreamContext &streamContext, MyPrincipal const &principal)
PreEvent preEventSignal_
signal is emitted after the Event has been created by the InputSource but before any modules have see...
static StreamContext const * context(StreamContext const *s, GlobalContext const *g)
PostModuleStreamBeginRun postModuleStreamBeginRunSignal_
static void preScheduleSignal(ActivityRegistry *a, StreamContext const *streamContext)
static void preModuleSignal(ActivityRegistry *a, GlobalContext const *globalContext, ModuleCallingContext const *moduleCallingContext)
static void prePathSignal(ActivityRegistry *a, PathContext const *pathContext)
void setRunIndex(RunIndex const &v)
Definition: StreamContext.h:67
static void prePathSignal(ActivityRegistry *a, PathContext const *pathContext)
static void postScheduleSignal(ActivityRegistry *a, StreamContext const *streamContext)
PostModuleGlobalBeginLumi postModuleGlobalBeginLumiSignal_
static void prePathSignal(ActivityRegistry *a, PathContext const *pathContext)
static void postModuleSignal(ActivityRegistry *a, StreamContext const *streamContext, ModuleCallingContext const *moduleCallingContext)
static void postPathSignal(ActivityRegistry *a, HLTPathStatus const &status, PathContext const *pathContext)