CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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
 
bool isEqual (const SiStripKey &) const
 
bool isInvalid () const
 
bool isInvalid (const sistrip::Granularity &) const
 
bool isValid () const
 
bool isValid (const sistrip::Granularity &) const
 
virtual void print (std::stringstream &ss) const
 
 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 ()
 
virtual void terse (std::stringstream &ss) const
 
- 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 ()
 
void initFromPath ()
 
void initFromValue ()
 
void initGranularity ()
 

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

15  :
16  SiStripKey(),
17  fedId_(fed_id),
18  feUnit_(fe_unit),
19  feChan_(fe_chan),
20  fedApv_(fed_apv)
21 {
22  // order is important!
23  initFromValue();
24  initFromKey();
25  initFromPath();
27 }
uint16_t fedApv_
uint16_t feChan_
void initFromValue()
uint16_t fedId_
uint16_t feUnit_
void initGranularity()
SiStripFedKey::SiStripFedKey ( const uint32_t &  fed_key)

Constructor using 32-bit "FED key".

Definition at line 31 of file SiStripFedKey.cc.

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

31  :
32  SiStripKey(fed_key),
37 {
38  // order is important!
39  initFromKey();
40  initFromValue();
41  initFromPath();
43 }
uint16_t fedApv_
uint16_t feChan_
void initFromValue()
uint16_t fedId_
uint16_t feUnit_
void initGranularity()
static const uint16_t invalid_
Definition: Constants.h:16
SiStripFedKey::SiStripFedKey ( const std::string &  directory_path)

Constructor using directory path.

Definition at line 47 of file SiStripFedKey.cc.

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

47  :
53 {
54  // order is important!
55  initFromPath();
56  initFromValue();
57  initFromKey();
59 }
uint16_t fedApv_
const std::string & path() const
Definition: SiStripKey.h:126
uint16_t feChan_
void initFromValue()
uint16_t fedId_
uint16_t feUnit_
void initGranularity()
static const uint16_t invalid_
Definition: Constants.h:16
SiStripFedKey::SiStripFedKey ( const SiStripFedKey input)

Copy constructor.

Definition at line 63 of file SiStripFedKey.cc.

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

63  :
64  SiStripKey(),
65  fedId_(input.fedId()),
66  feUnit_(input.feUnit()),
67  feChan_(input.feChan()),
68  fedApv_(input.fedApv())
69 {
70  key(input.key());
71  path(input.path());
72  granularity(input.granularity());
73 }
const uint32_t & key() const
Definition: SiStripKey.h:125
const sistrip::Granularity & granularity() const
Definition: SiStripKey.h:127
uint16_t fedApv_
const std::string & path() const
Definition: SiStripKey.h:126
uint16_t feChan_
uint16_t fedId_
uint16_t feUnit_
const uint16_t & fedApv() const
const uint16_t & feUnit() const
const uint16_t & feChan() const
const uint16_t & fedId() const
SiStripFedKey::SiStripFedKey ( const SiStripKey input)

Copy constructor using base class.

Definition at line 77 of file SiStripFedKey.cc.

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

77  :
78  SiStripKey(),
83 {
84  const SiStripFedKey& fed_key = dynamic_cast<const SiStripFedKey&>(input);
85  if ( (&fed_key) ) {
86  key(fed_key.key());
87  path(fed_key.path());
88  granularity(fed_key.granularity());
89  fedId_ = fed_key.fedId();
90  feUnit_ = fed_key.feUnit();
91  feChan_ = fed_key.feChan();
92  fedApv_ = fed_key.fedApv();
93  }
94 }
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:44
const uint32_t & key() const
Definition: SiStripKey.h:125
const sistrip::Granularity & granularity() const
Definition: SiStripKey.h:127
uint16_t fedApv_
const std::string & path() const
Definition: SiStripKey.h:126
uint16_t feChan_
uint16_t fedId_
uint16_t feUnit_
const uint16_t & fedApv() const
const uint16_t & feUnit() const
static const uint16_t invalid_
Definition: Constants.h:16
const uint16_t & feChan() const
const uint16_t & fedId() const
SiStripFedKey::SiStripFedKey ( )

Default constructor

Definition at line 98 of file SiStripFedKey.cc.

98  :
99  SiStripKey(),
104 {;}
uint16_t fedApv_
uint16_t feChan_
uint16_t fedId_
uint16_t feUnit_
static const uint16_t invalid_
Definition: Constants.h:16

Member Function Documentation

const uint16_t & SiStripFedKey::feChan ( ) const
inline
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 130 of file SiStripFedKey.cc.

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

130  {
131  if ( fed_ch < sistrip::FEDCH_PER_FED ) {
132  return ( (95-fed_ch)%12 + 1 );
133  }
134  return sistrip::invalid_;
135 }
static const uint16_t invalid_
Definition: Constants.h:16
static const uint16_t FEDCH_PER_FED
const uint16_t & SiStripFedKey::fedApv ( ) const
inline

Returns APV within FED channel.

Definition at line 197 of file SiStripFedKey.h.

References fedApv_.

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

197 { return fedApv_; }
uint16_t fedApv_
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 108 of file SiStripFedKey.cc.

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

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

109  {
110  if ( fe_unit <= sistrip::FEUNITS_PER_FED &&
111  fe_chan <= sistrip::FEDCH_PER_FEUNIT ) {
112  if ( fe_unit != 0 && fe_chan != 0 ) {
113  return ( 95 - ( 12 * (fe_unit-1) + (fe_chan-1) ) );
114  }
115  }
116  return sistrip::invalid_;
117 }
static const uint16_t FEUNITS_PER_FED
static const uint16_t FEDCH_PER_FEUNIT
static const uint16_t invalid_
Definition: Constants.h:16
uint16_t SiStripFedKey::fedChannel ( ) const
inline

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

Definition at line 198 of file SiStripFedKey.h.

References feChan_, fedCh(), and feUnit_.

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

198 { return fedCh( feUnit_, feChan_ ); }
uint16_t feChan_
uint16_t feUnit_
static uint16_t fedCh(const uint16_t &fe_unit, const uint16_t &fe_chan)
const uint16_t & SiStripFedKey::fedId ( ) const
inline
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 139 of file SiStripFedKey.cc.

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

Referenced by SiStripSpyDisplayModule::analyze(), sistrip::SpyUnpacker::createDigis(), and sistrip::SpyDigiConverter::mergeModuleChannels().

140  {
141  if ( fed_id < sistrip::FED_ID_MIN ||
142  fed_id > sistrip::FED_ID_MAX ||
143  fed_ch >= sistrip::FEDCH_PER_FED ) { return sistrip::invalid32_; }
144  return ( fed_id * sistrip::FEDCH_PER_FED + fed_ch );
145 }
static const uint16_t FED_ID_MIN
static const uint32_t invalid32_
Definition: Constants.h:15
static const uint16_t FEDCH_PER_FED
static const uint16_t FED_ID_MAX
const uint16_t & SiStripFedKey::feUnit ( ) const
inline
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 121 of file SiStripFedKey.cc.

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

121  {
122  if ( fed_ch < sistrip::FEDCH_PER_FED ) {
123  return ( (95-fed_ch)/12 + 1 );
124  }
125  return sistrip::invalid_;
126 }
static const uint16_t invalid_
Definition: Constants.h:16
static const uint16_t FEDCH_PER_FED
void SiStripFedKey::initFromKey ( )
privatevirtual

Reimplemented from SiStripKey.

Definition at line 256 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().

256  {
257 
258  if ( key() == sistrip::invalid32_ ) {
259 
260  // ---------- Set FedKey based on member data ----------
261 
262  // Initialise to null value
263  key(0);
264 
265  // Extract FED id
266  if ( fedId_ >= sistrip::FED_ID_MIN &&
268  key( key() | (fedId_<<fedIdOffset_) );
269  } else if ( fedId_ == 0 ) {
270  key( key() | (fedId_<<fedIdOffset_) );
271  } else {
272  key( key() | (fedIdMask_<<fedIdOffset_) );
273  }
274 
275  // Extract FE unit
276  if ( feUnit_ >= 1 &&
278  key( key() | (feUnit_<<feUnitOffset_) );
279  } else if ( feUnit_ == 0 ) {
280  key( key() | (feUnit_<<feUnitOffset_) );
281  } else {
282  key( key() | (feUnitMask_<<feUnitOffset_) );
283  }
284 
285  // Extract FE chan
286  if ( feChan_ >= 1 &&
288  key( key() | (feChan_<<feChanOffset_) );
289  } else if ( feChan_ == 0 ) {
290  key( key() | (feChan_<<feChanOffset_) );
291  } else {
292  key( key() | (feChanMask_<<feChanOffset_) );
293  }
294 
295  // Extract FED APV
296  if ( fedApv_ >= 1 &&
298  key( key() | (fedApv_<<fedApvOffset_) );
299  } else if ( fedApv_ == 0 ) {
300  key( key() | (fedApv_<<fedApvOffset_) );
301  } else {
302  key( key() | (fedApvMask_<<fedApvOffset_) );
303  }
304 
305  // Set invalid key if necessary
306  if ( fedId_ == sistrip::invalid_ &&
309  fedApv_ == sistrip::invalid_ ) {
311  }
312 
313  } else {
314 
315  // ---------- Set member data based on FED key ----------
316 
317  fedId_ = ( key()>>fedIdOffset_ ) & fedIdMask_;
321 
322  if ( fedId_ == fedIdMask_ ) { fedId_ = sistrip::invalid_; }
323  if ( feUnit_ == feUnitMask_ ) { feUnit_ = sistrip::invalid_; }
324  if ( feChan_ == feChanMask_ ) { feChan_ = sistrip::invalid_; }
325  if ( fedApv_ == fedApvMask_ ) { fedApv_ = sistrip::invalid_; }
326 
327  }
328 
329 }
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
const uint32_t & key() const
Definition: SiStripKey.h:125
uint16_t fedApv_
static const uint16_t FEUNITS_PER_FED
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_
void SiStripFedKey::initFromPath ( )
privatevirtual

Reimplemented from SiStripKey.

Definition at line 333 of file SiStripFedKey.cc.

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

333  {
334 
335  if ( path() == sistrip::null_ ) {
336 
337  // ---------- Set directory path based on member data ----------
338 
339  std::stringstream dir;
340 
341  dir << sistrip::root_ << sistrip::dir_
343 
344  // Add FED id
345  if ( fedId_ ) {
347 
348  // Add FE unit
349  if ( feUnit_ ) {
351 
352  // Add FE channel
353  if ( feChan_ ) {
355 
356  // Add FED APV
357  if ( fedApv_ ) {
359  }
360  }
361  }
362  }
363 
364  std::string temp( dir.str() );
365  path( temp );
366 
367  } else {
368 
369  // ---------- Set member data based on directory path ----------
370 
371  fedId_ = 0;
372  feUnit_ = 0;
373  feChan_ = 0;
374  fedApv_ = 0;
375 
376  // Check if root is found
377  if ( path().find( sistrip::root_ ) == std::string::npos ) {
378  std::string temp = path();
379  path( std::string(sistrip::root_) + sistrip::dir_ + temp );
380  }
381 
382  size_t curr = 0; // current string position
383  size_t next = 0; // next string position
384  next = path().find( sistrip::readoutView_, curr );
385 
386  // Extract view
387  curr = next;
388  if ( curr != std::string::npos ) {
389  next = path().find( sistrip::feDriver_, curr );
390  std::string readout_view( path(),
391  curr+(sizeof(sistrip::readoutView_) - 1),
392  (next-(sizeof(sistrip::dir_) - 1))-curr );
393 
394  // Extract FED id
395  curr = next;
396  if ( curr != std::string::npos ) {
397  next = path().find( sistrip::feUnit_, curr );
398  std::string fed_id( path(),
399  curr+(sizeof(sistrip::feDriver_) - 1),
400  (next-(sizeof(sistrip::dir_) - 1))-curr );
401  fedId_ = atoi( fed_id.c_str() );
402 
403  // Extract FE unit
404  curr = next;
405  if ( curr != std::string::npos ) {
406  next = path().find( sistrip::feChan_, curr );
407  std::string fe_unit( path(),
408  curr+(sizeof(sistrip::feUnit_) - 1),
409  next-curr );
410  feUnit_ = atoi( fe_unit.c_str() );
411 
412  // Extract FE channel
413  curr = next;
414  if ( curr != std::string::npos ) {
415  next = path().find( sistrip::fedApv_, curr );
416  std::string fe_chan( path(),
417  curr+(sizeof(sistrip::feChan_) - 1),
418  next-curr );
419  feChan_ = atoi( fe_chan.c_str() );
420 
421  // Extract FED APV
422  curr = next;
423  if ( curr != std::string::npos ) {
424  next = std::string::npos;
425  std::string fed_apv( path(),
426  curr+(sizeof(sistrip::fedApv_) - 1),
427  next-curr );
428  fedApv_ = atoi( fed_apv.c_str() );
429  }
430  }
431  }
432  }
433  } else {
434  std::stringstream ss;
435  ss << sistrip::root_ << sistrip::dir_;
436  //ss << sistrip::root_ << sistrip::dir_
437  //<< sistrip::unknownView_ << sistrip::dir_;
438  std::string temp( ss.str() );
439  path( temp );
440  }
441 
442  }
443 
444 }
static const char feDriver_[]
static const char dir_[]
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:7
uint16_t fedApv_
static const char fedApv_[]
const std::string & path() const
Definition: SiStripKey.h:126
uint16_t feChan_
uint16_t fedId_
uint16_t feUnit_
static const char feChan_[]
static const char root_[]
static const char feUnit_[]
dbl *** dir
Definition: mlp_gen.cc:35
static const char readoutView_[]
static const char null_[]
Definition: Constants.h:22
void SiStripFedKey::initFromValue ( )
privatevirtual

Reimplemented from SiStripKey.

Definition at line 232 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().

232  {
233 
234  if ( fedId_ >= sistrip::FED_ID_MIN &&
236  fedId_ = fedId_;
237  } else if ( fedId_ == 0 ) {
238  fedId_ = fedId_;
239  } else {
241  }
242 
244  else { feUnit_ = sistrip::invalid_; }
245 
247  else { feChan_ = sistrip::invalid_; }
248 
250  else { fedApv_ = sistrip::invalid_; }
251 
252 }
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
void SiStripFedKey::initGranularity ( )
privatevirtual

Reimplemented from SiStripKey.

Definition at line 448 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().

448  {
449 
451  channel(0);
452  if ( fedId_ && fedId_ != sistrip::invalid_ ) {
454  channel(fedId_);
455  if ( feUnit_ && feUnit_ != sistrip::invalid_ ) {
457  channel(feUnit_);
458  if ( feChan_ && feChan_ != sistrip::invalid_ ) {
460  channel(feChan_);
461  if ( fedApv_ && fedApv_ != sistrip::invalid_ ) {
463  channel(fedApv_);
464  } else if ( fedApv_ == sistrip::invalid_ ) {
467  }
468  } else if ( feChan_ == sistrip::invalid_ ) {
471  }
472  } else if ( feUnit_ == sistrip::invalid_ ) {
475  }
476  } else if ( fedId_ == sistrip::invalid_ ) {
479  }
480 
481 }
const sistrip::Granularity & granularity() const
Definition: SiStripKey.h:127
uint16_t fedApv_
uint16_t feChan_
uint16_t fedId_
uint16_t feUnit_
const uint16_t & channel() const
Definition: SiStripKey.h:128
static const uint16_t invalid_
Definition: Constants.h:16
bool SiStripFedKey::isConsistent ( const SiStripKey key) const
virtual

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

Reimplemented from SiStripKey.

Definition at line 162 of file SiStripFedKey.cc.

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

162  {
163  const SiStripFedKey& input = dynamic_cast<const SiStripFedKey&>(key);
164  if ( !(&input) ) { return false; }
165  if ( isEqual(input) ) { return true; }
166  else if ( ( fedId_ == 0 || input.fedId() == 0 ) &&
167  ( feUnit_ == 0 || input.feUnit() == 0 ) &&
168  ( feChan_ == 0 || input.feChan() == 0 ) &&
169  ( fedApv_ == 0 || input.fedApv() == 0 ) ) {
170  return true;
171  } else { return false; }
172 }
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:44
const uint32_t & key() const
Definition: SiStripKey.h:125
uint16_t fedApv_
bool isEqual(const SiStripKey &) const
uint16_t feChan_
uint16_t fedId_
uint16_t feUnit_
const uint16_t & fedApv() const
const uint16_t & feUnit() const
const uint16_t & feChan() const
const uint16_t & fedId() const
bool SiStripFedKey::isEqual ( const SiStripKey key) const
virtual

Identifies key objects with identical member data.

Reimplemented from SiStripKey.

Definition at line 149 of file SiStripFedKey.cc.

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

Referenced by isConsistent().

149  {
150  const SiStripFedKey& input = dynamic_cast<const SiStripFedKey&>(key);
151  if ( !(&input) ) { return false; }
152  if ( fedId_ == input.fedId() &&
153  feUnit_ == input.feUnit() &&
154  feChan_ == input.feChan() &&
155  fedApv_ == input.fedApv() ) {
156  return true;
157  } else { return false; }
158 }
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:44
const uint32_t & key() const
Definition: SiStripKey.h:125
uint16_t fedApv_
uint16_t feChan_
uint16_t fedId_
uint16_t feUnit_
const uint16_t & fedApv() const
const uint16_t & feUnit() const
const uint16_t & feChan() const
const uint16_t & fedId() const
bool SiStripFedKey::isInvalid ( ) const
virtual

Identifies all member data as being invalid.

Reimplemented from SiStripKey.

Definition at line 204 of file SiStripFedKey.cc.

References sistrip::FED_APV.

204  {
205  return isInvalid(sistrip::FED_APV);
206 }
bool isInvalid() const
bool SiStripFedKey::isInvalid ( const sistrip::Granularity gran) const
virtual

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

Reimplemented from SiStripKey.

Definition at line 210 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.

210  {
211  if ( gran == sistrip::FED_SYSTEM ) { return false; }
212  else if ( gran == sistrip::UNDEFINED_GRAN ||
213  gran == sistrip::UNKNOWN_GRAN ) { return false; }
214 
215  if ( fedId_ == sistrip::invalid_ ) {
216  if ( gran == sistrip::FE_DRIVER ) { return true; }
217  if ( feUnit_ == sistrip::invalid_ ) {
218  if ( gran == sistrip::FE_UNIT ) { return true; }
219  if ( feChan_ == sistrip::invalid_ ) {
220  if ( gran == sistrip::FE_CHAN ) { return true; }
221  if ( fedApv_ == sistrip::invalid_ ) {
222  if ( gran == sistrip::FED_APV ) { return true; }
223  }
224  }
225  }
226  }
227  return false;
228 }
uint16_t fedApv_
uint16_t feChan_
uint16_t fedId_
uint16_t feUnit_
static const uint16_t invalid_
Definition: Constants.h:16
bool SiStripFedKey::isValid ( void  ) const
virtual

Identifies all member data as being "valid" or null ("all").

Reimplemented from SiStripKey.

Definition at line 176 of file SiStripFedKey.cc.

References sistrip::FED_APV.

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

176  {
177  return isValid(sistrip::FED_APV);
178 }
bool isValid() const
bool SiStripFedKey::isValid ( const sistrip::Granularity gran) const
virtual

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

Reimplemented from SiStripKey.

Definition at line 182 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.

182  {
183  if ( gran == sistrip::FED_SYSTEM ) { return true; }
184  else if ( gran == sistrip::UNDEFINED_GRAN ||
185  gran == sistrip::UNKNOWN_GRAN ) { return false; }
186 
187  if ( fedId_ != sistrip::invalid_ ) {
188  if ( gran == sistrip::FE_DRIVER ) { return true; }
189  if ( feUnit_ != sistrip::invalid_ ) {
190  if ( gran == sistrip::FE_UNIT ) { return true; }
191  if ( feChan_ != sistrip::invalid_ ) {
192  if ( gran == sistrip::FE_CHAN ) { return true; }
193  if ( fedApv_ != sistrip::invalid_ ) {
194  if ( gran == sistrip::FED_APV ) { return true; }
195  }
196  }
197  }
198  }
199  return false;
200 }
uint16_t fedApv_
uint16_t feChan_
uint16_t fedId_
uint16_t feUnit_
static const uint16_t invalid_
Definition: Constants.h:16
void SiStripFedKey::print ( std::stringstream &  ss) const
virtual

Print member data of the key

Reimplemented from SiStripKey.

Definition at line 510 of file SiStripFedKey.cc.

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

Referenced by operator<<(), and CommissioningHistograms::printHistosMap().

510  {
511  ss << " [SiStripFedKey::print]" << std::endl
512  << std::hex
513  << " FED key : 0x"
514  << std::setfill('0')
515  << std::setw(8) << key() << std::endl
516  << std::setfill(' ')
517  << std::dec
518  << " FED id : " << fedId() << std::endl
519  << " Front-End unit : " << feUnit() << std::endl
520  << " Front-End chan : " << feChan() << std::endl
521  << " (internal chan) : "
522  << "(" << fedChannel() << ")" << std::endl
523  << " FED APV : " << fedApv() << std::endl
524  << " Directory : " << path() << std::endl
525  << " Granularity : "
527  << " Channel : " << channel() << std::endl
528  << " isValid : " << isValid();
529 }
static std::string granularity(const sistrip::Granularity &)
const uint32_t & key() const
Definition: SiStripKey.h:125
const sistrip::Granularity & granularity() const
Definition: SiStripKey.h:127
bool isValid() const
const std::string & path() const
Definition: SiStripKey.h:126
uint16_t fedChannel() const
const uint16_t & fedApv() const
const uint16_t & feUnit() const
const uint16_t & channel() const
Definition: SiStripKey.h:128
const uint16_t & feChan() const
const uint16_t & fedId() const
void SiStripFedKey::terse ( std::stringstream &  ss) const
virtual

A terse summary of the key

Reimplemented from SiStripKey.

Definition at line 485 of file SiStripFedKey.cc.

References feChan(), fedApv(), fedId(), and feUnit().

485  {
486  ss << "FED:crate/slot/id/unit/chan/apv= "
487  << "-" << "/"
488  << "-" << "/"
489  << fedId() << "/"
490  << feUnit() << "/"
491  << feChan() << "/"
492  << fedApv();
493 // ss << " FedKey"
494 // //<<"=0x"
495 // //<< std::hex
496 // //<< std::setfill('0') << std::setw(8) << key() << std::setfill(' ')
497 // //<< std::dec
498 // //<< ", " << ( isValid() ? "Valid" : "Invalid" )
499 // //<< ", FedCrate=" << fedCrate()
500 // //<< ", FedSlot=" << fedSlot()
501 // << ", FedId=" << fedId()
502 // << ", FeUnit=" << feUnit()
503 // << ", FeChan=" << feChan()
504 // //<< ", FedChannel=" << fedChannel()
505 // << ", FedApv=" << fedApv();
506 }
const uint16_t & fedApv() const
const uint16_t & feUnit() const
const uint16_t & feChan() const
const uint16_t & fedId() const

Member Data Documentation

uint16_t SiStripFedKey::feChan_
private
const uint16_t SiStripFedKey::feChanMask_ = 0x00F
staticprivate

Definition at line 187 of file SiStripFedKey.h.

Referenced by initFromKey().

const uint16_t SiStripFedKey::feChanOffset_ = 2
staticprivate

Definition at line 179 of file SiStripFedKey.h.

Referenced by initFromKey().

uint16_t SiStripFedKey::fedApv_
private
const uint16_t SiStripFedKey::fedApvMask_ = 0x003
staticprivate

Definition at line 188 of file SiStripFedKey.h.

Referenced by initFromKey().

const uint16_t SiStripFedKey::fedApvOffset_ = 0
staticprivate

Definition at line 180 of file SiStripFedKey.h.

Referenced by initFromKey().

const uint16_t SiStripFedKey::fedCrateMask_ = 0x03F
staticprivate

Definition at line 183 of file SiStripFedKey.h.

const uint16_t SiStripFedKey::fedCrateOffset_ = 24
staticprivate

Definition at line 175 of file SiStripFedKey.h.

uint16_t SiStripFedKey::fedId_
private

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

Definition at line 163 of file SiStripFedKey.h.

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

const uint16_t SiStripFedKey::fedIdMask_ = 0x1FF
staticprivate

Definition at line 185 of file SiStripFedKey.h.

Referenced by initFromKey().

const uint16_t SiStripFedKey::fedIdOffset_ = 10
staticprivate

Definition at line 177 of file SiStripFedKey.h.

Referenced by initFromKey().

const uint16_t SiStripFedKey::fedSlotMask_ = 0x01F
staticprivate

Definition at line 184 of file SiStripFedKey.h.

const uint16_t SiStripFedKey::fedSlotOffset_ = 19
staticprivate

Definition at line 176 of file SiStripFedKey.h.

uint16_t SiStripFedKey::feUnit_
private
const uint16_t SiStripFedKey::feUnitMask_ = 0x00F
staticprivate

Definition at line 186 of file SiStripFedKey.h.

Referenced by initFromKey().

const uint16_t SiStripFedKey::feUnitOffset_ = 6
staticprivate

Definition at line 178 of file SiStripFedKey.h.

Referenced by initFromKey().