CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups 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 23 of file EcalFenixFgvbEB.h.

Constructor & Destructor Documentation

EcalFenixFgvbEB::EcalFenixFgvbEB ( int  maxNrSamples)

Definition at line 6 of file EcalFenixFgvbEB.cc.

References add_out_8_.

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

Definition at line 8 of file EcalFenixFgvbEB.cc.

8 {}

Member Function Documentation

void EcalFenixFgvbEB::process ( std::vector< int > &  add_out,
std::vector< int > &  maxof2_out,
std::vector< int > &  output 
)

Definition at line 10 of file EcalFenixFgvbEB.cc.

References add_out_8_, EThigh_, ETlow_, mps_fire::i, lut_, Rathigh_, and Ratlow_.

Referenced by EcalFenixTcp::process_part2_barrel().

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

Definition at line 71 of file EcalFenixFgvbEB.cc.

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

Referenced by EcalFenixTcp::process_part2_barrel().

73  {
74  const EcalTPGGroups::EcalTPGGroupsMap &groupmap = ecaltpgFgEBGroup->getMap();
75  EcalTPGGroups::EcalTPGGroupsMapItr it = groupmap.find(towid);
76  if (it != groupmap.end()) {
77  // uint32_t fgid =(*it).second;
78  // const EcalTPGFineGrainEBIdMap::EcalTPGFineGrainEBMap fgmap =
79  // ecaltpgFineGrainEB -> getMap();
80  // EcalTPGFineGrainEBIdMap::EcalTPGFineGrainEBMapItr itfg =
81  // fgmap.find(fgid);
82  // (*itfg).second.getValues( ETlow_, EThigh_, Ratlow_, Rathigh_,
83  // lut_);
84  EcalTPGFineGrainEBIdMap::EcalTPGFineGrainEBMapItr itfg = (ecaltpgFineGrainEB->getMap()).find((*it).second);
85  (*itfg).second.getValues(ETlow_, EThigh_, Ratlow_, Rathigh_, lut_);
86  } else
87  edm::LogWarning("EcalTPG") << " could not find EcalTPGGroupsMap entry for " << towid;
88 }
const EcalTPGGroupsMap & getMap() const
Definition: EcalTPGGroups.h:25
std::map< uint32_t, uint32_t >::const_iterator EcalTPGGroupsMapItr
Definition: EcalTPGGroups.h:20
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
const EcalTPGFineGrainEBMap & getMap() const
std::map< uint32_t, EcalTPGFineGrainConstEB >::const_iterator EcalTPGFineGrainEBMapItr
Log< level::Warning, false > LogWarning
std::map< uint32_t, uint32_t > EcalTPGGroupsMap
Definition: EcalTPGGroups.h:19

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().