Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:25:39

0001 #ifndef RecoLocalCalo_EcalRecAlgos_EcalUncalibRecHitRecAbsAlgo_HH
0002 #define RecoLocalCalo_EcalRecAlgos_EcalUncalibRecHitRecAbsAlgo_HH
0003 
0004 /** \class EcalUncalibRecHitRecAbsAlgo
0005   *  Template used to compute amplitude, pedestal, time jitter, chi2 of a pulse
0006   *  using a weights method
0007   *
0008   *  \author R. Bruneliere - A. Zabi
0009   */
0010 
0011 #include "Math/SVector.h"
0012 #include "Math/SMatrix.h"
0013 #include <vector>
0014 #include "DataFormats/EcalRecHit/interface/EcalUncalibratedRecHit.h"
0015 #include "CondFormats/EcalObjects/interface/EcalWeightSet.h"
0016 
0017 template <class C>
0018 class EcalUncalibRecHitRecAbsAlgo {
0019 public:
0020   enum { nWeightsRows = 3, iAmplitude = 0, iPedestal = 1, iTime = 2 };
0021 
0022   /// Constructor
0023   //EcalUncalibRecHitRecAbsAlgo() { };
0024 
0025   /// Destructor
0026   virtual ~EcalUncalibRecHitRecAbsAlgo() = default;
0027 
0028   /// make rechits from dataframes
0029 
0030   virtual EcalUncalibratedRecHit makeRecHit(const C& dataFrame,
0031                                             const double* pedestals,
0032                                             const double* gainRatios,
0033                                             const EcalWeightSet::EcalWeightMatrix** weights,
0034                                             const EcalWeightSet::EcalChi2WeightMatrix** chi2Matrix) = 0;
0035 };
0036 #endif