CMS 3D CMS Logo

Public Member Functions | Private Member Functions | Private Attributes

EcalFenixPeakFinder Class Reference

calculates the peak for Fenix strip, barrel input : 18 bits output: boolean More...

#include <EcalFenixPeakFinder.h>

List of all members.

Public Member Functions

 EcalFenixPeakFinder ()
virtual std::vector< int > process (std::vector< int > &filtout, std::vector< int > &output)
virtual ~EcalFenixPeakFinder ()

Private Member Functions

int process ()
int setInput (int input)

Private Attributes

int buffer_ [3]
bool disabled
int inputsAlreadyIn_

Detailed Description

calculates the peak for Fenix strip, barrel input : 18 bits output: boolean

\ class EcalFenixPeakFinder --->gets the sample where the value is max. the value is 1 for this max sample, 0 for the others .needs 3 samples to proceed. ----> do we really need caloVShape?

Definition at line 16 of file EcalFenixPeakFinder.h.


Constructor & Destructor Documentation

EcalFenixPeakFinder::EcalFenixPeakFinder ( )

Definition at line 3 of file EcalFenixPeakFinder.cc.

EcalFenixPeakFinder::~EcalFenixPeakFinder ( ) [virtual]

Definition at line 8 of file EcalFenixPeakFinder.cc.

                                         {
}

Member Function Documentation

int EcalFenixPeakFinder::process ( ) [private]

Definition at line 26 of file EcalFenixPeakFinder.cc.

References buffer_, and inputsAlreadyIn_.

Referenced by process(), and EcalFenixStrip::process_part1().

{

  if(inputsAlreadyIn_<3) return 0;
  if(buffer_[1]>buffer_[0] && buffer_[1]>buffer_[2]) return 1;
  else return 0;
    
}
std::vector< int > EcalFenixPeakFinder::process ( std::vector< int > &  filtout,
std::vector< int > &  output 
) [virtual]

Definition at line 35 of file EcalFenixPeakFinder.cc.

References buffer_, i, inputsAlreadyIn_, convertSQLitetoXML_cfg::output, process(), and setInput().

{
  
  // FIXME: 3
  inputsAlreadyIn_=0;
  for (unsigned int i =0;i<3;i++) buffer_[i]=0;

  //  std::vector<int> output;
  
  // attention, we have to shift by one, because the peak is found one too late
  for (unsigned int i =0;i<filtout.size();i++){
    
    setInput(filtout[i]);
    if (i>0) {
      //      int outone = process();
      //      output.push_back(outone);
      output[i-1]= process();
    }
  }
  //  output.resize(filtout.size());

  return output;
}
int EcalFenixPeakFinder::setInput ( int  input) [private]

Definition at line 11 of file EcalFenixPeakFinder.cc.

References buffer_, i, collect_tpl::input, and inputsAlreadyIn_.

Referenced by process().

{
  if(inputsAlreadyIn_<3)
    {
      buffer_[inputsAlreadyIn_]=input;
      inputsAlreadyIn_++;
    }
  else
    {
      for(int i=0; i<2; i++) buffer_[i]=buffer_[i+1];
      buffer_[2]=input;
    }
  return 1;
}

Member Data Documentation

int EcalFenixPeakFinder::buffer_[3] [private]

Definition at line 24 of file EcalFenixPeakFinder.h.

Referenced by process(), and setInput().

Definition at line 19 of file EcalFenixPeakFinder.h.

Definition at line 23 of file EcalFenixPeakFinder.h.

Referenced by process(), and setInput().