 |
ATLAS Offline Software
|
Go to the documentation of this file.
38 if(
this == &rhs)
return *
this;
60 return genvecP4().E();
109 acc(*
this) |= 1<<
static_cast<unsigned int>(
author);
114 return (acc(*
this)& (1<<
static_cast<unsigned int>(
author)));
126 value = ( *acc )( *this );
132 if (!
el.isValid())
return false;
133 return (*el)->summaryValue(
value,information);
139 ( *acc )( *this ) =
value;
146 if (!
el.isValid())
return false;
147 return (*el)->summaryValue(
value,information);
152 return ( *acc )( *this );
157 return ( *acc )( *this );
162 if( ! acc )
return false;
163 if( ! acc->isAvailable( *
this ) )
return false;
166 value = ( *acc )( *this );
172 return ( *acc )( *this );
179 ( *acc )( *this ) =
value;
184 if( ! acc )
return false;
185 if( ! acc->isAvailable( *
this ) )
return false;
188 value = ( *acc )( *this );
194 return ( *acc )( *this );
199 if( ! acc )
throw std::runtime_error(
"Muon_v1::setParameter - no float accessor for paramdef number: "+
std::to_string(information));
202 ( *acc )( *this ) =
value;
207 if( ! acc )
return false;
208 if( ! acc->isAvailable( *
this ) )
return false;
211 value = ( *acc )( *this );
217 return ( *acc )( *this );
222 if( ! acc )
throw std::runtime_error(
"Muon_v1::setParameter - no int accessor for paramdef number: "+
std::to_string(information));
225 ( *acc )( *this ) =
value;
231 return static_cast<Quality
>(temp&3);
237 acc( *
this ) = acc( *
this ) & ~(0x7);
238 acc( *
this ) |= temp;
252 if (
value) acc( *
this ) |= 8;
253 else acc( *
this ) &= 247;
265 if( ! acc )
return false;
266 if( !acc->isAvailable( *
this) )
return false;
269 value = ( *acc )( *this );
275 if( !acc )
throw std::runtime_error(
"Unknown/Unavailable Isolation type requested" );
276 return ( *acc )( *this );
281 if( !acc )
throw std::runtime_error(
"Unknown/Unavailable Isolation type requested" );
283 ( *acc )( *this ) =
value;
290 if( !acc.isAvailable( *
this) )
return false;
292 value = acc( *
this );
300 if( !acc.isAvailable( *
this) )
throw std::runtime_error(
"Unknown/Unavailable Isolation correction requested" );
308 acc( *
this ) =
value;
314 if( !acc.isAvailable( *
this) )
return false;
316 value = acc( *
this );
323 if( !acc.isAvailable( *
this) )
throw std::runtime_error(
"Unknown/Unavailable Isolation correction requested" );
330 acc( *
this ) =
value;
336 if( !acc.isAvailable( *
this) )
return false;
338 value = std::bitset<32>(acc( *
this ));
344 if( !acc.isAvailable( *
this) )
throw std::runtime_error(
"Unknown/Unavailable Isolation BitSet requested" );
345 return std::bitset<32>( acc( *
this ) );
351 acc( *
this ) =
value;
362 MuonType
type = muonType();
365 case SiliconAssociatedForwardMuon :
366 return combinedTrackParticleLink();
370 return inDetTrackParticleLink();
372 case MuonStandAlone :
378 if (
acc1.isAvailable( *
this ) &&
acc1( *this ).isValid() ) {
379 return acc1( *
this );
383 if (
acc2.isAvailable( *
this ) &&
acc2( *this ).isValid() ) {
384 return acc2( *
this );
388 if (
acc3.isAvailable( *
this ) &&
acc3( *this ).isValid()) {
389 return acc3( *
this );
392 throw std::runtime_error(
"Type is MuonStandAlone but no available link to return!");
395 throw std::runtime_error(
"Unknown primary type - not sure which track particle to return!");
406 case SiliconAssociatedForwardMuon :
409 if( ! acc.isAvailable( *
this ) )
return nullptr;
412 if( ! link.
isValid() )
return nullptr;
420 if( ! acc.isAvailable( *
this ) )
return nullptr;
423 if( ! link.
isValid() )
return nullptr;
427 case MuonStandAlone :
431 if (
acc1.isAvailable( *
this ) ) {
433 if ( link.
isValid() )
return *link;
438 if (
acc2.isAvailable( *
this ) ) {
440 if ( link.
isValid() )
return *link;
445 if (
acc3.isAvailable( *
this ) ) {
447 if ( link.
isValid() )
return *link;
465 case CombinedTrackParticle :
468 case InnerDetectorTrackParticle :
471 case MuonSpectrometerTrackParticle :
474 case ExtrapolatedMuonSpectrometerTrackParticle :
477 case MSOnlyExtrapolatedMuonSpectrometerTrackParticle :
481 throw std::runtime_error(
"Unknown TrackParticleType - not sure which track particle to return!");
495 if( !
el.isValid() ) {
508 case InnerDetectorTrackParticle :
512 case MuonSpectrometerTrackParticle :
516 case CombinedTrackParticle :
520 case ExtrapolatedMuonSpectrometerTrackParticle :
524 case MSOnlyExtrapolatedMuonSpectrometerTrackParticle :
530 throw std::runtime_error(
"Unknown or Primary TrackParticleType - not sure which track particle to set!");
538 if( ! acc.isAvailable( *
this ) ) {
549 if( !
el.isValid() ) {
566 if( ! muonSegmentsAcc.isAvailable( *
this ) ) {
569 return muonSegmentsAcc(*this).size();
575 if( ! muonSegmentsAcc.isAvailable( *
this ) ) {
579 return muonSegmentsAcc(*this).at(
i);
587 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/...
constexpr double muonMassInMeV
the mass of the muon (in MeV)
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