ATLAS Offline Software
TileSamplingFractionCondAlg.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TILECONDITIONS_TILESAMPLINGFRACTIONCONDALG_H
6 #define TILECONDITIONS_TILESAMPLINGFRACTIONCONDALG_H
7 
8 #include "./TileCondAlg.h"
11 
16 class TileSamplingFractionCondAlg: public TileCondAlg<TileSamplingFraction, TileCalibDrawerFlt> {
17 
18  public:
19 
21 
22  protected:
23 
27  virtual StatusCode checkData(const TileCalibData<TileCalibDrawerFlt>& calibData) const override {
28 
29  if (m_g4Version > 0) {
30  // G4 version used to calculate Tile sampling fraction is stored in AUX01 calib drawer in DB
31  float g4Version = calibData.getCalibDrawer(1)->getData(0, 0, 0);
32  if (m_g4Version != g4Version) {
33  ATH_MSG_ERROR("Geant4 simulation version (" << m_g4Version / 100
34  << ") is not compatible with version used to calculate Tile SF (" << g4Version / 100 << ")");
35  return StatusCode::FAILURE;
36  }
37  }
38  return StatusCode::SUCCESS;
39  };
40 
41  private:
42 
46  Gaudi::Property<float> m_g4Version{this, "G4Version", -1,
47  "G4 simulation version to check compatibility with version used to calculate Tile SF (DB), (-1 => not check)"};
48 };
49 
50 
51 #endif // TILECONDITIONS_TILESAMPLINGFRACTIONCONDALG_H
TileCalibDrawerFlt.h
TileSamplingFractionCondAlg
Definition: TileSamplingFractionCondAlg.h:16
TileCalibData
Templated condition object to keep TileCalibDrawers.
Definition: TileCalibData.h:26
TileCondAlg
Condition algorithm to prepare Tile conditions object and put it into conditions store.
Definition: TileCondAlg.h:21
TileCalibData::getCalibDrawer
const T * getCalibDrawer(unsigned int drawerIdx) const
Return TileCalibDrawer of type T.
Definition: TileCalibData.cxx:26
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
TileSamplingFractionCondAlg::m_g4Version
Gaudi::Property< float > m_g4Version
Geant4 simulation version to check compatibility with version used to calculate SF (DB)
Definition: TileSamplingFractionCondAlg.h:46
TileSamplingFraction.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TileCalibDrawerDat::getData
T getData(unsigned int channel, unsigned int adc, unsigned int idx) const
Returns a single T belonging to a channel/ADC.
Definition: TileCalibDrawerDat.h:140
TileCondAlg.h
TileSamplingFractionCondAlg::checkData
virtual StatusCode checkData(const TileCalibData< TileCalibDrawerFlt > &calibData) const override
Check compatibility of Geant4 version from input file with version used to calculate SF (DB)
Definition: TileSamplingFractionCondAlg.h:27