18 const std::string& name,
19 const IInterface* parent )
20 : base_class(
type, name, parent ),
31 ATH_MSG_ERROR(
" There are no cuts set (EtaBins property is an empty list)" );
32 return StatusCode::FAILURE;
35 unsigned int nEtaBin =
m_etabin.size();
36#define CHECK_SIZE( __n) if ( m_##__n.size() != (nEtaBin - 1) ) \
37 { ATH_MSG_DEBUG(" __n size is " << m_##__n.size() << " but needs to be " << (nEtaBin - 1) ); return StatusCode::FAILURE; }
50 return StatusCode::SUCCESS;
69 float dEta(0), dPhi(0),
eta(0),
phi(0), eT_Cluster(0);
71 auto roiDescriptor = input.roi;
74 if ( fabs( roiDescriptor->eta() ) > 2.6 ) {
75 ATH_MSG_DEBUG(
"REJECT The cluster had eta coordinates beyond the EM fiducial volume : " << roiDescriptor->eta() <<
"; stop the chain now" );
82 <<
": Eta = " << roiDescriptor->eta()
83 <<
", Phi = " << roiDescriptor->phi() );
86 double etaRef = roiDescriptor->eta();
87 double phiRef = roiDescriptor->phi();
90 if ( fabs( phiRef ) >
M_PI ) phiRef -= 2*
M_PI;
93 auto pClus = input.cluster;
97 float absEta = fabs( pClus->eta() );
100 dEta = pClus->eta() - etaRef;
102 dPhi = fabs( pClus->phi() - phiRef );
103 dPhi = ( dPhi <
M_PI ? dPhi : 2*
M_PI - dPhi );
104 eT_Cluster = pClus->et();
107 <<
" roi eta=" << etaRef <<
" DeltaEta=" << dEta
120 <<
" roi phi="<< phiRef <<
" DeltaPhi="<< dPhi
132 if ( cutIndex == -1 ) {
141 ATH_MSG_DEBUG(
"PrecisionCaloCluster: ET_em=" << eT_Cluster <<
" cut: >" <<
m_eTthr[cutIndex] );
142 if ( eT_Cluster <
m_eTthr[cutIndex] ) {
146 mon_eT_Cluster = eT_Cluster;
159 const float absEta = std::abs(
eta);
161 auto binIterator = std::adjacent_find(
m_etabin.begin(),
m_etabin.end(), [=](
float left,
float right){ return left < absEta and absEta < right; } );
162 if ( binIterator ==
m_etabin.end() ) {
165 return binIterator -
m_etabin.begin();
170 for (
auto& i: input ) {
177 return StatusCode::SUCCESS;
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
#define CHECK(...)
Evaluate an expression and check for errors.
Header file to be included by clients of the Monitored infrastructure.
TrigCompositeUtils::DecisionID numeric() const
numeric ID
Group of local monitoring quantities and retain correlation when filling histograms
Declare a monitored scalar variable.
It used to be useful piece of code for replacing actual SG with other store of similar functionality ...
bool passed(DecisionID id, const DecisionIDContainer &idSet)
checks if required decision ID is in the set of IDs in the container
void addDecisionID(DecisionID id, Decision *d)
Appends the decision (given as ID) to the decision object.