Main Page   Modules   Namespace List   Class Hierarchy   Data Structures   File List   Namespace Members   Data Fields   Globals   Related Pages  

SctData::ModuleDefect Class Reference

This class represents a possible defect with a module. More...

#include <ModuleDefect.h>

Inheritance diagram for SctData::ModuleDefect:

Sct::Streamable

Public Member Functions

 ModuleDefect (const ModuleDefect &prototype, const ModuleElement &element) throw ()
 Public constructor: Copy the given ModuleDefect and give ModuleElement.

virtual ~ModuleDefect () throw ()
 Public destructor.

bool isSevere () const throw ()
 Return true if this ModuleDefect is severe.

const ModuleElementgetModuleElement () const throw (LogicError)
 Gets the module element affected by this defect.

bool isPrototype () const throw ()
 True if this is a prototype, false if it actually represents a defect.

bool isChipDefect () const throw ()
 True if this defect applies to a whole chip.

bool isLinkDefect () const throw ()
 True if this defect applies to a whole link.

bool isUnfittable () const throw ()
 returns true if defect is serious enough to prevent fitting to this channel.

bool isUnuseable () const throw ()
 SCTDAQ definitition of unusable is dead or stuckon.

bool isDodgy () const throw ()
 SCTDAQ definitition of `dodgy' is any defect other than dead or stuckon.

const string & getName () const throw ()
 Gets the name of this defect.

const string & getDescription () const throw ()
 Get a human readable description for this ModuleDefect.

double getParameter () const throw ()
 Gets a parameter that can be used to determine if something is defective.

bool isOfTheSameTypeAs (const ModuleDefect &defect) const throw ()
 Comparison operators.

bool operator== (const ModuleDefect &defect) const throw (LogicError)
 Returns true if the defect types are the same.

virtual string getClassName () const throw ()
 Get the class name for this object.


Static Public Attributes

Fit Defects
const ModuleDefect DEAD
 Output always v small.

const ModuleDefect STUCKON
 Output always v high.

const ModuleDefect OVER
 Occupancy larger than max.

const ModuleDefect UNDER
 Occupancy never reaches mas.

const ModuleDefect NOINIT
 Couldn't initialize the fit.

const ModuleDefect FIT_UNDER
 Output always v small.

const ModuleDefect FIT_OVER
 Output always v small.

const ModuleDefect SIG_UNDER
 Output always v small.

const ModuleDefect SIG_OVER
 Output always v small.

Strobe Delay Defects
const ModuleDefect SD_LO
 Low edge is not between 0 and 35.

const ModuleDefect SD_HI
 Low edge is above 63.

NPt Gain Defects
const ModuleDefect LO_GAIN
 Gain < 0.75 * chip average.

const ModuleDefect HI_GAIN
 Gain > 1.25 * chip average.

const ModuleDefect LO_OFFSET
 Offset < -100.

const ModuleDefect HI_OFFSET
 Offset > 120.

const ModuleDefect UNBONDED
 Noise <= 750.

const ModuleDefect PARTBONDED
 Noise <= 1100.

const ModuleDefect NOISY
 Noise > 1.15* av chip noise.

Trim Defects
const ModuleDefect TR_RANGE
 Unexpected chip trim step size.

const ModuleDefect TR_STEP
 Channel step different from chip.

const ModuleDefect TR_OFFSET
 Channel offset different from chip.

const ModuleDefect TR_NOTRIM
 Untrimmable channel.

const ModuleDefect NO_HI
 Other defects.

const ModuleDefect MEAN_ERROR
 high noise occupancy

const ModuleDefect SIG_ERROR
 Other defects.

const ModuleDefect STUCK_CELL
 pipeline

const ModuleDefect DEAD_CELL
 pipeline

const ModuleDefect TOKEN
 full bypass token

const ModuleDefect RTOKEN
 full bypass token

const ModuleDefect TW_HI
 time walk too big

const ModuleDefect TW_LO
 time walk too small


Private Member Functions

 ModuleDefect (int id, bool severe, const string &name, const string &d, double parameter) throw ()
 Private constructor.

 ModuleDefect (int id, bool severe, const string &name, const char *d, double parameter) throw ()
 Private constructor.


Private Attributes

int id
 The internal id.

bool severe
 True if severe.

string name
 Name of the defect.

string description
 The human readable description.

double parameter
 A parameter for deciding if something is defective.

auto_ptr< ModuleElementelement
 The start of the defect.


Static Private Attributes

map< int, ModuleDefect * > defectMap

Friends

class ModuleDefectIOHelper

Detailed Description

This class represents a possible defect with a module.

A ModuleDefect has a description and can be classified as severe or not severe.

Todo:
Is this enough? Do we need to add more classes here? Should we be able to add other ModuleDefect s anywhere in our code or is having a central repository here enough? Should this class be renamed ChannelDefect?
Author:
Matthew Palmer

Definition at line 26 of file ModuleDefect.h.


Constructor & Destructor Documentation

SctData::ModuleDefect::ModuleDefect const ModuleDefect &    prototype,
const ModuleElement   element
throw () [inline]
 

Public constructor: Copy the given ModuleDefect and give ModuleElement.

Definition at line 201 of file ModuleDefect.h.

virtual SctData::ModuleDefect::~ModuleDefect   throw () [inline, virtual]
 

Public destructor.

Note:
You should never delete a prototype.

Definition at line 82 of file ModuleDefect.h.

SctData::ModuleDefect::ModuleDefect int    id,
bool    severe,
const string &    name,
const string &    d,
double    parameter
throw () [inline, private]
 

Private constructor.

Definition at line 184 of file ModuleDefect.h.

SctData::ModuleDefect::ModuleDefect int    id,
bool    severe,
const string &    name,
const char *    d,
double    parameter
throw () [inline, private]
 

Private constructor.

Differs from above by assuming that description = sprintf(temp, d, parameter);

Definition at line 190 of file ModuleDefect.h.


Member Function Documentation

string SctData::ModuleDefect::getClassName   const throw () [inline, virtual]
 

Get the class name for this object.

This is used to identify the precise type.

Todo:
We could use typeid instead here, but that would probably mean removing the namespace stuff.
Returns:
the class name

Implements Sct::Streamable.

Definition at line 259 of file ModuleDefect.h.

const string & SctData::ModuleDefect::getDescription   const throw () [inline]
 

Get a human readable description for this ModuleDefect.

Definition at line 255 of file ModuleDefect.h.

const ModuleElement & SctData::ModuleDefect::getModuleElement   const throw (LogicError) [inline]
 

Gets the module element affected by this defect.

Definition at line 219 of file ModuleDefect.h.

Referenced by SctData::TestSummary::SummaryWriter::write().

const string & SctData::ModuleDefect::getName   const throw () [inline]
 

Gets the name of this defect.

Definition at line 251 of file ModuleDefect.h.

Referenced by SctData::TestSummary::SummaryWriter::write().

double SctData::ModuleDefect::getParameter   const throw () [inline]
 

Gets a parameter that can be used to determine if something is defective.

Definition at line 205 of file ModuleDefect.h.

bool SctData::ModuleDefect::isChipDefect   const throw () [inline]
 

True if this defect applies to a whole chip.

Definition at line 226 of file ModuleDefect.h.

bool SctData::ModuleDefect::isDodgy   const throw () [inline]
 

SCTDAQ definitition of `dodgy' is any defect other than dead or stuckon.

Definition at line 247 of file ModuleDefect.h.

bool SctData::ModuleDefect::isLinkDefect   const throw () [inline]
 

True if this defect applies to a whole link.

Definition at line 230 of file ModuleDefect.h.

bool SctData::ModuleDefect::isOfTheSameTypeAs const ModuleDefect &    defect const throw () [inline]
 

Comparison operators.

Returns true if the defect types are the same. AND defects refer to the same channels.

Definition at line 216 of file ModuleDefect.h.

bool SctData::ModuleDefect::isPrototype   const throw () [inline]
 

True if this is a prototype, false if it actually represents a defect.

Todo:
is this necessary?

Definition at line 209 of file ModuleDefect.h.

bool SctData::ModuleDefect::isSevere   const throw () [inline]
 

Return true if this ModuleDefect is severe.

Definition at line 234 of file ModuleDefect.h.

bool SctData::ModuleDefect::isUnfittable   const throw () [inline]
 

returns true if defect is serious enough to prevent fitting to this channel.

Definition at line 238 of file ModuleDefect.h.

bool SctData::ModuleDefect::isUnuseable   const throw () [inline]
 

SCTDAQ definitition of unusable is dead or stuckon.

Definition at line 243 of file ModuleDefect.h.

bool SctData::ModuleDefect::operator== const ModuleDefect &    defect const throw (LogicError) [inline]
 

Returns true if the defect types are the same.

Note:
defects need NOT refer to the same channels.
Exceptions:
LogicError if LHS or RHS is a prototype

Definition at line 213 of file ModuleDefect.h.


Friends And Related Function Documentation

friend class ModuleDefectIOHelper [friend]
 

Definition at line 179 of file ModuleDefect.h.


Field Documentation

const ModuleDefect SctData::ModuleDefect::DEAD [static]
 

Output always v small.

Todo:
add all the different types of defect and check the descriptions

const ModuleDefect SctData::ModuleDefect::DEAD_CELL [static]
 

pipeline

map< int, ModuleDefect * > SctData::ModuleDefect::defectMap [static, private]
 

Definition at line 5 of file ModuleDefect.cpp.

string SctData::ModuleDefect::description [private]
 

The human readable description.

Definition at line 174 of file ModuleDefect.h.

auto_ptr<ModuleElement> SctData::ModuleDefect::element [private]
 

The start of the defect.

Definition at line 176 of file ModuleDefect.h.

const ModuleDefect SctData::ModuleDefect::FIT_OVER [static]
 

Output always v small.

Todo:
add all the different types of defect and check the descriptions

const ModuleDefect SctData::ModuleDefect::FIT_UNDER [static]
 

Output always v small.

Todo:
add all the different types of defect and check the descriptions

const ModuleDefect SctData::ModuleDefect::HI_GAIN [static]
 

Gain > 1.25 * chip average.

const ModuleDefect SctData::ModuleDefect::HI_OFFSET [static]
 

Offset > 120.

int SctData::ModuleDefect::id [private]
 

The internal id.

Definition at line 171 of file ModuleDefect.h.

Referenced by SctData::ModuleDefectIOHelper::getRepresentation().

const ModuleDefect SctData::ModuleDefect::LO_GAIN [static]
 

Gain < 0.75 * chip average.

const ModuleDefect SctData::ModuleDefect::LO_OFFSET [static]
 

Offset < -100.

const ModuleDefect SctData::ModuleDefect::MEAN_ERROR [static]
 

high noise occupancy

string SctData::ModuleDefect::name [private]
 

Name of the defect.

Definition at line 173 of file ModuleDefect.h.

const ModuleDefect SctData::ModuleDefect::NO_HI [static]
 

Other defects.

const ModuleDefect SctData::ModuleDefect::NOINIT [static]
 

Couldn't initialize the fit.

const ModuleDefect SctData::ModuleDefect::NOISY [static]
 

Noise > 1.15* av chip noise.

const ModuleDefect SctData::ModuleDefect::OVER [static]
 

Occupancy larger than max.

double SctData::ModuleDefect::parameter [private]
 

A parameter for deciding if something is defective.

Definition at line 175 of file ModuleDefect.h.

const ModuleDefect SctData::ModuleDefect::PARTBONDED [static]
 

Noise <= 1100.

const ModuleDefect SctData::ModuleDefect::RTOKEN [static]
 

full bypass token

const ModuleDefect SctData::ModuleDefect::SD_HI [static]
 

Low edge is above 63.

const ModuleDefect SctData::ModuleDefect::SD_LO [static]
 

Low edge is not between 0 and 35.

bool SctData::ModuleDefect::severe [private]
 

True if severe.

Definition at line 172 of file ModuleDefect.h.

const ModuleDefect SctData::ModuleDefect::SIG_ERROR [static]
 

Other defects.

const ModuleDefect SctData::ModuleDefect::SIG_OVER [static]
 

Output always v small.

Todo:
add all the different types of defect and check the descriptions

const ModuleDefect SctData::ModuleDefect::SIG_UNDER [static]
 

Output always v small.

Todo:
add all the different types of defect and check the descriptions

const ModuleDefect SctData::ModuleDefect::STUCK_CELL [static]
 

pipeline

const ModuleDefect SctData::ModuleDefect::STUCKON [static]
 

Output always v high.

const ModuleDefect SctData::ModuleDefect::TOKEN [static]
 

full bypass token

const ModuleDefect SctData::ModuleDefect::TR_NOTRIM [static]
 

Untrimmable channel.

const ModuleDefect SctData::ModuleDefect::TR_OFFSET [static]
 

Channel offset different from chip.

const ModuleDefect SctData::ModuleDefect::TR_RANGE [static]
 

Unexpected chip trim step size.

const ModuleDefect SctData::ModuleDefect::TR_STEP [static]
 

Channel step different from chip.

const ModuleDefect SctData::ModuleDefect::TW_HI [static]
 

time walk too big

const ModuleDefect SctData::ModuleDefect::TW_LO [static]
 

time walk too small

const ModuleDefect SctData::ModuleDefect::UNBONDED [static]
 

Noise <= 750.

const ModuleDefect SctData::ModuleDefect::UNDER [static]
 

Occupancy never reaches mas.


The documentation for this class was generated from the following files:
Generated on Mon Dec 15 19:37:46 2003 for SCT DAQ/DCS Software by doxygen1.3-rc3