|
ATLAS Offline Software
|
#include <LArNoisyROTool.h>
|
| LArNoisyROTool (const std::string &type, const std::string &name, const IInterface *parent) |
| Constructor with parameters: More...
|
|
virtual | ~LArNoisyROTool () |
| Destructor: More...
|
|
virtual StatusCode | initialize () |
|
virtual StatusCode | finalize () |
|
virtual std::unique_ptr< LArNoisyROSummary > | process (const CaloCellContainer *, const std::set< unsigned int > *, const std::vector< HWIdentifier > *) const |
|
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 |
|
Definition at line 35 of file LArNoisyROTool.h.
◆ FEBEvtStatMap
◆ FEBEvtStatMapCstIt
◆ FEBEvtStatMapIt
◆ StoreGateSvc_t
◆ LArNoisyROTool() [1/2]
LArNoisyROTool::LArNoisyROTool |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
parent |
|
) |
| |
Constructor with parameters:
Definition at line 19 of file LArNoisyROTool.cxx.
26 declareInterface<ILArNoisyROTool >(
this);
◆ ~LArNoisyROTool()
LArNoisyROTool::~LArNoisyROTool |
( |
| ) |
|
|
virtualdefault |
◆ LArNoisyROTool() [2/2]
LArNoisyROTool::LArNoisyROTool |
( |
| ) |
|
|
private |
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation 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.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation 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.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation 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.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation 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.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ extraDeps_update_handler()
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
◆ finalize()
StatusCode LArNoisyROTool::finalize |
( |
| ) |
|
|
virtual |
◆ initialize()
StatusCode LArNoisyROTool::initialize |
( |
| ) |
|
|
virtual |
Definition at line 48 of file LArNoisyROTool.cxx.
51 ATH_MSG_FATAL(
"Configuration problem: LArNoisyROTool assumes that the QFactor cut to declare a channel noisy is softer than the QFactor cut to declare the quality saturated !" );
52 return StatusCode::FAILURE;
56 ATH_MSG_FATAL(
"Configuration problem: LArNoisyROTool assumes that MNBLooseCut is smaller than MNBTightCut" );
57 return StatusCode::FAILURE;
81 return StatusCode::SUCCESS;
◆ inputHandles()
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& LArNoisyROTool::interfaceID |
( |
| ) |
|
|
static |
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
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.
◆ partitionNumber()
◆ process()
Implements ILArNoisyROTool.
Definition at line 85 of file LArNoisyROTool.cxx.
89 if(!cellContainer)
return noisyRO;
97 unsigned int NsaturatedTightCutBarrelA = 0;
98 unsigned int NsaturatedTightCutBarrelC = 0;
99 unsigned int NsaturatedTightCutEMECA = 0;
100 unsigned int NsaturatedTightCutEMECC = 0;
105 for ( ; cellItr != cellItrEnd; ++cellItr )
127 if (
sideA ) { NsaturatedTightCutBarrelA++; }
128 else { NsaturatedTightCutBarrelC++; }
132 if (
sideA ) { NsaturatedTightCutEMECA++; }
133 else { NsaturatedTightCutEMECC++; }
146 FEBStats[FEBindex].addBadChannel(
channel);
151 uint8_t SatTightPartitions = 0;
156 bool badSaturatedTightCut = (SatTightPartitions != 0);
157 if ( badSaturatedTightCut ) noisyRO-> SetSatTightFlaggedPartitions(SatTightPartitions);
162 ATH_MSG_VERBOSE(
" candidate FEB " <<
it->first <<
" with " <<
it->second.badChannels() <<
" bad channels");
173 unsigned int associatedPSFEB =
m_mapPSFEB.find(
it->first)->second;
174 if (associatedPSFEB != 0){
175 if (FEBStats.count(associatedPSFEB) == 0) noisyRO->add_MNBTight_PsVeto_feb(
HWIdentifier(
it->first));
202 unsigned int NBadFEBEMECA = 0;
unsigned int NBadFEBEMECA_W = 0;
203 unsigned int NBadFEBEMECC = 0;
unsigned int NBadFEBEMECC_W = 0;
204 unsigned int NBadFEBEMBA = 0;
unsigned int NBadFEBEMBA_W = 0;
205 unsigned int NBadFEBEMBC = 0;
unsigned int NBadFEBEMBC_W = 0;
207 const std::vector<HWIdentifier>& badfebs = noisyRO->get_noisy_febs();
221 if (knownBadFEBs->find(int_id)!=knownBadFEBs->end())
weight=2;
226 NBadFEBEMBA_W = NBadFEBEMBA_W +
weight;
230 NBadFEBEMBC_W = NBadFEBEMBC_W +
weight;
237 NBadFEBEMECA_W = NBadFEBEMECA_W +
weight;
241 NBadFEBEMECC_W = NBadFEBEMECC_W +
weight;
252 bool badFEBFlag = (BadFEBPartitions != 0);
253 if ( badFEBFlag ) noisyRO-> SetBadFEBFlaggedPartitions(BadFEBPartitions);
255 uint8_t BadFEBPartitions_W = 0;
260 bool badFEBFlag_W = (BadFEBPartitions_W != 0);
261 if ( badFEBFlag_W ) noisyRO-> SetBadFEB_WFlaggedPartitions(BadFEBPartitions_W);
267 uint8_t MNBTight_PsVetoPartition=0;
270 std::array<unsigned,5> nTightMNBFEBSperPartition({{0,0,0,0,0}});
271 std::array<unsigned,5> nTight_PsVetoMNBFEBSperPartition({{0,0,0,0,0}});
272 std::array<unsigned,5> nLooseMNBFEBSperPartition({{0,0,0,0,0}});
276 if (statIt!=FEBStats.end()) {
281 unsigned int associatedPSFEB =
m_mapPSFEB.find(statIt->first)->second;
282 if (associatedPSFEB != 0){
283 if (FEBStats.count(associatedPSFEB) == 0) (nTight_PsVetoMNBFEBSperPartition[
partitionNumber(febid)])++;
295 for (
unsigned iP=0;iP<4;++iP) {
296 ATH_MSG_DEBUG(
"Partition " << iP <<
": Found " << nLooseMNBFEBSperPartition[iP] <<
" MNB FEBs with more than " <<
m_MNBLooseCut <<
" bad-Q channels" );
297 ATH_MSG_DEBUG(
"Partition " << iP <<
": Found " << nTightMNBFEBSperPartition[iP] <<
" MNB FEBs with more than " <<
m_MNBTightCut <<
" bad-Q channels" );
298 if (nLooseMNBFEBSperPartition[iP]>0) MNBLoosePartition |=
m_partitionMask[iP];
299 if (nTightMNBFEBSperPartition[iP]>0) MNBTightPartition |=
m_partitionMask[iP];
300 if (nTight_PsVetoMNBFEBSperPartition[iP]>0) MNBTight_PsVetoPartition |=
m_partitionMask[iP];
303 noisyRO->SetMNBTightFlaggedPartitions(MNBTightPartition);
304 noisyRO->SetMNBTight_PsVetoFlaggedPartitions(MNBTight_PsVetoPartition);
305 noisyRO->SetMNBLooseFlaggedPartitions(MNBLoosePartition);
◆ renounce()
◆ renounceArray()
◆ sysInitialize()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ m_BadChanPerFEB
unsigned int LArNoisyROTool::m_BadChanPerFEB |
|
private |
◆ m_BadChanPerPA
unsigned int LArNoisyROTool::m_BadChanPerPA = 0U |
|
private |
◆ m_cablingKey
◆ m_calo_id
◆ m_CellQualityCut
unsigned int LArNoisyROTool::m_CellQualityCut |
|
private |
◆ m_detStore
◆ m_evtStore
◆ m_ignore_front_innerwheel_cells
bool LArNoisyROTool::m_ignore_front_innerwheel_cells |
|
private |
◆ m_ignore_masked_cells
bool LArNoisyROTool::m_ignore_masked_cells |
|
private |
◆ m_mapPSFEB
std::unordered_map<unsigned int,unsigned int> LArNoisyROTool::m_mapPSFEB |
|
private |
◆ m_MinBadFEB
unsigned int LArNoisyROTool::m_MinBadFEB |
|
private |
◆ m_MNBLooseCut
unsigned int LArNoisyROTool::m_MNBLooseCut |
|
private |
◆ m_MNBTight_PsVetoCut
std::vector<unsigned int> LArNoisyROTool::m_MNBTight_PsVetoCut |
|
private |
◆ m_MNBTightCut
unsigned int LArNoisyROTool::m_MNBTightCut |
|
private |
◆ m_onlineID
◆ m_partitionMask
std::array<uint8_t,4> LArNoisyROTool::m_partitionMask |
|
private |
◆ m_SaturatedCellEnergyTightCut
float LArNoisyROTool::m_SaturatedCellEnergyTightCut |
|
private |
◆ m_SaturatedCellQualityCut
unsigned int LArNoisyROTool::m_SaturatedCellQualityCut |
|
private |
◆ m_SaturatedCellTightCut
unsigned int LArNoisyROTool::m_SaturatedCellTightCut |
|
private |
◆ m_SaturatedCellTightCutEvents
unsigned int LArNoisyROTool::m_SaturatedCellTightCutEvents = 0U |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
def retrieve(aClass, aKey=None)
Const iterator class for DataVector/DataList.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
bool is_em_endcap(const Identifier id) const
test if the id belongs to the EM Endcap
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Identifier32 get_identifier32() const
Get the 32-bit version Identifier, will be invalid if >32 bits needed.
std::vector< SG::VarHandleKeyArray * > m_vhka
id_iterator feb_begin() const
Returns an iterator pointing to a feb identifier collection.
#define ATH_MSG_VERBOSE(x)
int barrel_ec(const HWIdentifier id) const
Return the position barrel or endcap of a hardware cell identifier: barrel_ec = [0,...
value_type get_compact() const
Get the compact id.
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual void setOwner(IDataHandleHolder *o)=0
bool is_em(const Identifier id) const
test if the id belongs to LArEM
int channel(const HWIdentifier id) const
Return the channel number of a hardware cell identifier channel = [0,127] in all FEB.
bool isEMECchannel(const HWIdentifier id) const override final
int sampling(const Identifier id) const
LAr field values (NOT_VALID == invalid request)
HWIdentifier channel_Id(int barrel_ec, int pos_neg, int feedthrough, int slot, int channel) const
create channel identifier from fields
bool is_em_endcap_inner(const Identifier id) const
test if the id belongs to the EM Endcap inner wheel
int pos_neg(const HWIdentifier id) const
Return the side of a hardware cell identifier pos_neg = [0,1] positive-side or negative-side Barrel...
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
HWIdentifier feb_Id(int barrel_ec, int pos_neg, int feedthrough, int slot) const
Create feb_Id from fields.
unsigned constexpr int sideA
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
id_iterator feb_end() const
bool is_em_barrel(const Identifier id) const
test if the id belongs to the EM barrel
StatusCode initialize(bool used=true)
bool isEMBchannel(const HWIdentifier id) const
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
int feedthrough(const HWIdentifier id) const
Return the feedthrough of a hardware cell identifier : feedthrough = [0,31] Barrel - A/C side or H/...
Data object for each calorimeter readout cell.
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
std::string channel_name(const HWIdentifier id) const
Return a string corresponding to a feedthrough name given an identifier.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
Summary information for noisy LAr preamp / FEBs.