File indexing completed on 2024-04-06 12:29:22
0001 #ifndef SimCalorimetry_EcalEBTrigPrimAlgos_EcalEBPhase2Linearizer_h
0002 #define SimCalorimetry_EcalEBTrigPrimAlgos_EcalEBPhase2Linearizer_h
0003
0004 #include "DataFormats/EcalDigi/interface/EcalLiteDTUSample.h"
0005 #include "DataFormats/EcalDigi/interface/EcalDigiCollections.h"
0006 #include "CondFormats/EcalObjects/interface/EcalLiteDTUPedestals.h"
0007 #include "CondFormats/EcalObjects/interface/EcalEBPhase2TPGLinearizationConst.h"
0008 #include "CondFormats/EcalObjects/interface/EcalEBPhase2TPGPedestals.h"
0009
0010 #include "CondFormats/EcalObjects/interface/EcalTPGCrystalStatus.h"
0011
0012 #include <vector>
0013
0014
0015
0016
0017
0018
0019
0020 class EcalEBPhase2Linearizer {
0021 private:
0022 bool debug_;
0023 int uncorrectedSample_;
0024 int gainID_;
0025 uint base_;
0026 uint mult_;
0027 uint shift_;
0028 int strip_;
0029 bool init_;
0030 float gainDivideByTen_ = 0.1;
0031 std::vector<uint> coeffs_;
0032 uint coeff_;
0033
0034
0035 uint I2CSub_;
0036
0037 const EcalLiteDTUPedestals *peds_;
0038 const EcalEBPhase2TPGLinearizationConstant *linConsts_;
0039 const EcalTPGCrystalStatusCode *badXStatus_;
0040
0041 std::vector<const EcalTPGCrystalStatusCode *> vectorbadXStatus_;
0042
0043 int setInput(const EcalLiteDTUSample &RawSam);
0044
0045 int doOutput();
0046
0047 public:
0048 EcalEBPhase2Linearizer(bool debug);
0049 virtual ~EcalEBPhase2Linearizer();
0050
0051 void process(const EBDigiCollectionPh2::Digi &df, std::vector<int> &output_percry);
0052 void setParameters(EBDetId id,
0053 const EcalLiteDTUPedestalsMap *peds,
0054 const EcalEBPhase2TPGLinearizationConstMap *ecaltplin,
0055 const EcalTPGCrystalStatus *ecaltpBadX);
0056 };
0057
0058 #endif