CMS 3D CMS Logo

HelperMacros.h
Go to the documentation of this file.
1 #ifndef PhysicsTools_MVAComputer_HelperMacros_h
2 #define PhysicsTools_MVAComputer_HelperMacros_h
3 
10 
11 #define MVA_COMPUTER_RECORD_DEFINE(T) \
12  class T : public edm::eventsetup::EventSetupRecordImplementation<T> {}
13 
14 #define MVA_COMPUTER_CONTAINER_RECORD_DEFINE(T) \
15  MVA_COMPUTER_RECORD_DEFINE(T)
16 
17 #define MVA_COMPUTER_RECORD_PLUGIN(T) \
18  INSTANTIATE_PROXY(T, ::PhysicsTools::Calibration::MVAComputer) \
19  namespace { namespace mva1 { \
20  ONLY_REGISTER_PLUGIN(T, PhysicsTools::Calibration::MVAComputer); \
21  }} typedef int mvaDummyTypedef1 ## T
22 
23 #define MVA_COMPUTER_RECORD_IMPLEMENT(T) \
24  EVENTSETUP_RECORD_REG(T); \
25  MVA_COMPUTER_RECORD_PLUGIN(T)
26 
27 #define MVA_COMPUTER_CONTAINER_RECORD_PLUGIN(T) \
28  INSTANTIATE_PROXY(T, ::PhysicsTools::Calibration::MVAComputerContainer) \
29  namespace { namespace mva2 { \
30  ONLY_REGISTER_PLUGIN(T, PhysicsTools::Calibration::MVAComputerContainer); \
31  }} typedef int mvaDummyTypedef2 ## T
32 
33 #define MVA_COMPUTER_CONTAINER_RECORD_IMPLEMENT(T) \
34  EVENTSETUP_RECORD_REG(T); \
35  MVA_COMPUTER_CONTAINER_RECORD_PLUGIN(T)
36 
37 #define MVA_COMPUTER_CONTAINER_FILE_SOURCE_IMPLEMENT(T, P) \
38  namespace { namespace mva3 { \
39  typedef ::PhysicsTools::MVAComputerESSourceImpl<T> P; \
40  DEFINE_FWK_EVENTSETUP_SOURCE(P); \
41  }} typedef int mvaDummyTypedef3 ## T
42 
43 #define MVA_COMPUTER_CONTAINER_DEFINE(N) \
44  MVA_COMPUTER_CONTAINER_RECORD_DEFINE(N ## Rcd)
45 
46 #define MVA_COMPUTER_CONTAINER_IMPLEMENT(N) \
47  MVA_COMPUTER_CONTAINER_RECORD_IMPLEMENT(N ## Rcd); \
48  MVA_COMPUTER_CONTAINER_FILE_SOURCE_IMPLEMENT(N ## Rcd, N ## FileSource)
49 
50 #endif // PhysicsTools_MVAComputer_HelperMacros_h