Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXODDAMPLITUDEFILTER_H
0002 #define SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXODDAMPLITUDEFILTER_H
0003 
0004 #include <cstdint>
0005 #include <vector>
0006 #include <string>
0007 
0008 class EcalTPGOddWeightIdMap;
0009 class EcalTPGOddWeightGroup;
0010 
0011 /**
0012  \ class EcalFenixOddAmplitudeFilter
0013  *  The purpose of this class is to implement the second (odd) ECAL FENIX amplitude filter
0014  *  Derived from SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixAmplitudeFilter.cc, interface/EcalFenixAmplitudeFilter.h
0015  *  input: 18 bits
0016  *  output: 18 bits
0017  *
0018  */
0019 class EcalFenixOddAmplitudeFilter {
0020 private:
0021   int peakFlag_[5];
0022   int inputsAlreadyIn_;
0023   uint32_t stripid_;
0024   int buffer_[5];
0025   int weights_[5];
0026   int shift_;
0027   bool debug_;
0028   bool tpInfoPrintout_;
0029   int setInput(int input);
0030   void process();
0031 
0032   int processedOutput_;
0033   int processedFgvbOutput_;
0034 
0035 public:
0036   EcalFenixOddAmplitudeFilter();
0037   EcalFenixOddAmplitudeFilter(bool TPinfoPrintout);
0038   virtual ~EcalFenixOddAmplitudeFilter();
0039   virtual void process(std::vector<int> &addout, std::vector<int> &output);
0040   void setParameters(uint32_t raw,
0041                      const EcalTPGOddWeightIdMap *ecaltpgOddWeightMap,
0042                      const EcalTPGOddWeightGroup *ecaltpgOddWeightGroup);
0043 };
0044 
0045 #endif