ATLAS Offline Software
Loading...
Searching...
No Matches
MdtTubeInChamberHashTable.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3*/
4
5/***************************************************************************
6 * Mdt Calibration Data Model
7 * -----------------------------------------
8 *
9 * Author : Martin Woudstra
10 * Creation Date: 5 April 2004
11 * Last Update : 9 May 2005
12 ***************************************************************************/
13
15
16#ifndef MUONCALIBIDENTIFIERS_MDTTUBEINCHAMBERHASHTABLE_H
17# define MUONCALIBIDENTIFIERS_MDTTUBEINCHAMBERHASHTABLE_H
18// std
19
20// other packages
21
22// this package
23#include "MuonCalibIdentifier/MdtFixedIds.h"
26
28public:
31 const MdtChamberId& chamberId );
34 const MdtChamberId& chamberId, unsigned int globalHashOffset );
36 void clear();
38 void setGlobalHashOffset( unsigned int offset );
40 MdtChamberId chamberId() const;
42 unsigned int nMultilayers() const;
44 unsigned int nLayers() const;
46 unsigned int nTubes() const;
48 unsigned int nTotalTubes() const;
50 MdtTubeHash localHash( const MdtTubeId& id ) const;
52 MdtTubeHash globalHash( const MdtTubeId& id ) const;
54 unsigned int localHashMax() const;
57 unsigned int globalHashMin() const;
60 unsigned int globalHashMax() const;
62 MdtTubeId tubeIdFromLocalHash( const MdtTubeHash& localHash ) const;
64 MdtTubeId tubeIdFromGlobalHash( const MdtTubeHash& globalHash ) const;
65private:
67 MdtChamberId m_chamberId;
68 unsigned int m_globalHashOffset;
69};
70
75
77 const MdtTubeInChamberHashTableType* type, const MdtChamberId& id, unsigned int offset )
79{}
80
81inline MdtChamberId MdtTubeInChamberHashTable::chamberId() const {
82 return m_chamberId;
83}
84
85inline unsigned int MdtTubeInChamberHashTable::localHashMax() const {
86 return m_localHashTable->size();
87}
88
89inline MdtTubeHash MdtTubeInChamberHashTable::localHash( const MdtTubeId& id ) const {
90 return m_localHashTable->getHash( id );
91}
92
93inline unsigned int MdtTubeInChamberHashTable::globalHashMin() const {
94 return m_globalHashOffset;
95}
96
97inline unsigned int MdtTubeInChamberHashTable::globalHashMax() const {
99}
100
101inline unsigned int MdtTubeInChamberHashTable::nMultilayers() const {
102 return m_localHashTable->nMultilayers();
103}
104
105inline unsigned int MdtTubeInChamberHashTable::nLayers() const {
106 return m_localHashTable->nLayers();
107}
108
109inline unsigned int MdtTubeInChamberHashTable::nTubes() const {
110 return m_localHashTable->nTubes();
111}
112
113inline unsigned int MdtTubeInChamberHashTable::nTotalTubes() const {
114 return m_localHashTable->nTotalTubes();
115}
116
117inline MdtTubeHash
118MdtTubeInChamberHashTable::globalHash( const MdtTubeId& id ) const {
119 return MdtTubeHash( m_globalHashOffset + localHash( id ) );
120}
121
122inline MdtTubeId
123MdtTubeInChamberHashTable::tubeIdFromLocalHash( const MdtTubeHash& locHash ) const {
124 return MdtTubeId( m_chamberId, m_localHashTable->getIdentifier( locHash ) );
125}
126
127inline MdtTubeId
128MdtTubeInChamberHashTable::tubeIdFromGlobalHash( const MdtTubeHash& globHash ) const {
129 return tubeIdFromLocalHash( MdtTubeHash( globHash - globalHashMin() ) );
130}
131
132
133#endif // MUONCALIBIDENTIFIERS_MDTTUBEINCHAMBERHASHTABLE_H
holds the MDT chamber type information in the form of a MdtChamberTypeInfo data member.
unsigned int globalHashMax() const
Return maximum global hash plus 1 for this chamber.
MdtTubeId tubeIdFromLocalHash(const MdtTubeHash &localHash) const
Get (full) tube identifier from local hash.
MdtTubeId tubeIdFromGlobalHash(const MdtTubeHash &globalHash) const
Get (full) tube identifier from global hash.
unsigned int nTubes() const
Return the number of tubes per layer.
unsigned int nMultilayers() const
Return the number of multilayers in the chamber.
unsigned int nTotalTubes() const
Return the total number of tubes in the chamber.
const MdtTubeInChamberHashTableType * m_localHashTable
MdtChamberId chamberId() const
Return the chamber identifier.
unsigned int nLayers() const
Return the number of layers per multilayer.
unsigned int localHashMax() const
Returns the maximum local hash value plus 1.
MdtTubeHash globalHash(const MdtTubeId &id) const
Return the global tube hash.
unsigned int globalHashMin() const
Return minimum global hash for this chamber.
MdtTubeHash localHash(const MdtTubeId &id) const
Return the hash-within-chamber from 0 to numberOfTubes()-1.
void setGlobalHashOffset(unsigned int offset)
Set global hash offset to offset.
void clear()
Clear the hashtable.
MdtTubeInChamberHashTable(const MdtTubeInChamberHashTableType *type, const MdtChamberId &chamberId)
constructor