Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
Go to the documentation of this file.
37 if(
this == &rhs)
return *
this;
59 return genvecP4().E();
108 acc(*
this) |= 1<<
static_cast<unsigned int>(
author);
113 return (acc(*
this)& (1<<
static_cast<unsigned int>(
author)));
125 value = ( *acc )( *this );
131 if (!
el.isValid())
return false;
132 return (*el)->summaryValue(
value,information);
138 ( *acc )( *this ) =
value;
145 if (!
el.isValid())
return false;
146 return (*el)->summaryValue(
value,information);
151 return ( *acc )( *this );
156 return ( *acc )( *this );
161 if( ! acc )
return false;
162 if( ! acc->isAvailable( *
this ) )
return false;
165 value = ( *acc )( *this );
171 return ( *acc )( *this );
178 ( *acc )( *this ) =
value;
183 if( ! acc )
return false;
184 if( ! acc->isAvailable( *
this ) )
return false;
187 value = ( *acc )( *this );
193 return ( *acc )( *this );
198 if( ! acc )
throw std::runtime_error(
"Muon_v1::setParameter - no float accessor for paramdef number: "+
std::to_string(information));
201 ( *acc )( *this ) =
value;
206 if( ! acc )
return false;
207 if( ! acc->isAvailable( *
this ) )
return false;
210 value = ( *acc )( *this );
216 return ( *acc )( *this );
221 if( ! acc )
throw std::runtime_error(
"Muon_v1::setParameter - no int accessor for paramdef number: "+
std::to_string(information));
224 ( *acc )( *this ) =
value;
230 return static_cast<Quality
>(temp&3);
236 acc( *
this ) = acc( *
this ) & ~(0x7);
237 acc( *
this ) |= temp;
251 if (
value) acc( *
this ) |= 8;
252 else acc( *
this ) &= 247;
264 if( ! acc )
return false;
265 if( !acc->isAvailable( *
this) )
return false;
268 value = ( *acc )( *this );
274 if( !acc )
throw std::runtime_error(
"Unknown/Unavailable Isolation type requested" );
275 return ( *acc )( *this );
280 if( !acc )
throw std::runtime_error(
"Unknown/Unavailable Isolation type requested" );
282 ( *acc )( *this ) =
value;
289 if( !acc.isAvailable( *
this) )
return false;
291 value = acc( *
this );
299 if( !acc.isAvailable( *
this) )
throw std::runtime_error(
"Unknown/Unavailable Isolation correction requested" );
307 acc( *
this ) =
value;
313 if( !acc.isAvailable( *
this) )
return false;
315 value = acc( *
this );
322 if( !acc.isAvailable( *
this) )
throw std::runtime_error(
"Unknown/Unavailable Isolation correction requested" );
329 acc( *
this ) =
value;
335 if( !acc.isAvailable( *
this) )
return false;
337 value = std::bitset<32>(acc( *
this ));
343 if( !acc.isAvailable( *
this) )
throw std::runtime_error(
"Unknown/Unavailable Isolation BitSet requested" );
344 return std::bitset<32>( acc( *
this ) );
350 acc( *
this ) =
value;
361 MuonType
type = muonType();
364 case SiliconAssociatedForwardMuon :
365 return combinedTrackParticleLink();
369 return inDetTrackParticleLink();
371 case MuonStandAlone :
377 if (
acc1.isAvailable( *
this ) &&
acc1( *this ).isValid() ) {
378 return acc1( *
this );
382 if (
acc2.isAvailable( *
this ) &&
acc2( *this ).isValid() ) {
383 return acc2( *
this );
387 if (
acc3.isAvailable( *
this ) &&
acc3( *this ).isValid()) {
388 return acc3( *
this );
391 throw std::runtime_error(
"Type is MuonStandAlone but no available link to return!");
394 throw std::runtime_error(
"Unknown primary type - not sure which track particle to return!");
405 case SiliconAssociatedForwardMuon :
408 if( ! acc.isAvailable( *
this ) )
return nullptr;
411 if( ! link.
isValid() )
return nullptr;
419 if( ! acc.isAvailable( *
this ) )
return nullptr;
422 if( ! link.
isValid() )
return nullptr;
426 case MuonStandAlone :
430 if (
acc1.isAvailable( *
this ) ) {
432 if ( link.
isValid() )
return *link;
437 if (
acc2.isAvailable( *
this ) ) {
439 if ( link.
isValid() )
return *link;
444 if (
acc3.isAvailable( *
this ) ) {
446 if ( link.
isValid() )
return *link;
464 case CombinedTrackParticle :
467 case InnerDetectorTrackParticle :
470 case MuonSpectrometerTrackParticle :
473 case ExtrapolatedMuonSpectrometerTrackParticle :
476 case MSOnlyExtrapolatedMuonSpectrometerTrackParticle :
480 throw std::runtime_error(
"Unknown TrackParticleType - not sure which track particle to return!");
494 if( !
el.isValid() ) {
507 case InnerDetectorTrackParticle :
511 case MuonSpectrometerTrackParticle :
515 case CombinedTrackParticle :
519 case ExtrapolatedMuonSpectrometerTrackParticle :
523 case MSOnlyExtrapolatedMuonSpectrometerTrackParticle :
529 throw std::runtime_error(
"Unknown or Primary TrackParticleType - not sure which track particle to set!");
537 if( ! acc.isAvailable( *
this ) ) {
548 if( !
el.isValid() ) {
565 if( ! muonSegmentsAcc.isAvailable( *
this ) ) {
568 return muonSegmentsAcc(*this).size();
574 if( ! muonSegmentsAcc.isAvailable( *
this ) ) {
578 return muonSegmentsAcc(*this).at(
i);
586 if( !
el.isValid() ) {
const ElementLink< TrackParticleContainer > & primaryTrackParticleLink() const
AUXSTORE_PRIMITIVE_SETTER_AND_GETTER(BTagging_v1, float, IP2D_pb, setIP2D_pb) AUXSTORE_PRIMITIVE_SETTER_AND_GETTER(BTagging_v1
virtual double rapidity() const
The true rapidity (y) of the particle.
const SG::AuxElement::Accessor< float > * trackSummaryAccessorV1< float >(xAOD::SummaryType type)
bool isolation(float &value, const Iso::IsolationType information) const
Accessor for Isolation values.
const ElementLink< TrackParticleContainer > & msOnlyExtrapolatedMuonSpectrometerTrackParticleLink() const
Returns an ElementLink to the MS-only Extrapolated Muon Spectrometer TrackParticle used in identifica...
const TrackParticle * trackParticle(TrackParticleType type) const
Returns a pointer (which can be NULL) to the TrackParticle used in identification of this muon.
virtual FourMom_t p4() const
The full 4-momentum of the particle.
const MuonSegment * muonSegment(size_t i) const
Returns a pointer to the specified MuonSegment.
IsolationFlavour
Enumeration for different ways of calculating isolation in xAOD files.
virtual double phi() const
The azimuthal angle ( ) of the particle.
Quality quality() const
The Muon Quality information is defined on the MCP twiki: https://twiki.cern.ch/twiki/bin/view/Atlas/...
void setTrackParticleLink(TrackParticleType type, const ElementLink< TrackParticleContainer > &link)
Set method for TrackParticle links.
virtual double eta() const
The pseudorapidity ( ) of the particle.
int intParameter(const ParamDef parameter) const
Same as bool parameter(float& value, const ParamDef ¶meter) const, but without check (will throw ...
Class describing a MuonSegment.
void setP4(double pt, double eta, double phi)
Set method for IParticle values.
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
setRcore setEtHad setFside pt
const SG::AuxElement::Accessor< uint8_t > * trackSummaryAccessorV1< uint8_t >(xAOD::SummaryType type)
bool const RAWDATA *ch2 const
virtual ~Muon_v1()
Destructor.
Class providing the definition of the 4-vector interface.
MuonSummaryType
Enumerates the different types of information stored in Summary.
void setPassesIDCuts(bool)
Set whether passes the MCP ID hit cuts.
bool isValid() const
Test to see if the link can be dereferenced.
IsolationCorrectionParameter
void setIsolation(float value, const Iso::IsolationType information)
Set method for Isolation values.
const SG::AuxElement::Accessor< float > getIsolationCorrectionAccessor(Iso::IsolationFlavour type, Iso::IsolationCaloCorrection corr, Iso::IsolationCorrectionParameter param)
void setParameter(float value, const ParamDef parameter)
Set method for parameter values.
const SG::AuxElement::Accessor< uint8_t > * muonTrackSummaryAccessorV1(xAOD::MuonSummaryType type)
Helper function for managing MuonTrackSummary Accessor objects.
const ElementLink< TrackParticleContainer > & trackParticleLink(TrackParticleType type) const
Returns an ElementLink to the TrackParticle used in identification of this muon.
bool isolationTrackCorrection(float &value, const Iso::IsolationFlavour flavour, const Iso::IsolationTrackCorrection type) const
Accessor for Isolation Track correction.
SG::AuxElement::Accessor< T > Accessor
Description of a calorimeter cluster.
Muon_v1()
inject the enums
SummaryType
Enumerates the different types of information stored in Summary.
AUXSTORE_PRIMITIVE_SETTER_WITH_CAST(CompositeParticle_v1, float, double, px, setPx) AUXSTORE_PRIMITIVE_SETTER_WITH_CAST(CompositeParticle_v1
Exception — Attempt to retrieve nonexistent aux data item.
IParticle::FourMom_t FourMom_t
Definition of the 4-momentum type.
bool isolationCorrectionBitset(std::bitset< 32 > &value, const Iso::IsolationFlavour flavour) const
Accessor for Isolation corection Bitset.
bool summaryValue(uint8_t &value, const SummaryType information) const
Accessor for TrackSummary values (in most cases, retrieved from the 'primary' TrackParticle - though ...
IsolationType
Overall enumeration for isolation types in xAOD files.
AUXSTORE_PRIMITIVE_GETTER_WITH_CAST(Muon_v1, uint8_t, Muon_v1::EnergyLossType, energyLossType) AUXSTORE_PRIMITIVE_SETTER_WITH_CAST(Muon_v1
bool parameter(float &value, const ParamDef parameter) const
Get a parameter for this Muon - momentumBalanceSignificance for example.
const ElementLink< TrackParticleContainer > & muonSpectrometerTrackParticleLink() const
Returns an ElementLink to the InnerDetector TrackParticle used in identification of this muon.
virtual double pt() const
The transverse momentum ( ) of the particle.
float floatSummaryValue(const SummaryType information) const
Same as bool summaryValue(float& value, const SummaryType &information) const , but without check (wi...
virtual double m() const
The invariant mass of the particle..
const SG::AuxElement::Accessor< float > * getIsolationAccessor(Iso::IsolationType type)
Get the Accessor object for a given isolation type.
Muon_v1 & operator=(const Muon_v1 &rhs)
Assignment operator.
float floatParameter(const ParamDef parameter) const
Same as bool parameter(float& value, const ParamDef ¶meter) const, but without check (will throw ...
virtual Type::ObjectType type() const
The type of the object as a simple enumeration.
float uint8MuonSummaryValue(const MuonSummaryType information) const
Same as bool summaryValue(uint8_t& value, const MuonSummaryType &information) const,...
bool isolationCaloCorrection(float &value, const Iso::IsolationFlavour flavour, const Iso::IsolationCaloCorrection type, const Iso::IsolationCorrectionParameter param) const
Accessor for Isolation Calo correction.
bool isAuthor(const Author author) const
Returns 'true' if 'author' is the an author of this muon.
ElementLink implementation for ROOT usage.
bool passesIDCuts() const
Returns true if this Muon passes the MCP ID hit cuts (see the MCP twiki for definitions: https://twik...
uint8_t uint8SummaryValue(const SummaryType information) const
Same as bool summaryValue(uint8_t& value, const SummaryType &information) const, but without check (w...
std::string to_string(const DetectorType &type)
bool setIsolationCorrectionBitset(uint32_t value, const Iso::IsolationFlavour flavour)
Set method for Isolation corection Bitset.
void makePrivateStore()
Create a new (empty) private store for this object.
struct TBPatternUnitContext Muon
bool hasStore() const
Return true if this object has an associated store.
const ElementLink< TrackParticleContainer > & inDetTrackParticleLink() const
Returns an ElementLink to the InnerDetector TrackParticle used in identification of this muon.
IsolationCaloCorrection
Enumeration for different ways of correcting isolation in xAOD files.
void setSummaryValue(uint8_t value, const SummaryType information)
Set method for storing TrackSummary SummaryType information on the Muon (see Aux to see which is alre...
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiM4D< double > > GenVecFourMom_t
Base 4 Momentum type for Muon.
AUXSTORE_OBJECT_GETTER(TrigComposite_v1, std::vector< std::string >, linkColNames) AUXSTORE_OBJECT_GETTER(TrigComposite_v1
const SG::AuxElement::Accessor< uint32_t > getIsolationCorrectionBitsetAccessor(Iso::IsolationFlavour type)
Returns an accessor for the correction bitset corresponding to this IsolationType.
bool setIsolationCaloCorrection(float value, const Iso::IsolationFlavour flavour, const Iso::IsolationCaloCorrection type, const Iso::IsolationCorrectionParameter param)
set method for Isolation Calo Corrections.
GenVecFourMom_t genvecP4() const
The full 4-momentum of the particle : GenVector.
const ElementLink< MuonSegmentContainer > & muonSegmentLink(size_t i) const
Returns a link to the specified MuonSegment.
const ElementLink< TrackParticleContainer > & extrapolatedMuonSpectrometerTrackParticleLink() const
Returns an ElementLink to the Extrapolated Muon Spectrometer TrackParticle used in identification of ...
const TrackParticle * primaryTrackParticle() const
Returns a pointer (which should not usually be NULL, but might be if the muon has been stripped of in...
Class describing a TrackParticle.
const SG::AuxVectorData * container() const
Return the container holding this element.
bool setIsolationTrackCorrection(float value, const Iso::IsolationFlavour flavour, const Iso::IsolationTrackCorrection type)
Set method for Isolation Track Corrections.
ObjectType
Type of objects that have a representation in the xAOD EDM.
setBGCode setTAP setLVL2ErrorBits bool
IParticle & operator=(const IParticle &)=default
const ElementLink< TrackParticleContainer > & combinedTrackParticleLink() const
Returns an ElementLink to the InnerDetector TrackParticle used in identification of this muon.
AUXSTORE_OBJECT_SETTER_AND_GETTER(CaloRings_v1, RingSetLinks, ringSetLinks, setRingSetLinks) unsigned CaloRings_v1
MuonType muonType() const