|
ATLAS Offline Software
|
Go to the documentation of this file.
52 m_trkseltool(this,
""),
53 m_trkIsolationTool(this,
""),
54 m_caloIsolationTool(this,
"")
95 ATH_MSG_ERROR(
"Configured to use modified topocluster collection but \"CaloCalTopoClusters\" collection specified!");
96 return StatusCode::FAILURE;
98 ATH_MSG_INFO(
"Configured to use standard topocluster collection.");
104 ATH_MSG_ERROR(
"Configured to use topocluster collection \"" <<
m_clcollKey.key() <<
"\", but modified clusters flag not set!");
105 return StatusCode::FAILURE;
121 if(
m_pfcollKey.key() ==
"JetETMissParticleFlowObjects") {
123 ATH_MSG_ERROR(
"This is no longer supported -- please use the CHSParticleFlowObjects collection, which has the four-vector corrections built in.");
124 return StatusCode::FAILURE;
131 std::string hybridname =
"Etmiss";
138 return StatusCode::SUCCESS;
145 ATH_MSG_WARNING(
"Invalid pointer to MissingETContainer supplied! Abort.");
146 return StatusCode::FAILURE;
150 ATH_MSG_WARNING(
"Invalid pointer to MissingETAssociationMap supplied! Abort.");
151 return StatusCode::FAILURE;
154 ATH_MSG_WARNING(
"Attempting to build PFlow MET without a track collection.");
155 return StatusCode::FAILURE;
167 if (!topoclusterCont.
isValid()) {
169 return StatusCode::FAILURE;
172 ATH_MSG_DEBUG(
"Successfully retrieved topocluster collection");
174 std::string hybridname =
"Etmiss";
183 ATH_MSG_WARNING(
"Trying to do something currently unsupported- lets abort");
184 return StatusCode::FAILURE;
238 return StatusCode::FAILURE;
241 ATH_MSG_DEBUG(
"Successfully retrieved primary vertex container");
244 for(
const auto *
const vx : *vxCont) {
247 {constits.
pv = vx;
break;}
250 ATH_MSG_DEBUG(
"Failed to find primary vertex! Reject all tracks.");
260 return StatusCode::FAILURE;
267 constits.
feCont =
nullptr;
271 return StatusCode::FAILURE;
281 return StatusCode::FAILURE;
288 return StatusCode::SUCCESS;
302 return StatusCode::FAILURE;
305 std::vector<const IParticle*> constlist;
306 constlist.reserve(20);
307 std::vector<const IParticle*> hardObjs_tmp;
308 for(
const auto *
const obj : *hardObjs) {
309 hardObjs_tmp.push_back(
obj);
311 std::sort(hardObjs_tmp.begin(),hardObjs_tmp.end(),
greaterPt);
313 for(
const auto&
obj : hardObjs_tmp) {
320 ATH_MSG_ERROR(
"Attempting to build FlowElement MET without a track collection.");
321 return StatusCode::FAILURE;
323 std::map<const IParticle*, MissingETBase::Types::constvec_t> momentumOverride;
330 ATH_MSG_DEBUG(
"Attempting to build PFlow without a track collection.");
331 return StatusCode::FAILURE;
333 std::map<const IParticle*,MissingETBase::Types::constvec_t> momentumOverride;
339 std::vector<const IParticle*> tclist;
343 for(
const auto&
cl : tclist) {
345 constlist.push_back((*constits.
tcCont)[
cl->index()]);
354 return StatusCode::SUCCESS;
362 if (!vx)
return false;
363 return static_cast<bool> (
m_trkseltool->accept( *trk, vx ));
381 std::vector<Iso::IsolationType> trkIsoCones;
393 std::vector<Iso::IsolationType> caloIsoCones;
403 caloIsoCorr_coreCone);
404 if(!caloIsoResult.
etcones.empty()) {
408 ATH_MSG_WARNING(
"isGoodEoverP: Failed to retrieve the isolation core correction (etcone10)! Setting etcone10=0");
418 if(Rerr>0.4)
return false;
419 else if (
EoverP<0.65 && ((
EoverP>0.1 && Rerr>0.05) || Rerr>0.1))
return false;
423 if(
etcone10/trkptsum<0.6 && trk->
pt()/trkptsum>0.6)
return false;
virtual double pt() const override final
The transverse momentum ( ) of the particle.
@ coreEnergy
energy stored for this correction
const_pointer_type cptr()
Dereference the pointer.
DataVector adapter that acts like it holds const pointers.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
@ coreTrackPtr
tracks pointer
Iso::IsolationTrackCorrectionBitset trackbitset
@ ptcone20
Track isolation.
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
#define ATH_MSG_VERBOSE(x)
const std::string & key() const
Return the StoreGate ID for the referenced object.
static bool insert(MissingETComponentMap *pMap, const MissingET *pMET, const IParticle *pPart, MissingETBase::Types::weight_t weight=MissingETBase::Types::weight_t())
Insert contributing signal or physics object by pointer, with optional kinematic weight object.
@ etcone20
Calorimeter isolation.
::StatusCode StatusCode
StatusCode definition for legacy code.
std::map< Iso::IsolationCaloCorrection, std::map< Iso::IsolationCorrectionParameter, float > > coreCorrections
float z() const
Returns the z position.
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
Container for xAOD::MissingET_v1 objects.
float qOverP() const
Returns the parameter.
const ParametersCovMatrix_t definingParametersCovMatrix() const
Returns the 5x5 symmetric matrix containing the defining parameters covariance matrix.
double error(const Amg::MatrixX &mat, int index)
return diagonal error of the matrix caller should ensure the matrix is symmetric and the index is in ...
std::vector< float > etcones
@ coreCone
core energy (in dR<0.1).
std::vector< float > ptcones
struct TBPatternUnitContext Muon
Class describing a Vertex.
#define ATH_MSG_WARNING(x)
Class describing a TrackParticle.
cl
print [x.__class__ for x in toList(dqregion.getSubRegions()) ]
size_type size() const noexcept
Returns the number of elements in the collection.
Iso::IsolationCaloCorrectionBitset calobitset