Back to home page

Project CMSSW displayed by LXR

 
 

    


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

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