ATLAS Offline Software
Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
Muon::NSWCalibSmearingTool Class Reference

#include <NSWCalibSmearingTool.h>

Inheritance diagram for Muon::NSWCalibSmearingTool:
Collaboration diagram for Muon::NSWCalibSmearingTool:

Public Member Functions

 NSWCalibSmearingTool (const std::string &, const std::string &, const IInterface *)
 
virtual ~NSWCalibSmearingTool ()
 
virtual StatusCode initialize () override
 
virtual StatusCode isAccepted (const Identifier id, bool &accepted, CLHEP::HepRandomEngine *rndmEngine) const override
 
double getHighVoltage (Identifier id) const
 
StatusCode smearTimeAndCharge (const Identifier id, float &time, float &charge, bool &accepted, CLHEP::HepRandomEngine *rndmEngine) const override
 
StatusCode smearCharge (const Identifier id, float &charge, bool &accepted, CLHEP::HepRandomEngine *rndmEngine) const override
 
virtual StatusCode getGainFraction (const Identifier id, float &charge) override
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Static Public Member Functions

static const InterfaceID & interfaceID ()
 

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
 
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed. More...
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

bool getIdFields (const Identifier id, int &etaSector, int &phiSector, int &gasGap) const
 
bool getPCBIdentifier (const Identifier id, Identifier &pcb_id) const
 
double getMMEfficiencyFromHV (double hv) const
 
double getMMGainFractionFromHV (double hv) const
 
StatusCode readHighVoltagesStatus ()
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

ServiceHandle< Muon::IMuonIdHelperSvcm_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"}
 
Gaudi::Property< std::vector< double > > m_timeSmear {this, "TimeSmear" ,{8.,8.,8.,8.,8.,8.,8.,8.}}
 
Gaudi::Property< std::vector< double > > m_chargeSmear {this, "ChargeSmear" ,{0.,0.,0.,0.,0.,0.,0.,0.}}
 
Gaudi::Property< std::vector< double > > m_channelEfficiency {this, "ChannelEfficiency", {1.,1.,1.,1.,1.,1.,1.,1.}}
 
Gaudi::Property< std::vector< double > > m_clusterEfficiency {this, "ClusterEfficiency", {1.,1.,1.,1.,1.,1.,1.,1.}}
 
Gaudi::Property< std::vector< double > > m_gainFraction {this, "GainFraction", {1.,1.,1.,1.,1.,1.,1.,1.}}
 
Gaudi::Property< std::vector< bool > > m_phiSectors {this, "PhiSectors", {true,true,true,true,true,true,true,true}}
 
Gaudi::Property< std::vector< bool > > m_etaSectors {this, "EtaSectors", {}}
 
Gaudi::Property< bool > m_readEfficiencyFromFile {this, "ReadEfficiencyFromFile", false}
 
Gaudi::Property< bool > m_readGainFractionFromFile {this, "ReadGainFractionFromFile", false}
 
Gaudi::Property< std::string > m_fileName {this, "FileName", ""}
 
std::map< Identifier, float > m_hvMap
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

Definition at line 24 of file NSWCalibSmearingTool.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ NSWCalibSmearingTool()

Muon::NSWCalibSmearingTool::NSWCalibSmearingTool ( const std::string &  t,
const std::string &  n,
const IInterface *  p 
)

Definition at line 18 of file NSWCalibSmearingTool.cxx.

20  :
21  AthAlgTool(t,n,p)
22 {
23  declareInterface<INSWCalibSmearingTool>(this);
24 }

◆ ~NSWCalibSmearingTool()

virtual Muon::NSWCalibSmearingTool::~NSWCalibSmearingTool ( )
inlinevirtual

Definition at line 30 of file NSWCalibSmearingTool.h.

30 {};

Member Function Documentation

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyArrayType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKeyArray>

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleBase>

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleBase. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 245 of file AthCommonDataStore.h.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleKey. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 221 of file AthCommonDataStore.h.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This is the generic version, for types that do not derive from SG::VarHandleKey. It just forwards to the base class version of declareProperty.

Definition at line 333 of file AthCommonDataStore.h.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This dispatches to either the generic declareProperty or the one for VarHandle/Key/KeyArray.

Definition at line 352 of file AthCommonDataStore.h.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T > &  t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ detStore()

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

◆ evtStore() [1/2]

ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( ) const
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase &  ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ getGainFraction()

StatusCode Muon::NSWCalibSmearingTool::getGainFraction ( const Identifier  id,
float &  charge 
)
overridevirtual

Implements Muon::INSWCalibSmearingTool.

Definition at line 196 of file NSWCalibSmearingTool.cxx.

197 {
198  int etaSector = 0;
199  int phiSector = 0;
200  int gasGap = 0;
201 
202  if (!getIdFields(id,etaSector,phiSector,gasGap)) {
203  ATH_MSG_WARNING("Invalid identifier");
204  return StatusCode::SUCCESS;
205  }
206 
207  gainFraction = 1.0;
208 
210  if ( m_phiSectors.value()[phiSector-1] && m_etaSectors.value()[etaSector-1] ) {
211  gainFraction = m_gainFraction.value()[gasGap-1];
212  }
213  }
214  else {
215  float hv = getHighVoltage(id);
216  if(hv == -2.0) { // could not convert id to PCB id
217  return StatusCode::FAILURE;
218  }
219  else if(hv == -1.0) { // could not find PCB in HV map
220  gainFraction = 1;
221  }
222  else {
223  gainFraction=getMMGainFractionFromHV(hv);
224  ATH_MSG_DEBUG("Got gain fraction: "<< gainFraction << " for id " << m_idHelperSvc->toString(id));
225  }
226  }
227  return StatusCode::SUCCESS;
228 }

◆ getHighVoltage()

double NSWCalibSmearingTool::getHighVoltage ( Identifier  id) const

Definition at line 271 of file NSWCalibSmearingTool.cxx.

272 {
273  Identifier pcbId;
274  bool foundPCB = getPCBIdentifier(stripId,pcbId);
275  if ( !foundPCB ) {
276  ATH_MSG_ERROR("Identifier " << m_idHelperSvc->toString(stripId) << " not converted" );
277  return -2.0;
278  }
279 
280  double hv = -1.0;
281  std::map<Identifier,float>::const_iterator it = m_hvMap.find(pcbId);
282  if (it == m_hvMap.end() ) {
283  ATH_MSG_DEBUG("Identifier " << m_idHelperSvc->toString(pcbId) << " not found in the map" );
284  return -1.0;
285  }
286 
287  hv = (*it).second;
288  return hv;
289 }

◆ getIdFields()

bool NSWCalibSmearingTool::getIdFields ( const Identifier  id,
int &  etaSector,
int &  phiSector,
int &  gasGap 
) const
private

Definition at line 234 of file NSWCalibSmearingTool.cxx.

235 {
236  if ( m_idHelperSvc->isMM(id) ) {
237  int multilayer = m_idHelperSvc->mmIdHelper().multilayer(id);
238  gasGap = (multilayer-1)*4+m_idHelperSvc->mmIdHelper().gasGap(id);
239  etaSector = m_idHelperSvc->mmIdHelper().stationEta(id);
240  phiSector = m_idHelperSvc->mmIdHelper().stationPhi(id);
241  // transform the eta sector
242  etaSector < 0 ? etaSector = etaSector + 3 : etaSector = etaSector + 2;
243  }
244  else if ( m_idHelperSvc->issTgc(id) ) {
245  int multilayer = m_idHelperSvc->stgcIdHelper().multilayer(id);
246  gasGap = (multilayer-1)*4+m_idHelperSvc->stgcIdHelper().gasGap(id);
247  etaSector = m_idHelperSvc->stgcIdHelper().stationEta(id);
248  phiSector = m_idHelperSvc->stgcIdHelper().stationPhi(id);
249  // transform the eta sector
250  etaSector < 0 ? etaSector = etaSector + 4 : etaSector = etaSector + 3;
251  }
252  else {
253  ATH_MSG_WARNING("Wrong identifier: should be MM or STGC");
254  return false;
255  }
256 
257 
258  if ( phiSector < 1 || phiSector> (int) m_phiSectors.value().size()
259  || etaSector < (int) (-m_etaSectors.value().size()) || etaSector> (int) m_etaSectors.value().size() || etaSector==0
260  || gasGap < 1 || gasGap> (int) m_timeSmear.value().size() || gasGap>(int) m_chargeSmear.value().size() ) {
261  ATH_MSG_WARNING("Wrong phi, eta sector, or gasGap number: " << phiSector << " "
262  << etaSector << " " << gasGap << "Size of m_chargeSmear " << m_chargeSmear.value().size() << " size of m_etaSectors "<< m_etaSectors.value().size());
263  return false;
264  }
265 
266  return true;
267 }

◆ getMMEfficiencyFromHV()

double NSWCalibSmearingTool::getMMEfficiencyFromHV ( double  hv) const
private

Definition at line 294 of file NSWCalibSmearingTool.cxx.

295 {
296 
297  // sigmoid to paramtrize efficiency (initial values from BB5 measurements)
298  double eff = 1.0/(1+exp(-0.0551*(hv-510.54)));
299 
300  return eff;
301 }

◆ getMMGainFractionFromHV()

double NSWCalibSmearingTool::getMMGainFractionFromHV ( double  hv) const
private

Definition at line 305 of file NSWCalibSmearingTool.cxx.

306 {
307 
308  // initial values from BB5 measurements. Scale cluster charge with respect to 570 V
309  return std::exp(-8.87971 + 0.0224561 * hv) / std::exp(-8.87971 + 0.0224561 * 570);
310 
311 }

◆ getPCBIdentifier()

bool NSWCalibSmearingTool::getPCBIdentifier ( const Identifier  id,
Identifier pcb_id 
) const
private

Definition at line 318 of file NSWCalibSmearingTool.cxx.

319 {
320 
321  if ( m_idHelperSvc->isMM(id) ) {
322  // get the channel number
323  int channel = m_idHelperSvc->mmIdHelper().channel(id);
324  int pcb_strip = channel/1024;
325  pcb_strip = pcb_strip * 1024 + 512;
326 
327  int stationName = m_idHelperSvc->mmIdHelper().stationName(id);
328  int stationEta = m_idHelperSvc->mmIdHelper().stationEta(id);
329  int stationPhi = m_idHelperSvc->mmIdHelper().stationPhi(id);
330 
331  int multilayer = m_idHelperSvc->mmIdHelper().multilayer(id);
332  int gasGap = m_idHelperSvc->mmIdHelper().gasGap(id);
333 
334  pcb_id = m_idHelperSvc->mmIdHelper().channelID(stationName,stationEta,stationPhi,multilayer,gasGap,pcb_strip);
335  }
336  else {
337  ATH_MSG_WARNING("Requesting PCB id for STGC");
338  return false;
339  }
340 
341  return true;
342 }

◆ initialize()

StatusCode Muon::NSWCalibSmearingTool::initialize ( )
overridevirtual

Definition at line 26 of file NSWCalibSmearingTool.cxx.

27 {
28  ATH_MSG_DEBUG("In initialize()");
29  ATH_CHECK(m_idHelperSvc.retrieve());
30 
31  if ( !(m_idHelperSvc->hasMM() && m_idHelperSvc->hasSTGC() ) ) {
32  ATH_MSG_ERROR("MM or STGC not part of initialized detector layout");
33  return StatusCode::FAILURE;
34  }
35 
36 
39  }
40 
41  return StatusCode::SUCCESS;
42 }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ interfaceID()

static const InterfaceID& Muon::INSWCalibSmearingTool::interfaceID ( )
inlinestaticinherited

Definition at line 19 of file INSWCalibSmearingTool.h.

19 {static const InterfaceID IID_INSWCalibSmearingTool("Muon::INSWCalibSmearingTool",1,0); return IID_INSWCalibSmearingTool;}

◆ isAccepted()

StatusCode Muon::NSWCalibSmearingTool::isAccepted ( const Identifier  id,
bool &  accepted,
CLHEP::HepRandomEngine *  rndmEngine 
) const
overridevirtual

either efficiency per layer set via configuration, or read from file

check if a full hit can be accepted

Implements Muon::INSWCalibSmearingTool.

Definition at line 47 of file NSWCalibSmearingTool.cxx.

48 {
49  accepted = true;
50 
51  int etaSector = 0;
52  int phiSector = 0;
53  int gasGap = 0;
54 
55  if (!getIdFields(id,etaSector,phiSector,gasGap)) {
56  ATH_MSG_WARNING("Invalid identifier");
57  return StatusCode::SUCCESS;
58  }
59 
61  float efficiencyCut = 0.0;
63  efficiencyCut = m_clusterEfficiency.value()[gasGap-1];
64  }
65  else {
66  // get the efficiency from the HV map and the parametrization
67  Identifier pcb_id;
68  if ( !getPCBIdentifier(id, pcb_id) ) {
69  ATH_MSG_ERROR("Could not convert the id " << m_idHelperSvc->toString(id) << " to a PCB identifier" );
70  return StatusCode::FAILURE;
71  }
72 
73  // get the HV
74  std::map<Identifier,float>::const_iterator it = m_hvMap.find(pcb_id);
75  if ( it != m_hvMap.end() ) {
76  double hv = it->second;
77  efficiencyCut = getMMEfficiencyFromHV(hv);
78  }
79  else {
80  ATH_MSG_WARNING("PCB Id not found in the HV map " << m_idHelperSvc->toString(pcb_id));
81  accepted = true;
82  return StatusCode::SUCCESS;
83  }
84  }
85 
87  if ( CLHEP::RandFlat::shoot(rndmEngine, 0. , 1.) > efficiencyCut ) {
88  accepted = false;
89  }
90 
91  return StatusCode::SUCCESS;
92 
93 }

◆ msg() [1/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24  {
25  return this->msgStream();
26  }

◆ msg() [2/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( const MSG::Level  lvl) const
inlineinherited

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30  {
31  return this->msgLevel(lvl);
32  }

◆ outputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ readHighVoltagesStatus()

StatusCode NSWCalibSmearingTool::readHighVoltagesStatus ( )
private

PCB range is 1 to 5 for stations 1, 1 to 3 for stations 2

add the PCB to the map

Definition at line 347 of file NSWCalibSmearingTool.cxx.

348 {
349 
350  std::string fileNamesA[16] = {"A01.txt","A02.txt","A03.txt","A04.txt",
351  "A05.txt","A06.txt","A07.txt","A08.txt",
352  "A09.txt","A10.txt","A11.txt","A12.txt",
353  "A13.txt","A14.txt","A15.txt","A16.txt" };
354 
355  for (int ifile = 0 ; ifile<16 ; ++ifile) {
356 
357  std::string fileName = PathResolverFindCalibFile(Form("NSWCalibTools/210128_initial/%s", fileNamesA[ifile].c_str()));
358 
359  std::ifstream file(fileName,std::ios::in);
360  if ( !file.is_open() ) {
361  ATH_MSG_DEBUG("HV File " << fileNamesA[ifile] << " not available " );
362  continue;
363  }
364  ATH_MSG_INFO("Reading HV from configuration file: " << fileName);
365 
366  //LM sector
367  //Layer PCB HV_left HV_right HV_min
368  //LM1 - IP
369 
370  std::string line;
371  bool isLM,isSM,isIP,isHO;
372  int stationName,stationEta,stationPhi,multilayer,gasGap,HVval;
373  int side = 0;
374  std::string layerId[4] = {"L1","L2","L3","L4"};
375 
376  int endPCB=0;
377 
378  getline(file,line);
380  getline(file,line);
382 
383  while ( getline(file,line) ) {
385 
386  isIP=false;
387  isHO=false;
388 
389  std::string secName = fileNamesA[ifile].substr(0,2);
390 
391  if ( secName.substr(0,1)=="A" ) side = +1;
392  else if ( secName.substr(0,1)=="C" ) side = -1;
393  else {
394  ATH_MSG_ERROR("ERROR side not defined");
395  return StatusCode::FAILURE;
396  }
397  int phiSec = std::stoi(fileNamesA[ifile].substr(1,2));
398  stationPhi = (phiSec-1)/2+1;
399 
400  size_t fLM = line.find("LM");
401  size_t fSM = line.find("SM");
402  isLM = (fLM!=std::string::npos);
403  isSM = (fSM!=std::string::npos);
404 
405  // get layer 1 from the line with the module name
406  if ( isLM || isSM ) {
407  if ( isSM ) {
408  stationEta = side*std::stoi(line.substr(fSM+2,1));
409  }
410  else if ( isLM ) {
411  stationEta = side*std::stoi(line.substr(fLM+2,1));
412  }
413 
415  if (stationEta==1) endPCB=5;
416  else if (stationEta==2) endPCB=3;
417  else {
418  ATH_MSG_ERROR("wrong stationEta value = " << stationEta);
419  }
420 
421  isSM ? stationName=55 : stationName=56;
422 
423  std::size_t fIP = line.find("IP");
424  isIP = (fIP!=std::string::npos);
425  std::size_t fHO = line.find("HO");
426  isHO = (fHO!=std::string::npos);
427  if ( !isIP && !isHO ) {
428  ATH_MSG_ERROR("ERROR multilayer id not found (IP/HO) ");
429  return StatusCode::FAILURE;
430  }
431  else if ( isIP && isHO ) {
432  ATH_MSG_ERROR("ERROR multilayer id duplicated (IP and HO) ");
433  return StatusCode::FAILURE;
434  }
435  else if ( isIP ) {
436  multilayer = 1;
437  }
438  else if ( isHO ) {
439  multilayer = 2;
440  }
441 
442  // now read the various layers
443  //int ilayer = 1;
444  //int ipcb = 1;
445  for (int ilayer = 1; ilayer <= 4; ilayer++) {
446  for (int ipcb = 1; ipcb <= endPCB; ipcb++) {
447  getline(file,line);
449 
450  std::istringstream elem(line);
451  std::vector<std::string> elements;
452 
453  while(elem) {
454  std::string subs_elem;
455  elem >> subs_elem;
456  if (!subs_elem.empty()) elements.push_back(subs_elem);
457  }
458 
459  gasGap = std::stoi(elements[0]);
460  int readed_pcb = std::stoi(elements[1]);
461  if (gasGap != ilayer || readed_pcb != ipcb) {
462  ATH_MSG_ERROR("Layer or pcb wrong!");
463  return StatusCode::FAILURE;
464  }
465 
466  HVval=std::stoi(elements[4]);
467 
468  ATH_MSG_DEBUG("PCB done, stationName, stationEta, stationPhi, ml, layer, pcb, hv: "
469  << stationName<< " " << stationEta << " " << stationPhi << " " << multilayer << " "
470  << ilayer << " " << ipcb << " " << HVval );
471 
472  int chanNum = (ipcb-1)*1024+512;
474  Identifier pcbId = m_idHelperSvc->mmIdHelper().channelID(stationName,stationEta,stationPhi,
475  multilayer,ilayer,chanNum);
476  float hv = (float)HVval;
477  m_hvMap.insert(std::pair<Identifier,float>(pcbId,hv));
478 
479  }
480  if ( ilayer == 4 ) {
481  getline(file,line);
483  }
484  } // loop on the layers
485  }
486  }
487  } // loop on the files
488  return StatusCode::SUCCESS;
489 }

◆ renounce()

std::enable_if_t<std::is_void_v<std::result_of_t<decltype(&T::renounce)(T)> > && !std::is_base_of_v<SG::VarHandleKeyArray, T> && std::is_base_of_v<Gaudi::DataHandle, T>, void> AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T &  h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381  {
382  h.renounce();
383  PBASE::renounce (h);
384  }

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ smearCharge()

StatusCode Muon::NSWCalibSmearingTool::smearCharge ( const Identifier  id,
float &  charge,
bool &  accepted,
CLHEP::HepRandomEngine *  rndmEngine 
) const
overridevirtual

either efficiency per layer set via configuration, or read from file

Implements Muon::INSWCalibSmearingTool.

Definition at line 99 of file NSWCalibSmearingTool.cxx.

100 {
101 
102  ATH_MSG_DEBUG("Smearing the strips charge");
103 
104  int etaSector = 0;
105  int phiSector = 0;
106  int gasGap = 0;
107 
108  if (!getIdFields(id,etaSector,phiSector,gasGap)) {
109  ATH_MSG_WARNING("Invalid identifier");
110  return StatusCode::SUCCESS;
111  }
113 
114 
115  float efficiencyCut = 0.0;
117  efficiencyCut = m_clusterEfficiency.value()[gasGap-1];
118  }
119  else {
120  // get the efficiency from the HV map and the parametrization
121  Identifier pcb_id;
122  if ( !getPCBIdentifier(id, pcb_id) ) {
123  ATH_MSG_ERROR("Could not convert the id " << m_idHelperSvc->toString(id) << " to a PCB identifier" );
124  return StatusCode::FAILURE;
125  }
126  // get the HV
127  std::map<Identifier,float>::const_iterator it = m_hvMap.find(pcb_id);
128  if ( it != m_hvMap.end() ) {
129  double hv = it->second;
130  efficiencyCut = getMMEfficiencyFromHV(hv);
131  }
132  else {
133  ATH_MSG_WARNING("PCB Id not found in the HV map " << m_idHelperSvc->toString(pcb_id));
134  accepted = true;
135  return StatusCode::SUCCESS;
136  }
137  }
138 
139  if ( m_phiSectors.value()[phiSector-1] && m_etaSectors.value()[etaSector-1] ) {
140  // smear charge
141  double chargeSmear = m_chargeSmear.value()[gasGap-1];
142  charge = charge + CLHEP::RandGaussZiggurat::shoot(rndmEngine,0.0, chargeSmear);
143 
144  // check if the single strip can be accepted
145  accepted = true;
146  if ( CLHEP::RandFlat::shoot(rndmEngine, 0. , 1.) > efficiencyCut ) {
147  accepted = false;
148  }
149  }
150 
151  return StatusCode::SUCCESS;
152 }

◆ smearTimeAndCharge()

StatusCode Muon::NSWCalibSmearingTool::smearTimeAndCharge ( const Identifier  id,
float &  time,
float &  charge,
bool &  accepted,
CLHEP::HepRandomEngine *  rndmEngine 
) const
overridevirtual

Implements Muon::INSWCalibSmearingTool.

Definition at line 157 of file NSWCalibSmearingTool.cxx.

158 {
159 
160  if ( m_idHelperSvc->issTgc(id) ) {
161  ATH_MSG_ERROR("Can't smear time for the STGC's");
162  return StatusCode::FAILURE;
163  }
164 
165  int etaSector = 0;
166  int phiSector = 0;
167  int gasGap = 0;
168 
169  if (!getIdFields(id,etaSector,phiSector,gasGap)) {
170  ATH_MSG_WARNING("Invalid identifier");
171  return StatusCode::SUCCESS;
172  }
173 
174  if ( m_phiSectors.value()[phiSector-1] && m_etaSectors.value()[etaSector-1] ) {
175 
176  // smear time and charge
177  double timeSmear = m_timeSmear.value()[gasGap-1];
178  double chargeSmear = m_chargeSmear.value()[gasGap-1];
179 
180  time = time + CLHEP::RandGaussZiggurat::shoot(rndmEngine,0.0, timeSmear);
181  charge = charge + CLHEP::RandGaussZiggurat::shoot(rndmEngine,0.0, chargeSmear);
182 
183  // check if the RDO can be accepted
184  accepted = true;
185  if ( CLHEP::RandFlat::shoot(rndmEngine, 0. , 1.) > m_channelEfficiency.value()[gasGap-1] ) {
186  accepted = false;
187  }
188  }
189 
190  return StatusCode::SUCCESS;
191 }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase &  )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308  {
309  // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310  // << " size: " << m_vhka.size() << endmsg;
311  for (auto &a : m_vhka) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

Member Data Documentation

◆ m_channelEfficiency

Gaudi::Property<std::vector<double> > Muon::NSWCalibSmearingTool::m_channelEfficiency {this, "ChannelEfficiency", {1.,1.,1.,1.,1.,1.,1.,1.}}
private

Definition at line 60 of file NSWCalibSmearingTool.h.

◆ m_chargeSmear

Gaudi::Property<std::vector<double> > Muon::NSWCalibSmearingTool::m_chargeSmear {this, "ChargeSmear" ,{0.,0.,0.,0.,0.,0.,0.,0.}}
private

Definition at line 58 of file NSWCalibSmearingTool.h.

◆ m_clusterEfficiency

Gaudi::Property<std::vector<double> > Muon::NSWCalibSmearingTool::m_clusterEfficiency {this, "ClusterEfficiency", {1.,1.,1.,1.,1.,1.,1.,1.}}
private

Definition at line 61 of file NSWCalibSmearingTool.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_etaSectors

Gaudi::Property<std::vector<bool> > Muon::NSWCalibSmearingTool::m_etaSectors {this, "EtaSectors", {}}
private

Definition at line 66 of file NSWCalibSmearingTool.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_fileName

Gaudi::Property<std::string> Muon::NSWCalibSmearingTool::m_fileName {this, "FileName", ""}
private

Definition at line 70 of file NSWCalibSmearingTool.h.

◆ m_gainFraction

Gaudi::Property<std::vector<double> > Muon::NSWCalibSmearingTool::m_gainFraction {this, "GainFraction", {1.,1.,1.,1.,1.,1.,1.,1.}}
private

Definition at line 63 of file NSWCalibSmearingTool.h.

◆ m_hvMap

std::map<Identifier,float> Muon::NSWCalibSmearingTool::m_hvMap
private

Definition at line 73 of file NSWCalibSmearingTool.h.

◆ m_idHelperSvc

ServiceHandle<Muon::IMuonIdHelperSvc> Muon::NSWCalibSmearingTool::m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"}
private

Definition at line 55 of file NSWCalibSmearingTool.h.

◆ m_phiSectors

Gaudi::Property<std::vector<bool> > Muon::NSWCalibSmearingTool::m_phiSectors {this, "PhiSectors", {true,true,true,true,true,true,true,true}}
private

Definition at line 65 of file NSWCalibSmearingTool.h.

◆ m_readEfficiencyFromFile

Gaudi::Property<bool> Muon::NSWCalibSmearingTool::m_readEfficiencyFromFile {this, "ReadEfficiencyFromFile", false}
private

Definition at line 68 of file NSWCalibSmearingTool.h.

◆ m_readGainFractionFromFile

Gaudi::Property<bool> Muon::NSWCalibSmearingTool::m_readGainFractionFromFile {this, "ReadGainFractionFromFile", false}
private

Definition at line 69 of file NSWCalibSmearingTool.h.

◆ m_timeSmear

Gaudi::Property<std::vector<double> > Muon::NSWCalibSmearingTool::m_timeSmear {this, "TimeSmear" ,{8.,8.,8.,8.,8.,8.,8.,8.}}
private

Definition at line 57 of file NSWCalibSmearingTool.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files:
TestSUSYToolsAlg.ifile
ifile
Definition: TestSUSYToolsAlg.py:92
Muon::NSWCalibSmearingTool::getPCBIdentifier
bool getPCBIdentifier(const Identifier id, Identifier &pcb_id) const
Definition: NSWCalibSmearingTool.cxx:318
Muon::nsw::STGTPSegments::moduleIDBits::stationPhi
constexpr uint8_t stationPhi
station Phi 1 to 8
Definition: NSWSTGTPDecodeBitmaps.h:129
Muon::NSWCalibSmearingTool::m_phiSectors
Gaudi::Property< std::vector< bool > > m_phiSectors
Definition: NSWCalibSmearingTool.h:65
dumpTgcDigiDeadChambers.gasGap
list gasGap
Definition: dumpTgcDigiDeadChambers.py:33
checkFileSG.line
line
Definition: checkFileSG.py:75
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:28
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
Muon::NSWCalibSmearingTool::m_readEfficiencyFromFile
Gaudi::Property< bool > m_readEfficiencyFromFile
Definition: NSWCalibSmearingTool.h:68
dumpTgcDigiDeadChambers.stationName
dictionary stationName
Definition: dumpTgcDigiDeadChambers.py:30
Muon::NSWCalibSmearingTool::m_gainFraction
Gaudi::Property< std::vector< double > > m_gainFraction
Definition: NSWCalibSmearingTool.h:63
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
skel.it
it
Definition: skel.GENtoEVGEN.py:423
Muon::NSWCalibSmearingTool::readHighVoltagesStatus
StatusCode readHighVoltagesStatus()
Definition: NSWCalibSmearingTool.cxx:347
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
Muon::NSWCalibSmearingTool::m_timeSmear
Gaudi::Property< std::vector< double > > m_timeSmear
Definition: NSWCalibSmearingTool.h:57
drawFromPickle.exp
exp
Definition: drawFromPickle.py:36
Muon::NSWCalibSmearingTool::getMMGainFractionFromHV
double getMMGainFractionFromHV(double hv) const
Definition: NSWCalibSmearingTool.cxx:305
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
TRT::Hit::side
@ side
Definition: HitInfo.h:83
FortranAlgorithmOptions.fileName
fileName
Definition: FortranAlgorithmOptions.py:13
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
Muon::NSWCalibSmearingTool::m_channelEfficiency
Gaudi::Property< std::vector< double > > m_channelEfficiency
Definition: NSWCalibSmearingTool.h:60
checkCoolLatestUpdate.chanNum
chanNum
Definition: checkCoolLatestUpdate.py:27
Muon::NSWCalibSmearingTool::m_readGainFractionFromFile
Gaudi::Property< bool > m_readGainFractionFromFile
Definition: NSWCalibSmearingTool.h:69
beamspotman.n
n
Definition: beamspotman.py:731
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
file
TFile * file
Definition: tile_monitor.h:29
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
Muon::NSWCalibSmearingTool::getHighVoltage
double getHighVoltage(Identifier id) const
Definition: NSWCalibSmearingTool.cxx:271
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
Muon::NSWCalibSmearingTool::m_clusterEfficiency
Gaudi::Property< std::vector< double > > m_clusterEfficiency
Definition: NSWCalibSmearingTool.h:61
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
charge
double charge(const T &p)
Definition: AtlasPID.h:494
PathResolverFindCalibFile
std::string PathResolverFindCalibFile(const std::string &logical_file_name)
Definition: PathResolver.cxx:431
a
TList * a
Definition: liststreamerinfos.cxx:10
h
CaloSwCorrections.time
def time(flags, cells_name, *args, **kw)
Definition: CaloSwCorrections.py:242
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
Muon::NSWCalibSmearingTool::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: NSWCalibSmearingTool.h:55
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
Muon::NSWCalibSmearingTool::m_chargeSmear
Gaudi::Property< std::vector< double > > m_chargeSmear
Definition: NSWCalibSmearingTool.h:58
dqt_zlumi_alleff_HIST.eff
int eff
Definition: dqt_zlumi_alleff_HIST.py:113
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
Muon::nsw::STGTPSegments::moduleIDBits::stationEta
constexpr uint8_t stationEta
1 to 3
Definition: NSWSTGTPDecodeBitmaps.h:127
Muon::NSWCalibSmearingTool::m_hvMap
std::map< Identifier, float > m_hvMap
Definition: NSWCalibSmearingTool.h:73
Muon::NSWCalibSmearingTool::m_etaSectors
Gaudi::Property< std::vector< bool > > m_etaSectors
Definition: NSWCalibSmearingTool.h:66
Muon::NSWCalibSmearingTool::getMMEfficiencyFromHV
double getMMEfficiencyFromHV(double hv) const
Definition: NSWCalibSmearingTool.cxx:294
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
readCCLHist.float
float
Definition: readCCLHist.py:83
fitman.k
k
Definition: fitman.py:528
Muon::NSWCalibSmearingTool::getIdFields
bool getIdFields(const Identifier id, int &etaSector, int &phiSector, int &gasGap) const
Definition: NSWCalibSmearingTool.cxx:234