Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXSTRIPFORMATEB_H
0002 #define SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXSTRIPFORMATEB_H
0003 
0004 #include <cstdint>
0005 #include <vector>
0006 
0007 class EcalTPGSlidingWindow;
0008 class EcalTPGTPMode;
0009 
0010 /**
0011   \class EcalFenixStripFormatEB
0012  \brief Formatting for Fenix strip
0013 *  input: 18 bits + 3x 1bit (fgvb, gapflagbit, output from peakfinder)
0014  *  output:16 bits
0015  *  The output corresponds to 1 calodataframe per strip
0016  *  --- not really a calodataframe no?
0017  */
0018 
0019 class EcalFenixStripFormatEB {
0020 private:
0021   int inputsFGVB_;
0022   int inputEvenPeak_;
0023   int inputOddPeak_;
0024   int input_even_;
0025   int input_odd_;
0026   uint32_t shift_;
0027   const EcalTPGTPMode *ecaltpgTPMode_;
0028   //  int buffer_;
0029 
0030   int setInput(int input_even, int inputEvenPeak, int input_odd, int inputOddPeak, int inputsFGVB);
0031   int process();
0032 
0033 public:
0034   EcalFenixStripFormatEB();
0035   virtual ~EcalFenixStripFormatEB();
0036   virtual void process(std::vector<int> &sFGVBout,
0037                        std::vector<int> &peakout_even,
0038                        std::vector<int> &filtout_even,
0039                        std::vector<int> &peakout_odd,
0040                        std::vector<int> &filtout_odd,
0041                        std::vector<int> &output);
0042   void setParameters(uint32_t &, const EcalTPGSlidingWindow *&, const EcalTPGTPMode *);
0043 };
0044 #endif