Back to home page

Project CMSSW displayed by LXR

 
 

    


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

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