#include <SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixFgvbEB.h>
Public Member Functions | |
EcalFenixFgvbEB (int maxNrSamples) | |
void | process (std::vector< int > &add_out, std::vector< int > &maxof2_out, std::vector< int > &output) |
void | setParameters (uint32_t towid, const EcalTPGFineGrainEBGroup *ecaltpgFgEBGroup, const EcalTPGFineGrainEBIdMap *ecaltpgFineGrainEB) |
virtual | ~EcalFenixFgvbEB () |
Private Attributes | |
std::vector< int > | add_out_8_ |
uint32_t | EThigh_ |
uint32_t | ETlow_ |
uint32_t | lut_ |
uint32_t | Rathigh_ |
uint32_t | Ratlow_ |
input: 2X12 bits ( 12 bits Ettot + 12 bits maxof2) output: 1 bit
makes comparisons between maxof2 and 2 fractions of Ettot and uses this comparison to decide ---> needs to get some values from outside
Definition at line 21 of file EcalFenixFgvbEB.h.
EcalFenixFgvbEB::EcalFenixFgvbEB | ( | int | maxNrSamples | ) |
Definition at line 6 of file EcalFenixFgvbEB.cc.
References add_out_8_.
00007 { 00008 add_out_8_.resize(maxNrSamples); 00009 }
EcalFenixFgvbEB::~EcalFenixFgvbEB | ( | ) | [virtual] |
void EcalFenixFgvbEB::process | ( | std::vector< int > & | add_out, | |
std::vector< int > & | maxof2_out, | |||
std::vector< int > & | output | |||
) |
Definition at line 14 of file EcalFenixFgvbEB.cc.
References add_out_8_, EThigh_, ETlow_, i, lut, lut_, Rathigh_, and Ratlow_.
Referenced by EcalFenixTcp::process_part2_barrel().
00014 { 00015 00016 int Elow, Ehigh, Tlow, Thigh, lut; 00017 int ERatLow,ERatHigh; 00018 // std::vector<int> add_out_8(add_out.size()); 00019 int COMP3, COMP2, COMP1, COMP0; 00020 00021 // Elow = (*params_)[1024]; 00022 // Ehigh = (*params_)[1025]; 00023 // Tlow = (*params_)[1026]; 00024 // Thigh = (*params_)[1027]; 00025 // lut = (*params_)[1028]; 00026 00027 Elow = ETlow_; 00028 Ehigh = EThigh_; 00029 Tlow = Ratlow_; 00030 Thigh = Rathigh_; 00031 lut = lut_; 00032 00033 00034 if (Tlow > 127) Tlow=Tlow-128; 00035 if (Thigh > 127) Thigh=Thigh-128; 00036 00037 for (unsigned int i =0;i<add_out.size();i++) { 00038 00039 ERatLow=add_out[i]*Tlow>>7; 00040 if (ERatLow>0xFFF) ERatLow=0xFFF; 00041 ERatHigh=add_out[i]*Thigh>>7; 00042 if (ERatHigh>0xFFF) ERatHigh=0xFFF; 00043 if (add_out[i] >0XFF) add_out_8_[i]=0xFF; else add_out_8_[i]=add_out[i]; 00044 00045 if( maxof2_out[i] >= ERatLow) COMP3=1; else COMP3=0; 00046 if( maxof2_out[i] >= ERatHigh) COMP2=1; else COMP2=0; 00047 if( add_out_8_[i] >= Elow) COMP1=1; else COMP1=0; 00048 if( add_out_8_[i] >= Ehigh) COMP0=1; else COMP0=0; 00049 00050 int ilut= (COMP3<<3) + (COMP2<<2) + (COMP1<<1) + COMP0; 00051 int mask = 1<<(ilut); 00052 output[i]= (lut) & (mask); 00053 if (output[i]>0) output[i]=1; 00054 } 00055 return; 00056 }
void EcalFenixFgvbEB::setParameters | ( | uint32_t | towid, | |
const EcalTPGFineGrainEBGroup * | ecaltpgFgEBGroup, | |||
const EcalTPGFineGrainEBIdMap * | ecaltpgFineGrainEB | |||
) |
Definition at line 58 of file EcalFenixFgvbEB.cc.
References EThigh_, ETlow_, find(), it, lut_, Rathigh_, and Ratlow_.
Referenced by EcalFenixTcp::process_part2_barrel().
00058 { 00059 00060 const EcalTPGGroups::EcalTPGGroupsMap &groupmap = ecaltpgFgEBGroup -> getMap(); 00061 EcalTPGGroups::EcalTPGGroupsMapItr it= groupmap.find(towid); 00062 if (it!=groupmap.end()) { 00063 // uint32_t fgid =(*it).second; 00064 // const EcalTPGFineGrainEBIdMap::EcalTPGFineGrainEBMap fgmap = ecaltpgFineGrainEB -> getMap(); 00065 // EcalTPGFineGrainEBIdMap::EcalTPGFineGrainEBMapItr itfg = fgmap.find(fgid); 00066 // (*itfg).second.getValues( ETlow_, EThigh_, Ratlow_, Rathigh_, lut_); 00067 EcalTPGFineGrainEBIdMap::EcalTPGFineGrainEBMapItr itfg = (ecaltpgFineGrainEB -> getMap()).find((*it).second); 00068 (*itfg).second.getValues( ETlow_, EThigh_, Ratlow_, Rathigh_, lut_); 00069 } 00070 else edm::LogWarning("EcalTPG")<<" could not find EcalTPGGroupsMap entry for "<<towid; 00071 00072 }
std::vector<int> EcalFenixFgvbEB::add_out_8_ [private] |
uint32_t EcalFenixFgvbEB::EThigh_ [private] |
uint32_t EcalFenixFgvbEB::ETlow_ [private] |
uint32_t EcalFenixFgvbEB::lut_ [private] |
uint32_t EcalFenixFgvbEB::Rathigh_ [private] |
uint32_t EcalFenixFgvbEB::Ratlow_ [private] |