CMS 3D CMS Logo

List of all members | Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Attributes
PhysicsTools::MVATrainerLooper Class Reference

#include <MVATrainerLooper.h>

Inheritance diagram for PhysicsTools::MVATrainerLooper:
edm::ESProducerLooper edm::ESProducer edm::EventSetupRecordIntervalFinder edm::EDLooper edm::ESProxyFactoryProducer edm::EDLooperBase edm::eventsetup::DataProxyProvider PhysicsTools::MVATrainerContainerLooperImpl< Record_t > PhysicsTools::MVATrainerLooperImpl< Record_t >

Classes

class  Trainer
 
class  TrainerContainer
 
class  UntrainedMVAComputer
 
class  UntrainedMVAComputerContainer
 

Public Types

typedef std::shared_ptr< Calibration::MVAComputerContainerTrainContainer
 
typedef std::shared_ptr< Calibration::MVAComputerTrainObject
 
- Public Types inherited from edm::eventsetup::DataProxyProvider
typedef std::vector< std::pair< DataKey, edm::propagate_const< std::shared_ptr< DataProxy > > > > KeyedProxies
 
typedef std::vector< EventSetupRecordKeyKeys
 
typedef std::map< EventSetupRecordKey, KeyedProxiesRecordProxies
 
- Public Types inherited from edm::EDLooperBase
enum  Status { kContinue, kStop }
 

Public Member Functions

Status duringLoop (const edm::Event &ev, const edm::EventSetup &es) override
 
Status endOfLoop (const edm::EventSetup &es, unsigned int iteration) override
 
template<>
bool isUntrained (const Calibration::MVAComputer *ptr)
 
template<>
bool isUntrained (const Calibration::MVAComputerContainer *ptr)
 
 MVATrainerLooper (const edm::ParameterSet &params)
 
void startingNewLoop (unsigned int iteration) override
 
 ~MVATrainerLooper () override
 
- Public Member Functions inherited from edm::ESProducerLooper
 ESProducerLooper ()
 
std::set< eventsetup::EventSetupRecordKeymodifyingRecords () const override
 
- Public Member Functions inherited from edm::ESProducer
 ESProducer ()
 
 ~ESProducer ()(false) override
 
- Public Member Functions inherited from edm::ESProxyFactoryProducer
 ESProxyFactoryProducer ()
 
void newInterval (const eventsetup::EventSetupRecordKey &iRecordType, const ValidityInterval &iInterval) override
 overrides DataProxyProvider method More...
 
 ~ESProxyFactoryProducer () noexcept(false) override
 
- Public Member Functions inherited from edm::eventsetup::DataProxyProvider
 DataProxyProvider ()
 
const ComponentDescriptiondescription () const
 
bool isUsingRecord (const EventSetupRecordKey &) const
 
const KeyedProxieskeyedProxies (const EventSetupRecordKey &iRecordKey) const
 
void resetProxies (const EventSetupRecordKey &iRecordType)
 
void resetProxiesIfTransient (const EventSetupRecordKey &iRecordType)
 
void setAppendToDataLabel (const edm::ParameterSet &)
 
void setDescription (const ComponentDescription &iDescription)
 
std::set< EventSetupRecordKeyusingRecords () const
 
virtual ~DataProxyProvider () noexcept(false)
 
- Public Member Functions inherited from edm::EventSetupRecordIntervalFinder
const eventsetup::ComponentDescriptiondescriptionForFinder () const
 
 EventSetupRecordIntervalFinder ()
 
std::set< eventsetup::EventSetupRecordKeyfindingForRecords () const
 
const ValidityIntervalfindIntervalFor (const eventsetup::EventSetupRecordKey &, const IOVSyncValue &)
 
void setDescriptionForFinder (const eventsetup::ComponentDescription &iDescription)
 
virtual ~EventSetupRecordIntervalFinder () noexcept(false)
 
- Public Member Functions inherited from edm::EDLooper
 EDLooper ()
 
 EDLooper (EDLooper const &)=delete
 
EDLooperoperator= (EDLooper const &)=delete
 
 ~EDLooper () override
 
- Public Member Functions inherited from edm::EDLooperBase
virtual void attachTo (ActivityRegistry &)
 Override this method if you need to monitor the state of the processing. More...
 
virtual void beginOfJob (EventSetup const &)
 
virtual void beginOfJob ()
 
void copyInfo (ScheduleInfo const &)
 
void doBeginLuminosityBlock (LuminosityBlockPrincipal &, EventSetup const &, ProcessContext *)
 
void doBeginRun (RunPrincipal &, EventSetup const &, ProcessContext *)
 
Status doDuringLoop (EventPrincipal &eventPrincipal, EventSetup const &es, ProcessingController &, StreamContext *)
 
void doEndLuminosityBlock (LuminosityBlockPrincipal &, EventSetup const &, ProcessContext *)
 
Status doEndOfLoop (EventSetup const &es)
 
void doEndRun (RunPrincipal &, EventSetup const &, ProcessContext *)
 
void doStartingNewLoop ()
 
 EDLooperBase ()
 
 EDLooperBase (EDLooperBase const &)=delete
 
virtual void endOfJob ()
 
EDLooperBaseoperator= (EDLooperBase const &)=delete
 
void prepareForNextLoop (eventsetup::EventSetupProvider *esp)
 
void setActionTable (ExceptionToActionTable const *actionTable)
 
void setModuleChanger (ModuleChanger *)
 
virtual ~EDLooperBase () noexcept(false)
 

Static Public Member Functions

template<class T >
static bool isUntrained (const T *ptr)
 
- Static Public Member Functions inherited from edm::eventsetup::DataProxyProvider
static void prevalidate (ConfigurationDescriptions &)
 

Protected Member Functions

void addTrainer (Trainer *trainer)
 
const TrainerContainergetTrainers () const
 
- Protected Member Functions inherited from edm::ESProducerLooper
void registerFactoryWithKey (const eventsetup::EventSetupRecordKey &iRecord, std::unique_ptr< eventsetup::ProxyFactoryBase > iFactory, const std::string &iLabel=std::string()) override
 
void setIntervalFor (const eventsetup::EventSetupRecordKey &iKey, const IOVSyncValue &iTime, ValidityInterval &oInterval) override
 
- Protected Member Functions inherited from edm::ESProducer
 ESProducer (const ESProducer &)=delete
 
ESProducer const & operator= (const ESProducer &)=delete
 
template<typename T >
void setWhatProduced (T *iThis, const es::Label &iLabel=es::Label())
 
template<typename T >
void setWhatProduced (T *iThis, const char *iLabel)
 
template<typename T >
void setWhatProduced (T *iThis, const std::string &iLabel)
 
template<typename T , typename TDecorator >
void setWhatProduced (T *iThis, const TDecorator &iDec, const es::Label &iLabel=es::Label())
 
template<typename T , typename TReturn , typename TRecord >
void setWhatProduced (T *iThis, TReturn(T::*iMethod)(const TRecord &), const es::Label &iLabel=es::Label())
 
template<typename T , typename TReturn , typename TRecord , typename TArg >
void setWhatProduced (T *iThis, TReturn(T::*iMethod)(const TRecord &), const TArg &iDec, const es::Label &iLabel=es::Label())
 
- Protected Member Functions inherited from edm::ESProxyFactoryProducer
template<class TFactory >
void registerFactory (std::unique_ptr< TFactory > iFactory, const std::string &iLabel=std::string())
 
void registerProxies (const eventsetup::EventSetupRecordKey &iRecord, KeyedProxies &aProxyList) override
 override DataProxyProvider method More...
 
- Protected Member Functions inherited from edm::eventsetup::DataProxyProvider
void eraseAll (const EventSetupRecordKey &iRecordKey)
 deletes all the Proxies in aStream More...
 
void invalidateProxies (const EventSetupRecordKey &iRecordKey)
 
template<class T >
void usingRecord ()
 
void usingRecordWithKey (const EventSetupRecordKey &)
 
- Protected Member Functions inherited from edm::EventSetupRecordIntervalFinder
template<class T >
void findingRecord ()
 
void findingRecordWithKey (const eventsetup::EventSetupRecordKey &)
 
- Protected Member Functions inherited from edm::EDLooperBase
ModuleChangermoduleChanger ()
 This only returns a non-zero value during the call to endOfLoop. More...
 
ScheduleInfo const * scheduleInfo () const
 This returns a non-zero value after the constructor has been called. More...
 

Private Attributes

bool dataProcessedInLoop
 
TrainerContainer trainers
 

Detailed Description

Definition at line 16 of file MVATrainerLooper.h.

Member Typedef Documentation

Definition at line 29 of file MVATrainerLooper.h.

Definition at line 27 of file MVATrainerLooper.h.

Constructor & Destructor Documentation

PhysicsTools::MVATrainerLooper::MVATrainerLooper ( const edm::ParameterSet params)

Definition at line 71 of file MVATrainerLooper.cc.

71  :
72  dataProcessedInLoop(false)
73 {
74 }
PhysicsTools::MVATrainerLooper::~MVATrainerLooper ( )
override

Definition at line 76 of file MVATrainerLooper.cc.

77 {
78 }

Member Function Documentation

void PhysicsTools::MVATrainerLooper::addTrainer ( Trainer trainer)
inlineprotected
edm::EDLooper::Status PhysicsTools::MVATrainerLooper::duringLoop ( const edm::Event ,
const edm::EventSetup  
)
overridevirtual

Called after all event modules have had a chance to process the edm::Event.

Implements edm::EDLooper.

Definition at line 94 of file MVATrainerLooper.cc.

References PhysicsTools::MVATrainerLooper::TrainerContainer::begin(), PhysicsTools::MVATrainerLooper::TrainerContainer::clear(), dataProcessedInLoop, PhysicsTools::MVATrainerLooper::TrainerContainer::empty(), PhysicsTools::MVATrainerLooper::TrainerContainer::end(), edm::EDLooperBase::kContinue, edm::EDLooperBase::kStop, and trainers.

96 {
97  dataProcessedInLoop = true;
98 
99  if (trainers.empty())
100  return kStop;
101 
103  iter != trainers.end(); iter++)
104  if ((*iter)->getCalibration())
105  return kContinue;
106 
107  trainers.clear();
108  return kStop;
109 }
std::vector< Trainer * >::const_iterator const_iterator
edm::EDLooper::Status PhysicsTools::MVATrainerLooper::endOfLoop ( const edm::EventSetup es,
unsigned int  iteration 
)
override

Definition at line 111 of file MVATrainerLooper.cc.

References cms::Exception::addContext(), PhysicsTools::MVATrainerLooper::TrainerContainer::begin(), dataProcessedInLoop, PhysicsTools::MVATrainerLooper::TrainerContainer::empty(), PhysicsTools::MVATrainerLooper::TrainerContainer::end(), edm::EDLooperBase::kContinue, edm::EDLooperBase::kStop, PhysicsTools::MVATrainerLooper::Trainer::trainCalib, PhysicsTools::MVATrainerLooper::Trainer::trainer, and trainers.

113 {
114  if (!dataProcessedInLoop) {
115  cms::Exception ex("MVATrainerLooper");
116  ex << "No data processed during loop\n";
117  ex.addContext("Calling MVATrainerLooper::endOfLoop()");
118  throw ex;
119  }
120 
121  if (trainers.empty())
122  return kStop;
123 
125  iter != trainers.end(); iter++) {
126  Trainer *trainer = *iter;
127 
128  if (trainer->trainCalib)
129  trainer->trainer->doneTraining(
130  trainer->trainCalib.get());
131 
132  trainer->trainCalib.reset();
133  }
134 
135  return kContinue;
136 }
std::vector< Trainer * >::const_iterator const_iterator
const TrainerContainer& PhysicsTools::MVATrainerLooper::getTrainers ( ) const
inlineprotected
template<class T >
static bool PhysicsTools::MVATrainerLooper::isUntrained ( const T ptr)
inlinestatic
template<>
bool PhysicsTools::MVATrainerLooper::isUntrained ( const Calibration::MVAComputer ptr)
inline

Definition at line 84 of file MVATrainerLooper.h.

85 { return dynamic_cast<const UntrainedMVAComputer*>(ptr) != nullptr; }
template<>
bool PhysicsTools::MVATrainerLooper::isUntrained ( const Calibration::MVAComputerContainer ptr)
inline

Definition at line 88 of file MVATrainerLooper.h.

89 { return dynamic_cast<const UntrainedMVAComputerContainer*>(ptr) != nullptr; }
void PhysicsTools::MVATrainerLooper::startingNewLoop ( unsigned int  int)
overridevirtual

Called before system starts to loop over the events. The argument is a count of how many loops have been processed. For the first time through the events the argument will be 0.

Implements edm::EDLooperBase.

Definition at line 80 of file MVATrainerLooper.cc.

References PhysicsTools::MVATrainerLooper::TrainerContainer::begin(), dataProcessedInLoop, PhysicsTools::MVATrainerLooper::TrainerContainer::end(), PhysicsTools::MVATrainerLooper::Trainer::trainCalib, PhysicsTools::MVATrainerLooper::Trainer::trainer, and trainers.

81 {
82  dataProcessedInLoop = false;
83 
85  iter != trainers.end(); iter++) {
86  Trainer *trainer = *iter;
87 
88  trainer->trainCalib =
89  TrainObject(trainer->trainer->getTrainCalibration());
90  }
91 }
std::vector< Trainer * >::const_iterator const_iterator
std::shared_ptr< Calibration::MVAComputer > TrainObject

Member Data Documentation

bool PhysicsTools::MVATrainerLooper::dataProcessedInLoop
private

Definition at line 80 of file MVATrainerLooper.h.

Referenced by duringLoop(), endOfLoop(), and startingNewLoop().

TrainerContainer PhysicsTools::MVATrainerLooper::trainers
private