CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 boost::shared_ptr
< Calibration::MVAComputerContainer
TrainContainer
 
typedef boost::shared_ptr
< Calibration::MVAComputer
TrainObject
 
- Public Types inherited from edm::eventsetup::DataProxyProvider
typedef std::vector< std::pair
< DataKey, boost::shared_ptr
< DataProxy > > > 
KeyedProxies
 
typedef std::vector
< EventSetupRecordKey
Keys
 
typedef std::map
< EventSetupRecordKey,
KeyedProxies
RecordProxies
 
- Public Types inherited from edm::EDLooperBase
enum  Status { kContinue, kStop }
 

Public Member Functions

virtual Status duringLoop (const edm::Event &ev, const edm::EventSetup &es)
 
virtual Status endOfLoop (const edm::EventSetup &es, unsigned int iteration)
 
template<>
bool isUntrained (const Calibration::MVAComputer *ptr)
 
template<>
bool isUntrained (const Calibration::MVAComputerContainer *ptr)
 
 MVATrainerLooper (const edm::ParameterSet &params)
 
virtual void startingNewLoop (unsigned int iteration)
 
virtual ~MVATrainerLooper ()
 
- Public Member Functions inherited from edm::ESProducerLooper
 ESProducerLooper ()
 
virtual std::set
< eventsetup::EventSetupRecordKey
modifyingRecords () const
 
- Public Member Functions inherited from edm::ESProducer
 ESProducer ()
 
virtual ~ESProducer ()
 
- Public Member Functions inherited from edm::ESProxyFactoryProducer
 ESProxyFactoryProducer ()
 
virtual void newInterval (const eventsetup::EventSetupRecordKey &iRecordType, const ValidityInterval &iInterval)
 overrides DataProxyProvider method More...
 
virtual ~ESProxyFactoryProducer ()
 
- 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 ()
 
- Public Member Functions inherited from edm::EventSetupRecordIntervalFinder
const
eventsetup::ComponentDescription
descriptionForFinder () const
 
 EventSetupRecordIntervalFinder ()
 
std::set
< eventsetup::EventSetupRecordKey
findingForRecords () const
 
const ValidityIntervalfindIntervalFor (const eventsetup::EventSetupRecordKey &, const IOVSyncValue &)
 
void setDescriptionForFinder (const eventsetup::ComponentDescription &iDescription)
 
virtual ~EventSetupRecordIntervalFinder ()
 
- Public Member Functions inherited from edm::EDLooper
 EDLooper ()
 
 EDLooper (EDLooper const &)=delete
 
EDLooperoperator= (EDLooper const &)=delete
 
virtual ~EDLooper ()
 
- 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 const *)
 
virtual ~EDLooperBase ()
 

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
virtual void registerFactoryWithKey (const eventsetup::EventSetupRecordKey &iRecord, std::auto_ptr< eventsetup::ProxyFactoryBase > &iFactory, const std::string &iLabel=std::string())
 
void setIntervalFor (const eventsetup::EventSetupRecordKey &iKey, const IOVSyncValue &iTime, ValidityInterval &oInterval)
 
- Protected Member Functions inherited from edm::ESProducer
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::auto_ptr< TFactory > iFactory, const std::string &iLabel=std::string())
 
virtual void registerProxies (const eventsetup::EventSetupRecordKey &iRecord, KeyedProxies &aProxyList)
 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
ModuleChanger const * moduleChanger () const
 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 18 of file MVATrainerLooper.h.

Member Typedef Documentation

Definition at line 31 of file MVATrainerLooper.h.

Definition at line 29 of file MVATrainerLooper.h.

Constructor & Destructor Documentation

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

Definition at line 73 of file MVATrainerLooper.cc.

73  :
74  dataProcessedInLoop(false)
75 {
76 }
PhysicsTools::MVATrainerLooper::~MVATrainerLooper ( )
virtual

Definition at line 78 of file MVATrainerLooper.cc.

79 {
80 }

Member Function Documentation

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

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

Implements edm::EDLooper.

Definition at line 96 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.

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

Called after the system has finished one loop over the events. Thar argument is a count of how many loops have been processed before this loo. For the first time through the events the argument will be 0.

Implements edm::EDLooperBase.

Definition at line 113 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.

115 {
116  if (!dataProcessedInLoop) {
117  cms::Exception ex("MVATrainerLooper");
118  ex << "No data processed during loop\n";
119  ex.addContext("Calling MVATrainerLooper::endOfLoop()");
120  throw ex;
121  }
122 
123  if (trainers.empty())
124  return kStop;
125 
127  iter != trainers.end(); iter++) {
128  Trainer *trainer = *iter;
129 
130  if (trainer->trainCalib)
131  trainer->trainer->doneTraining(
132  trainer->trainCalib.get());
133 
134  trainer->trainCalib.reset();
135  }
136 
137  return kContinue;
138 }
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 86 of file MVATrainerLooper.h.

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

Definition at line 90 of file MVATrainerLooper.h.

91 { return dynamic_cast<const UntrainedMVAComputerContainer*>(ptr) != 0; }
void PhysicsTools::MVATrainerLooper::startingNewLoop ( unsigned int  int)
virtual

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 82 of file MVATrainerLooper.cc.

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

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

Member Data Documentation

bool PhysicsTools::MVATrainerLooper::dataProcessedInLoop
private

Definition at line 82 of file MVATrainerLooper.h.

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

TrainerContainer PhysicsTools::MVATrainerLooper::trainers
private