//-*- Mode: C++ -*- // ************************************************************************ // This file is property of and copyright by the ALICE HLT Project * // ALICE Experiment at CERN, All rights reserved. * // See cxx source for full Copyright notice * // * //************************************************************************* #ifndef KFPHISTOGRAM #define KFPHISTOGRAM #include "KFPHistogramSet.h" #include "KFPartEfficiencies.h" #include "KFParticleTopoReconstructor.h" #include #include #include class KFPHistogram { public: KFPHistogram(): fPdgToIndex(), fOutFileName("KFPHistograms.txt"), fMemory(0) { KFPartEfficiencies partEff; fPdgToIndex = partEff.GetPdgToIndexMap(); int dataSize = 0; for(int iParticle=0; iParticle::iterator it; it=fPdgToIndex.find(particle.GetPDG()); if(it != fPdgToIndex.end()) fKFPHistogramSet[it->second].Fill(particle); } inline void Fill(const KFParticleTopoReconstructor& topoReconstructor) { for(unsigned int iParticle=0; iParticle> iSet; const int& nHistograms = fKFPHistogramSet[iParticle].GetNHisto1D(); for(int iHistogram = 0; iHistogram> name >> minBin >> maxBin >> nBins; if(nBins != fKFPHistogramSet[iParticle].GetHistogram1D(iHistogram).NBins() || minBin != fKFPHistogramSet[iParticle].GetHistogram1D(iHistogram).MinBin() || maxBin != fKFPHistogramSet[iParticle].GetHistogram1D(iHistogram).MaxBin() ) { std::cout << "Fatal error: size of the histograms is not in an agreement with the current version." << std::endl; exit(1); } int binContent = 0; for(int iBin=0; iBin> binContent; fKFPHistogramSet[iParticle].SetHisto1DBinContent(iHistogram, iBin, binContent); } } } ifile.close(); return 1; } inline void operator += ( const KFPHistogram &h ) { for(int i=0; i fPdgToIndex; std::string fOutFileName; KFPHistogramSet fKFPHistogramSet[KFPartEfficiencies::nParticles]; int* fMemory; KFPHistogram(const KFPHistogram&); KFPHistogram& operator=(const KFPHistogram&); }; #endif