CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
EcalFenixStrip Class Reference

class representing the Fenix chip, format strip More...

#include <EcalFenixStrip.h>

Public Member Functions

 EcalFenixStrip (const EcalElectronicsMapping *theMapping, bool debug, bool famos, int maxNrSamples, int nbMaxXtals, bool TPinfoPrintout)
 
EcalFenixEtStripgetAdder () const
 
bool getbadStripMissing () const
 
EcalFenixAmplitudeFiltergetEvenFilter () const
 
EcalFenixStripFgvbEEgetFGVB () const
 
EcalFenixStripFormatEBgetFormatterEB () const
 
EcalFenixStripFormatEEgetFormatterEE () const
 
EcalFenixLinearizergetLinearizer (int i) const
 
EcalFenixOddAmplitudeFiltergetOddFilter () const
 
EcalFenixPeakFindergetPeakFinder () const
 
void process (std::vector< EBDataFrame > &samples, int nrXtals, std::vector< int > &out)
 
void process (std::vector< EEDataFrame > &samples, int nrXtals, std::vector< int > &out)
 
template<class T >
void process_part1 (int identif, std::vector< T > &df, int nrXtals, uint32_t stripid, const EcalTPGPedestals *ecaltpPed, const EcalTPGLinearizationConst *ecaltpLin, const EcalTPGWeightIdMap *ecaltpgWeightMap, const EcalTPGWeightGroup *ecaltpgWeightGroup, const EcalTPGOddWeightIdMap *ecaltpgOddWeightMap, const EcalTPGOddWeightGroup *ecaltpgOddWeightGroup, const EcalTPGCrystalStatus *ecaltpBadX)
 
void process_part2_barrel (uint32_t stripid, const EcalTPGSlidingWindow *ecaltpgSlidW, const EcalTPGFineGrainStripEE *ecaltpgFgStripEE)
 
void process_part2_endcap (uint32_t stripid, const EcalTPGSlidingWindow *ecaltpgSlidW, const EcalTPGFineGrainStripEE *ecaltpgFgStripEE, const EcalTPGStripStatus *ecaltpgStripStatus)
 
void setbadStripMissing (bool flag)
 
void setPointers (const EcalTPGPedestals *ecaltpPed, const EcalTPGLinearizationConst *ecaltpLin, const EcalTPGWeightIdMap *ecaltpgWeightMap, const EcalTPGWeightGroup *ecaltpgWeightGroup, const EcalTPGOddWeightIdMap *ecaltpgOddWeightMap, const EcalTPGOddWeightGroup *ecaltpgOddWeightGroup, const EcalTPGSlidingWindow *ecaltpgSlidW, const EcalTPGFineGrainStripEE *ecaltpgFgStripEE, const EcalTPGCrystalStatus *ecaltpgBadX, const EcalTPGStripStatus *ecaltpgStripStatus, const EcalTPGTPMode *ecaltpgTPMode)
 
virtual ~EcalFenixStrip ()
 

Private Attributes

std::vector< int > add_out_
 
EcalFenixEtStripadder_
 
EcalFenixAmplitudeFilteramplitude_filter_
 
bool debug_
 
const EcalTPGCrystalStatusecaltpgBadX_
 
const EcalTPGFineGrainStripEEecaltpgFgStripEE_
 
const EcalTPGOddWeightGroupecaltpgOddWeightGroup_
 
const EcalTPGOddWeightIdMapecaltpgOddWeightMap_
 
const EcalTPGSlidingWindowecaltpgSlidW_
 
const EcalTPGStripStatusecaltpgStripStatus_
 
const EcalTPGTPModeecaltpgTPMode_
 
const EcalTPGWeightGroupecaltpgWeightGroup_
 
const EcalTPGWeightIdMapecaltpgWeightMap_
 
const EcalTPGLinearizationConstecaltpLin_
 
const EcalTPGPedestalsecaltpPed_
 
std::vector< int > even_filt_out_
 
std::vector< int > even_peak_out_
 
bool famos_
 
EcalFenixStripFormatEBfenixFormatterEB_
 
EcalFenixStripFormatEEfenixFormatterEE_
 
std::vector< int > fgvb_out_
 
std::vector< int > fgvb_out_temp_
 
EcalFenixStripFgvbEEfgvbEE_
 
std::vector< int > format_out_
 
bool identif_
 
std::vector< std::vector< int > > lin_out_
 
std::vector< EcalFenixLinearizer * > linearizer_
 
int nbMaxXtals_
 
std::vector< int > odd_filt_out_
 
std::vector< int > odd_peak_out_
 
EcalFenixOddAmplitudeFilteroddAmplitude_filter_
 
EcalFenixPeakFinderpeak_finder_
 
const EcalElectronicsMappingtheMapping_
 
bool tpInfoPrintout_
 

Detailed Description

class representing the Fenix chip, format strip

Definition at line 31 of file EcalFenixStrip.h.

Constructor & Destructor Documentation

◆ EcalFenixStrip()

EcalFenixStrip::EcalFenixStrip ( const EcalElectronicsMapping theMapping,
bool  debug,
bool  famos,
int  maxNrSamples,
int  nbMaxXtals,
bool  TPinfoPrintout 
)

Definition at line 15 of file EcalFenixStrip.cc.

References add_out_, adder_, amplitude_filter_, even_filt_out_, even_peak_out_, famos_, fenixFormatterEB_, fenixFormatterEE_, fgvb_out_, fgvb_out_temp_, fgvbEE_, format_out_, mps_fire::i, lin_out_, linearizer_, nbMaxXtals_, odd_filt_out_, odd_peak_out_, oddAmplitude_filter_, peak_finder_, and findQualityFiles::v.

21  : theMapping_(theMapping), debug_(debug), famos_(famos), nbMaxXtals_(nbMaxXtals), tpInfoPrintout_(tpInfoPrintout) {
22  linearizer_.resize(nbMaxXtals_);
23  for (int i = 0; i < nbMaxXtals_; i++)
25  adder_ = new EcalFenixEtStrip();
26  amplitude_filter_ = new EcalFenixAmplitudeFilter(tpInfoPrintout);
32 
33  // prepare data storage for all events
34  std::vector<int> v;
35  v.resize(maxNrSamples);
36  lin_out_.resize(nbMaxXtals_);
37  for (int i = 0; i < 5; i++)
38  lin_out_[i] = v;
39  add_out_.resize(maxNrSamples);
40 
41  even_filt_out_.resize(maxNrSamples);
42  even_peak_out_.resize(maxNrSamples);
43  odd_filt_out_.resize(maxNrSamples);
44  odd_peak_out_.resize(maxNrSamples);
45 
46  format_out_.resize(maxNrSamples);
47  fgvb_out_.resize(maxNrSamples);
48  fgvb_out_temp_.resize(maxNrSamples);
49 }
EcalFenixOddAmplitudeFilter * oddAmplitude_filter_
EcalFenixStripFgvbEE * fgvbEE_
std::vector< std::vector< int > > lin_out_
std::vector< int > add_out_
std::vector< int > even_peak_out_
std::vector< EcalFenixLinearizer * > linearizer_
EcalFenixStripFormatEB * fenixFormatterEB_
const EcalElectronicsMapping * theMapping_
calculates the peak for Fenix strip, barrel input : 18 bits output: boolean
std::vector< int > odd_filt_out_
calculation of Fgvb for the endcap in Fenix Strip calculates fgvb for the endcap in Fenix Strip ...
Formatting for Fenix strip input: 18 bits + 3x 1bit (fgvb, gapflagbit, output from peakfinder) output...
Linearisation for Fenix strip input: 16 bits corresponding to input EBDataFrame output: 18 bits...
std::vector< int > even_filt_out_
EcalFenixPeakFinder * peak_finder_
calculates .... for Fenix strip, barrel input: 18 bits output: 18 bits
std::vector< int > odd_peak_out_
#define debug
Definition: HDRShower.cc:19
Formatting for Fenix strip input: 18 bits + 3x 1bit (fgvb, gapflagbit, output from peakfinder) output...
std::vector< int > fgvb_out_
std::vector< int > format_out_
EcalFenixAmplitudeFilter * amplitude_filter_
EcalFenixStripFormatEE * fenixFormatterEE_
EcalFenixEtStrip * adder_
std::vector< int > fgvb_out_temp_

◆ ~EcalFenixStrip()

EcalFenixStrip::~EcalFenixStrip ( )
virtual

Definition at line 52 of file EcalFenixStrip.cc.

References adder_, amplitude_filter_, fenixFormatterEB_, fenixFormatterEE_, fgvbEE_, mps_fire::i, linearizer_, nbMaxXtals_, oddAmplitude_filter_, and peak_finder_.

52  {
53  for (int i = 0; i < nbMaxXtals_; i++)
54  delete linearizer_[i];
55  delete adder_;
56  delete amplitude_filter_;
57  delete oddAmplitude_filter_;
58  delete peak_finder_;
59  delete fenixFormatterEB_;
60  delete fenixFormatterEE_;
61  delete fgvbEE_;
62 }
EcalFenixOddAmplitudeFilter * oddAmplitude_filter_
EcalFenixStripFgvbEE * fgvbEE_
std::vector< EcalFenixLinearizer * > linearizer_
EcalFenixStripFormatEB * fenixFormatterEB_
EcalFenixPeakFinder * peak_finder_
EcalFenixAmplitudeFilter * amplitude_filter_
EcalFenixStripFormatEE * fenixFormatterEE_
EcalFenixEtStrip * adder_

Member Function Documentation

◆ getAdder()

EcalFenixEtStrip* EcalFenixStrip::getAdder ( ) const
inline

Definition at line 151 of file EcalFenixStrip.h.

References adder_.

Referenced by process_part1().

151 { return adder_; }
EcalFenixEtStrip * adder_

◆ getbadStripMissing()

bool EcalFenixStrip::getbadStripMissing ( ) const
inline

Definition at line 162 of file EcalFenixStrip.h.

References identif_.

162 { return identif_; }

◆ getEvenFilter()

EcalFenixAmplitudeFilter* EcalFenixStrip::getEvenFilter ( ) const
inline

Definition at line 152 of file EcalFenixStrip.h.

References amplitude_filter_.

Referenced by process_part1().

152 { return amplitude_filter_; }
EcalFenixAmplitudeFilter * amplitude_filter_

◆ getFGVB()

EcalFenixStripFgvbEE* EcalFenixStrip::getFGVB ( ) const
inline

Definition at line 159 of file EcalFenixStrip.h.

References fgvbEE_.

Referenced by process(), and process_part1().

159 { return fgvbEE_; }
EcalFenixStripFgvbEE * fgvbEE_

◆ getFormatterEB()

EcalFenixStripFormatEB* EcalFenixStrip::getFormatterEB ( ) const
inline

Definition at line 156 of file EcalFenixStrip.h.

References fenixFormatterEB_.

Referenced by process_part2_barrel().

156 { return fenixFormatterEB_; }
EcalFenixStripFormatEB * fenixFormatterEB_

◆ getFormatterEE()

EcalFenixStripFormatEE* EcalFenixStrip::getFormatterEE ( ) const
inline

Definition at line 157 of file EcalFenixStrip.h.

References fenixFormatterEE_.

Referenced by process_part2_endcap().

157 { return fenixFormatterEE_; }
EcalFenixStripFormatEE * fenixFormatterEE_

◆ getLinearizer()

EcalFenixLinearizer* EcalFenixStrip::getLinearizer ( int  i) const
inline

Definition at line 150 of file EcalFenixStrip.h.

References mps_fire::i, and linearizer_.

Referenced by process_part1().

150 { return linearizer_[i]; }
std::vector< EcalFenixLinearizer * > linearizer_

◆ getOddFilter()

EcalFenixOddAmplitudeFilter* EcalFenixStrip::getOddFilter ( ) const
inline

Definition at line 153 of file EcalFenixStrip.h.

References oddAmplitude_filter_.

Referenced by process_part1().

153 { return oddAmplitude_filter_; }
EcalFenixOddAmplitudeFilter * oddAmplitude_filter_

◆ getPeakFinder()

EcalFenixPeakFinder* EcalFenixStrip::getPeakFinder ( ) const
inline

Definition at line 154 of file EcalFenixStrip.h.

References peak_finder_.

Referenced by process_part1().

154 { return peak_finder_; }
EcalFenixPeakFinder * peak_finder_

◆ process() [1/2]

void EcalFenixStrip::process ( std::vector< EBDataFrame > &  samples,
int  nrXtals,
std::vector< int > &  out 
)

Definition at line 64 of file EcalFenixStrip.cc.

References ecaltpgBadX_, ecaltpgFgStripEE_, ecaltpgOddWeightGroup_, ecaltpgOddWeightMap_, ecaltpgSlidW_, ecaltpgWeightGroup_, ecaltpgWeightMap_, ecaltpLin_, ecaltpPed_, format_out_, getFGVB(), EcalFenixStripFgvbEE::getMissedStripFlag(), EcalElectronicsMapping::getTriggerElectronicsId(), identif_, MillePedeFileConverter_cfg::out, process_part1(), process_part2_barrel(), EcalTriggerElectronicsId::rawId(), EgammaValidation_cff::samples, and theMapping_.

64  {
65  // now call processing
66  if (samples.empty()) {
67  edm::LogWarning("EcalTPG") << "Warning: 0 size vector found in EcalFenixStripProcess!!!!!";
68  return;
69  }
71  uint32_t stripid = elId.rawId() & 0xfffffff8; // from Pascal
72 
74 
76  samples,
77  nrXtals,
78  stripid,
79  ecaltpPed_,
80  ecaltpLin_,
85  ecaltpgBadX_); // templated part
87  ecaltpgFgStripEE_); // part different for barrel/endcap
88  out = format_out_;
89 }
EcalFenixStripFgvbEE * getFGVB() const
void process_part2_barrel(uint32_t stripid, const EcalTPGSlidingWindow *ecaltpgSlidW, const EcalTPGFineGrainStripEE *ecaltpgFgStripEE)
const EcalTPGOddWeightGroup * ecaltpgOddWeightGroup_
void process_part1(int identif, std::vector< T > &df, int nrXtals, uint32_t stripid, const EcalTPGPedestals *ecaltpPed, const EcalTPGLinearizationConst *ecaltpLin, const EcalTPGWeightIdMap *ecaltpgWeightMap, const EcalTPGWeightGroup *ecaltpgWeightGroup, const EcalTPGOddWeightIdMap *ecaltpgOddWeightMap, const EcalTPGOddWeightGroup *ecaltpgOddWeightGroup, const EcalTPGCrystalStatus *ecaltpBadX)
const EcalElectronicsMapping * theMapping_
const EcalTPGSlidingWindow * ecaltpgSlidW_
EcalTriggerElectronicsId getTriggerElectronicsId(const DetId &id) const
Get the trigger electronics id for this det id.
const EcalTPGOddWeightIdMap * ecaltpgOddWeightMap_
const EcalTPGLinearizationConst * ecaltpLin_
const EcalTPGCrystalStatus * ecaltpgBadX_
const EcalTPGWeightIdMap * ecaltpgWeightMap_
const EcalTPGWeightGroup * ecaltpgWeightGroup_
const EcalTPGPedestals * ecaltpPed_
const EcalTPGFineGrainStripEE * ecaltpgFgStripEE_
std::vector< int > format_out_
Log< level::Warning, false > LogWarning
Ecal trigger electronics identification [32:20] Unused (so far) [19:13] TCC id [12:6] TT id [5:3] pse...

◆ process() [2/2]

void EcalFenixStrip::process ( std::vector< EEDataFrame > &  samples,
int  nrXtals,
std::vector< int > &  out 
)

Definition at line 91 of file EcalFenixStrip.cc.

References gather_cfg::cout, ecaltpgBadX_, ecaltpgFgStripEE_, ecaltpgOddWeightGroup_, ecaltpgOddWeightMap_, ecaltpgSlidW_, ecaltpgStripStatus_, ecaltpgWeightGroup_, ecaltpgWeightMap_, ecaltpLin_, ecaltpPed_, format_out_, getFGVB(), EcalFenixStripFgvbEE::getMissedStripFlag(), EcalElectronicsMapping::getTriggerElectronicsId(), identif_, MillePedeFileConverter_cfg::out, process_part1(), process_part2_endcap(), EcalTriggerElectronicsId::rawId(), EgammaValidation_cff::samples, and theMapping_.

91  {
92  // now call processing
93  if (samples.empty()) {
94  std::cout << " Warning: 0 size vector found in EcalFenixStripProcess!!!!!" << std::endl;
95  return;
96  }
98  uint32_t stripid = elId.rawId() & 0xfffffff8; // from Pascal
99 
101 
103  samples,
104  nrXtals,
105  stripid,
106  ecaltpPed_,
107  ecaltpLin_,
112  ecaltpgBadX_); // templated part
114  out = format_out_; // FIXME: timing
115  return;
116 }
EcalFenixStripFgvbEE * getFGVB() const
const EcalTPGOddWeightGroup * ecaltpgOddWeightGroup_
void process_part1(int identif, std::vector< T > &df, int nrXtals, uint32_t stripid, const EcalTPGPedestals *ecaltpPed, const EcalTPGLinearizationConst *ecaltpLin, const EcalTPGWeightIdMap *ecaltpgWeightMap, const EcalTPGWeightGroup *ecaltpgWeightGroup, const EcalTPGOddWeightIdMap *ecaltpgOddWeightMap, const EcalTPGOddWeightGroup *ecaltpgOddWeightGroup, const EcalTPGCrystalStatus *ecaltpBadX)
const EcalElectronicsMapping * theMapping_
const EcalTPGSlidingWindow * ecaltpgSlidW_
EcalTriggerElectronicsId getTriggerElectronicsId(const DetId &id) const
Get the trigger electronics id for this det id.
void process_part2_endcap(uint32_t stripid, const EcalTPGSlidingWindow *ecaltpgSlidW, const EcalTPGFineGrainStripEE *ecaltpgFgStripEE, const EcalTPGStripStatus *ecaltpgStripStatus)
const EcalTPGOddWeightIdMap * ecaltpgOddWeightMap_
const EcalTPGLinearizationConst * ecaltpLin_
const EcalTPGStripStatus * ecaltpgStripStatus_
const EcalTPGCrystalStatus * ecaltpgBadX_
const EcalTPGWeightIdMap * ecaltpgWeightMap_
const EcalTPGWeightGroup * ecaltpgWeightGroup_
const EcalTPGPedestals * ecaltpPed_
const EcalTPGFineGrainStripEE * ecaltpgFgStripEE_
std::vector< int > format_out_
Ecal trigger electronics identification [32:20] Unused (so far) [19:13] TCC id [12:6] TT id [5:3] pse...

◆ process_part1()

template<class T >
void EcalFenixStrip::process_part1 ( int  identif,
std::vector< T > &  df,
int  nrXtals,
uint32_t  stripid,
const EcalTPGPedestals ecaltpPed,
const EcalTPGLinearizationConst ecaltpLin,
const EcalTPGWeightIdMap ecaltpgWeightMap,
const EcalTPGWeightGroup ecaltpgWeightGroup,
const EcalTPGOddWeightIdMap ecaltpgOddWeightMap,
const EcalTPGOddWeightGroup ecaltpgOddWeightGroup,
const EcalTPGCrystalStatus ecaltpBadX 
)

Definition at line 124 of file EcalFenixStrip.cc.

References gpuClustering::adc, add_out_, debug_, hgcalPerformanceValidation::df, ecaltpgFgStripEE_, ecaltpgTPMode_, even_filt_out_, even_peak_out_, famos_, fgvb_out_, fgvb_out_temp_, getAdder(), getEvenFilter(), getFGVB(), getLinearizer(), getOddFilter(), getPeakFinder(), mps_fire::i, lin_out_, odd_filt_out_, odd_peak_out_, EcalTPGTPMode::print(), EcalFenixPeakFinder::process(), EcalFenixEtStrip::process(), EcalFenixAmplitudeFilter::process(), EcalFenixOddAmplitudeFilter::process(), EcalFenixStripFgvbEE::process(), EcalFenixLinearizer::process(), nano_mu_digi_cff::rawId, EcalFenixStripFgvbEE::setParameters(), EcalFenixOddAmplitudeFilter::setParameters(), EcalFenixAmplitudeFilter::setParameters(), EcalFenixLinearizer::setParameters(), contentValuesCheck::ss, AlCaHLTBitMon_QueryRunRegistry::string, and to_string().

Referenced by process().

134  {
135  if (debug_) {
136  edm::LogVerbatim("EcalTPG");
137  edm::LogVerbatim("EcalTPG") << "EcalFenixStrip input is a vector of size: " << nrXtals << "\n";
138  edm::LogVerbatim("EcalTPG") << "ECAL TPG TPMode printout:";
139 
140  std::stringstream ss;
142  edm::LogVerbatim("EcalTPG") << ss.str() << "\n";
143  }
144 
145  // loop over crystals
146  for (int cryst = 0; cryst < nrXtals; cryst++) {
147  if (debug_) {
148  edm::LogVerbatim("EcalTPG") << "crystal " << cryst << " ADC counts per clock (non-linearized): ";
149  int Nsamples = df[cryst].size();
150  std::string XTAL_ADCs;
151 
152  for (int i = 0; i < Nsamples; i++) {
153  XTAL_ADCs.append(" ");
154  XTAL_ADCs.append(std::to_string(df[cryst][i].adc()));
155  }
156 
157  edm::LogVerbatim("EcalTPG") << XTAL_ADCs << "\n";
158  }
159  // call linearizer
160  this->getLinearizer(cryst)->setParameters(df[cryst].id().rawId(), ecaltpPed, ecaltpLin, ecaltpBadX);
161  this->getLinearizer(cryst)->process(df[cryst], lin_out_[cryst]);
162  }
163 
164  if (debug_) {
165  edm::LogVerbatim("EcalTPG") << "output of linearizer is a vector of size: " << lin_out_.size() << " of which "
166  << nrXtals << " are used";
167 
168  for (int ix = 0; ix < nrXtals; ix++) {
169  edm::LogVerbatim("EcalTPG") << "crystal " << std::to_string(ix) << " values per clock (linearized): ";
170  std::string Lin_Vals;
171  std::string Lin_Vals_in_time = "[";
172 
173  for (unsigned int i = 0; i < lin_out_[ix].size(); i++) {
174  Lin_Vals.append(" ");
175  if (i >= 2 && i < 7) {
176  Lin_Vals_in_time.append(
177  std::to_string((lin_out_[ix])[i])); // Save in time vals separately for nicely formatted digis
178  if (i < 6)
179  Lin_Vals_in_time.append(", ");
180  else
181  Lin_Vals_in_time.append("]");
182  }
183  Lin_Vals.append(std::to_string((lin_out_[ix])[i]));
184  }
185  Lin_Vals.append("]");
186 
187  edm::LogVerbatim("EcalTPG") << Lin_Vals << " --> In time digis: " << Lin_Vals_in_time << "\n";
188  }
189  }
190 
191  // Now call the sFGVB - this is common between EB and EE!
192  getFGVB()->setParameters(identif, stripid, ecaltpgFgStripEE_);
194 
195  if (debug_) {
196  edm::LogVerbatim("EcalTPG") << "output of strip fgvb is a vector of size: " << fgvb_out_temp_.size();
197  std::string fgvb_vals;
198  for (unsigned int i = 0; i < fgvb_out_temp_.size(); i++) {
199  fgvb_vals.append(" ");
200  fgvb_vals.append(std::to_string(fgvb_out_temp_[i]));
201  }
202  edm::LogVerbatim("EcalTPG") << fgvb_vals << "\n";
203  }
204  // call adder
205  this->getAdder()->process(lin_out_, nrXtals, add_out_); // add_out is of size SIZEMAX=maxNrSamples
206 
207  if (debug_) {
208  edm::LogVerbatim("EcalTPG") << "output of adder is a vector of size: " << add_out_.size();
209  for (unsigned int ix = 0; ix < add_out_.size(); ix++) {
210  edm::LogVerbatim("EcalTPG") << "Clock: " << ix << " value: " << add_out_[ix];
211  }
212  edm::LogVerbatim("EcalTPG");
213  }
214 
215  if (famos_) {
216  even_filt_out_[0] = add_out_[0];
217  even_peak_out_[0] = add_out_[0];
218  return;
219  } else {
220  // This is where the amplitude filters are called
221  // the TPmode flag will determine which are called and if the peak finder is called.
222  // Call even amplitude filter
223  this->getEvenFilter()->setParameters(stripid, ecaltpgWeightMap, ecaltpgWeightGroup);
225 
226  // Print out even filter ET and sfgvb values
227  if (debug_) {
228  edm::LogVerbatim("EcalTPG");
229  edm::LogVerbatim("EcalTPG") << "output of EVEN filter is a vector of size: " << even_filt_out_.size();
230  for (unsigned int ix = 0; ix < even_filt_out_.size(); ix++) {
231  edm::LogVerbatim("EcalTPG") << "Clock: " << ix << " value : " << even_filt_out_[ix];
232  }
233  edm::LogVerbatim("EcalTPG");
234  edm::LogVerbatim("EcalTPG") << "output of EVEN sfgvb after filter is a vector of size: " << fgvb_out_.size();
235  for (unsigned int ix = 0; ix < fgvb_out_.size(); ix++) {
236  edm::LogVerbatim("EcalTPG") << "Clock: " << ix << " value : " << fgvb_out_[ix];
237  }
238  }
239 
240  // Call peak finder on even filter output
242 
243  // Print out even filter peak finder values
244  if (debug_) {
245  edm::LogVerbatim("EcalTPG");
246  edm::LogVerbatim("EcalTPG") << "output of EVEN peakfinder is a vector of size: " << even_peak_out_.size();
247  for (unsigned int ix = 0; ix < even_peak_out_.size(); ix++) {
248  edm::LogVerbatim("EcalTPG") << "Clock: " << ix << " value : " << even_peak_out_[ix];
249  }
250  edm::LogVerbatim("EcalTPG");
251  }
252 
253  // Run the odd filter
254  this->getOddFilter()->setParameters(stripid, ecaltpgOddWeightMap, ecaltpgOddWeightGroup);
256 
257  // Print out odd filter ET
258  if (debug_) {
259  edm::LogVerbatim("EcalTPG");
260  edm::LogVerbatim("EcalTPG") << "output of ODD filter is a vector of size: " << odd_filt_out_.size();
261  for (unsigned int ix = 0; ix < odd_filt_out_.size(); ix++) {
262  edm::LogVerbatim("EcalTPG") << "Clock: " << ix << " value : " << odd_filt_out_[ix];
263  }
264  edm::LogVerbatim("EcalTPG");
265  }
266 
267  // And run the odd peak finder always (then the formatter will use the configuration to decide to use it or not)
268  // Call peak finder on even filter output
270 
271  if (debug_) {
272  edm::LogVerbatim("EcalTPG") << "output of ODD peakfinder is a vector of size: " << odd_peak_out_.size();
273  for (unsigned int ix = 0; ix < odd_peak_out_.size(); ix++) {
274  edm::LogVerbatim("EcalTPG") << "Clock: " << ix << " value : " << odd_peak_out_[ix];
275  }
276  edm::LogVerbatim("EcalTPG");
277  }
278 
279  return;
280  }
281 }
EcalFenixOddAmplitudeFilter * getOddFilter() const
Log< level::Info, true > LogVerbatim
void setParameters(uint32_t raw, const EcalTPGPedestals *ecaltpPed, const EcalTPGLinearizationConst *ecaltpLin, const EcalTPGCrystalStatus *ecaltpBadX)
std::vector< std::vector< int > > lin_out_
std::vector< int > add_out_
EcalFenixStripFgvbEE * getFGVB() const
std::vector< int > even_peak_out_
void process(std::vector< std::vector< int >> &lin_out, std::vector< int > &output)
EcalFenixAmplitudeFilter * getEvenFilter() const
void setParameters(int identif, uint32_t id, const EcalTPGFineGrainStripEE *)
void print(std::ostream &) const
Definition: EcalTPGTPMode.cc:8
std::vector< int > odd_filt_out_
static std::string to_string(const XMLCh *ch)
void process(const std::vector< std::vector< int >> &linout, int nrXtals, std::vector< int > &output)
EcalFenixLinearizer * getLinearizer(int i) const
std::vector< int > even_filt_out_
std::vector< int > odd_peak_out_
std::vector< int > fgvb_out_
const EcalTPGFineGrainStripEE * ecaltpgFgStripEE_
const EcalTPGTPMode * ecaltpgTPMode_
void setParameters(uint32_t raw, const EcalTPGWeightIdMap *ecaltpgWeightMap, const EcalTPGWeightGroup *ecaltpgWeightGroup)
EcalFenixPeakFinder * getPeakFinder() const
EcalFenixEtStrip * getAdder() const
std::vector< int > fgvb_out_temp_
uint16_t *__restrict__ uint16_t const *__restrict__ adc
void setParameters(uint32_t raw, const EcalTPGOddWeightIdMap *ecaltpgOddWeightMap, const EcalTPGOddWeightGroup *ecaltpgOddWeightGroup)

◆ process_part2_barrel()

void EcalFenixStrip::process_part2_barrel ( uint32_t  stripid,
const EcalTPGSlidingWindow ecaltpgSlidW,
const EcalTPGFineGrainStripEE ecaltpgFgStripEE 
)

Definition at line 284 of file EcalFenixStrip.cc.

References debug_, ecaltpgTPMode_, even_filt_out_, even_peak_out_, fgvb_out_, format_out_, getFormatterEB(), odd_filt_out_, odd_peak_out_, EcalFenixStripFormatEB::process(), EcalFenixStripFormatEB::setParameters(), and to_string().

Referenced by process().

286  {
287  // call formatter
288  this->getFormatterEB()->setParameters(stripid, ecaltpgSlidW, ecaltpgTPMode_);
290 
291  if (debug_) {
292  edm::LogVerbatim("EcalTPG") << "output of strip EB formatter is a vector of size: " << format_out_.size();
293  edm::LogVerbatim("EcalTPG") << "value : ";
294  for (unsigned int ix = 0; ix < format_out_.size(); ix++) {
295  edm::LogVerbatim("EcalTPG") << "Clock: " << ix << " value : " << format_out_[ix] << " 0b"
296  << std::bitset<14>(format_out_[ix]).to_string();
297  }
298  edm::LogVerbatim("EcalTPG");
299  }
300  return;
301 }
EcalFenixStripFormatEB * getFormatterEB() const
Log< level::Info, true > LogVerbatim
std::vector< int > even_peak_out_
std::vector< int > odd_filt_out_
static std::string to_string(const XMLCh *ch)
std::vector< int > even_filt_out_
std::vector< int > odd_peak_out_
std::vector< int > fgvb_out_
const EcalTPGTPMode * ecaltpgTPMode_
std::vector< int > format_out_
void setParameters(uint32_t &, const EcalTPGSlidingWindow *&, const EcalTPGTPMode *)

◆ process_part2_endcap()

void EcalFenixStrip::process_part2_endcap ( uint32_t  stripid,
const EcalTPGSlidingWindow ecaltpgSlidW,
const EcalTPGFineGrainStripEE ecaltpgFgStripEE,
const EcalTPGStripStatus ecaltpgStripStatus 
)

Definition at line 303 of file EcalFenixStrip.cc.

References debug_, ecaltpgTPMode_, even_filt_out_, even_peak_out_, fgvb_out_, format_out_, getFormatterEE(), odd_filt_out_, odd_peak_out_, EcalFenixStripFormatEE::process(), EcalFenixStripFormatEE::setParameters(), and to_string().

Referenced by process().

306  {
307  // call formatter
308  this->getFormatterEE()->setParameters(stripid, ecaltpgSlidW, ecaltpgStripStatus, ecaltpgTPMode_);
310 
311  if (debug_) {
312  edm::LogVerbatim("EcalTPG") << "\noutput of strip EE formatter is a vector of size: " << format_out_.size();
313  edm::LogVerbatim("EcalTPG") << "value : ";
314  for (unsigned int ix = 0; ix < format_out_.size(); ix++) {
315  edm::LogVerbatim("EcalTPG") << "Clock: " << ix << " value : " << format_out_[ix] << " 0b"
316  << std::bitset<14>(format_out_[ix]).to_string();
317  }
318  edm::LogVerbatim("EcalTPG");
319  }
320 
321  return;
322 }
Log< level::Info, true > LogVerbatim
std::vector< int > even_peak_out_
std::vector< int > odd_filt_out_
static std::string to_string(const XMLCh *ch)
std::vector< int > even_filt_out_
EcalFenixStripFormatEE * getFormatterEE() const
std::vector< int > odd_peak_out_
std::vector< int > fgvb_out_
const EcalTPGTPMode * ecaltpgTPMode_
void setParameters(uint32_t id, const EcalTPGSlidingWindow *&, const EcalTPGStripStatus *, const EcalTPGTPMode *)
std::vector< int > format_out_

◆ setbadStripMissing()

void EcalFenixStrip::setbadStripMissing ( bool  flag)
inline

Definition at line 161 of file EcalFenixStrip.h.

References RemoveAddSevLevel::flag, and identif_.

◆ setPointers()

void EcalFenixStrip::setPointers ( const EcalTPGPedestals ecaltpPed,
const EcalTPGLinearizationConst ecaltpLin,
const EcalTPGWeightIdMap ecaltpgWeightMap,
const EcalTPGWeightGroup ecaltpgWeightGroup,
const EcalTPGOddWeightIdMap ecaltpgOddWeightMap,
const EcalTPGOddWeightGroup ecaltpgOddWeightGroup,
const EcalTPGSlidingWindow ecaltpgSlidW,
const EcalTPGFineGrainStripEE ecaltpgFgStripEE,
const EcalTPGCrystalStatus ecaltpgBadX,
const EcalTPGStripStatus ecaltpgStripStatus,
const EcalTPGTPMode ecaltpgTPMode 
)
inline

Definition at line 96 of file EcalFenixStrip.h.

References ecaltpgBadX_, ecaltpgFgStripEE_, ecaltpgOddWeightGroup_, ecaltpgOddWeightMap_, ecaltpgSlidW_, ecaltpgStripStatus_, ecaltpgTPMode_, ecaltpgWeightGroup_, ecaltpgWeightMap_, ecaltpLin_, and ecaltpPed_.

106  {
107  ecaltpPed_ = ecaltpPed;
108  ecaltpLin_ = ecaltpLin;
109  ecaltpgWeightMap_ = ecaltpgWeightMap;
110  ecaltpgWeightGroup_ = ecaltpgWeightGroup;
111  ecaltpgOddWeightMap_ = ecaltpgOddWeightMap;
112  ecaltpgOddWeightGroup_ = ecaltpgOddWeightGroup;
113  ecaltpgSlidW_ = ecaltpgSlidW;
114  ecaltpgFgStripEE_ = ecaltpgFgStripEE;
115  ecaltpgBadX_ = ecaltpgBadX;
116  ecaltpgStripStatus_ = ecaltpgStripStatus;
117  ecaltpgTPMode_ = ecaltpgTPMode;
118  }
const EcalTPGOddWeightGroup * ecaltpgOddWeightGroup_
const EcalTPGSlidingWindow * ecaltpgSlidW_
const EcalTPGOddWeightIdMap * ecaltpgOddWeightMap_
const EcalTPGLinearizationConst * ecaltpLin_
const EcalTPGStripStatus * ecaltpgStripStatus_
const EcalTPGCrystalStatus * ecaltpgBadX_
const EcalTPGWeightIdMap * ecaltpgWeightMap_
const EcalTPGWeightGroup * ecaltpgWeightGroup_
const EcalTPGPedestals * ecaltpPed_
const EcalTPGFineGrainStripEE * ecaltpgFgStripEE_
const EcalTPGTPMode * ecaltpgTPMode_

Member Data Documentation

◆ add_out_

std::vector<int> EcalFenixStrip::add_out_
private

Definition at line 67 of file EcalFenixStrip.h.

Referenced by EcalFenixStrip(), and process_part1().

◆ adder_

EcalFenixEtStrip* EcalFenixStrip::adder_
private

Definition at line 61 of file EcalFenixStrip.h.

Referenced by EcalFenixStrip(), getAdder(), and ~EcalFenixStrip().

◆ amplitude_filter_

EcalFenixAmplitudeFilter* EcalFenixStrip::amplitude_filter_
private

Definition at line 52 of file EcalFenixStrip.h.

Referenced by EcalFenixStrip(), getEvenFilter(), and ~EcalFenixStrip().

◆ debug_

bool EcalFenixStrip::debug_
private

Definition at line 45 of file EcalFenixStrip.h.

Referenced by process_part1(), process_part2_barrel(), and process_part2_endcap().

◆ ecaltpgBadX_

const EcalTPGCrystalStatus* EcalFenixStrip::ecaltpgBadX_
private

Definition at line 89 of file EcalFenixStrip.h.

Referenced by process(), and setPointers().

◆ ecaltpgFgStripEE_

const EcalTPGFineGrainStripEE* EcalFenixStrip::ecaltpgFgStripEE_
private

Definition at line 88 of file EcalFenixStrip.h.

Referenced by process(), process_part1(), and setPointers().

◆ ecaltpgOddWeightGroup_

const EcalTPGOddWeightGroup* EcalFenixStrip::ecaltpgOddWeightGroup_
private

Definition at line 86 of file EcalFenixStrip.h.

Referenced by process(), and setPointers().

◆ ecaltpgOddWeightMap_

const EcalTPGOddWeightIdMap* EcalFenixStrip::ecaltpgOddWeightMap_
private

Definition at line 85 of file EcalFenixStrip.h.

Referenced by process(), and setPointers().

◆ ecaltpgSlidW_

const EcalTPGSlidingWindow* EcalFenixStrip::ecaltpgSlidW_
private

Definition at line 87 of file EcalFenixStrip.h.

Referenced by process(), and setPointers().

◆ ecaltpgStripStatus_

const EcalTPGStripStatus* EcalFenixStrip::ecaltpgStripStatus_
private

Definition at line 90 of file EcalFenixStrip.h.

Referenced by process(), and setPointers().

◆ ecaltpgTPMode_

const EcalTPGTPMode* EcalFenixStrip::ecaltpgTPMode_
private

◆ ecaltpgWeightGroup_

const EcalTPGWeightGroup* EcalFenixStrip::ecaltpgWeightGroup_
private

Definition at line 84 of file EcalFenixStrip.h.

Referenced by process(), and setPointers().

◆ ecaltpgWeightMap_

const EcalTPGWeightIdMap* EcalFenixStrip::ecaltpgWeightMap_
private

Definition at line 83 of file EcalFenixStrip.h.

Referenced by process(), and setPointers().

◆ ecaltpLin_

const EcalTPGLinearizationConst* EcalFenixStrip::ecaltpLin_
private

Definition at line 82 of file EcalFenixStrip.h.

Referenced by process(), and setPointers().

◆ ecaltpPed_

const EcalTPGPedestals* EcalFenixStrip::ecaltpPed_
private

Definition at line 81 of file EcalFenixStrip.h.

Referenced by process(), and setPointers().

◆ even_filt_out_

std::vector<int> EcalFenixStrip::even_filt_out_
private

◆ even_peak_out_

std::vector<int> EcalFenixStrip::even_peak_out_
private

◆ famos_

bool EcalFenixStrip::famos_
private

Definition at line 46 of file EcalFenixStrip.h.

Referenced by EcalFenixStrip(), and process_part1().

◆ fenixFormatterEB_

EcalFenixStripFormatEB* EcalFenixStrip::fenixFormatterEB_
private

Definition at line 57 of file EcalFenixStrip.h.

Referenced by EcalFenixStrip(), getFormatterEB(), and ~EcalFenixStrip().

◆ fenixFormatterEE_

EcalFenixStripFormatEE* EcalFenixStrip::fenixFormatterEE_
private

Definition at line 59 of file EcalFenixStrip.h.

Referenced by EcalFenixStrip(), getFormatterEE(), and ~EcalFenixStrip().

◆ fgvb_out_

std::vector<int> EcalFenixStrip::fgvb_out_
private

◆ fgvb_out_temp_

std::vector<int> EcalFenixStrip::fgvb_out_temp_
private

Definition at line 79 of file EcalFenixStrip.h.

Referenced by EcalFenixStrip(), and process_part1().

◆ fgvbEE_

EcalFenixStripFgvbEE* EcalFenixStrip::fgvbEE_
private

Definition at line 63 of file EcalFenixStrip.h.

Referenced by EcalFenixStrip(), getFGVB(), and ~EcalFenixStrip().

◆ format_out_

std::vector<int> EcalFenixStrip::format_out_
private

◆ identif_

bool EcalFenixStrip::identif_
private

Definition at line 93 of file EcalFenixStrip.h.

Referenced by getbadStripMissing(), process(), and setbadStripMissing().

◆ lin_out_

std::vector<std::vector<int> > EcalFenixStrip::lin_out_
private

Definition at line 66 of file EcalFenixStrip.h.

Referenced by EcalFenixStrip(), and process_part1().

◆ linearizer_

std::vector<EcalFenixLinearizer *> EcalFenixStrip::linearizer_
private

Definition at line 50 of file EcalFenixStrip.h.

Referenced by EcalFenixStrip(), getLinearizer(), and ~EcalFenixStrip().

◆ nbMaxXtals_

int EcalFenixStrip::nbMaxXtals_
private

Definition at line 47 of file EcalFenixStrip.h.

Referenced by EcalFenixStrip(), and ~EcalFenixStrip().

◆ odd_filt_out_

std::vector<int> EcalFenixStrip::odd_filt_out_
private

◆ odd_peak_out_

std::vector<int> EcalFenixStrip::odd_peak_out_
private

◆ oddAmplitude_filter_

EcalFenixOddAmplitudeFilter* EcalFenixStrip::oddAmplitude_filter_
private

Definition at line 53 of file EcalFenixStrip.h.

Referenced by EcalFenixStrip(), getOddFilter(), and ~EcalFenixStrip().

◆ peak_finder_

EcalFenixPeakFinder* EcalFenixStrip::peak_finder_
private

Definition at line 55 of file EcalFenixStrip.h.

Referenced by EcalFenixStrip(), getPeakFinder(), and ~EcalFenixStrip().

◆ theMapping_

const EcalElectronicsMapping* EcalFenixStrip::theMapping_
private

Definition at line 43 of file EcalFenixStrip.h.

Referenced by process().

◆ tpInfoPrintout_

bool EcalFenixStrip::tpInfoPrintout_
private

Definition at line 48 of file EcalFenixStrip.h.