00001
00002
00003 #include "EnergyAnalysis.h"
00004
00005 #include "analysis/Tuple.h"
00006 #include <iomanip>
00007
00008 using namespace std;
00009
00010 EnergyAnalysis::EnergyAnalysis(const Tuple& t)
00011 : Analyze(t, "REC_CsI_Corr_Energy", "Energy analysis")
00012 , Histogram("Normalized Energy", 0.5, 1.5, 0.01)
00013 , m_tuple(&t)
00014 , m_MC_energy(t,"MC_Energy", "MC energy")
00015 {};
00016
00017 bool EnergyAnalysis::apply()
00018 {
00019 m_MC_energy();
00020 double emeas = item(), egen= m_MC_energy.item();
00021 if(emeas>0 && egen>0) fill(emeas/egen);
00022 return true;
00023 }
00024
00025 void EnergyAnalysis::report(ostream& out)
00026 {
00027
00028 out << "\n" << Analyze::make_label("Energy: meas/gen")
00029 << setw(6) << setprecision(3) << mean()
00030 << "\n" << Analyze::make_label(" std")
00031 << setw(6) << setprecision(3) << stdDev()
00032 << "\n" << Analyze::make_label("events w/ no data")
00033 << setw(6) << (*this)[0] ;
00034
00035 }