CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/PhysicsTools/MVATrainer/interface/HelperMacros.h

Go to the documentation of this file.
00001 #ifndef PhysicsTools_MVATrainer_HelperMacros_h
00002 #define PhysicsTools_MVATrainer_HelperMacros_h
00003 
00004 #include "FWCore/Framework/interface/MakerMacros.h"
00005 #include "FWCore/Framework/interface/LooperFactory.h"
00006 #include "PhysicsTools/MVATrainer/interface/MVATrainerSaveImpl.h"
00007 #include "PhysicsTools/MVATrainer/interface/MVATrainerFileSaveImpl.h"
00008 #include "PhysicsTools/MVATrainer/interface/MVATrainerLooperImpl.h"
00009 
00010 #define MVA_COMPUTER_SAVE_IMPLEMENT(T, P)                       \
00011         namespace { namespace mva11 {                           \
00012                 typedef ::PhysicsTools::MVATrainerSaveImpl<T> P; \
00013                 DEFINE_FWK_MODULE(P);                   \
00014         }} typedef int mvaDummyTypedef11 ## T
00015 
00016 #define MVA_COMPUTER_CONTAINER_SAVE_IMPLEMENT(T, P)             \
00017         namespace { namespace mva12 {                           \
00018                 typedef ::PhysicsTools::MVATrainerContainerSaveImpl<T> P; \
00019                 DEFINE_FWK_MODULE(P);                   \
00020         }} typedef int mvaDummyTypedef12 ## T
00021 
00022 #define MVA_COMPUTER_FILE_SAVE_IMPLEMENT(T, P)  \
00023         namespace { namespace mva13 {                           \
00024                 typedef ::PhysicsTools::MVATrainerFileSaveImpl<T> P; \
00025                 DEFINE_FWK_MODULE(P);                   \
00026         }} typedef int mvaDummyTypedef13 ## T
00027 
00028 #define MVA_TRAINER_LOOPER_IMPLEMENT(T, P)                      \
00029         namespace { namespace mva14 {                           \
00030                 typedef ::PhysicsTools::MVATrainerLooperImpl<T> P; \
00031                 DEFINE_FWK_LOOPER(P);                           \
00032         }} typedef int mvaDummyTypedef14 ## T
00033 
00034 #define MVA_TRAINER_CONTAINER_LOOPER_IMPLEMENT(T, P)            \
00035         namespace { namespace mva15 {                           \
00036                 typedef ::PhysicsTools::MVATrainerContainerLooperImpl<T> P; \
00037                 DEFINE_FWK_LOOPER(P);                           \
00038         }} typedef int mvaDummyTypedef15 ## T
00039 
00040 #define MVA_TRAINER_IMPLEMENT(N)                                \
00041         MVA_COMPUTER_CONTAINER_SAVE_IMPLEMENT(N ## Rcd, N ## ContainerSaveCondDB); \
00042         MVA_COMPUTER_FILE_SAVE_IMPLEMENT(N ## Rcd, N ## SaveFile); \
00043         MVA_TRAINER_CONTAINER_LOOPER_IMPLEMENT(N ## Rcd, N ## TrainerLooper)
00044 //      MVA_COMPUTER_SAVE_IMPLEMENT(N ## Rcd, N ## SaveCondDB)
00045 //      MVA_TRAINER_LOOPER_IMPLEMENT(N ## Rcd, N ## TrainerLooper)
00046 
00047 #endif // PhysicsTools_MVATrainer_HelperMacros_h