 |
ATLAS Offline Software
|
Go to the documentation of this file.
32 if(
this == &rhs)
return *
this;
94 acc(*
this) |= 1<<
static_cast<unsigned int>(
author);
99 return (acc(*
this)& (1<<
static_cast<unsigned int>(
author)));
107 if (acc->isAvailable(*
this)) {
108 value = (*acc)( *this );
122 ( *acc )( *this ) =
value;
129 if (!
el.isValid())
return false;
130 return (*el)->summaryValue(
value,information);
135 return ( *acc )( *this );
140 return ( *acc )( *this );
145 if( !acc.isAvailable( *
this ) ) {
150 value = acc( *
this );
169 if( ! acc || ! acc->isAvailable( *
this ) ) {
174 value = ( *acc )( *this );
180 parameter(sumVal, information);
187 throw std::runtime_error(
"Muon_v1::setParameter - no float accessor for paramdef number: "
191 ( *acc )( *this ) =
value;
196 if( ! acc || !
acc->isAvailable( *
this ) ) {
201 value = ( *acc )( *this );
207 parameter(sumValue, information);
214 throw std::runtime_error(
"Muon_v1::setParameter - no int accessor for paramdef number: "+
std::to_string(information));
217 ( *acc )( *this ) =
value;
223 return static_cast<Quality
>(temp&3);
229 acc( *
this ) = acc( *
this ) & ~(0x7);
230 acc( *
this ) |= temp;
244 if (
value) acc( *
this ) |= 8;
245 else acc( *
this ) &= 247;
257 if( ! acc || !acc->isAvailable( *
this) ){
262 value = ( *acc )( *this );
275 throw std::runtime_error(
"Unknown/Unavailable Isolation type requested" );
278 ( *acc )( *this ) =
value;
285 if( !acc.isAvailable( *
this) )
return false;
287 value = acc( *
this );
295 if( !acc.isAvailable( *
this) )
throw std::runtime_error(
"Unknown/Unavailable Isolation correction requested" );
303 acc( *
this ) =
value;
309 if( !acc.isAvailable( *
this) )
return false;
311 value = acc( *
this );
318 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 = std::bitset<32>(acc( *
this ));
339 if( !acc.isAvailable( *
this) )
throw std::runtime_error(
"Unknown/Unavailable Isolation BitSet requested" );
340 return std::bitset<32>( acc( *
this ) );
346 acc( *
this ) =
value;
357 MuonType
type = muonType();
360 case SiliconAssociatedForwardMuon :
361 return combinedTrackParticleLink();
365 return inDetTrackParticleLink();
367 case MuonStandAlone :
373 if (
acc1.isAvailable( *
this ) &&
acc1( *this ).isValid() ) {
374 return acc1( *
this );
378 if (
acc2.isAvailable( *
this ) &&
acc2( *this ).isValid() ) {
379 return acc2( *
this );
383 if (
acc3.isAvailable( *
this ) &&
acc3( *this ).isValid()) {
384 return acc3( *
this );
387 throw std::runtime_error(
"Type is MuonStandAlone but no available link to return!");
390 throw std::runtime_error(
"Unknown primary type - not sure which track particle to return!");
401 case SiliconAssociatedForwardMuon :
404 if( ! acc.isAvailable( *
this ) )
return nullptr;
407 if( ! link.
isValid() )
return nullptr;
415 if( ! acc.isAvailable( *
this ) )
return nullptr;
418 if( ! link.
isValid() )
return nullptr;
422 case MuonStandAlone :
426 if (
acc1.isAvailable( *
this ) ) {
428 if ( link.
isValid() )
return *link;
433 if (
acc2.isAvailable( *
this ) ) {
435 if ( link.
isValid() )
return *link;
440 if (
acc3.isAvailable( *
this ) ) {
442 if ( link.
isValid() )
return *link;
460 case CombinedTrackParticle :
463 case InnerDetectorTrackParticle :
466 case MuonSpectrometerTrackParticle :
469 case ExtrapolatedMuonSpectrometerTrackParticle :
472 case MSOnlyExtrapolatedMuonSpectrometerTrackParticle :
476 throw std::runtime_error(
"Unknown TrackParticleType - not sure which track particle to return!");
490 if( !
el.isValid() ) {
503 case InnerDetectorTrackParticle :
507 case MuonSpectrometerTrackParticle :
511 case CombinedTrackParticle :
515 case ExtrapolatedMuonSpectrometerTrackParticle :
519 case MSOnlyExtrapolatedMuonSpectrometerTrackParticle :
525 throw std::runtime_error(
"Unknown or Primary TrackParticleType - not sure which track particle to set!");
533 if( ! acc.isAvailable( *
this ) ) {
544 if( !
el.isValid() ) {
561 if( ! muonSegmentsAcc.isAvailable( *
this ) ) {
564 return muonSegmentsAcc(*this).size();
570 if( ! muonSegmentsAcc.isAvailable( *
this ) ) {
574 return muonSegmentsAcc(*this).at(
i);
582 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
Muon_v1()=default
inject the enums
IsolationFlavour
Enumeration for different ways of calculating isolation in xAOD files.
virtual double phi() const
The azimuthal angle ( ) of the particle.
Quality quality() const
Muon CP quality accessors.
constexpr double muonMassInMeV
the mass of the muon (in MeV)
bool summaryValue(uint8_t &value, const SummaryType &information) const
Accessor for TrackSummary values.
const SG::Accessor< uint8_t > & muonTrackSummaryAccessorV1(xAOD::MuonSummaryType type)
Helper function for managing MuonTrackSummary Accessor objects.
void setTrackParticleLink(TrackParticleType type, const ElementLink< TrackParticleContainer > &link)
Set method for TrackParticle links.
virtual double eta() const
The pseudorapidity ( ) of the particle.
GenVecFourMom_t genvecP4(float qOverP, float thetaT, float phiT, double m)
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
std::string to_string(const SectorProjector proj)
Class providing the definition of the 4-vector interface.
MuonSummaryType
Enumerates the different types of information stored in Summary.
void setPassesIDCuts(bool)
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 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.
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
MCP ID hit cuts - get/set the corresponding status bit in the quality decoration.
uint8_t uint8SummaryValue(const SummaryType information) const
Same as bool summaryValue(uint8_t& value, const SummaryType &information) const, but without check (w...
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