#include <Electronics.h>
Inheritance diagram for DayaBay::FeeChannelId:
Public Member Functions | |
FeeChannelId () | |
FeeChannelId (int board, int connector, Site::Site_t site, DetectorId::DetectorId_t det) | |
FeeChannelId (const FeeChannelId &channel) | |
FeeChannelId (int data) | |
virtual | ~FeeChannelId () |
FeeChannelId & | operator= (const FeeChannelId &id) |
FeeChannelId | boardId () const |
int | board () const |
int | connector () const |
void | set (Site::Site_t site, DetectorId::DetectorId_t det) |
Set values after construction. | |
std::string | asString () const |
Return string representation of the data. | |
std::string | detName () const |
Return the detector name = SiteDetectorId (eg. NearAD1, FarIWS). | |
DetectorId::DetectorId_t | detectorId () const |
Return the detector ID. | |
Site::Site_t | site () const |
Return the site. | |
int | fullPackedData () const |
Return the full, raw packed integer. | |
short int | siteDetPackedData () const |
Return the part of the packing just for the site+detector part. | |
bool | isAD () const |
Is this an AD? | |
bool | isWaterShield () const |
Is this a Water Shield (Inner or Outer)? | |
virtual bool | bogus () const |
Returns true if the combination of site & detector are not consistent (does not include 'unknown' parts). | |
bool | operator== (const Detector &rhs) const |
bool | operator!= (const Detector &rhs) const |
Static Public Member Functions | |
static short int | siteDetPackedFromString (const std::string str) |
Protected Attributes | |
unsigned int | m_data |
Channels are identified by a FEE board index and the connector number on the board. The boards are indexed starting with 1. The ADs require 13 boards. The water shields require the following number of boards: Near Site: Inner Water Shield: 8 Outer Water Shield: 11 Far Site: Inner Water Shield: 10 Outer Water Shield: 14
Each FEE board has 16 connectors, numbered 1 to 16. This applies to the electronics for both the ADs and the water shields.
Definition at line 67 of file Electronics.h.
DayaBay::FeeChannelId::FeeChannelId | ( | ) | [inline] |
DayaBay::FeeChannelId::FeeChannelId | ( | int | board, | |
int | connector, | |||
Site::Site_t | site, | |||
DetectorId::DetectorId_t | det | |||
) | [inline] |
Definition at line 70 of file Electronics.h.
00071 : 00072 ElecChannelId(board, connector, site, det) {}
DayaBay::FeeChannelId::FeeChannelId | ( | const FeeChannelId & | channel | ) | [inline] |
DayaBay::FeeChannelId::FeeChannelId | ( | int | data | ) | [inline] |
DayaBay::FeeChannelId::~FeeChannelId | ( | ) | [virtual] |
FeeChannelId& DayaBay::FeeChannelId::operator= | ( | const FeeChannelId & | id | ) | [inline] |
DayaBay::FeeChannelId DayaBay::FeeChannelId::boardId | ( | ) | const |
Definition at line 29 of file Electronics.cc.
00030 { 00031 return DayaBay::FeeChannelId(m_data & 0xffffff00); 00032 }
int DayaBay::ElecChannelId::board | ( | ) | const [inherited] |
int DayaBay::ElecChannelId::connector | ( | ) | const [inherited] |
void DayaBay::Detector::set | ( | Site::Site_t | site, | |
DetectorId::DetectorId_t | det | |||
) | [inherited] |
std::string DayaBay::Detector::asString | ( | ) | const [inherited] |
std::string DayaBay::Detector::detName | ( | ) | const [inherited] |
Return the detector name = SiteDetectorId (eg. NearAD1, FarIWS).
Definition at line 61 of file Detectors.cc.
00062 { 00063 std::string ret = Site::AsString(site()); 00064 ret += DetectorId::AsString(detectorId()); 00065 00066 return ret; 00067 }
DetectorId::DetectorId_t DayaBay::Detector::detectorId | ( | ) | const [inherited] |
Return the detector ID.
Definition at line 69 of file Detectors.cc.
00070 { 00071 return (DetectorId::DetectorId_t)((m_data&0x00ff0000)>>16); 00072 }
Site::Site_t DayaBay::Detector::site | ( | ) | const [inherited] |
Return the site.
Definition at line 74 of file Detectors.cc.
00075 { 00076 return (Site::Site_t)((m_data&0xff000000)>>24); 00077 }
int DayaBay::Detector::fullPackedData | ( | ) | const [inherited] |
Return the full, raw packed integer.
If created by subclass, this may include values in the lower two detector sensor bytes.
Definition at line 79 of file Detectors.cc.
00080 { 00081 return m_data; 00082 }
short int DayaBay::Detector::siteDetPackedData | ( | ) | const [inherited] |
Return the part of the packing just for the site+detector part.
Definition at line 84 of file Detectors.cc.
00085 { 00086 return (short int)(m_data>>16); 00087 }
short int DayaBay::Detector::siteDetPackedFromString | ( | const std::string | str | ) | [static, inherited] |
Definition at line 107 of file Detectors.cc.
00107 { 00108 DetectorId::DetectorId_t detId = DetectorId::FromString("Unknown"); 00109 Site::Site_t site = Site::FromString("Unknown"); 00110 00111 //find site 00112 00113 if (str.find("DayaBay")!=std::string::npos) site=Site::FromString("DayaBay"); 00114 if (str.find("LingAo")!=std::string::npos) site=Site::FromString("LingAo"); 00115 if (str.find("Mid")!=std::string::npos) site=Site::FromString("Mid"); 00116 if (str.find("Far")!=std::string::npos) site=Site::FromString("Far"); 00117 if (str.find("Aberdeen")!=std::string::npos) site=Site::FromString("Aberdeen"); 00118 if (str.find("SAB")!=std::string::npos) site=Site::FromString("SAB"); 00119 00120 //find detector 00121 00122 if (str.find("AD1")!=std::string::npos) detId=DetectorId::FromString("AD1"); 00123 if (str.find("AD2")!=std::string::npos) detId=DetectorId::FromString("AD2"); 00124 if (str.find("AD3")!=std::string::npos) detId=DetectorId::FromString("AD3"); 00125 if (str.find("AD4")!=std::string::npos) detId=DetectorId::FromString("AD4"); 00126 if (str.find("IWS")!=std::string::npos) detId=DetectorId::FromString("IWS"); 00127 if (str.find("OWS")!=std::string::npos) detId=DetectorId::FromString("OWS"); 00128 if (str.find("RPC")!=std::string::npos) detId=DetectorId::FromString("RPC"); 00129 00130 return DayaBay::Detector(site,detId).siteDetPackedData(); 00131 }
bool DayaBay::Detector::isAD | ( | ) | const [inline, inherited] |
Is this an AD?
Definition at line 71 of file Detectors.h.
00071 { return DetectorId::isAD(this->detectorId()); }
bool DayaBay::Detector::isWaterShield | ( | ) | const [inline, inherited] |
Is this a Water Shield (Inner or Outer)?
Definition at line 74 of file Detectors.h.
00074 { return DetectorId::isWaterShield(this->detectorId()); }
bool DayaBay::Detector::bogus | ( | ) | const [virtual, inherited] |
Returns true if the combination of site & detector are not consistent (does not include 'unknown' parts).
Subclasses may override to include more detailed bogosity checks.
Reimplemented in DayaBay::DetectorSensor, DayaBay::AdPmtSensor, DayaBay::PoolPmtSensor, and DayaBay::RpcSensor.
Definition at line 89 of file Detectors.cc.
00090 { 00091 Site::Site_t site = this->site(); 00092 DetectorId::DetectorId_t det = this->detectorId(); 00093 00094 return 00095 // Only far site has AD #3 and #4 00096 ((site != Site::kFar) 00097 && 00098 (det == DetectorId::kAD3 || det == DetectorId::kAD4)) 00099 || 00100 // Only near & far sites have known detectors 00101 ((site == Site::kMid || site == Site::kAberdeen) 00102 && 00103 (det != DetectorId::kUnknown)) 00104 ; 00105 }
bool DayaBay::Detector::operator== | ( | const Detector & | rhs | ) | const [inline, inherited] |
bool DayaBay::Detector::operator!= | ( | const Detector & | rhs | ) | const [inline, inherited] |
unsigned int DayaBay::Detector::m_data [protected, inherited] |
Definition at line 85 of file Detectors.h.