![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
Go to the documentation of this file.
11 #include "GaudiKernel/Bootstrap.h"
12 #include "GaudiKernel/ISvcLocator.h"
16 :m_module(right.m_module),m_tile(right.m_tile)
21 :m_module(
module),m_tile(tIterator)
37 for (
int i = 0;
i < 4;
i++) {
48 return (*m_tile).second.x();
53 return (*m_tile).second.y();
58 return (*m_tile).second.ntubes();
63 return ((*m_tile).first & 0X00000FFFF );
68 return (((*m_tile).first & 0XFFFF0000 )>> 16);
73 return (*m_tile).first;
89 unsigned int index=
getTube(j)->getHVLine().getLineIndex();
104 std::vector<FCALTubeConstLink>
tube;
108 ISvcLocator *svcLocator = Gaudi::svcLocator();
111 if (svcLocator->service(
"DetectorStore",
detStore,
false )==StatusCode::FAILURE) {
112 throw std::runtime_error(
"Error in FCALTile: cannot access DetectorStore (tube access)");
116 if (
detStore->retrieve(channelMap)==StatusCode::FAILURE) {
117 throw std::runtime_error(
"Error in FCALTile: cannot access Channel Map");
121 unsigned int iSampling = moduleNumber-1;
127 if ((*t).second.get_tileName()==(*m_tile).first) {
128 std::string FeedThrough = (*t).second.getHVft();
135 std::string::size_type
pos = FeedThrough.find(
'.');
136 if (
pos==std::string::npos) {
137 std::cout <<
"Big problem, feedthrough: " << FeedThrough << std::endl;
138 throw std::runtime_error(
"Error parsing FCAL HV Feedthrough string (finding substring)");
141 std::string FeedMe=FeedThrough.substr(0,
pos);
144 std::string Line=FeedThrough.substr(
pos);
146 std::istringstream FeedStream(FeedMe);
147 unsigned int feedNumber;
148 if (!(FeedStream>>feedNumber)) {
149 throw std::runtime_error(
"Error parsing FCAL HV Feedthrough string (parsing substring 1)");
152 std::istringstream LineStream(Line);
153 unsigned int lineNumber;
154 if (!(LineStream>>lineNumber)) {
155 throw std::runtime_error(
"Error parsing FCAL HV Feedthrough string (parsing substring 2)");
158 int hv_moduleNumber=lineNumber/4;
159 if (feedNumber==23) hv_moduleNumber+=8;
165 unsigned int index=0;
167 if (lineNumber%4==0)
index=0;
168 else if (lineNumber%4==1)
index=3;
169 else if (lineNumber%4==2)
index=1;
170 else if (lineNumber%4==3)
index=2;
171 else throw std::runtime_error(
"Error in FCALTile: unrecognized HV Line");
178 tube.push_back(tubeLink);
const FCALDetectorManager * getManager() const
Gets the manager.
unsigned int getNumTubes() const
Gets the number of tubes in the tile.
double getY() const
Gets the Y position of the Tile.
void reset()
Reset the value to invalid.
const T * ptr() const
Return a pointer to the cached value.
bool isValid() const
Test to see if the value is valid.
This class contains the tube and tile maps for the FCAL A tile is of a set of FCAL tubes.
int getIndexI() const
Returns the index "i" of the tile.
double getX() const
Gets the X Position of the Tile.
const FCALHVModule & getHVModule(unsigned int iSide, unsigned int iSector, unsigned int iSampling) const
void set(pointer_t elt) const
Set the element, assuming it is currently null.
FCALTile(const FCALTile &right)
Copy constructor.
A tile of the forward calorimeter readout geometry.
The Athena Transient Store API.
const FCALModule * m_module
const FCALHVManager & getHVManager() const
Get the HV Manager:
CxxUtils::CachedValue< std::vector< FCALTubeConstLink > > m_tube
Cache of tubes.
const FCALModule * getModule() const
Get the Module.
FCALTile & operator=(const FCALTile &right)
Assignment.
static unsigned int getNumHVLines()
Get num hvlines.
FCALModule::Module getModuleIndex() const
Returns the Module (1,2, or 3)
GeoIntrusivePtr< const FCALTube > FCALTubeConstLink
CxxUtils::CachedPointer< const FCALHVLine > m_line[4]
Cache of subgaps.
FCAL_ChannelMap::tileMap_const_iterator TileConstIterator
void set(const T &val) const
Set the value, assuming it is currently invalid.
const FCALHVLine & getHVLine(unsigned int iLine) const
FCALModule::Endcap getEndcapIndex() const
Returns the side (O=Negative, 1=Positive)
int getIndexJ() const
Returns the index "J" of the tile.
void store(pointer_t elt)
Store a new value to the element.
const FCALHVLine * getHVLine(unsigned int i) const
Get hvline.
tubeMap_t::const_iterator tubemap_const_iterator
T * get(TKey *tobj)
get a TObject* from a TKey* (why can't a TObject be a TKey?)
pointer_t get() const
Return the current value of the element.
Describes one HV Module within the FCAL.
tubemap_const_iterator tubemap_end(int isam) const
FCALTubeConstLink getTube(unsigned int i) const
Get a tube.
This class provides direct access to information on the HV electrodes within the barrels....
This class represents an FCAL Tube. The tube has a position and it also has links to the High Voltage...
unsigned int identify() const
Returns the identifier of this tile (convention: comes from the FCAL Channel Map).
tubemap_const_iterator tubemap_begin(int isam) const
tubeMap access functions