|
BmnRoot
|
Functions to encode or decode the address field of SSD data. More...
Functions | |
| Int_t | GetAddress (UInt_t unit=0, UInt_t ladder=0, UInt_t halfladder=0, UInt_t module=0, UInt_t sensor=0, UInt_t side=0, UInt_t version=kCurrentVersion) |
| Construct address. | |
| Int_t | GetAddress (UInt_t *elementId, UInt_t version) |
| Construct address. | |
| Int_t | GetMotherAddress (Int_t address, Int_t level) |
| Construct the address of an element from the address of a descendant element. | |
| UInt_t | GetElementId (Int_t address, Int_t level) |
| Get the index of an element. | |
| UInt_t | GetSystemId (Int_t address) |
| Get system Id (should be kSSD) | |
| UInt_t | GetVersion (Int_t address) |
| Extract version number. | |
| Int_t | SetElementId (Int_t address, Int_t level, UInt_t newId) |
| Set the index of an element, leaving the other element levels untouched. | |
| std::string | ToString (Int_t address) |
| String output. | |
Variables | |
| const Int_t | kBits [kCurrentVersion+1][kSsdNofLevels] |
| const Int_t | kShift [kCurrentVersion+1][kSsdNofLevels] |
| const Int_t | kMask [kCurrentVersion+1][kSsdNofLevels] |
| const UInt_t | kCurrentVersion = 1 |
| const Int_t | kVersionSize = 4 |
| const Int_t | kVersionShift = 28 |
| const Int_t | kVersionMask = (1 << kVersionSize) -1 |
Functions to encode or decode the address field of SSD data.
Namespace BmnSsdAddress
The current definition (version 1) of the address bit field for the SSD is:
Level Bits Max. Elements Bit Position System (kSSD) 4 16 0 - 3 Unit 6 64 4 - 9 Ladder 5 32 10 - 14 HalfLadder 1 2 15 Module 5 32 16 - 20 Sensor 4 16 21 - 24 Side 1 2 25 Unused 2 26 - 27 Version 4 16 28 - 31
| Int_t BmnSsdAddress::GetAddress | ( | UInt_t * | elementId, |
| UInt_t | version | ||
| ) |
Construct address.
| elementIds | Array of element indices in their mother volumes |
Definition at line 153 of file BmnSsdAddress.cxx.
References kBits, kCurrentVersion, kShift, kSSD, kSsdNofLevels, kSsdSystem, and kVersionShift.
| Int_t BmnSsdAddress::GetAddress | ( | UInt_t | unit = 0, |
| UInt_t | ladder = 0, |
||
| UInt_t | halfladder = 0, |
||
| UInt_t | module = 0, |
||
| UInt_t | sensor = 0, |
||
| UInt_t | side = 0, |
||
| UInt_t | version = kCurrentVersion |
||
| ) |
Construct address.
| unit | Unit index |
| ladder | Ladder index in station |
| halfladder | Halfladder index in ladder |
| module | Module index within halfladder |
| sensor | Sensor index within module |
| side | Side (0=front, 1=back) of sensor |
| channel | Channel number |
Definition at line 96 of file BmnSsdAddress.cxx.
References kBits, kCurrentVersion, kShift, kSSD, kSsdHalfLadder, kSsdLadder, kSsdModule, kSsdSensor, kSsdSide, kSsdSystem, and kSsdUnit.
Referenced by BmnSsdModule::GetAddressFromName(), BmnSsdSensor::GetAddressFromName(), and BmnSsdSetup::Init().
| UInt_t BmnSsdAddress::GetElementId | ( | Int_t | address, |
| Int_t | level | ||
| ) |
Get the index of an element.
| address | Unique element address |
| level | Hierarchy level |
Definition at line 189 of file BmnSsdAddress.cxx.
References GetVersion(), kMask, kShift, kSsdNofLevels, and kSsdSystem.
Referenced by BmnSsdElement::ConstructName(), BmnSsdElement::ConstructName(), BmnSsdSetup::GetElement(), BmnSsdElement::GetIndex(), BmnSsdSensor::GetSensorId(), BmnSsdSetup::GetStationNumber(), GetSystemId(), and ToString().
| Int_t BmnSsdAddress::GetMotherAddress | ( | Int_t | address, |
| Int_t | level | ||
| ) |
Construct the address of an element from the address of a descendant element.
| address | Address of descendant element |
| level | Desired hierarchy level |
This strips of the address information of all hierarchy levels below the desired one.
Definition at line 176 of file BmnSsdAddress.cxx.
References GetVersion(), kShift, kSsdNofLevels, kSsdSystem, and kVersionShift.
| UInt_t BmnSsdAddress::GetSystemId | ( | Int_t | address | ) |
Get system Id (should be kSSD)
| address | Unique element address |
Definition at line 200 of file BmnSsdAddress.cxx.
References GetElementId(), and kSsdSystem.
Referenced by BmnSsdSetup::GetElement().
| UInt_t BmnSsdAddress::GetVersion | ( | Int_t | address | ) |
Extract version number.
| address | Unique element address @value Version number |
The version is encoded in the last 6 bits (58 to 63). The maximal number of versions is 64.
Definition at line 208 of file BmnSsdAddress.cxx.
References kVersionMask, and kVersionShift.
Referenced by GetElementId(), GetMotherAddress(), SetElementId(), and ToString().
| Int_t BmnSsdAddress::SetElementId | ( | Int_t | address, |
| Int_t | level, | ||
| UInt_t | newId | ||
| ) |
Set the index of an element, leaving the other element levels untouched.
| address | Unique element address |
| level | Hierarchy level |
| newId | New element index |
Definition at line 217 of file BmnSsdAddress.cxx.
References GetVersion(), kBits, kMask, kShift, kSsdNofLevels, and kSsdSystem.
Referenced by BmnSsdElement::InitDaughters().
| std::string BmnSsdAddress::ToString | ( | Int_t | address | ) |
String output.
| address | Unique element address |
Definition at line 235 of file BmnSsdAddress.cxx.
References GetElementId(), GetVersion(), kSsdHalfLadder, kSsdLadder, kSsdModule, kSsdSensor, kSsdSide, kSsdSystem, and kSsdUnit.
| const Int_t BmnSsdAddress::kBits[kCurrentVersion+1][kSsdNofLevels] |
Definition at line 17 of file BmnSsdAddress.cxx.
Referenced by GetAddress(), GetAddress(), and SetElementId().
| const UInt_t BmnSsdAddress::kCurrentVersion = 1 |
Definition at line 48 of file BmnSsdAddress.h.
Referenced by GetAddress(), and GetAddress().
| const Int_t BmnSsdAddress::kMask[kCurrentVersion+1][kSsdNofLevels] |
Definition at line 69 of file BmnSsdAddress.cxx.
Referenced by GetElementId(), and SetElementId().
| const Int_t BmnSsdAddress::kShift[kCurrentVersion+1][kSsdNofLevels] |
Definition at line 45 of file BmnSsdAddress.cxx.
Referenced by GetAddress(), GetAddress(), GetElementId(), GetMotherAddress(), and SetElementId().
| const Int_t BmnSsdAddress::kVersionMask = (1 << kVersionSize) -1 |
Definition at line 54 of file BmnSsdAddress.h.
Referenced by GetVersion().
| const Int_t BmnSsdAddress::kVersionShift = 28 |
Definition at line 53 of file BmnSsdAddress.h.
Referenced by GetAddress(), GetMotherAddress(), and GetVersion().
| const Int_t BmnSsdAddress::kVersionSize = 4 |
Definition at line 52 of file BmnSsdAddress.h.