#include "Hist.hh" #include Hist::Hist(const G4String& fname, G4double min, G4double max, G4int numbin) : fFileName(fname), fMin(min), fMax(max), fDelta(0.), fInvDelta(1.), fSum(0.), fNumBins(numbin) { fDelta = (fMax - fMin) / fNumBins; fInvDelta = 1./fDelta; Initialize(); } Hist::Hist(const G4String& fname, G4double min, G4double max, G4double delta) : fFileName(fname), fMin(min), fMax(max), fDelta(delta), fInvDelta(1.), fSum(0.), fNumBins(0) { fInvDelta = 1./fDelta; fNumBins = (G4int)((fMax - fMin) / (fDelta)) + 1.0; Initialize(); } void Hist::Initialize() { fx.resize(fNumBins, 0.0); fy.resize(fNumBins, 0.0); for (G4int i = 0; i < fNumBins; ++i) { fx[i] = fMin + i * fDelta; } fSum = 0.0; } void Hist::Fill(G4double x) { if (x x = " << x << " < fMin = " << fMin << G4endl; exit(1); } */ if (indx>-1 && indx x = " << x << " < fMin = " << fMin << G4endl; exit(1); } */ if (indx>-1 && indxGetNumBins() || fMin != hist->GetMin() || fMax != hist->GetMax()) { G4cerr << "\n ***** ERROR in Hist::Add " << " histograms have different dimensions ! " << G4endl; } for (G4int i = 0; i < fNumBins; ++i) { fy[i] += hist->GetY()[i]; } fSum += hist->GetSum(); }