CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ESClient.h
Go to the documentation of this file.
1 #ifndef ESClient_H
2 #define ESClient_H
3 
4 #include <string>
5 
7 
8 class DQMStore;
9 
10 class ESClient {
11 
12  public:
13 
14  virtual void analyze(void) = 0;
15  virtual void beginJob(DQMStore* dqmStore) = 0;
16  virtual void endJob(void) = 0;
17  virtual void beginRun(void) = 0;
18  virtual void endRun(void) = 0;
19  virtual void setup(void) =0;
20  virtual void cleanup(void) =0;
21  // virtual int getEvtPerJob( void ) = 0;
22  // virtual int getEvtPerRun( void ) = 0;
23  virtual void endLumiAnalyze(void) =0;
24 
25  virtual ~ESClient(void) {}
26 
27  template<typename T> T* getHisto(MonitorElement*, bool = false, T* = 0) const;
28 
29 };
30 
31 template<typename T>
32 T*
33 ESClient::getHisto(MonitorElement* _me, bool _clone/* = false*/, T* _current/* = 0*/) const
34 {
35  if(!_me){
36  if(_clone) return _current;
37  else return 0;
38  }
39 
40  TObject* obj(_me->getRootObject());
41 
42  if(!obj) return 0;
43 
44  if(_clone){
45  delete _current;
46  _current = dynamic_cast<T*>(obj->Clone(("ME " + _me->getName()).c_str()));
47  if(_current) _current->SetDirectory(0);
48  return _current;
49  }
50  else
51  return dynamic_cast<T*>(obj);
52 }
53 
54 #endif // ESClient_H
55 
const std::string & getName(void) const
get name of ME
virtual void beginRun(void)=0
virtual void endJob(void)=0
virtual void cleanup(void)=0
virtual ~ESClient(void)
Definition: ESClient.h:25
virtual void analyze(void)=0
TObject * getRootObject(void) const
virtual void beginJob(DQMStore *dqmStore)=0
virtual void setup(void)=0
T * getHisto(MonitorElement *, bool=false, T *=0) const
Definition: ESClient.h:33
virtual void endLumiAnalyze(void)=0
virtual void endRun(void)=0
long double T