Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:29:28

0001 #ifndef SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXAMPLITUDEFILTER_H
0002 #define SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXAMPLITUDEFILTER_H
0003 
0004 #include <cstdint>
0005 #include <vector>
0006 
0007 class EcalTPGWeightIdMap;
0008 class EcalTPGWeightGroup;
0009 
0010 /**
0011  \ class EcalFenixAmplitudeFilter
0012  \brief calculates .... for Fenix strip, barrel
0013  *  input: 18 bits
0014  *  output: 18 bits
0015  *
0016  */
0017 class EcalFenixAmplitudeFilter {
0018 private:
0019   int peakFlag_[5];
0020   int inputsAlreadyIn_;
0021   uint32_t stripid_;
0022   int buffer_[5];
0023   int fgvbBuffer_[5];
0024   int weights_[5];
0025   int shift_;
0026   int setInput(int input, int fgvb);
0027   void process();
0028   bool tpInfoPrintout_;
0029 
0030   int processedOutput_;
0031   int processedFgvbOutput_;
0032 
0033 public:
0034   EcalFenixAmplitudeFilter();
0035   EcalFenixAmplitudeFilter(bool TPinfoPrintout);
0036   virtual ~EcalFenixAmplitudeFilter();
0037   virtual void process(std::vector<int> &addout,
0038                        std::vector<int> &output,
0039                        std::vector<int> &fgvbIn,
0040                        std::vector<int> &fgvbOut);
0041   void setParameters(uint32_t raw,
0042                      const EcalTPGWeightIdMap *ecaltpgWeightMap,
0043                      const EcalTPGWeightGroup *ecaltpgWeightGroup);
0044 };
0045 
0046 #endif