~ma5/madanalysis5/madanalysis-development

« back to all changes in this revision

Viewing changes to tools/SampleAnalyzer/Process/Plot/PlotBase.h

  • Committer: Benjamin Fuks
  • Date: 2018-05-04 10:44:49 UTC
  • mfrom: (115.1.81 v1.6beta)
  • Revision ID: fuks@cern.ch-20180504104449-60h8a00loxgr8zg0
Releasing v1.6

Show diffs side-by-side

added added

removed removed

Lines of Context:
25
25
#ifndef PLOT_BASE_H
26
26
#define PLOT_BASE_H
27
27
 
 
28
 
28
29
// STL headers
29
30
#include <iostream>
30
31
#include <map>
34
35
// SampleAnalyzer headers
35
36
#include "SampleAnalyzer/Commons/Service/LogService.h"
36
37
 
 
38
 
37
39
namespace MA5
38
40
{
39
41
 
57
59
  /// Sum of event-weight over events
58
60
  std::pair<MAfloat64,MAfloat64> nevents_w_;
59
61
 
 
62
  /// Flag telling whether a given histo has already been modified for an event
 
63
  bool fresh_event_;
 
64
 
60
65
 
61
66
  // -------------------------------------------------------------
62
67
  //                       method members
65
70
 
66
71
  /// Constructor without argument 
67
72
  PlotBase()
68
 
  { 
 
73
  {
69
74
    // Reseting statistical counters
70
 
    nevents_   = std::make_pair(0,0);
71
 
    nentries_  = std::make_pair(0,0);
72
 
    nevents_w_ = std::make_pair(0,0);
 
75
    nevents_     = std::make_pair(0,0);
 
76
    nentries_    = std::make_pair(0,0);
 
77
    nevents_w_   = std::make_pair(0,0);
 
78
    fresh_event_ = true;
73
79
  }
74
80
 
75
81
  /// Constructor with argument 
76
82
  PlotBase(const std::string& name)
77
 
  { 
78
 
    name_      = name;
79
 
    nevents_   = std::make_pair(0,0);
80
 
    nevents_w_ = std::make_pair(0,0);
81
 
    nentries_  = std::make_pair(0,0);
 
83
  {
 
84
    name_        = name;
 
85
    nevents_     = std::make_pair(0,0);
 
86
    nevents_w_   = std::make_pair(0,0);
 
87
    nentries_    = std::make_pair(0,0);
 
88
    fresh_event_ = true;
82
89
  }
83
90
 
84
91
  /// Destructor
85
92
  virtual ~PlotBase()
86
93
  { }
87
94
 
 
95
  /// Accesor for fresh_event
 
96
  bool FreshEvent() { return fresh_event_;}
 
97
 
 
98
  /// Modifier for fresh_event
 
99
  void SetFreshEvent(bool tag) { fresh_event_ = tag;}
 
100
 
88
101
  /// Write the plot in a ROOT file
89
102
  virtual void Write_TextFormat(std::ostream* output) = 0;
90
103
 
91
 
  /// Write the plot in a ROOT file
92
 
  //  virtual void Write_RootFormat(std::pair<TH1F*,TH1F*>& histos) = 0;
93
 
 
94
104
  /// Increment number of events
95
105
  void IncrementNEvents(MAfloat64 weight=1.0)
96
106
  {
97
 
          if (weight>=0) 
 
107
    if (weight>=0) 
98
108
    {
99
 
      nevents_.first++; 
 
109
      nevents_.first++;
100
110
      nevents_w_.first+=weight;
101
111
    }
102
 
          else 
 
112
    else
103
113
    {
104
114
      weight = std::abs(weight);
105
115
      nevents_.second++;
106
116
      nevents_w_.second+=weight;
107
117
    }
 
118
    SetFreshEvent(false);
108
119
  }
109
120
 
110
121
  /// Return Number of events