CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
EcalFenixFgvbEB Class Reference

calculation of Fgvb for Fenix Tcp, format barrel calculates fgvb for the barrel More...

#include <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_
 

Detailed Description

calculation of Fgvb for Fenix Tcp, format barrel calculates fgvb for the barrel

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 22 of file EcalFenixFgvbEB.h.

Constructor & Destructor Documentation

EcalFenixFgvbEB::EcalFenixFgvbEB ( int  maxNrSamples)

Definition at line 6 of file EcalFenixFgvbEB.cc.

References add_out_8_.

7  {
8  add_out_8_.resize(maxNrSamples);
9 }
std::vector< int > add_out_8_
EcalFenixFgvbEB::~EcalFenixFgvbEB ( )
virtual

Definition at line 11 of file EcalFenixFgvbEB.cc.

11  {
12 }

Member Function Documentation

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_, Rathigh_, and Ratlow_.

Referenced by EcalFenixTcp::process_part2_barrel().

14  {
15 
16  int Elow, Ehigh, Tlow, Thigh, lut;
17  int ERatLow,ERatHigh;
18  // std::vector<int> add_out_8(add_out.size());
19  int COMP3, COMP2, COMP1, COMP0;
20 
21  // Elow = (*params_)[1024];
22 // Ehigh = (*params_)[1025];
23 // Tlow = (*params_)[1026];
24 // Thigh = (*params_)[1027];
25 // lut = (*params_)[1028];
26 
27  Elow = ETlow_;
28  Ehigh = EThigh_;
29  Tlow = Ratlow_;
30  Thigh = Rathigh_;
31  lut = lut_;
32 
33 
34  if (Tlow > 127) Tlow=Tlow-128;
35  if (Thigh > 127) Thigh=Thigh-128;
36 
37  for (unsigned int i =0;i<add_out.size();i++) {
38 
39  ERatLow=add_out[i]*Tlow>>7;
40  if (ERatLow>0xFFF) ERatLow=0xFFF;
41  ERatHigh=add_out[i]*Thigh>>7;
42  if (ERatHigh>0xFFF) ERatHigh=0xFFF;
43  if (add_out[i] >0XFF) add_out_8_[i]=0xFF; else add_out_8_[i]=add_out[i];
44 
45  if( maxof2_out[i] >= ERatLow) COMP3=1; else COMP3=0;
46  if( maxof2_out[i] >= ERatHigh) COMP2=1; else COMP2=0;
47  if( add_out_8_[i] >= Elow) COMP1=1; else COMP1=0;
48  if( add_out_8_[i] >= Ehigh) COMP0=1; else COMP0=0;
49 
50  int ilut= (COMP3<<3) + (COMP2<<2) + (COMP1<<1) + COMP0;
51  int mask = 1<<(ilut);
52  output[i]= (lut) & (mask);
53  if (output[i]>0) output[i]=1;
54  }
55  return;
56  }
int i
Definition: DBlmapReader.cc:9
std::vector< int > add_out_8_
void EcalFenixFgvbEB::setParameters ( uint32_t  towid,
const EcalTPGFineGrainEBGroup ecaltpgFgEBGroup,
const EcalTPGFineGrainEBIdMap ecaltpgFineGrainEB 
)

Definition at line 58 of file EcalFenixFgvbEB.cc.

References EThigh_, ETlow_, spr::find(), lut_, Rathigh_, and Ratlow_.

Referenced by EcalFenixTcp::process_part2_barrel().

58  {
59 
60  const EcalTPGGroups::EcalTPGGroupsMap &groupmap = ecaltpgFgEBGroup -> getMap();
61  EcalTPGGroups::EcalTPGGroupsMapItr it= groupmap.find(towid);
62  if (it!=groupmap.end()) {
63 // uint32_t fgid =(*it).second;
64 // const EcalTPGFineGrainEBIdMap::EcalTPGFineGrainEBMap fgmap = ecaltpgFineGrainEB -> getMap();
65 // EcalTPGFineGrainEBIdMap::EcalTPGFineGrainEBMapItr itfg = fgmap.find(fgid);
66 // (*itfg).second.getValues( ETlow_, EThigh_, Ratlow_, Rathigh_, lut_);
67  EcalTPGFineGrainEBIdMap::EcalTPGFineGrainEBMapItr itfg = (ecaltpgFineGrainEB -> getMap()).find((*it).second);
68  (*itfg).second.getValues( ETlow_, EThigh_, Ratlow_, Rathigh_, lut_);
69  }
70  else edm::LogWarning("EcalTPG")<<" could not find EcalTPGGroupsMap entry for "<<towid;
71 
72 }
std::map< uint32_t, uint32_t >::const_iterator EcalTPGGroupsMapItr
Definition: EcalTPGGroups.h:21
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:7
std::map< uint32_t, EcalTPGFineGrainConstEB >::const_iterator EcalTPGFineGrainEBMapItr
std::map< uint32_t, uint32_t > EcalTPGGroupsMap
Definition: EcalTPGGroups.h:20

Member Data Documentation

std::vector<int> EcalFenixFgvbEB::add_out_8_
private

Definition at line 29 of file EcalFenixFgvbEB.h.

Referenced by EcalFenixFgvbEB(), and process().

uint32_t EcalFenixFgvbEB::EThigh_
private

Definition at line 25 of file EcalFenixFgvbEB.h.

Referenced by process(), and setParameters().

uint32_t EcalFenixFgvbEB::ETlow_
private

Definition at line 25 of file EcalFenixFgvbEB.h.

Referenced by process(), and setParameters().

uint32_t EcalFenixFgvbEB::lut_
private

Definition at line 25 of file EcalFenixFgvbEB.h.

Referenced by process(), and setParameters().

uint32_t EcalFenixFgvbEB::Rathigh_
private

Definition at line 25 of file EcalFenixFgvbEB.h.

Referenced by process(), and setParameters().

uint32_t EcalFenixFgvbEB::Ratlow_
private

Definition at line 25 of file EcalFenixFgvbEB.h.

Referenced by process(), and setParameters().