ATLAS Offline Software
TileCellContainerCnv.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TileCellContainerCnv_H
6 #define TileCellContainerCnv_H
7 
10 
11 class TileTBID;
12 class StoreGateSvc;
15 
17 
19 {
20 
21  friend class CnvFactory<TileCellContainerCnv >;
22 public:
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 
33 private:
37 
38  int m_version;
39 
40  static const int NSIDE = 2;
41  static const int NPHI = 8;
42  static const int NETA = 2;
43  static const int NCELLMBTS = NSIDE*NPHI*NETA;
44 
45  inline int cell_index(int side, int phi, int eta) const { return (side*NPHI+phi)*NETA+eta; }
46  void initIdToIndex();
47 
50  int m_gainIndex[17];
51  int m_gain[8];
52 
53  inline int round32(double x) {
54  if (x<-2147483647.) return -0x7FFFFFFF;
55  else if (x>2147483647.) return 0x7FFFFFFF;
56  else return (int)lround(x);
57  }
58 
59  inline int round16(double x) {
60  if (x<-32767.) return -0x7FFF;
61  else if (x>32767.) return 0x7FFF;
62  else return (int)lround(x);
63  }
64 };
65 
66 #endif
TileCellContainerCnv::m_gainIndex
int m_gainIndex[17]
Definition: TileCellContainerCnv.h:50
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
TileCellContainerCnv::NPHI
static const int NPHI
Definition: TileCellContainerCnv.h:41
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
TileCellContainerCnv::round16
int round16(double x)
Definition: TileCellContainerCnv.h:59
TileCellContainerCnv::m_gain
int m_gain[8]
Definition: TileCellContainerCnv.h:51
TileCellContainerCnv::initialize
virtual StatusCode initialize() override
initialization
Definition: TileCellContainerCnv.cxx:37
TileCellContainerCnv::m_storeGate
StoreGateSvc * m_storeGate
Definition: TileCellContainerCnv.h:34
CaloDetDescrElement
This class groups all DetDescr information related to a CaloCell. Provides a generic interface for al...
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:66
TileCellContainerCnv::NETA
static const int NETA
Definition: TileCellContainerCnv.h:42
x
#define x
TileCellContainerCnv::TileCellContainerCnv
TileCellContainerCnv(ISvcLocator *svcloc)
Definition: TileCellContainerCnv.cxx:18
TileCellContainerCnv::m_version
int m_version
Definition: TileCellContainerCnv.h:38
TileCellContainerCnv::m_tileTBID
const TileTBID * m_tileTBID
Definition: TileCellContainerCnv.h:35
MbtsDetDescrManager
Definition: MbtsDetDescrManager.h:16
TRT::Hit::side
@ side
Definition: HitInfo.h:83
TileCellContainerCnv::m_id
Identifier m_id[NCELLMBTS]
Definition: TileCellContainerCnv.h:48
TileCellContainerCnv::NSIDE
static const int NSIDE
Definition: TileCellContainerCnv.h:40
TileCellContainerCnv::m_mbtsMgr
const MbtsDetDescrManager * m_mbtsMgr
Definition: TileCellContainerCnv.h:36
StoreGateSvc
The Athena Transient Store API.
Definition: StoreGateSvc.h:128
TileCellContainerCnv::createPersistent
virtual TileCellVec * createPersistent(TileCellContainer *cont) override
Definition: TileCellContainerCnv.cxx:125
TileCellContainerCnv::createTransient
virtual TileCellContainer * createTransient() override
Definition: TileCellContainerCnv.cxx:304
TileCellContainerCnv
Definition: TileCellContainerCnv.h:19
T_AthenaPoolCustomCnv
Compatibility for old converter classes that don't get passed the key.
Definition: T_AthenaPoolCustomCnv.h:132
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TileCellContainerCnv::cell_index
int cell_index(int side, int phi, int eta) const
Definition: TileCellContainerCnv.h:45
TileCellVec
Definition: TileContainer.h:73
T_AthenaPoolCustomCnv.h
his file contains the class definition for the templated T_AthenaPoolCustomCnv class.
CnvFactory
Abstract factory to create the converter.
Definition: ToyConverter.h:16
TileCellContainerCnv::round32
int round32(double x)
Definition: TileCellContainerCnv.h:53
TileCellContainerCnv::m_dde
CaloDetDescrElement * m_dde[NCELLMBTS]
Definition: TileCellContainerCnv.h:49
TileCellContainerCnv::~TileCellContainerCnv
virtual ~TileCellContainerCnv()
Definition: TileCellContainerCnv.cxx:33
TileCellContainerCnvBase
T_AthenaPoolCustomCnv< TileCellContainer, TileCellVec > TileCellContainerCnvBase
Definition: TileCellContainerCnv.h:14
TileTBID
Helper class for TileCal offline identifiers of ancillary testbeam detectors and MBTS.
Definition: Calorimeter/CaloIdentifier/CaloIdentifier/TileTBID.h:65
TileCellContainerCnv::NCELLMBTS
static const int NCELLMBTS
Definition: TileCellContainerCnv.h:43
TileContainer
Definition: TileContainer.h:38
TileCellContainerCnv::initIdToIndex
void initIdToIndex()
Definition: TileCellContainerCnv.cxx:114
TileCellContainer.h