ATLAS Offline Software
Loading...
Searching...
No Matches
TileCellContainerCnv.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TileCellContainerCnv_H
6#define TileCellContainerCnv_H
7
11
12class TileTBID;
15
17
19{
20
21 friend class CnvFactory<TileCellContainerCnv >;
22public:
23 TileCellContainerCnv(ISvcLocator* svcloc);
24
25 virtual ~TileCellContainerCnv();
26
28 virtual StatusCode initialize() override;
29
30 virtual TileCellVec* createPersistent(TileCellContainer* cont) override;
31 virtual TileCellContainer* createTransient() override;
32
33private:
35
36 const TileTBID* m_tileTBID{nullptr};
38
39 int m_version{0};
40
41 static const int NSIDE = 2;
42 static const int NPHI = 8;
43 static const int NETA = 2;
44 static const int NCELLMBTS = NSIDE*NPHI*NETA;
45
46 inline int cell_index(int side, int phi, int eta) const { return (side*NPHI+phi)*NETA+eta; }
47 void initIdToIndex();
48
51 int m_gainIndex[17]{};
52 int m_gain[8]{};
53
54 inline int round32(double x) {
55 if (x<-2147483647.) return -0x7FFFFFFF;
56 else if (x>2147483647.) return 0x7FFFFFFF;
57 else return (int)lround(x);
58 }
59
60 inline int round16(double x) {
61 if (x<-32767.) return -0x7FFF;
62 else if (x>32767.) return 0x7FFF;
63 else return (int)lround(x);
64 }
65};
66
67#endif
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
his file contains the class definition for the templated T_AthenaPoolCustomCnv class.
T_AthenaPoolCustomCnv< TileCellContainer, TileCellVec > TileCellContainerCnvBase
TileContainer< TileCell > TileCellContainer
#define x
This class groups all DetDescr information related to a CaloCell.
Abstract factory to create the converter.
Compatibility for old converter classes that don't get passed the key.
const TileTBID * m_tileTBID
ServiceHandle< StoreGateSvc > m_storeGate
virtual TileCellVec * createPersistent(TileCellContainer *cont) override
virtual StatusCode initialize() override
initialization
CaloDetDescrElement * m_dde[NCELLMBTS]
TileCellContainerCnv(ISvcLocator *svcloc)
const MbtsDetDescrManager * m_mbtsMgr
Identifier m_id[NCELLMBTS]
virtual TileCellContainer * createTransient() override
int cell_index(int side, int phi, int eta) const
Helper class for TileCal offline identifiers of ancillary testbeam detectors and MBTS.