Back to home page

Project CMSSW displayed by LXR

 
 

    


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 /** \class EcalEBPhase2Linearizer
0015 \author L. Lutton, N. Marinelli - Univ. of Notre Dame
0016  Description: forPhase II 
0017  Performs the linearization of signal from Catia+LiteDTU 
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   //I2C Stuff. Would eventually get from outside linearizer (e.g., database)
0034   //Would also be different for each crystal
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