CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | Friends
PhysicsTools::TrainerMonitoring::Module Class Reference

#include <TrainerMonitoring.h>

Public Member Functions

template<typename T >
void book (const std::string &name, T *object)
 
template<typename T >
Tbook (const std::string &name)
 
template<typename T , typename T1 >
Tbook (const std::string &name, T1 a1)
 
template<typename T , typename T1 , typename T2 >
Tbook (const std::string &name, T1 a1, T2 a2)
 
template<typename T , typename T1 , typename T2 , typename T3 >
Tbook (const std::string &name, T1 a1, T2 a2, T3 a3)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 >
Tbook (const std::string &name, T1 a1, T2 a2, T3 a3, T4 a4)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
Tbook (const std::string &name, T1 a1, T2 a2, T3 a3, T4 a4, T5 a5)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
Tbook (const std::string &name, T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
Tbook (const std::string &name, T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 >
Tbook (const std::string &name, T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7, T8 a8)
 
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
Tbook (const std::string &name, T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7, T8 a8, T9 a9)
 
 ~Module ()
 

Protected Member Functions

 Module ()
 
void write (TDirectory *dir)
 

Private Member Functions

void add (Object *object)
 
template<typename T >
void reg (const std::string &name, T *object)
 

Private Attributes

std::map< std::string, std::shared_ptr< Object > > data
 
TDirectory * dir
 

Friends

class TrainerMonitoring
 

Detailed Description

Definition at line 41 of file TrainerMonitoring.h.

Constructor & Destructor Documentation

PhysicsTools::TrainerMonitoring::Module::~Module ( )

Definition at line 59 of file TrainerMonitoring.cc.

60 {
61 }
PhysicsTools::TrainerMonitoring::Module::Module ( )
protected

Definition at line 55 of file TrainerMonitoring.cc.

56 {
57 }

Member Function Documentation

void PhysicsTools::TrainerMonitoring::Module::add ( Object object)
private

Definition at line 71 of file TrainerMonitoring.cc.

References data, and PhysicsTools::TrainerMonitoring::Object::getName().

Referenced by book(), and counter.Counter::register().

72 {
73  std::shared_ptr<Object> ptr(object);
74  if (!data.insert(std::make_pair(object->getName(), ptr)).second)
75  throw cms::Exception("DuplicateNode")
76  << "Node \"" << object->getName() << "\" already"
77  " exists." << std::endl;
78 }
std::map< std::string, std::shared_ptr< Object > > data
template<typename T >
void PhysicsTools::TrainerMonitoring::Module::book ( const std::string &  name,
T object 
)
inline

Definition at line 46 of file TrainerMonitoring.h.

References add().

Referenced by PhysicsTools::TrainProcessor::doTrainBegin(), and reg().

47  { add(new RootObject<T>(name, object)); }
template<typename T >
T* PhysicsTools::TrainerMonitoring::Module::book ( const std::string &  name)
inline

Definition at line 50 of file TrainerMonitoring.h.

References haddnano::obj, and reg().

50  {
51  T *obj = new T();
52  this->reg(name, obj);
53  return obj;
54  }
void reg(const std::string &name, T *object)
long double T
template<typename T , typename T1 >
T* PhysicsTools::TrainerMonitoring::Module::book ( const std::string &  name,
T1  a1 
)
inline

Definition at line 57 of file TrainerMonitoring.h.

References haddnano::obj, and reg().

57  {
58  T *obj = new T(a1);
59  this->reg(name, obj);
60  return obj;
61  }
void reg(const std::string &name, T *object)
long double T
template<typename T , typename T1 , typename T2 >
T* PhysicsTools::TrainerMonitoring::Module::book ( const std::string &  name,
T1  a1,
T2  a2 
)
inline

Definition at line 64 of file TrainerMonitoring.h.

References haddnano::obj, and reg().

64  {
65  T *obj = new T(a1, a2);
66  this->reg(name, obj);
67  return obj;
68  }
void reg(const std::string &name, T *object)
long double T
template<typename T , typename T1 , typename T2 , typename T3 >
T* PhysicsTools::TrainerMonitoring::Module::book ( const std::string &  name,
T1  a1,
T2  a2,
T3  a3 
)
inline

Definition at line 71 of file TrainerMonitoring.h.

References haddnano::obj, and reg().

71  {
72  T *obj = new T(a1, a2, a3);
73  this->reg(name, obj);
74  return obj;
75  }
void reg(const std::string &name, T *object)
long double T
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 >
T* PhysicsTools::TrainerMonitoring::Module::book ( const std::string &  name,
T1  a1,
T2  a2,
T3  a3,
T4  a4 
)
inline

Definition at line 79 of file TrainerMonitoring.h.

References haddnano::obj, and reg().

79  {
80  T *obj = new T(a1, a2, a3, a4);
81  this->reg(name, obj);
82  return obj;
83  }
void reg(const std::string &name, T *object)
long double T
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
T* PhysicsTools::TrainerMonitoring::Module::book ( const std::string &  name,
T1  a1,
T2  a2,
T3  a3,
T4  a4,
T5  a5 
)
inline

Definition at line 87 of file TrainerMonitoring.h.

References haddnano::obj, and reg().

87  {
88  T *obj = new T(a1, a2, a3, a4, a5);
89  this->reg(name, obj);
90  return obj;
91  }
void reg(const std::string &name, T *object)
long double T
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
T* PhysicsTools::TrainerMonitoring::Module::book ( const std::string &  name,
T1  a1,
T2  a2,
T3  a3,
T4  a4,
T5  a5,
T6  a6 
)
inline

Definition at line 95 of file TrainerMonitoring.h.

References haddnano::obj, and reg().

95  {
96  T *obj = new T(a1, a2, a3, a4, a5, a6);
97  this->reg(name, obj);
98  return obj;
99  }
void reg(const std::string &name, T *object)
long double T
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
T* PhysicsTools::TrainerMonitoring::Module::book ( const std::string &  name,
T1  a1,
T2  a2,
T3  a3,
T4  a4,
T5  a5,
T6  a6,
T7  a7 
)
inline

Definition at line 103 of file TrainerMonitoring.h.

References haddnano::obj, and reg().

103  {
104  T *obj = new T(a1, a2, a3, a4, a5, a6, a7);
105  this->reg(name, obj);
106  return obj;
107  }
void reg(const std::string &name, T *object)
long double T
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 >
T* PhysicsTools::TrainerMonitoring::Module::book ( const std::string &  name,
T1  a1,
T2  a2,
T3  a3,
T4  a4,
T5  a5,
T6  a6,
T7  a7,
T8  a8 
)
inline

Definition at line 112 of file TrainerMonitoring.h.

References haddnano::obj, and reg().

112  {
113  T *obj = new T(a1, a2, a3, a4, a5, a6, a7, a8);
114  this->reg(name, obj);
115  return obj;
116  }
void reg(const std::string &name, T *object)
long double T
template<typename T , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
T* PhysicsTools::TrainerMonitoring::Module::book ( const std::string &  name,
T1  a1,
T2  a2,
T3  a3,
T4  a4,
T5  a5,
T6  a6,
T7  a7,
T8  a8,
T9  a9 
)
inline

Definition at line 121 of file TrainerMonitoring.h.

References haddnano::obj, and reg().

121  {
122  T *obj = new T(a1, a2, a3, a4, a5, a6, a7, a8, a9);
123  this->reg(name, obj);
124  return obj;
125  }
void reg(const std::string &name, T *object)
long double T
template<typename T >
void PhysicsTools::TrainerMonitoring::Module::reg ( const std::string &  name,
T object 
)
inlineprivate

Definition at line 194 of file TrainerMonitoring.h.

References book(), and PhysicsTools::helper::trainerMonitoringRootClear().

Referenced by book().

195 {
197  boost::mpl::or_<
198  boost::is_base_of<TH1, T>,
199  boost::is_base_of<TTree, T> >());
200  this->book(name, object);
201 }
void trainerMonitoringRootClear(T *object, const boost::mpl::bool_< B > &)
void book(const std::string &name, T *object)
void PhysicsTools::TrainerMonitoring::Module::write ( TDirectory *  dir)
protected

Definition at line 63 of file TrainerMonitoring.cc.

References data.

Referenced by PhysicsTools::TrainerMonitoring::Object::getName().

64 {
65  typedef std::map<std::string, std::shared_ptr<Object> > Map;
66  for(Map::const_iterator iter = data.begin();
67  iter != data.end(); ++iter)
68  iter->second->write(dir);
69 }
std::map< std::string, std::shared_ptr< Object > > data

Friends And Related Function Documentation

friend class TrainerMonitoring
friend

Definition at line 128 of file TrainerMonitoring.h.

Member Data Documentation

std::map<std::string, std::shared_ptr<Object> > PhysicsTools::TrainerMonitoring::Module::data
private
TDirectory* PhysicsTools::TrainerMonitoring::Module::dir
private