Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:19:19

0001 #ifndef NPSTAT_CONVERTAXIS_HH_
0002 #define NPSTAT_CONVERTAXIS_HH_
0003 
0004 /**
0005 // \file convertAxis.h
0006 //
0007 // \brief Functions for converting between grid and histogram axes
0008 //
0009 // For histogram axes it is assumed that the "active" coordinate is
0010 // at the bin center, while for grid axes the relevant coordinate
0011 // is at the point itself.
0012 //
0013 // Author: I. Volobouev
0014 //
0015 // July 2012
0016 */
0017 
0018 #include "JetMETCorrections/InterpolationTables/interface/UniformAxis.h"
0019 #include "JetMETCorrections/InterpolationTables/interface/GridAxis.h"
0020 
0021 #include "JetMETCorrections/InterpolationTables/interface/HistoAxis.h"
0022 #include "JetMETCorrections/InterpolationTables/interface/NUHistoAxis.h"
0023 
0024 namespace npstat {
0025   /** Convert uniform grid axis to uniform histogram axis */
0026   HistoAxis convertToHistoAxis(const UniformAxis& gridAxis);
0027 
0028   /** Convert uniform histogram to uniform grid axis axis */
0029   UniformAxis convertToGridAxis(const HistoAxis& histoAxis);
0030 
0031   /**
0032     // Note that conversion from non-uniform histogram axis into
0033     // the grid axis is always possible, but it is loosing information
0034     // (we are writing the positions of bin centers only, not edges)
0035     */
0036   GridAxis convertToGridAxis(const NUHistoAxis& histoAxis);
0037 
0038   /**
0039     // The conversion from non-uniform grid axis to non-uniform
0040     // histogram axis is only unambiguous when some additional
0041     // info is available. Here, in particular, we are asking for
0042     // the position of the axis minimum. This function will throw
0043     // npstat::NpstatInvalidArgument in case the conversion is impossible.
0044     */
0045   NUHistoAxis convertToHistoAxis(const GridAxis& gridAxis, double xMin);
0046 }  // namespace npstat
0047 
0048 #endif  // NPSTAT_CONVERTAXIS_HH_