|
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;
266 if (
value) acc( *
this ) |= 16;
267 else acc( *
this ) &= 239;
282 if( ! acc )
return false;
283 if( !acc->isAvailable( *
this) )
return false;
286 value = ( *acc )( *this );
292 if( !acc )
throw std::runtime_error(
"Unknown/Unavailable Isolation type requested" );
293 return ( *acc )( *this );
298 if( !acc )
throw std::runtime_error(
"Unknown/Unavailable Isolation type requested" );
300 ( *acc )( *this ) =
value;
307 if( !acc.isAvailable( *
this) )
return false;
309 value = acc( *
this );
317 if( !acc.isAvailable( *
this) )
throw std::runtime_error(
"Unknown/Unavailable Isolation correction requested" );
325 acc( *
this ) =
value;
331 if( !acc.isAvailable( *
this) )
return false;
333 value = acc( *
this );
340 if( !acc.isAvailable( *
this) )
throw std::runtime_error(
"Unknown/Unavailable Isolation correction requested" );
347 acc( *
this ) =
value;
353 if( !acc.isAvailable( *
this) )
return false;
355 value = std::bitset<32>(acc( *
this ));
361 if( !acc.isAvailable( *
this) )
throw std::runtime_error(
"Unknown/Unavailable Isolation BitSet requested" );
362 return std::bitset<32>( acc( *
this ) );
368 acc( *
this ) =
value;
379 MuonType
type = muonType();
382 case SiliconAssociatedForwardMuon :
383 return combinedTrackParticleLink();
387 return inDetTrackParticleLink();
389 case MuonStandAlone :
395 if (
acc1.isAvailable( *
this ) &&
acc1( *this ).isValid() ) {
396 return acc1( *
this );
400 if (
acc2.isAvailable( *
this ) &&
acc2( *this ).isValid() ) {
401 return acc2( *
this );
405 if (
acc3.isAvailable( *
this ) &&
acc3( *this ).isValid()) {
406 return acc3( *
this );
409 throw std::runtime_error(
"Type is MuonStandAlone but no available link to return!");
412 throw std::runtime_error(
"Unknown primary type - not sure which track particle to return!");
423 case SiliconAssociatedForwardMuon :
426 if( ! acc.isAvailable( *
this ) )
return nullptr;
429 if( ! link.
isValid() )
return nullptr;
437 if( ! acc.isAvailable( *
this ) )
return nullptr;
440 if( ! link.
isValid() )
return nullptr;
444 case MuonStandAlone :
448 if (
acc1.isAvailable( *
this ) ) {
450 if ( link.
isValid() )
return *link;
455 if (
acc2.isAvailable( *
this ) ) {
457 if ( link.
isValid() )
return *link;
462 if (
acc3.isAvailable( *
this ) ) {
464 if ( link.
isValid() )
return *link;
482 case CombinedTrackParticle :
485 case InnerDetectorTrackParticle :
488 case MuonSpectrometerTrackParticle :
491 case ExtrapolatedMuonSpectrometerTrackParticle :
494 case MSOnlyExtrapolatedMuonSpectrometerTrackParticle :
498 throw std::runtime_error(
"Unknown TrackParticleType - not sure which track particle to return!");
512 if( !
el.isValid() ) {
525 case InnerDetectorTrackParticle :
529 case MuonSpectrometerTrackParticle :
533 case CombinedTrackParticle :
537 case ExtrapolatedMuonSpectrometerTrackParticle :
541 case MSOnlyExtrapolatedMuonSpectrometerTrackParticle :
547 throw std::runtime_error(
"Unknown or Primary TrackParticleType - not sure which track particle to set!");
555 if( ! acc.isAvailable( *
this ) ) {
566 if( !
el.isValid() ) {
583 if( ! muonSegmentsAcc.isAvailable( *
this ) ) {
586 return muonSegmentsAcc(*this).size();
592 if( ! muonSegmentsAcc.isAvailable( *
this ) ) {
596 return muonSegmentsAcc(*this).at(
i);
604 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.
Scalar eta() const
pseudorapidity method
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.
void setPassesHighPtCuts(bool)
Set whether passes the MCP ID hit cuts.
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)
bool passesHighPtCuts() const
Returns true if this Muon passes the MCP high pT cuts (see the MCP twiki for definitions: https://twi...
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