LDMX Software
|
Class which provides various information about how the parts of the Hcal connect to each other. More...
#include <HcalDetectorMap.h>
Public Member Functions | |
HcalDetectorMap (const std::string &connections_table, bool want_d2e) | |
Default constructor which builds the necessary maps. | |
Public Member Functions inherited from framework::ConditionsObject | |
ConditionsObject (const std::string &name) | |
Class constructor. | |
virtual | ~ConditionsObject () |
Destructor. | |
std::string | getName () const |
Get the name of this object. | |
Public Member Functions inherited from ldmx::ElectronicsMap< ldmx::HcalElectronicsID, ldmx::HcalDigiID > | |
ElectronicsMap (bool want_d2e=false) | |
void | clear () |
Remove all entries from the map. | |
void | addEntry (ldmx::HcalElectronicsID eid, ldmx::HcalDigiID did) |
Add an entry to the map. | |
bool | exists (ldmx::HcalElectronicsID eid) const |
Tests if a given electronics id is in the map. | |
bool | exists (ldmx::HcalDigiID did) const |
Tests if a given detector id is in the map This method is slow O(N) if the map is not configured for detector id to electronics id. | |
ldmx::HcalDigiID | get (ldmx::HcalElectronicsID eid) const |
Get the detector ID for this electronics ID. | |
ldmx::HcalElectronicsID | get (ldmx::HcalDigiID did) const |
Get the electronics ID for this detector ID This method is slow O(N) if the map is not configured for detector id to electronics id. | |
Static Public Attributes | |
static constexpr const char * | CONDITIONS_OBJECT_NAME {"HcalDetectorMap"} |
The name of the EID <-> DetID map for the ECal. | |
Friends | |
class | HcalDetectorMapLoader |
Provider which loads the map. | |
Class which provides various information about how the parts of the Hcal connect to each other.
The class is loaded from a single connection table, currently in the form of a CSV file, using the HcalDetectorMapLoader declared and defined in the source.
We inherit from two classes: (1) the ConditionsObject because we are a conditions object and (2) from the ElectronicsMap template because we are a electronics map.
Definition at line 33 of file HcalDetectorMap.h.
hcal::HcalDetectorMap::HcalDetectorMap | ( | const std::string & | connections_table, |
bool | want_d2e | ||
) |
Default constructor which builds the necessary maps.
[in] | want_d2e | true if we want to build a reverse mapping Building a reverse (detector->electronics) map takes extra time and memory so it should be off by default. |
Column Names "Polarfire" "HGCROC" "Channel" "CMB" "Quadbar" "Bar" "Plane" "Cable"
Each HGCROC has two links coming out of it, one for the upper half of the channels and one for the lower half, this means we need to modify the hgcroc/channel pair to be actual link/channel pairs where the new link has range twice as big as the hgcroc ID but the new channel has a range half as big as the old one.
each hgcroc has two links,
we assign the links' number based on the hgcroc ID so that the link count starts from 0 and the two links for one hgcroc ID are next to each other. The upper half of channels are given the higher link number.
the Hcal skips every 9th channel because those are the channels that are skipped in the trigger sum when the chip is summing 4 channels together
Skipped: 8, 17, 26, 35, 44, 53, 62, 71
without zero suppresssion then, this means some channels will appear in the raw data but will not be in the detector mapping so they should be skipped
Definition at line 47 of file HcalDetectorMap.cxx.
References ldmx::ElectronicsMap< ldmx::HcalElectronicsID, ldmx::HcalDigiID >::addEntry(), ldmx::ElectronicsMap< ldmx::HcalElectronicsID, ldmx::HcalDigiID >::clear(), ldmx::ElectronicsMap< ldmx::HcalElectronicsID, ldmx::HcalDigiID >::exists(), conditions::GeneralCSVLoader::getInteger(), and conditions::GeneralCSVLoader::nextRow().
|
friend |
Provider which loads the map.
Definition at line 50 of file HcalDetectorMap.h.
|
staticconstexpr |
The name of the EID <-> DetID map for the ECal.
Definition at line 38 of file HcalDetectorMap.h.
Referenced by dqm::NtuplizeHgcrocDigiCollection::analyze(), and hcal::HcalRawDecoder::produce().