class for calculation of Et for Fenix tcp calculates the sum More...
#include <EcalFenixEtTot.h>
Public Member Functions | |
EcalFenixEtTot () | |
void | process (std::vector< std::vector< int > > &, int nStr, int bitMask, std::vector< int > &out) |
virtual std::vector< int > | process (const std::vector< EBDataFrame * > &) |
virtual | ~EcalFenixEtTot () |
class for calculation of Et for Fenix tcp calculates the sum
inputs: -5x 12 bits (12 first bits of output of passlin or take 13 bits and select the first 12 ones in the class... for EBDataFrame 5X 10 bits (10 first bits) according to the second parameter) -number of interesting bits according EE or EBDataFrame
output :12 bits (EB) or 10(EE)
in case of overflow, result is set to (2**12)-1 or (2**10)-1
Definition at line 24 of file EcalFenixEtTot.h.
EcalFenixEtTot::EcalFenixEtTot | ( | ) |
Definition at line 4 of file EcalFenixEtTot.cc.
{}
EcalFenixEtTot::~EcalFenixEtTot | ( | ) | [virtual] |
Definition at line 7 of file EcalFenixEtTot.cc.
{}
std::vector< int > EcalFenixEtTot::process | ( | const std::vector< EBDataFrame * > & | calodatafr | ) | [virtual] |
Definition at line 10 of file EcalFenixEtTot.cc.
References dbtoconf::out.
Referenced by EcalFenixTcp::process_part1().
void EcalFenixEtTot::process | ( | std::vector< std::vector< int > > & | bypasslinout, |
int | nStr, | ||
int | bitMask, | ||
std::vector< int > & | out | ||
) |
Definition at line 16 of file EcalFenixEtTot.cc.
References i.
{ for (unsigned int i=0;i<output.size();i++){ output[i]= 0; } int mask = (1<<bitMask)-1; for(int istrip=0;istrip<nStr;istrip++){ for (unsigned int i=0;i<bypasslinout[istrip].size();i++) { output[i]+= (bypasslinout[istrip][i] & mask) ; //fix bug inn case of EE: MSB are set for FG, so need to apply mask in summation. if (output[i]>mask) output[i]= mask; } } return; }