CMS 3D CMS Logo

List of all members | Classes | Public Types | Public Member Functions
PhysicsTools::MVATrainerContainerLooperImpl< Record_t > Class Template Reference

#include <MVATrainerLooperImpl.h>

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

Classes

class  Trainer
 

Public Types

enum  { kTrainer, kTrained }
 
- Public Types inherited from PhysicsTools::MVATrainerLooper
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

 MVATrainerContainerLooperImpl (const edm::ParameterSet &params)
 
edm::ESProducts< edm::es::L< Calibration::MVAComputerContainer, kTrainer >, edm::es::L< Calibration::MVAComputerContainer, kTrained > > produce (const Record_t &record)
 
 ~MVATrainerContainerLooperImpl () override
 
- Public Member Functions inherited from PhysicsTools::MVATrainerLooper
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)
 

Additional Inherited Members

- Static Public Member Functions inherited from PhysicsTools::MVATrainerLooper
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 inherited from PhysicsTools::MVATrainerLooper
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...
 

Detailed Description

template<class Record_t>
class PhysicsTools::MVATrainerContainerLooperImpl< Record_t >

Definition at line 34 of file MVATrainerLooperImpl.h.

Member Enumeration Documentation

template<class Record_t >
anonymous enum

Constructor & Destructor Documentation

template<class Record_t >
PhysicsTools::MVATrainerContainerLooperImpl< Record_t >::MVATrainerContainerLooperImpl ( const edm::ParameterSet params)
inline

Definition at line 38 of file MVATrainerLooperImpl.h.

References PhysicsTools::MVATrainerLooper::addTrainer(), edm::ParameterSet::getParameter(), edm::es::label(), edm::ESProducer::setWhatProduced(), and PhysicsTools::MVATrainerLooper::trainers.

38  :
39  MVATrainerLooper(params)
40  {
41  setWhatProduced(this, edm::es::label("trainer", kTrainer)
42  ("trained", kTrained));
43 
44  std::vector<edm::ParameterSet> trainers =
45  params.getParameter<std::vector<edm::ParameterSet> >(
46  "trainers");
47 
48  for(std::vector<edm::ParameterSet>::const_iterator iter =
49  trainers.begin(); iter != trainers.end(); iter++)
50 
51  addTrainer(new Trainer(*iter));
52  }
T getParameter(std::string const &) const
Label label(const std::string &iString, int iIndex)
Definition: es_Label.h:97
void addTrainer(Trainer *trainer)
MVATrainerLooper(const edm::ParameterSet &params)
void setWhatProduced(T *iThis, const es::Label &iLabel=es::Label())
Definition: ESProducer.h:115
template<class Record_t >
PhysicsTools::MVATrainerContainerLooperImpl< Record_t >::~MVATrainerContainerLooperImpl ( )
inlineoverride

Definition at line 54 of file MVATrainerLooperImpl.h.

54 {}

Member Function Documentation

Definition at line 59 of file MVATrainerLooperImpl.h.

References begin, PhysicsTools::MVATrainerContainerLooperImpl< Record_t >::Trainer::calibrationRecord, PhysicsTools::MVATrainerLooper::TrainerContainer::end(), PhysicsTools::MVATrainerLooper::Trainer::getCalibration(), PhysicsTools::MVATrainer::getCalibration(), PhysicsTools::MVATrainerLooper::Trainer::getTrainer(), PhysicsTools::MVATrainerLooper::getTrainers(), and edm::es::products().

60  {
61  std::shared_ptr<MVATrainerContainer> trainerCalib(
62  new MVATrainerContainer());
63  TrainContainer trainedCalib;
64 
65  bool untrained = false;
67  getTrainers().begin();
68  iter != getTrainers().end(); iter++) {
69  Trainer *trainer = dynamic_cast<Trainer*>(*iter);
70  TrainObject calib = trainer->getCalibration();
71 
72  trainerCalib->addTrainer(trainer->calibrationRecord,
73  calib);
74  if (calib) {
75  untrained = true;
76  continue;
77  }
78 
79  if (!trainedCalib)
80  trainedCalib = std::make_shared<PhysicsTools::Calibration::MVAComputerContainer>(
81  );
82 
83  trainedCalib->add(trainer->calibrationRecord) =
84  *trainer->getTrainer()->getCalibration();
85  }
86 
87  if (untrained)
88  trainedCalib = TrainContainer(
89  new UntrainedMVAComputerContainer);
90 
92  trainedESLabel(trainerCalib);
93 
94  return edm::es::products(trainedESLabel,
95  edm::es::l<kTrained>(trainedCalib));
96  }
ESProducts< std::remove_reference_t< TArgs >... > products(TArgs &&...args)
Definition: ESProducts.h:129
const TrainerContainer & getTrainers() const
std::shared_ptr< Calibration::MVAComputerContainer > TrainContainer
std::vector< Trainer * >::const_iterator const_iterator
#define begin
Definition: vmac.h:32
std::shared_ptr< Calibration::MVAComputer > TrainObject