CMS 3D CMS Logo

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

A container class for generic run and event-related info, information required by the commissioning analyses (such as hardware parameters), event quality flags, error conditions, etc... More...

#include <SiStripFedKey.h>

Inheritance diagram for SiStripFedKey:
SiStripKey

Public Member Functions

const uint16_t & feChan () const
 
const uint16_t & fedApv () const
 
uint16_t fedChannel () const
 
const uint16_t & fedId () const
 
const uint16_t & feUnit () const
 
bool isConsistent (const SiStripKey &) const override
 
bool isEqual (const SiStripKey &) const override
 
bool isInvalid () const override
 
bool isInvalid (const sistrip::Granularity &) const override
 
bool isValid () const override
 
bool isValid (const sistrip::Granularity &) const override
 
SiStripFedKeyoperator= (const SiStripFedKey &)=default
 
void print (std::stringstream &ss) const override
 
 SiStripFedKey (const uint16_t &fed_id, const uint16_t &fe_unit=0, const uint16_t &fe_chan=0, const uint16_t &fed_apv=0)
 
 SiStripFedKey (const uint32_t &fed_key)
 
 SiStripFedKey (const std::string &directory_path)
 
 SiStripFedKey (const SiStripFedKey &)
 
 SiStripFedKey (const SiStripKey &)
 
 SiStripFedKey ()
 
void terse (std::stringstream &ss) const override
 
- Public Member Functions inherited from SiStripKey
const uint16_t & channel () const
 
const sistrip::Granularitygranularity () const
 
const uint32_t & key () const
 
const SiStripKeyoperator= (const SiStripKey &)
 
const std::string & path () const
 
 SiStripKey (const uint32_t &key)
 
 SiStripKey (const std::string &directory_path)
 
 SiStripKey (const SiStripKey &)
 
 SiStripKey ()
 
virtual ~SiStripKey ()
 

Static Public Member Functions

static uint16_t feChan (const uint16_t &fed_ch)
 
static uint16_t fedCh (const uint16_t &fe_unit, const uint16_t &fe_chan)
 
static uint32_t fedIndex (const uint16_t &fed_id, const uint16_t &fed_ch)
 
static uint16_t feUnit (const uint16_t &fed_ch)
 

Private Member Functions

void initFromKey () override
 
void initFromPath () override
 
void initFromValue () override
 
void initGranularity () override
 

Private Attributes

uint16_t feChan_
 
uint16_t fedApv_
 
uint16_t fedId_
 
uint16_t feUnit_
 

Static Private Attributes

static const uint16_t feChanMask_ = 0x00F
 
static const uint16_t feChanOffset_ = 2
 
static const uint16_t fedApvMask_ = 0x003
 
static const uint16_t fedApvOffset_ = 0
 
static const uint16_t fedCrateMask_ = 0x03F
 
static const uint16_t fedCrateOffset_ = 24
 
static const uint16_t fedIdMask_ = 0x1FF
 
static const uint16_t fedIdOffset_ = 10
 
static const uint16_t fedSlotMask_ = 0x01F
 
static const uint16_t fedSlotOffset_ = 19
 
static const uint16_t feUnitMask_ = 0x00F
 
static const uint16_t feUnitOffset_ = 6
 

Additional Inherited Members

- Protected Member Functions inherited from SiStripKey
void channel (const uint16_t &)
 
void granularity (const sistrip::Granularity &)
 
void key (const uint32_t &)
 
void path (const std::string &)
 

Detailed Description

A container class for generic run and event-related info, information required by the commissioning analyses (such as hardware parameters), event quality flags, error conditions, etc...

Utility class that identifies a position within the strip tracker readout structure, down to the level of an APV25 chip.

Author
R.Bainbridge
R.Bainbridge

The class allows to encode the position within a 32-bit "key" and, conversely, unpack a 32-bit key to provide the position.

The class provides the following member data:

Member data (integer in type only) with values of 0xFFFF signifies "invalid" (ie, FedId = 0xFFFF means "invalid FED id"). Data with null values signifies "all" (ie, FedId = 0 means "all FEDs").

The class generates a "directory path" string according to the member data. This can be used to organise histograms / other data types when using DQM / root. Conversely, the member data can also be built using the directory path when provided as a constructor argument.

The class also provides the "granularity" to which the FED key is unambiguous (ie, not "invalid" or "null") in defining a position within the readout system.

In addition, the class provides static methods that allow to convert between the two "FED channel" numbering schema in place. The class member data hold values that respect the "external" numbering scheme used by the optical links group. Front-End units are numbered from 1 to 8, bottom to top. Channels with the FE units are numbered 1 to 12, bottom to top. The "internal" numbering scheme is used by the DAQ software, which numbers FED channels consecutively from 0 to 95, top to bottom.

Definition at line 56 of file SiStripFedKey.h.

Constructor & Destructor Documentation

◆ SiStripFedKey() [1/6]

SiStripFedKey::SiStripFedKey ( const uint16_t &  fed_id,
const uint16_t &  fe_unit = 0,
const uint16_t &  fe_chan = 0,
const uint16_t &  fed_apv = 0 
)

Constructor using FED id, FE unit, FE channel, and APV.

Definition at line 12 of file SiStripFedKey.cc.

References initFromKey(), initFromPath(), initFromValue(), and initGranularity().

16  : SiStripKey(), fedId_(fed_id), feUnit_(fe_unit), feChan_(fe_chan), fedApv_(fed_apv) {
17  // order is important!
18  initFromValue();
19  initFromKey();
20  initFromPath();
22 }
void initFromValue() override
void initFromPath() override
void initFromKey() override
uint16_t fedApv_
uint16_t feChan_
uint16_t fedId_
uint16_t feUnit_
void initGranularity() override

◆ SiStripFedKey() [2/6]

SiStripFedKey::SiStripFedKey ( const uint32_t &  fed_key)

Constructor using 32-bit "FED key".

Definition at line 26 of file SiStripFedKey.cc.

References initFromKey(), initFromPath(), initFromValue(), and initGranularity().

27  : SiStripKey(fed_key),
32  // order is important!
33  initFromKey();
34  initFromValue();
35  initFromPath();
37 }
void initFromValue() override
void initFromPath() override
void initFromKey() override
uint16_t fedApv_
uint16_t feChan_
uint16_t fedId_
uint16_t feUnit_
void initGranularity() override
static const uint16_t invalid_
Definition: Constants.h:16

◆ SiStripFedKey() [3/6]

SiStripFedKey::SiStripFedKey ( const std::string &  directory_path)

Constructor using directory path.

Definition at line 41 of file SiStripFedKey.cc.

References initFromKey(), initFromPath(), initFromValue(), and initGranularity().

42  : SiStripKey(path),
47  // order is important!
48  initFromPath();
49  initFromValue();
50  initFromKey();
52 }
void initFromValue() override
void initFromPath() override
const std::string & path() const
Definition: SiStripKey.h:121
void initFromKey() override
uint16_t fedApv_
uint16_t feChan_
uint16_t fedId_
uint16_t feUnit_
void initGranularity() override
static const uint16_t invalid_
Definition: Constants.h:16

◆ SiStripFedKey() [4/6]

SiStripFedKey::SiStripFedKey ( const SiStripFedKey input)

Copy constructor.

Definition at line 56 of file SiStripFedKey.cc.

References SiStripKey::granularity(), input, SiStripKey::key(), and SiStripKey::path().

57  : SiStripKey(), fedId_(input.fedId()), feUnit_(input.feUnit()), feChan_(input.feChan()), fedApv_(input.fedApv()) {
58  key(input.key());
59  path(input.path());
60  granularity(input.granularity());
61 }
const std::string & path() const
Definition: SiStripKey.h:121
static std::string const input
Definition: EdmProvDump.cc:50
uint16_t fedApv_
const uint32_t & key() const
Definition: SiStripKey.h:120
uint16_t feChan_
uint16_t fedId_
uint16_t feUnit_
const sistrip::Granularity & granularity() const
Definition: SiStripKey.h:122

◆ SiStripFedKey() [5/6]

SiStripFedKey::SiStripFedKey ( const SiStripKey input)

Copy constructor using base class.

Definition at line 65 of file SiStripFedKey.cc.

References feChan(), feChan_, fedApv(), fedApv_, fedId(), fedId_, feUnit(), feUnit_, SiStripKey::granularity(), input, SiStripKey::key(), and SiStripKey::path().

66  : SiStripKey(),
71  const SiStripFedKey& fed_key = dynamic_cast<const SiStripFedKey&>(input);
72  key(fed_key.key());
73  path(fed_key.path());
74  granularity(fed_key.granularity());
75  fedId_ = fed_key.fedId();
76  feUnit_ = fed_key.feUnit();
77  feChan_ = fed_key.feChan();
78  fedApv_ = fed_key.fedApv();
79 }
const uint16_t & fedApv() const
const uint16_t & feChan() const
const uint16_t & feUnit() const
A container class for generic run and event-related info, information required by the commissioning a...
Definition: SiStripFedKey.h:56
const std::string & path() const
Definition: SiStripKey.h:121
static std::string const input
Definition: EdmProvDump.cc:50
uint16_t fedApv_
const uint32_t & key() const
Definition: SiStripKey.h:120
uint16_t feChan_
uint16_t fedId_
uint16_t feUnit_
const uint16_t & fedId() const
static const uint16_t invalid_
Definition: Constants.h:16
const sistrip::Granularity & granularity() const
Definition: SiStripKey.h:122

◆ SiStripFedKey() [6/6]

SiStripFedKey::SiStripFedKey ( )

Default constructor

Definition at line 83 of file SiStripFedKey.cc.

84  : SiStripKey(),
89  ;
90 }
uint16_t fedApv_
uint16_t feChan_
uint16_t fedId_
uint16_t feUnit_
static const uint16_t invalid_
Definition: Constants.h:16

Member Function Documentation

◆ feChan() [1/2]

const uint16_t & SiStripFedKey::feChan ( ) const
inline

◆ feChan() [2/2]

uint16_t SiStripFedKey::feChan ( const uint16_t &  fed_ch)
static

Returns Front-End channel ("external" numbering scheme) for given FED channel ("internal" numbering scheme).

Definition at line 114 of file SiStripFedKey.cc.

References sistrip::FEDCH_PER_FED, and sistrip::invalid_.

114  {
115  if (fed_ch < sistrip::FEDCH_PER_FED) {
116  return ((95 - fed_ch) % 12 + 1);
117  }
118  return sistrip::invalid_;
119 }
static const uint16_t invalid_
Definition: Constants.h:16
static const uint16_t FEDCH_PER_FED

◆ fedApv()

const uint16_t & SiStripFedKey::fedApv ( ) const
inline

Returns APV within FED channel.

Definition at line 194 of file SiStripFedKey.h.

References fedApv_.

Referenced by SummaryGeneratorReadoutView::fill(), print(), SiStripFedKey(), and terse().

194 { return fedApv_; }
uint16_t fedApv_

◆ fedCh()

uint16_t SiStripFedKey::fedCh ( const uint16_t &  fe_unit,
const uint16_t &  fe_chan 
)
static

Returns FED channel ("internal" numbering scheme) for given Front-End unit and channel ("external" numbering scheme).

Definition at line 94 of file SiStripFedKey.cc.

References sistrip::FEDCH_PER_FEUNIT, sistrip::FEUNITS_PER_FED, and sistrip::invalid_.

Referenced by fedChannel(), and SiStripCondObjBuilderFromDb::setValuesApvTiming().

94  {
95  if (fe_unit <= sistrip::FEUNITS_PER_FED && fe_chan <= sistrip::FEDCH_PER_FEUNIT) {
96  if (fe_unit != 0 && fe_chan != 0) {
97  return (95 - (12 * (fe_unit - 1) + (fe_chan - 1)));
98  }
99  }
100  return sistrip::invalid_;
101 }
static const uint16_t FEUNITS_PER_FED
static const uint16_t FEDCH_PER_FEUNIT
static const uint16_t invalid_
Definition: Constants.h:16

◆ fedChannel()

uint16_t SiStripFedKey::fedChannel ( ) const
inline

Returns FED channel (according to "internal" numbering).

Definition at line 195 of file SiStripFedKey.h.

References feChan_, fedCh(), and feUnit_.

Referenced by CommissioningHistosUsingDb::addDcuDetIds(), FastFedCablingAnalysis::header(), CommissioningAnalysis::header(), print(), DaqScopeModeHistosUsingDb::update(), PedsFullNoiseHistosUsingDb::update(), PedestalsHistosUsingDb::update(), and ApvTimingHistosUsingDb::update().

195 { return fedCh(feUnit_, feChan_); }
uint16_t feChan_
uint16_t feUnit_
static uint16_t fedCh(const uint16_t &fe_unit, const uint16_t &fe_chan)

◆ fedId()

const uint16_t & SiStripFedKey::fedId ( ) const
inline

◆ fedIndex()

uint32_t SiStripFedKey::fedIndex ( const uint16_t &  fed_id,
const uint16_t &  fed_ch 
)
static

Returns number that encodes FED id and FED channel, which can be used to index vectors containing event and non-event data. Users should check if returned value is valid for indexing vector!

Definition at line 123 of file SiStripFedKey.cc.

References sistrip::FED_ID_MAX, sistrip::FEDCH_PER_FED, and sistrip::invalid32_.

Referenced by SiStripSpyDisplayModule::analyze().

123  {
124  if (fed_id < sistrip::FED_ID_MIN || fed_id > sistrip::FED_ID_MAX || fed_ch >= sistrip::FEDCH_PER_FED) {
125  return sistrip::invalid32_;
126  }
127  return (fed_id * sistrip::FEDCH_PER_FED + fed_ch);
128 }
static const uint32_t invalid32_
Definition: Constants.h:15
static const uint16_t FEDCH_PER_FED
static const uint16_t FED_ID_MAX

◆ feUnit() [1/2]

const uint16_t & SiStripFedKey::feUnit ( ) const
inline

◆ feUnit() [2/2]

uint16_t SiStripFedKey::feUnit ( const uint16_t &  fed_ch)
static

Returns Front-End unit ("external" numbering scheme) for given FED channel ("internal" numbering scheme).

Definition at line 105 of file SiStripFedKey.cc.

References sistrip::FEDCH_PER_FED, and sistrip::invalid_.

105  {
106  if (fed_ch < sistrip::FEDCH_PER_FED) {
107  return ((95 - fed_ch) / 12 + 1);
108  }
109  return sistrip::invalid_;
110 }
static const uint16_t invalid_
Definition: Constants.h:16
static const uint16_t FEDCH_PER_FED

◆ initFromKey()

void SiStripFedKey::initFromKey ( )
overrideprivatevirtual

Reimplemented from SiStripKey.

Definition at line 249 of file SiStripFedKey.cc.

References sistrip::APVS_PER_FEDCH, feChan_, feChanMask_, feChanOffset_, sistrip::FED_ID_MAX, sistrip::FED_ID_MIN, fedApv_, fedApvMask_, fedApvOffset_, sistrip::FEDCH_PER_FEUNIT, fedId_, fedIdMask_, fedIdOffset_, feUnit_, feUnitMask_, feUnitOffset_, sistrip::FEUNITS_PER_FED, sistrip::invalid32_, sistrip::invalid_, and SiStripKey::key().

Referenced by SiStripFedKey().

249  {
250  if (key() == sistrip::invalid32_) {
251  // ---------- Set FedKey based on member data ----------
252 
253  // Initialise to null value
254  key(0);
255 
256  // Extract FED id
258  key(key() | (fedId_ << fedIdOffset_));
259  } else if (fedId_ == 0) {
260  key(key() | (fedId_ << fedIdOffset_));
261  } else {
262  key(key() | (fedIdMask_ << fedIdOffset_));
263  }
264 
265  // Extract FE unit
266  if (feUnit_ >= 1 && feUnit_ <= sistrip::FEUNITS_PER_FED) {
267  key(key() | (feUnit_ << feUnitOffset_));
268  } else if (feUnit_ == 0) {
269  key(key() | (feUnit_ << feUnitOffset_));
270  } else {
271  key(key() | (feUnitMask_ << feUnitOffset_));
272  }
273 
274  // Extract FE chan
275  if (feChan_ >= 1 && feChan_ <= sistrip::FEDCH_PER_FEUNIT) {
276  key(key() | (feChan_ << feChanOffset_));
277  } else if (feChan_ == 0) {
278  key(key() | (feChan_ << feChanOffset_));
279  } else {
280  key(key() | (feChanMask_ << feChanOffset_));
281  }
282 
283  // Extract FED APV
284  if (fedApv_ >= 1 && fedApv_ <= sistrip::APVS_PER_FEDCH) {
285  key(key() | (fedApv_ << fedApvOffset_));
286  } else if (fedApv_ == 0) {
287  key(key() | (fedApv_ << fedApvOffset_));
288  } else {
289  key(key() | (fedApvMask_ << fedApvOffset_));
290  }
291 
292  // Set invalid key if necessary
296  }
297 
298  } else {
299  // ---------- Set member data based on FED key ----------
300 
301  fedId_ = (key() >> fedIdOffset_) & fedIdMask_;
305 
306  if (fedId_ == fedIdMask_) {
308  }
309  if (feUnit_ == feUnitMask_) {
311  }
312  if (feChan_ == feChanMask_) {
314  }
315  if (fedApv_ == fedApvMask_) {
317  }
318  }
319 }
static const uint16_t feChanMask_
static const uint16_t FED_ID_MIN
static const uint16_t feUnitOffset_
static const uint32_t invalid32_
Definition: Constants.h:15
uint16_t fedApv_
static const uint16_t FEUNITS_PER_FED
const uint32_t & key() const
Definition: SiStripKey.h:120
static const uint16_t feUnitMask_
uint16_t feChan_
uint16_t fedId_
uint16_t feUnit_
static const uint16_t fedIdOffset_
static const uint16_t feChanOffset_
static const uint16_t FEDCH_PER_FEUNIT
static const uint16_t invalid_
Definition: Constants.h:16
static const uint16_t fedApvMask_
static const uint16_t FED_ID_MAX
static const uint16_t fedIdMask_
static const uint16_t APVS_PER_FEDCH
static const uint16_t fedApvOffset_

◆ initFromPath()

void SiStripFedKey::initFromPath ( )
overrideprivatevirtual

Reimplemented from SiStripKey.

Definition at line 323 of file SiStripFedKey.cc.

References DeadROC_duringRun::dir, sistrip::dir_, sistrip::feChan_, feChan_, sistrip::fedApv_, fedApv_, fedId_, sistrip::feDriver_, sistrip::feUnit_, feUnit_, spr::find(), GetRecoTauVFromDQM_MC_cff::next, sistrip::null_, SiStripKey::path(), sistrip::readoutView_, sistrip::root_, contentValuesCheck::ss, AlCaHLTBitMon_QueryRunRegistry::string, and groupFilesInBlocks::temp.

Referenced by SiStripFedKey().

323  {
324  if (path() == sistrip::null_) {
325  // ---------- Set directory path based on member data ----------
326 
327  std::stringstream dir;
328 
330 
331  // Add FED id
332  if (fedId_) {
334 
335  // Add FE unit
336  if (feUnit_) {
338 
339  // Add FE channel
340  if (feChan_) {
342 
343  // Add FED APV
344  if (fedApv_) {
346  }
347  }
348  }
349  }
350 
351  std::string temp(dir.str());
352  path(temp);
353 
354  } else {
355  // ---------- Set member data based on directory path ----------
356 
357  fedId_ = 0;
358  feUnit_ = 0;
359  feChan_ = 0;
360  fedApv_ = 0;
361 
362  // Check if root is found
363  if (path().find(sistrip::root_) == std::string::npos) {
364  std::string temp = path();
366  }
367 
368  size_t curr = 0; // current string position
369  size_t next = 0; // next string position
370  next = path().find(sistrip::readoutView_, curr);
371 
372  // Extract view
373  curr = next;
374  if (curr != std::string::npos) {
375  next = path().find(sistrip::feDriver_, curr);
376  std::string readout_view(
377  path(), curr + (sizeof(sistrip::readoutView_) - 1), (next - (sizeof(sistrip::dir_) - 1)) - curr);
378 
379  // Extract FED id
380  curr = next;
381  if (curr != std::string::npos) {
382  next = path().find(sistrip::feUnit_, curr);
383  std::string fed_id(
384  path(), curr + (sizeof(sistrip::feDriver_) - 1), (next - (sizeof(sistrip::dir_) - 1)) - curr);
385  fedId_ = atoi(fed_id.c_str());
386 
387  // Extract FE unit
388  curr = next;
389  if (curr != std::string::npos) {
390  next = path().find(sistrip::feChan_, curr);
391  std::string fe_unit(path(), curr + (sizeof(sistrip::feUnit_) - 1), next - curr);
392  feUnit_ = atoi(fe_unit.c_str());
393 
394  // Extract FE channel
395  curr = next;
396  if (curr != std::string::npos) {
397  next = path().find(sistrip::fedApv_, curr);
398  std::string fe_chan(path(), curr + (sizeof(sistrip::feChan_) - 1), next - curr);
399  feChan_ = atoi(fe_chan.c_str());
400 
401  // Extract FED APV
402  curr = next;
403  if (curr != std::string::npos) {
404  next = std::string::npos;
405  std::string fed_apv(path(), curr + (sizeof(sistrip::fedApv_) - 1), next - curr);
406  fedApv_ = atoi(fed_apv.c_str());
407  }
408  }
409  }
410  }
411  } else {
412  std::stringstream ss;
414  //ss << sistrip::root_ << sistrip::dir_
415  //<< sistrip::unknownView_ << sistrip::dir_;
416  std::string temp(ss.str());
417  path(temp);
418  }
419  }
420 }
static const char feDriver_[]
static const char dir_[]
const std::string & path() const
Definition: SiStripKey.h:121
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
uint16_t fedApv_
static const char fedApv_[]
uint16_t feChan_
uint16_t fedId_
uint16_t feUnit_
static const char feChan_[]
static const char root_[]
static const char feUnit_[]
static const char readoutView_[]
static const char null_[]
Definition: Constants.h:22

◆ initFromValue()

void SiStripFedKey::initFromValue ( )
overrideprivatevirtual

Reimplemented from SiStripKey.

Definition at line 229 of file SiStripFedKey.cc.

References sistrip::APVS_PER_FEDCH, feChan_, sistrip::FED_ID_MAX, sistrip::FED_ID_MIN, fedApv_, sistrip::FEDCH_PER_FEUNIT, fedId_, feUnit_, sistrip::FEUNITS_PER_FED, and sistrip::invalid_.

Referenced by SiStripFedKey().

229  {
230  if (not((fedId_ >= sistrip::FED_ID_MIN && fedId_ <= sistrip::FED_ID_MAX) || (fedId_ == 0))) {
232  }
233 
236  }
237 
240  }
241 
244  }
245 }
static const uint16_t FED_ID_MIN
uint16_t fedApv_
static const uint16_t FEUNITS_PER_FED
uint16_t feChan_
uint16_t fedId_
uint16_t feUnit_
static const uint16_t FEDCH_PER_FEUNIT
static const uint16_t invalid_
Definition: Constants.h:16
static const uint16_t FED_ID_MAX
static const uint16_t APVS_PER_FEDCH

◆ initGranularity()

void SiStripFedKey::initGranularity ( )
overrideprivatevirtual

Reimplemented from SiStripKey.

Definition at line 424 of file SiStripFedKey.cc.

References SiStripKey::channel(), sistrip::FE_CHAN, sistrip::FE_DRIVER, sistrip::FE_UNIT, feChan_, sistrip::FED_APV, sistrip::FED_SYSTEM, fedApv_, fedId_, feUnit_, SiStripKey::granularity(), sistrip::invalid_, and sistrip::UNKNOWN_GRAN.

Referenced by SiStripFedKey().

424  {
426  channel(0);
427  if (fedId_ && fedId_ != sistrip::invalid_) {
429  channel(fedId_);
430  if (feUnit_ && feUnit_ != sistrip::invalid_) {
432  channel(feUnit_);
433  if (feChan_ && feChan_ != sistrip::invalid_) {
435  channel(feChan_);
436  if (fedApv_ && fedApv_ != sistrip::invalid_) {
438  channel(fedApv_);
439  } else if (fedApv_ == sistrip::invalid_) {
442  }
443  } else if (feChan_ == sistrip::invalid_) {
446  }
447  } else if (feUnit_ == sistrip::invalid_) {
450  }
451  } else if (fedId_ == sistrip::invalid_) {
454  }
455 }
const uint16_t & channel() const
Definition: SiStripKey.h:123
uint16_t fedApv_
uint16_t feChan_
uint16_t fedId_
uint16_t feUnit_
static const uint16_t invalid_
Definition: Constants.h:16
const sistrip::Granularity & granularity() const
Definition: SiStripKey.h:122

◆ isConsistent()

bool SiStripFedKey::isConsistent ( const SiStripKey key) const
overridevirtual

"Consistent" means identical and/or null (ie, "all") data.

Reimplemented from SiStripKey.

Definition at line 143 of file SiStripFedKey.cc.

References feChan_, fedApv_, fedId_, feUnit_, input, isEqual(), and SiStripKey::key().

143  {
144  const SiStripFedKey& input = dynamic_cast<const SiStripFedKey&>(key);
145  if (isEqual(input)) {
146  return true;
147  } else if ((fedId_ == 0 || input.fedId() == 0) && (feUnit_ == 0 || input.feUnit() == 0) &&
148  (feChan_ == 0 || input.feChan() == 0) && (fedApv_ == 0 || input.fedApv() == 0)) {
149  return true;
150  } else {
151  return false;
152  }
153 }
A container class for generic run and event-related info, information required by the commissioning a...
Definition: SiStripFedKey.h:56
static std::string const input
Definition: EdmProvDump.cc:50
uint16_t fedApv_
const uint32_t & key() const
Definition: SiStripKey.h:120
bool isEqual(const SiStripKey &) const override
uint16_t feChan_
uint16_t fedId_
uint16_t feUnit_

◆ isEqual()

bool SiStripFedKey::isEqual ( const SiStripKey key) const
overridevirtual

Identifies key objects with identical member data.

Reimplemented from SiStripKey.

Definition at line 132 of file SiStripFedKey.cc.

References feChan_, fedApv_, fedId_, feUnit_, input, and SiStripKey::key().

Referenced by isConsistent().

132  {
133  const SiStripFedKey& input = dynamic_cast<const SiStripFedKey&>(key);
134  if (fedId_ == input.fedId() && feUnit_ == input.feUnit() && feChan_ == input.feChan() && fedApv_ == input.fedApv()) {
135  return true;
136  } else {
137  return false;
138  }
139 }
A container class for generic run and event-related info, information required by the commissioning a...
Definition: SiStripFedKey.h:56
static std::string const input
Definition: EdmProvDump.cc:50
uint16_t fedApv_
const uint32_t & key() const
Definition: SiStripKey.h:120
uint16_t feChan_
uint16_t fedId_
uint16_t feUnit_

◆ isInvalid() [1/2]

bool SiStripFedKey::isInvalid ( ) const
overridevirtual

Identifies all member data as being invalid.

Reimplemented from SiStripKey.

Definition at line 193 of file SiStripFedKey.cc.

References sistrip::FED_APV.

193 { return isInvalid(sistrip::FED_APV); }
bool isInvalid() const override

◆ isInvalid() [2/2]

bool SiStripFedKey::isInvalid ( const sistrip::Granularity gran) const
overridevirtual

All member data to level of "Granularity" are invalid. If sistrip::Granularity is "undefined", returns true.

Reimplemented from SiStripKey.

Definition at line 197 of file SiStripFedKey.cc.

References sistrip::FE_CHAN, sistrip::FE_DRIVER, sistrip::FE_UNIT, feChan_, sistrip::FED_APV, sistrip::FED_SYSTEM, fedApv_, fedId_, feUnit_, sistrip::invalid_, sistrip::UNDEFINED_GRAN, and sistrip::UNKNOWN_GRAN.

197  {
198  if (gran == sistrip::FED_SYSTEM) {
199  return false;
200  } else if (gran == sistrip::UNDEFINED_GRAN || gran == sistrip::UNKNOWN_GRAN) {
201  return false;
202  }
203 
204  if (fedId_ == sistrip::invalid_) {
205  if (gran == sistrip::FE_DRIVER) {
206  return true;
207  }
208  if (feUnit_ == sistrip::invalid_) {
209  if (gran == sistrip::FE_UNIT) {
210  return true;
211  }
212  if (feChan_ == sistrip::invalid_) {
213  if (gran == sistrip::FE_CHAN) {
214  return true;
215  }
216  if (fedApv_ == sistrip::invalid_) {
217  if (gran == sistrip::FED_APV) {
218  return true;
219  }
220  }
221  }
222  }
223  }
224  return false;
225 }
uint16_t fedApv_
uint16_t feChan_
uint16_t fedId_
uint16_t feUnit_
static const uint16_t invalid_
Definition: Constants.h:16

◆ isValid() [1/2]

bool SiStripFedKey::isValid ( void  ) const
overridevirtual

◆ isValid() [2/2]

bool SiStripFedKey::isValid ( const sistrip::Granularity gran) const
overridevirtual

All member data to level of "Granularity" are valid. If sistrip::Granularity is "undefined", returns false.

Reimplemented from SiStripKey.

Definition at line 161 of file SiStripFedKey.cc.

References sistrip::FE_CHAN, sistrip::FE_DRIVER, sistrip::FE_UNIT, feChan_, sistrip::FED_APV, sistrip::FED_SYSTEM, fedApv_, fedId_, feUnit_, sistrip::invalid_, sistrip::UNDEFINED_GRAN, and sistrip::UNKNOWN_GRAN.

Referenced by ntupleDataFormat._Object::_checkIsValid(), and core.AutoHandle.AutoHandle::ReallyLoad().

161  {
162  if (gran == sistrip::FED_SYSTEM) {
163  return true;
164  } else if (gran == sistrip::UNDEFINED_GRAN || gran == sistrip::UNKNOWN_GRAN) {
165  return false;
166  }
167 
168  if (fedId_ != sistrip::invalid_) {
169  if (gran == sistrip::FE_DRIVER) {
170  return true;
171  }
172  if (feUnit_ != sistrip::invalid_) {
173  if (gran == sistrip::FE_UNIT) {
174  return true;
175  }
176  if (feChan_ != sistrip::invalid_) {
177  if (gran == sistrip::FE_CHAN) {
178  return true;
179  }
180  if (fedApv_ != sistrip::invalid_) {
181  if (gran == sistrip::FED_APV) {
182  return true;
183  }
184  }
185  }
186  }
187  }
188  return false;
189 }
uint16_t fedApv_
uint16_t feChan_
uint16_t fedId_
uint16_t feUnit_
static const uint16_t invalid_
Definition: Constants.h:16

◆ operator=()

SiStripFedKey& SiStripFedKey::operator= ( const SiStripFedKey )
default

Assignment operator

◆ print()

void SiStripFedKey::print ( std::stringstream &  ss) const
overridevirtual

Print member data of the key

Reimplemented from SiStripKey.

Definition at line 482 of file SiStripFedKey.cc.

References SiStripKey::channel(), TauDecayModes::dec, feChan(), fedApv(), fedChannel(), fedId(), feUnit(), SiStripEnumsAndStrings::granularity(), SiStripKey::granularity(), isValid(), SiStripKey::key(), SiStripKey::path(), and contentValuesCheck::ss.

Referenced by CommissioningHistograms::printHistosMap().

482  {
483  ss << " [SiStripFedKey::print]" << std::endl
484  << std::hex << " FED key : 0x" << std::setfill('0') << std::setw(8) << key() << std::endl
485  << std::setfill(' ') << std::dec << " FED id : " << fedId() << std::endl
486  << " Front-End unit : " << feUnit() << std::endl
487  << " Front-End chan : " << feChan() << std::endl
488  << " (internal chan) : "
489  << "(" << fedChannel() << ")" << std::endl
490  << " FED APV : " << fedApv() << std::endl
491  << " Directory : " << path() << std::endl
492  << " Granularity : " << SiStripEnumsAndStrings::granularity(granularity()) << std::endl
493  << " Channel : " << channel() << std::endl
494  << " isValid : " << isValid();
495 }
const uint16_t & channel() const
Definition: SiStripKey.h:123
const uint16_t & fedApv() const
const uint16_t & feChan() const
const uint16_t & feUnit() const
const std::string & path() const
Definition: SiStripKey.h:121
static std::string granularity(const sistrip::Granularity &)
uint16_t fedChannel() const
const uint32_t & key() const
Definition: SiStripKey.h:120
const uint16_t & fedId() const
const sistrip::Granularity & granularity() const
Definition: SiStripKey.h:122
bool isValid() const override

◆ terse()

void SiStripFedKey::terse ( std::stringstream &  ss) const
overridevirtual

A terse summary of the key

Reimplemented from SiStripKey.

Definition at line 459 of file SiStripFedKey.cc.

References feChan(), fedApv(), fedId(), feUnit(), and contentValuesCheck::ss.

459  {
460  ss << "FED:crate/slot/id/unit/chan/apv= "
461  << "-"
462  << "/"
463  << "-"
464  << "/" << fedId() << "/" << feUnit() << "/" << feChan() << "/" << fedApv();
465  // ss << " FedKey"
466  // //<<"=0x"
467  // //<< std::hex
468  // //<< std::setfill('0') << std::setw(8) << key() << std::setfill(' ')
469  // //<< std::dec
470  // //<< ", " << ( isValid() ? "Valid" : "Invalid" )
471  // //<< ", FedCrate=" << fedCrate()
472  // //<< ", FedSlot=" << fedSlot()
473  // << ", FedId=" << fedId()
474  // << ", FeUnit=" << feUnit()
475  // << ", FeChan=" << feChan()
476  // //<< ", FedChannel=" << fedChannel()
477  // << ", FedApv=" << fedApv();
478 }
const uint16_t & fedApv() const
const uint16_t & feChan() const
const uint16_t & feUnit() const
const uint16_t & fedId() const

Member Data Documentation

◆ feChan_

uint16_t SiStripFedKey::feChan_
private

◆ feChanMask_

const uint16_t SiStripFedKey::feChanMask_ = 0x00F
staticprivate

Definition at line 185 of file SiStripFedKey.h.

Referenced by initFromKey().

◆ feChanOffset_

const uint16_t SiStripFedKey::feChanOffset_ = 2
staticprivate

Definition at line 177 of file SiStripFedKey.h.

Referenced by initFromKey().

◆ fedApv_

uint16_t SiStripFedKey::fedApv_
private

◆ fedApvMask_

const uint16_t SiStripFedKey::fedApvMask_ = 0x003
staticprivate

Definition at line 186 of file SiStripFedKey.h.

Referenced by initFromKey().

◆ fedApvOffset_

const uint16_t SiStripFedKey::fedApvOffset_ = 0
staticprivate

Definition at line 178 of file SiStripFedKey.h.

Referenced by initFromKey().

◆ fedCrateMask_

const uint16_t SiStripFedKey::fedCrateMask_ = 0x03F
staticprivate

Definition at line 181 of file SiStripFedKey.h.

◆ fedCrateOffset_

const uint16_t SiStripFedKey::fedCrateOffset_ = 24
staticprivate

Definition at line 173 of file SiStripFedKey.h.

◆ fedId_

uint16_t SiStripFedKey::fedId_
private

FED id [0,50-489,invalid].

Definition at line 161 of file SiStripFedKey.h.

Referenced by fedId(), initFromKey(), initFromPath(), initFromValue(), initGranularity(), isConsistent(), isEqual(), isInvalid(), isValid(), and SiStripFedKey().

◆ fedIdMask_

const uint16_t SiStripFedKey::fedIdMask_ = 0x1FF
staticprivate

Definition at line 183 of file SiStripFedKey.h.

Referenced by initFromKey().

◆ fedIdOffset_

const uint16_t SiStripFedKey::fedIdOffset_ = 10
staticprivate

Definition at line 175 of file SiStripFedKey.h.

Referenced by initFromKey().

◆ fedSlotMask_

const uint16_t SiStripFedKey::fedSlotMask_ = 0x01F
staticprivate

Definition at line 182 of file SiStripFedKey.h.

◆ fedSlotOffset_

const uint16_t SiStripFedKey::fedSlotOffset_ = 19
staticprivate

Definition at line 174 of file SiStripFedKey.h.

◆ feUnit_

uint16_t SiStripFedKey::feUnit_
private

◆ feUnitMask_

const uint16_t SiStripFedKey::feUnitMask_ = 0x00F
staticprivate

Definition at line 184 of file SiStripFedKey.h.

Referenced by initFromKey().

◆ feUnitOffset_

const uint16_t SiStripFedKey::feUnitOffset_ = 6
staticprivate

Definition at line 176 of file SiStripFedKey.h.

Referenced by initFromKey().