PandaRoot
BSEmcCounter.h
Go to the documentation of this file.
1 #ifndef BSEMCCOUNTER_HH
2 #define BSEMCCOUNTER_HH
3 
4 #include "TStopwatch.h"
5 
6 #include "FairLogger.h"
7 #include "FairRootManager.h"
8 
9 #include "PndProcess.h"
10 
19 class BSEmcCounter : public PndProcess {
20  public:
21  virtual void Process() /*override*/
22  {
23  if (fEventnumber % 100 == 0) {
24  fTimer.Stop();
25  Double_t realTime = fTimer.RealTime();
26  fTotalTime += realTime;
27  if (fEventnumber > 0) {
28  LOG(info) << "Event: " << fEventnumber << " - Last 100 Events took " << realTime << " s - expeting to finish in "
29  << (fTotalTime) * ((Double_t)fTotalEventNumber / (Double_t)(fEventnumber)-1);
30  }
31  fTimer.Reset();
32  fTimer.Start();
33  }
34  ++fEventnumber;
35  }
36  // virtual void SetupParameters(ParSet* /*parameter*/){};
37  virtual void SetupParameters(const PndParameterRegister * /*t_paramRegister*/) /*override*/
38  {
39  fTotalEventNumber = FairRootManager::Instance()->CheckMaxEventNo();
40  fTimer.Start();
41  };
42 
43  private:
44  TStopwatch fTimer{};
45  Double_t fTotalTime{0};
46  Int_t fEventnumber{0};
47  Int_t fTotalEventNumber{1000};
48 };
49 
50 #endif /*BSEMCCOUNTER_HH*/
Base Process class.
Definition: PndProcess.h:24
Simple Process that prints every 100 Events the number of events.
Definition: BSEmcCounter.h:19
virtual void Process()
The actual data transformation (digitizing, clustering, etc.) should be defined here.
Definition: BSEmcCounter.h:21
virtual void SetupParameters(const PndParameterRegister *)
Fetch all parameters from the PndParameterRegister.
Definition: BSEmcCounter.h:37
Helper class to indirect the Parameter fetching via the FairRuntimeDb.