CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Protected Member Functions | Private Attributes
PhysicsTools::MVATrainerContainerSave Class Referenceabstract

#include <MVATrainerContainerSave.h>

Inheritance diagram for PhysicsTools::MVATrainerContainerSave:
edm::EDAnalyzer PhysicsTools::MVATrainerContainerSaveImpl< Record_t >

Public Member Functions

virtual void analyze (const edm::Event &iEvent, const edm::EventSetup &iSetup)
 
virtual void endJob ()
 
 MVATrainerContainerSave (const edm::ParameterSet &params)
 
- Public Member Functions inherited from edm::EDAnalyzer
 EDAnalyzer ()
 
std::string workerType () const
 
virtual ~EDAnalyzer ()
 

Protected Member Functions

virtual std::string getRecordName () const =0
 
virtual const
Calibration::MVAComputerContainer
getToCopy (const edm::EventSetup &es) const =0
 
virtual const
Calibration::MVAComputerContainer
getToPut (const edm::EventSetup &es) const =0
 
- Protected Member Functions inherited from edm::EDAnalyzer
CurrentProcessingContext const * currentContext () const
 

Private Attributes

std::auto_ptr
< Calibration::MVAComputerContainer
calib
 
bool saved
 
std::vector< std::string > toCopy
 
std::vector< std::string > toPut
 

Additional Inherited Members

- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
typedef WorkerT< EDAnalyzerWorkerType
 
- Static Public Member Functions inherited from edm::EDAnalyzer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 

Detailed Description

Definition at line 17 of file MVATrainerContainerSave.h.

Constructor & Destructor Documentation

PhysicsTools::MVATrainerContainerSave::MVATrainerContainerSave ( const edm::ParameterSet params)
explicit

Definition at line 26 of file MVATrainerContainerSave.cc.

27  :
28  toPut(params.getParameter<std::vector<std::string> >("toPut")),
29  toCopy(params.getParameter<std::vector<std::string> >("toCopy")),
30  saved(false)
31 {
32 }
T getParameter(std::string const &) const

Member Function Documentation

void PhysicsTools::MVATrainerContainerSave::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
virtual

Implements edm::EDAnalyzer.

Definition at line 34 of file MVATrainerContainerSave.cc.

References calib, PhysicsTools::Calibration::MVAComputerContainer::find(), getToCopy(), getToPut(), PhysicsTools::MVATrainerLooper::isUntrained(), saved, toCopy, and toPut.

36 {
37  if (calib.get() || saved)
38  return;
39 
40  const Calibration::MVAComputerContainer *toPutCalib = 0;
41  if (!toPut.empty()) {
42  toPutCalib = getToPut(es);
43  if (MVATrainerLooper::isUntrained(toPutCalib))
44  return;
45  }
46 
47  const Calibration::MVAComputerContainer *toCopyCalib = 0;
48  if (!toCopy.empty())
49  toCopyCalib = getToCopy(es);
50 
51  edm::LogInfo("MVATrainerSave") << "Got the trained calibration data";
52 
53  std::auto_ptr<Calibration::MVAComputerContainer> calib(
54  new Calibration::MVAComputerContainer);
55 
56  for(std::vector<std::string>::const_iterator iter = toCopy.begin();
57  iter != toCopy.end(); iter++)
58  calib->add(*iter) = toCopyCalib->find(*iter);
59 
60  for(std::vector<std::string>::const_iterator iter = toPut.begin();
61  iter != toPut.end(); iter++)
62  calib->add(*iter) = toPutCalib->find(*iter);
63 
64  this->calib = calib;
65 }
virtual const Calibration::MVAComputerContainer * getToPut(const edm::EventSetup &es) const =0
virtual const Calibration::MVAComputerContainer * getToCopy(const edm::EventSetup &es) const =0
static bool isUntrained(const T *ptr)
std::auto_ptr< Calibration::MVAComputerContainer > calib
void PhysicsTools::MVATrainerContainerSave::endJob ( void  )
virtual

Reimplemented from edm::EDAnalyzer.

Definition at line 67 of file MVATrainerContainerSave.cc.

References cond::service::PoolDBOutputService::beginOfTime(), calib, cond::service::PoolDBOutputService::createNewIOV(), cond::service::PoolDBOutputService::endOfTime(), getRecordName(), edm::Service< T >::isAvailable(), and saved.

68 {
69  if (!calib.get() || saved)
70  return;
71 
72  edm::LogInfo("MVATrainerSave") << "Saving calibration data in CondDB.";
73 
75  if (!dbService.isAvailable())
76  throw cms::Exception("MVATrainerContainerSave")
77  << "DBService unavailable" << std::endl;
78 
79  dbService->createNewIOV<Calibration::MVAComputerContainer>(
80  calib.release(), dbService->beginOfTime(),
81  dbService->endOfTime(), getRecordName().c_str());
82 
83  saved = true;
84 }
virtual std::string getRecordName() const =0
bool isAvailable() const
Definition: Service.h:47
void createNewIOV(T *firstPayloadObj, cond::Time_t firstSinceTime, cond::Time_t firstTillTime, const std::string &recordName, bool withlogging=false)
std::auto_ptr< Calibration::MVAComputerContainer > calib
virtual std::string PhysicsTools::MVATrainerContainerSave::getRecordName ( ) const
protectedpure virtual
virtual const Calibration::MVAComputerContainer* PhysicsTools::MVATrainerContainerSave::getToCopy ( const edm::EventSetup es) const
protectedpure virtual
virtual const Calibration::MVAComputerContainer* PhysicsTools::MVATrainerContainerSave::getToPut ( const edm::EventSetup es) const
protectedpure virtual

Member Data Documentation

std::auto_ptr<Calibration::MVAComputerContainer> PhysicsTools::MVATrainerContainerSave::calib
private

Definition at line 38 of file MVATrainerContainerSave.h.

Referenced by analyze(), and endJob().

bool PhysicsTools::MVATrainerContainerSave::saved
private

Definition at line 39 of file MVATrainerContainerSave.h.

Referenced by analyze(), and endJob().

std::vector<std::string> PhysicsTools::MVATrainerContainerSave::toCopy
private

Definition at line 37 of file MVATrainerContainerSave.h.

Referenced by analyze().

std::vector<std::string> PhysicsTools::MVATrainerContainerSave::toPut
private

Definition at line 36 of file MVATrainerContainerSave.h.

Referenced by analyze().