CMS 3D CMS Logo

Timing.h

Go to the documentation of this file.
00001 #ifndef Services_TIMING_h
00002 #define Services_TIMING_h
00003 // -*- C++ -*-
00004 //
00005 // Package:     Services
00006 // Class  :     Timing
00007 // 
00008 //
00009 // Original Author:  Jim Kowalkowski
00010 // $Id: Timing.h,v 1.6 2007/03/04 05:55:26 wmtan Exp $
00011 //
00012 #include "sigc++/signal.h"
00013 
00014 #include "DataFormats/Provenance/interface/EventID.h"
00015 #include "DataFormats/Provenance/interface/ProvenanceFwd.h"
00016 
00017 namespace edm {
00018   struct ActivityRegistry;
00019   class Event;
00020   class EventSetup;
00021   class ParameterSet;
00022   namespace service {
00023     class Timing
00024     {
00025     public:
00026       Timing(const ParameterSet&,ActivityRegistry&);
00027       ~Timing();
00028 
00029       sigc::signal<void, const ModuleDescription&, double> newMeasurementSignal;
00030     private:
00031       void postBeginJob();
00032       void postEndJob();
00033       
00034       void preEventProcessing(const EventID&, const Timestamp&);
00035       void postEventProcessing(const Event&, const EventSetup&);
00036       
00037       void preModule(const ModuleDescription&);
00038       void postModule(const ModuleDescription&);
00039 
00040       EventID curr_event_;
00041       double curr_job_; // seconds
00042       double curr_event_time_;  // seconds
00043       double curr_module_time_; // seconds
00044       bool summary_only_;
00045       bool report_summary_;
00046       
00047         //
00048        // Min Max and average event times for summary
00049       //  at end of job
00050       double max_event_time_;    // seconds
00051       double min_event_time_;    // seconds
00052       int total_event_count_; 
00053     };
00054   }
00055 }
00056 
00057 
00058 
00059 #endif

Generated on Tue Jun 9 17:36:39 2009 for CMSSW by  doxygen 1.5.4