Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Muon_v1.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // Misc includes
6 #include <vector>
7 
8 // EDM include(s):
14 
15 // Local include(s):
17 #include "MuonAccessors_v1.h"
19 // Athena-only includes
20 #ifndef XAOD_ANALYSIS
21 // #include "TrkParameters/MeasuredPerigee.h"
22 #endif
23 
24 namespace xAOD {
25 
27  : IParticle() {
28  }
29 
31  : IParticle(rhs) //IParticle does not have a copy constructor. AuxElement has one with same behavior as default ctor
32  {
33  this->makePrivateStore(rhs);
34  }
35 
37  if(this == &rhs) return *this;
38 
39  if( ( ! hasStore() ) && ( ! container() ) ) {
41  }
42  this->IParticle::operator=( rhs );
43 
44  return *this;
45  }
46 
48  }
49 
51  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( Muon_v1, float, double, eta)
54 
55  // AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( Muon_v1, float, double, e)
56 
57  double Muon_v1::e() const {
58  // FIXME - optimise?
59  return genvecP4().E();
60  }
61 
62  double Muon_v1::m() const {
63  return 105.6583715;//FIXME - get this from someplace central? How heavy is TDatabasePDG::Instance()->GetParticle(pdg)?
64  }
65 
66  void Muon_v1::setP4(double pt, double eta, double phi) {
67  static const Accessor< float > acc1( "pt" );
68  static const Accessor< float > acc2( "eta" );
69  static const Accessor< float > acc3( "phi" );
70  acc1( *this )=pt;
71  acc2( *this )=eta;
72  acc3( *this )=phi;
73  }
74 
75  double Muon_v1::rapidity() const {
76  return genvecP4().Rapidity();
77  }
78 
81  p4.SetPtEtaPhiM( pt(), eta(), phi(), m() );
82  return p4;
83  }
84 
85  // depend on return value optimization
87  return GenVecFourMom_t(pt(), eta(), phi(), m());
88  }
89 
90 // float Muon_v1::charge() const {
91 // if (primaryTrackParticle()) return primaryTrackParticle()->charge();
92 // // something has gone wrong!
93 // throw std::runtime_error("No link to primary TrackParticle!");
94 // }
95 
97  return Type::Muon;
98  }
99 
102 
103  AUXSTORE_PRIMITIVE_SETTER_AND_GETTER( Muon_v1, uint16_t, allAuthors, setAllAuthors)
104 
105 
106  void Muon_v1::addAllAuthor ( const Author author ){
107  static const Accessor< uint16_t > acc( "allAuthors" );
108  acc(*this) |= 1<<static_cast<unsigned int>(author);
109  }
110 
111  bool Muon_v1::isAuthor ( const Author author ) const{
112  static const Accessor< uint16_t > acc( "allAuthors" );
113  return (acc(*this)& (1<<static_cast<unsigned int>(author)));
114  }
115 
116  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( Muon_v1, uint16_t, Muon_v1::MuonType, muonType)
117  AUXSTORE_PRIMITIVE_SETTER_WITH_CAST( Muon_v1, uint16_t, Muon_v1::MuonType, muonType, setMuonType)
118 
119  bool Muon_v1::summaryValue(uint8_t& value, const SummaryType information) const {
120  // Here we want to check if this information has been added to the Muon, and use this first if so.
121  // @todo ?Could further optimise the below, to see first if the SummaryType value is one of the ones we write to Muons?
122  // @todo ?Is there a better way than catching the exception?
123  try {
125  value = ( *acc )( *this );
126  return true;
127  } catch ( SG::ExcBadAuxVar& ) {}
128 
129  // Okay - fallback: try to get from TrackParticle.
130  const ElementLink< TrackParticleContainer >& el= primaryTrackParticleLink();
131  if (!el.isValid()) return false;
132  return (*el)->summaryValue(value,information);
133  }
134 
135  void Muon_v1::setSummaryValue( uint8_t value, const SummaryType information ) {
137  // Set the value:
138  ( *acc )( *this ) = value;
139  }
140 
141  // No set method for 'float' values as not expected to be needed
142 
143  bool Muon_v1::summaryValue(float& value, const SummaryType information) const {
145  if (!el.isValid()) return false;
146  return (*el)->summaryValue(value,information);
147  }
148 
149  float Muon_v1::floatSummaryValue(const SummaryType information) const {
151  return ( *acc )( *this );
152  }
153 
156  return ( *acc )( *this );
157  }
158 
159  bool Muon_v1::summaryValue(uint8_t& value, const MuonSummaryType information) const {
160  const Muon_v1::Accessor< uint8_t >* acc = muonTrackSummaryAccessorV1( information );
161  if( ! acc ) return false;
162  if( ! acc->isAvailable( *this ) ) return false;
163 
164  // Retrieve the value:
165  value = ( *acc )( *this );
166  return true;
167  }
168 
169  float Muon_v1::uint8MuonSummaryValue(const MuonSummaryType information) const{
170  const Muon_v1::Accessor< uint8_t >* acc = muonTrackSummaryAccessorV1( information );
171  return ( *acc )( *this );
172  }
173 
174 
176  const Muon_v1::Accessor< uint8_t >* acc = muonTrackSummaryAccessorV1( information );
177  // Set the value:
178  ( *acc )( *this ) = value;
179  }
180 
181  bool Muon_v1::parameter(float& value, const Muon_v1::ParamDef information) const {
182  const xAOD::Muon_v1::Accessor< float >* acc = parameterAccessorV1<float>( information );
183  if( ! acc ) return false;
184  if( ! acc->isAvailable( *this ) ) return false;
185 
186  // Retrieve the value:
187  value = ( *acc )( *this );
188  return true;
189  }
190 
192  const xAOD::Muon_v1::Accessor< float >* acc = parameterAccessorV1<float>( information );
193  return ( *acc )( *this );
194  }
195 
196  void Muon_v1::setParameter(float value, const Muon_v1::ParamDef information){
197  const xAOD::Muon_v1::Accessor< float >* acc = parameterAccessorV1<float>( information );
198  if( ! acc ) throw std::runtime_error("Muon_v1::setParameter - no float accessor for paramdef number: "+std::to_string(information));
199 
200  // Set the value:
201  ( *acc )( *this ) = value;
202  }
203 
204  bool Muon_v1::parameter(int& value, const Muon_v1::ParamDef information) const {
205  const xAOD::Muon_v1::Accessor< int >* acc = parameterAccessorV1<int>( information );
206  if( ! acc ) return false;
207  if( ! acc->isAvailable( *this ) ) return false;
208 
209  // Retrieve the value:
210  value = ( *acc )( *this );
211  return true;
212  }
213 
215  const xAOD::Muon_v1::Accessor< int >* acc = parameterAccessorV1<int>( information );
216  return ( *acc )( *this );
217  }
218 
219  void Muon_v1::setParameter(int value, const Muon_v1::ParamDef information){
220  const xAOD::Muon_v1::Accessor< int >* acc = parameterAccessorV1<int>( information );
221  if( ! acc ) throw std::runtime_error("Muon_v1::setParameter - no int accessor for paramdef number: "+std::to_string(information));
222 
223  // Set the value:
224  ( *acc )( *this ) = value;
225  }
226 
227  xAOD::Muon_v1::Quality Muon_v1::quality() const {
228  static const Accessor< uint8_t > acc( "quality" );
229  uint8_t temp = acc( *this );
230  return static_cast<Quality>(temp&3);
231  }
232 
233  void Muon_v1::setQuality(xAOD::Muon_v1::Quality value) {
234  static const Accessor< uint8_t > acc( "quality" );
235  uint8_t temp = static_cast< uint8_t >(value);
236  acc( *this ) = acc( *this ) & ~(0x7); // Reset the first 3 bits.
237  acc( *this ) |= temp;
238  return;
239  }
240 
241  bool Muon_v1::passesIDCuts() const {
242  static const Accessor< uint8_t > acc( "quality" );
243  uint8_t temp = acc( *this );
244  // We use 4th bit for 'passesIDCuts'
245  return temp&8;
246  }
247 
249  static const Accessor< uint8_t > acc( "quality" );
250  // We use 4th bit for 'passesIDCuts'
251  if (value) acc( *this ) |= 8;
252  else acc( *this ) &= 247;
253  return;
254  }
255 
256  // AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( Muon_v1, uint8_t, Muon_v1::Quality,
257  // quality )
258  // AUXSTORE_PRIMITIVE_SETTER_WITH_CAST( Muon_v1, uint8_t, Muon_v1::Quality,
259  // quality, setQuality )
260 
261  bool Muon_v1::isolation(float& value, const Iso::IsolationType information) const {
262  const SG::AuxElement::Accessor< float >* acc = getIsolationAccessor( information );
263 
264  if( ! acc ) return false;
265  if( !acc->isAvailable( *this) ) return false;
266 
267  // Retrieve the value:
268  value = ( *acc )( *this );
269  return true;
270  }
271 
272  float Muon_v1::isolation( const Iso::IsolationType information) const {
273  const SG::AuxElement::Accessor< float >* acc = getIsolationAccessor( information );
274  if( !acc ) throw std::runtime_error( "Unknown/Unavailable Isolation type requested" );
275  return ( *acc )( *this );
276  }
277 
278  void Muon_v1::setIsolation(float value, const Iso::IsolationType information){
279  const SG::AuxElement::Accessor< float >* acc = getIsolationAccessor( information );
280  if( !acc ) throw std::runtime_error( "Unknown/Unavailable Isolation type requested" );
281  // Set the value:
282  ( *acc )( *this ) = value;
283  }
284 
287  const Iso::IsolationCorrectionParameter param) const{
289  if( !acc.isAvailable( *this) ) return false;
290  // Retrieve the value:
291  value = acc( *this );
292  return true;
293  }
294 
296  const Iso::IsolationCorrectionParameter param) const{
297 
299  if( !acc.isAvailable( *this) ) throw std::runtime_error( "Unknown/Unavailable Isolation correction requested" );
300  return acc( *this );
301  }
302 
306  // Set the value:
307  acc( *this ) = value;
308  return true;
309  }
310 
313  if( !acc.isAvailable( *this) ) return false;
314  // Retrieve the value:
315  value = acc( *this );
316  return true;
317  }
318 
320 
322  if( !acc.isAvailable( *this) ) throw std::runtime_error( "Unknown/Unavailable Isolation correction requested" );
323  return acc( *this );
324  }
325 
328  // Set the value:
329  acc( *this ) = value;
330  return true;
331  }
332 
333  bool Muon_v1::isolationCorrectionBitset(std::bitset<32>& value, const Iso::IsolationFlavour flavour ) const{
335  if( !acc.isAvailable( *this) ) return false;
336  // Retrieve the value:
337  value = std::bitset<32>(acc( *this ));
338  return true;
339  }
340 
341  std::bitset<32> Muon_v1::isolationCorrectionBitset(const Iso::IsolationFlavour flavour ) const{
343  if( !acc.isAvailable( *this) ) throw std::runtime_error( "Unknown/Unavailable Isolation BitSet requested" );
344  return std::bitset<32>( acc( *this ) );
345  }
346 
349  // Set the value:
350  acc( *this ) = value;
351  return true;
352  }
353 
355  AUXSTORE_OBJECT_GETTER( Muon_v1, ElementLink< TrackParticleContainer >, muonSpectrometerTrackParticleLink)
356  AUXSTORE_OBJECT_GETTER( Muon_v1, ElementLink< TrackParticleContainer >, extrapolatedMuonSpectrometerTrackParticleLink)
357  AUXSTORE_OBJECT_GETTER( Muon_v1, ElementLink< TrackParticleContainer >, msOnlyExtrapolatedMuonSpectrometerTrackParticleLink)
359 
360  const ElementLink< TrackParticleContainer >& Muon_v1::primaryTrackParticleLink() const{
361  MuonType type = muonType();
362  switch ( type ) {
363  case Combined :
364  case SiliconAssociatedForwardMuon :
365  return combinedTrackParticleLink();
366  break;
367  case SegmentTagged :
368  case CaloTagged :
369  return inDetTrackParticleLink();
370  break;
371  case MuonStandAlone :
372  {
373  // Not checking if links are valid here - this is the job of the client (as per the cases above).
374  // But we DO check that the link is available, so we can check for both types of links.
375 
376  static const Accessor< ElementLink< TrackParticleContainer > > acc1( "extrapolatedMuonSpectrometerTrackParticleLink" );
377  if ( acc1.isAvailable( *this ) && acc1( *this ).isValid() ) {
378  return acc1( *this );
379  }
380 
381  static const Accessor< ElementLink< TrackParticleContainer > > acc2( "msOnlyExtrapolatedMuonSpectrometerTrackParticleLink" );
382  if ( acc2.isAvailable( *this ) && acc2( *this ).isValid() ) {
383  return acc2( *this );
384  }
385 
386  static const Accessor< ElementLink< TrackParticleContainer > > acc3( "muonSpectrometerTrackParticleLink" );
387  if ( acc3.isAvailable( *this ) && acc3( *this ).isValid()) {
388  return acc3( *this );
389  }
390  // We could also just return a dummy EL here, but the link is part of the aux store, and so it might be that something bad has happened...?
391  throw std::runtime_error("Type is MuonStandAlone but no available link to return!");
392  }
393  default:
394  throw std::runtime_error("Unknown primary type - not sure which track particle to return!");
395  }
396  // static ElementLink< TrackParticleContainer > dummy;
397  // return dummy;
398  }
399 
401 
402  MuonType type = muonType();
403  switch( type ) {
404  case Combined:
405  case SiliconAssociatedForwardMuon :
406  {
407  static const Accessor< ElementLink< TrackParticleContainer > > acc( "combinedTrackParticleLink" );
408  if( ! acc.isAvailable( *this ) ) return nullptr;
409 
410  const ElementLink< TrackParticleContainer >& link = acc( *this );
411  if( ! link.isValid() ) return nullptr;
412 
413  return *link;
414  }
415  case SegmentTagged:
416  case CaloTagged :
417  {
418  static const Accessor< ElementLink< TrackParticleContainer > > acc( "inDetTrackParticleLink" );
419  if( ! acc.isAvailable( *this ) ) return nullptr;
420 
421  const ElementLink< TrackParticleContainer >& link = acc( *this );
422  if( ! link.isValid() ) return nullptr;
423 
424  return *link;
425  }
426  case MuonStandAlone :
427  {
428  // Want to return link to extrapolated MS track particle if possible.
429  static const Accessor< ElementLink< TrackParticleContainer > > acc1( "extrapolatedMuonSpectrometerTrackParticleLink" );
430  if ( acc1.isAvailable( *this ) ) {
431  const ElementLink< TrackParticleContainer >& link = acc1( *this );
432  if ( link.isValid() ) return *link;
433  }
434 
435  //if no, maybe the MS-only extrapolated track particle?
436  static const Accessor< ElementLink< TrackParticleContainer > > acc2( "msOnlyExtrapolatedMuonSpectrometerTrackParticleLink" );
437  if ( acc2.isAvailable( *this ) ) {
438  const ElementLink< TrackParticleContainer >& link = acc2( *this );
439  if ( link.isValid() ) return *link;
440  }
441 
442  // Try fallback (non-extrapolated MS track particle)...
443  static const Accessor< ElementLink< TrackParticleContainer > > acc3( "muonSpectrometerTrackParticleLink" );
444  if ( acc3.isAvailable( *this ) ) {
445  const ElementLink< TrackParticleContainer >& link = acc3( *this );
446  if ( link.isValid() ) return *link;
447  }
448 
449  return nullptr;
450  }
451  default:
452  {
453  // No valid link.
454  return nullptr;
455  }
456  }
457  }
458 
459  const ElementLink< TrackParticleContainer >& Muon_v1::trackParticleLink( Muon_v1::TrackParticleType type) const{
460  switch ( type ) {
461  case Primary :
462  return primaryTrackParticleLink();
463  break;
464  case CombinedTrackParticle :
465  return combinedTrackParticleLink();
466  break;
467  case InnerDetectorTrackParticle :
468  return inDetTrackParticleLink();
469  break;
470  case MuonSpectrometerTrackParticle :
472  break;
473  case ExtrapolatedMuonSpectrometerTrackParticle :
475  break;
476  case MSOnlyExtrapolatedMuonSpectrometerTrackParticle :
478  break;
479  default:
480  throw std::runtime_error("Unknown TrackParticleType - not sure which track particle to return!");
481  }
482  // static ElementLink< TrackParticleContainer > dummy;
483  // return dummy;
484  }
485 
486  const xAOD::TrackParticle* Muon_v1::trackParticle( Muon_v1::TrackParticleType type) const{
487  // TODO - perhaps we can get rid of this try/catch clause?
488  try {
489  // Get the ElementLink pointing to the requested track particle:
492 
493  // If it's invalid, return a null pointer:
494  if( ! el.isValid() ) {
495  return nullptr;
496  }
497 
498  // If it's valid, let's de-reference it:
499  return *el;
500  } catch ( SG::ExcBadAuxVar& ) {
501  return nullptr;
502  }
503  }
504 
506  switch ( type ) {
507  case InnerDetectorTrackParticle :
508  static const Accessor< ElementLink< TrackParticleContainer > > acc1( "inDetTrackParticleLink" );
509  acc1(*this)=link;
510  break;
511  case MuonSpectrometerTrackParticle :
512  static const Accessor< ElementLink< TrackParticleContainer > > acc2( "muonSpectrometerTrackParticleLink" );
513  acc2(*this)=link;
514  break;
515  case CombinedTrackParticle :
516  static const Accessor< ElementLink< TrackParticleContainer > > acc3( "combinedTrackParticleLink" );
517  acc3(*this)=link;
518  break;
519  case ExtrapolatedMuonSpectrometerTrackParticle :
520  static const Accessor< ElementLink< TrackParticleContainer > > acc4( "extrapolatedMuonSpectrometerTrackParticleLink" );
521  acc4(*this)=link;
522  break;
523  case MSOnlyExtrapolatedMuonSpectrometerTrackParticle :
524  static const Accessor< ElementLink< TrackParticleContainer > > acc5( "msOnlyExtrapolatedMuonSpectrometerTrackParticleLink" );
525  acc5(*this)=link;
526  break;
527  case Primary :
528  default:
529  throw std::runtime_error("Unknown or Primary TrackParticleType - not sure which track particle to set!");
530  }
531  }
532 
534  const CaloCluster* Muon_v1::cluster() const {
535 
536  static const Accessor< ElementLink< TrackParticleContainer > > acc( "inDetTrackParticleLink" );
537  if( ! acc.isAvailable( *this ) ) {
538  return nullptr;
539  }
540  const ElementLink< TrackParticleContainer >& link = acc( *this );
541  if( ! link.isValid() ) {
542  return nullptr;
543  }
544 
545  // Get the ElementLink pointing to the calo cluster:
546  const ElementLink< CaloClusterContainer >& el = clusterLink();
547  // If it's invalid, return a null pointer:
548  if( ! el.isValid() ) {
549  return nullptr;
550  }
551  // If it's valid, let's de-reference it:
552  return *el;
553  }
554 
558  energyLossType, setEnergyLossType )
559 
560  AUXSTORE_OBJECT_SETTER_AND_GETTER( Muon_v1, std::vector< ElementLink< xAOD::MuonSegmentContainer > >, muonSegmentLinks, setMuonSegmentLinks)
561 
562  static const SG::AuxElement::Accessor< std::vector< ElementLink< MuonSegmentContainer > > > muonSegmentsAcc( "muonSegmentLinks" );
563  size_t Muon_v1::nMuonSegments() const {
564  // If a link was not set (yet), return zero.
565  if( ! muonSegmentsAcc.isAvailable( *this ) ) {
566  return 0;
567  }
568  return muonSegmentsAcc(*this).size();
569  }
570 
572  // If a Trk::Track link was not set (yet), return a dummy object:
573  // FIXME - maybe
574  if( ! muonSegmentsAcc.isAvailable( *this ) ) {
576  return dummy;
577  }
578  return muonSegmentsAcc(*this).at(i);
579  }
580 
581  const MuonSegment* Muon_v1::muonSegment( size_t i ) const{
582  // Get the ElementLink pointing to the requested muon segment:
584  muonSegmentLink( i );
585  // If it's invalid, return a null pointer:
586  if( ! el.isValid() ) {
587  return nullptr;
588  }
589  // If it's valid, let's de-reference it:
590  return *el;
591  }
592 } // namespace xAOD
593 
python.CaloBCIDAvgAlgConfig.acc3
def acc3
Definition: CaloBCIDAvgAlgConfig.py:69
xAOD::Muon_v1::primaryTrackParticleLink
const ElementLink< TrackParticleContainer > & primaryTrackParticleLink() const
Definition: Muon_v1.cxx:360
MuonAccessors_v1.h
xAOD::AUXSTORE_PRIMITIVE_SETTER_AND_GETTER
AUXSTORE_PRIMITIVE_SETTER_AND_GETTER(BTagging_v1, float, IP2D_pb, setIP2D_pb) AUXSTORE_PRIMITIVE_SETTER_AND_GETTER(BTagging_v1
xAOD::Muon_v1::rapidity
virtual double rapidity() const
The true rapidity (y) of the particle.
Definition: Muon_v1.cxx:75
xAOD::trackSummaryAccessorV1< float >
const SG::AuxElement::Accessor< float > * trackSummaryAccessorV1< float >(xAOD::SummaryType type)
Definition: TrackSummaryAccessors_v1.cxx:127
xAOD::Muon_v1::isolation
bool isolation(float &value, const Iso::IsolationType information) const
Accessor for Isolation values.
Definition: Muon_v1.cxx:261
SG
Forward declaration.
Definition: CaloCellPacker_400_500.h:32
xAOD::Muon_v1::msOnlyExtrapolatedMuonSpectrometerTrackParticleLink
const ElementLink< TrackParticleContainer > & msOnlyExtrapolatedMuonSpectrometerTrackParticleLink() const
Returns an ElementLink to the MS-only Extrapolated Muon Spectrometer TrackParticle used in identifica...
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:557
MuonTrackSummaryAccessors_v1.h
xAOD::Muon_v1::trackParticle
const TrackParticle * trackParticle(TrackParticleType type) const
Returns a pointer (which can be NULL) to the TrackParticle used in identification of this muon.
Definition: Muon_v1.cxx:486
SG::Accessor< float >
AuxStoreAccessorMacros.h
xAOD::Muon_v1::p4
virtual FourMom_t p4() const
The full 4-momentum of the particle.
Definition: Muon_v1.cxx:79
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
xAOD::Muon_v1::muonSegment
const MuonSegment * muonSegment(size_t i) const
Returns a pointer to the specified MuonSegment.
Definition: Muon_v1.cxx:581
xAOD::Iso::IsolationFlavour
IsolationFlavour
Enumeration for different ways of calculating isolation in xAOD files.
Definition: IsolationFlavour.h:17
xAOD::Muon_v1::phi
virtual double phi() const
The azimuthal angle ( ) of the particle.
xAOD::Muon_v1::quality
Quality quality() const
The Muon Quality information is defined on the MCP twiki: https://twiki.cern.ch/twiki/bin/view/Atlas/...
Definition: Muon_v1.cxx:227
xAOD::Muon_v1::setTrackParticleLink
void setTrackParticleLink(TrackParticleType type, const ElementLink< TrackParticleContainer > &link)
Set method for TrackParticle links.
Definition: Muon_v1.cxx:505
xAOD::Muon_v1::eta
virtual double eta() const
The pseudorapidity ( ) of the particle.
xAOD::Muon_v1::intParameter
int intParameter(const ParamDef parameter) const
Same as bool parameter(float& value, const ParamDef &parameter) const, but without check (will throw ...
Definition: Muon_v1.cxx:214
xAOD::MuonSegment_v1
Class describing a MuonSegment.
Definition: MuonSegment_v1.h:33
egammaParameters::ParamDef
ParamDef
Definition: egammaParamDefs.h:99
xAOD::Muon_v1::setP4
void setP4(double pt, double eta, double phi)
Set method for IParticle values.
Definition: Muon_v1.cxx:66
athena.value
value
Definition: athena.py:124
xAOD
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Definition: ICaloAffectedTool.h:24
xAOD::Muon_v1::author
Author author() const
xAOD::pt
setRcore setEtHad setFside pt
Definition: TrigPhoton_v1.cxx:106
xAOD::trackSummaryAccessorV1< uint8_t >
const SG::AuxElement::Accessor< uint8_t > * trackSummaryAccessorV1< uint8_t >(xAOD::SummaryType type)
Definition: TrackSummaryAccessors_v1.cxx:25
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
xAOD::Muon_v1::~Muon_v1
virtual ~Muon_v1()
Destructor.
Definition: Muon_v1.cxx:47
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:41
xAOD::MuonSummaryType
MuonSummaryType
Enumerates the different types of information stored in Summary.
Definition: TrackingPrimitives.h:325
xAOD::Muon_v1::setPassesIDCuts
void setPassesIDCuts(bool)
Set whether passes the MCP ID hit cuts.
Definition: Muon_v1.cxx:248
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
xAOD::Iso::IsolationCorrectionParameter
IsolationCorrectionParameter
Definition: Event/xAOD/xAODPrimitives/xAODPrimitives/IsolationCorrection.h:91
xAOD::Muon_v1
Class describing a Muon.
Definition: Muon_v1.h:38
xAOD::Muon_v1::setIsolation
void setIsolation(float value, const Iso::IsolationType information)
Set method for Isolation values.
Definition: Muon_v1.cxx:278
xAOD::getIsolationCorrectionAccessor
const SG::AuxElement::Accessor< float > getIsolationCorrectionAccessor(Iso::IsolationFlavour type, Iso::IsolationCaloCorrection corr, Iso::IsolationCorrectionParameter param)
Definition: getIsolationCorrectionAccessor.cxx:19
getIsolationCorrectionAccessor.h
xAOD::Muon_v1::setParameter
void setParameter(float value, const ParamDef parameter)
Set method for parameter values.
xAOD::muonTrackSummaryAccessorV1
const SG::AuxElement::Accessor< uint8_t > * muonTrackSummaryAccessorV1(xAOD::MuonSummaryType type)
Helper function for managing MuonTrackSummary Accessor objects.
Definition: MuonTrackSummaryAccessors_v1.cxx:23
xAOD::Muon_v1::trackParticleLink
const ElementLink< TrackParticleContainer > & trackParticleLink(TrackParticleType type) const
Returns an ElementLink to the TrackParticle used in identification of this muon.
Definition: Muon_v1.cxx:459
xAOD::phi
setEt phi
Definition: TrigEMCluster_v1.cxx:29
InDet::ExclusiveOrigin::Primary
@ Primary
Definition: InDetTrackTruthOriginDefs.h:163
xAOD::Muon_v1::isolationTrackCorrection
bool isolationTrackCorrection(float &value, const Iso::IsolationFlavour flavour, const Iso::IsolationTrackCorrection type) const
Accessor for Isolation Track correction.
Definition: Muon_v1.cxx:311
JetVar::Accessor
SG::AuxElement::Accessor< T > Accessor
Definition: JetVariable.h:31
xAOD::CaloCluster_v1
Description of a calorimeter cluster.
Definition: CaloCluster_v1.h:62
xAOD::Muon_v1::Muon_v1
Muon_v1()
inject the enums
Definition: Muon_v1.cxx:26
xAOD::SummaryType
SummaryType
Enumerates the different types of information stored in Summary.
Definition: TrackingPrimitives.h:229
xAOD::AUXSTORE_PRIMITIVE_SETTER_WITH_CAST
AUXSTORE_PRIMITIVE_SETTER_WITH_CAST(CompositeParticle_v1, float, double, px, setPx) AUXSTORE_PRIMITIVE_SETTER_WITH_CAST(CompositeParticle_v1
SG::ExcBadAuxVar
Exception — Attempt to retrieve nonexistent aux data item.
Definition: Control/AthContainers/AthContainers/exceptions.h:59
xAOD::Muon_v1::FourMom_t
IParticle::FourMom_t FourMom_t
Definition of the 4-momentum type.
Definition: Muon_v1.h:74
xAOD::Muon_v1::isolationCorrectionBitset
bool isolationCorrectionBitset(std::bitset< 32 > &value, const Iso::IsolationFlavour flavour) const
Accessor for Isolation corection Bitset.
Definition: Muon_v1.cxx:333
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:93
xAOD::Muon_v1::summaryValue
bool summaryValue(uint8_t &value, const SummaryType information) const
Accessor for TrackSummary values (in most cases, retrieved from the 'primary' TrackParticle - though ...
Definition: Muon_v1.cxx:119
lumiFormat.i
int i
Definition: lumiFormat.py:85
xAOD::e
setPy e
Definition: CompositeParticle_v1.cxx:166
vector
Definition: MultiHisto.h:13
python.CaloBCIDAvgAlgConfig.acc1
def acc1
Definition: CaloBCIDAvgAlgConfig.py:49
xAOD::Iso::IsolationType
IsolationType
Overall enumeration for isolation types in xAOD files.
Definition: IsolationType.h:26
xAOD::AUXSTORE_PRIMITIVE_GETTER_WITH_CAST
AUXSTORE_PRIMITIVE_GETTER_WITH_CAST(Muon_v1, uint8_t, Muon_v1::EnergyLossType, energyLossType) AUXSTORE_PRIMITIVE_SETTER_WITH_CAST(Muon_v1
xAOD::charge
charge
Definition: TrigElectron_v1.cxx:85
xAOD::Muon_v1::parameter
bool parameter(float &value, const ParamDef parameter) const
Get a parameter for this Muon - momentumBalanceSignificance for example.
xAOD::Muon_v1::muonSpectrometerTrackParticleLink
const ElementLink< TrackParticleContainer > & muonSpectrometerTrackParticleLink() const
Returns an ElementLink to the InnerDetector TrackParticle used in identification of this muon.
python.CaloBCIDAvgAlgConfig.acc2
def acc2
Definition: CaloBCIDAvgAlgConfig.py:59
plotIsoValidation.el
el
Definition: plotIsoValidation.py:197
xAOD::Muon_v1::pt
virtual double pt() const
The transverse momentum ( ) of the particle.
python.xAODType.dummy
dummy
Definition: xAODType.py:4
xAOD::Muon_v1::floatSummaryValue
float floatSummaryValue(const SummaryType information) const
Same as bool summaryValue(float& value, const SummaryType &information) const , but without check (wi...
Definition: Muon_v1.cxx:149
xAOD::Muon_v1::m
virtual double m() const
The invariant mass of the particle..
Definition: Muon_v1.cxx:62
xAOD::double
double
Definition: CompositeParticle_v1.cxx:159
xAOD::getIsolationAccessor
const SG::AuxElement::Accessor< float > * getIsolationAccessor(Iso::IsolationType type)
Get the Accessor object for a given isolation type.
Definition: getIsolationAccessor.cxx:24
xAOD::Muon_v1::operator=
Muon_v1 & operator=(const Muon_v1 &rhs)
Assignment operator.
Definition: Muon_v1.cxx:36
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
python.LArRecUtilsConfig.acc4
def acc4
Definition: LArRecUtilsConfig.py:196
python.LArRecUtilsConfig.acc5
def acc5
Definition: LArRecUtilsConfig.py:205
xAOD::Muon_v1::floatParameter
float floatParameter(const ParamDef parameter) const
Same as bool parameter(float& value, const ParamDef &parameter) const, but without check (will throw ...
Definition: Muon_v1.cxx:191
xAOD::Muon_v1::type
virtual Type::ObjectType type() const
The type of the object as a simple enumeration.
Definition: Muon_v1.cxx:96
xAOD::Muon_v1::uint8MuonSummaryValue
float uint8MuonSummaryValue(const MuonSummaryType information) const
Same as bool summaryValue(uint8_t& value, const MuonSummaryType &information) const,...
Definition: Muon_v1.cxx:169
xAOD::Muon_v1::isolationCaloCorrection
bool isolationCaloCorrection(float &value, const Iso::IsolationFlavour flavour, const Iso::IsolationCaloCorrection type, const Iso::IsolationCorrectionParameter param) const
Accessor for Isolation Calo correction.
Definition: Muon_v1.cxx:285
Trk::Combined
@ Combined
Definition: TrackSummaryTool.h:32
xAOD::Muon_v1::isAuthor
bool isAuthor(const Author author) const
Returns 'true' if 'author' is the an author of this muon.
Definition: Muon_v1.cxx:111
xAOD::energyLossType
energyLossType
Definition: Muon_v1.cxx:558
xAOD::Iso::IsolationTrackCorrection
IsolationTrackCorrection
Definition: Event/xAOD/xAODPrimitives/xAODPrimitives/IsolationCorrection.h:61
xAOD::Muon_v1::passesIDCuts
bool passesIDCuts() const
Returns true if this Muon passes the MCP ID hit cuts (see the MCP twiki for definitions: https://twik...
Definition: Muon_v1.cxx:241
xAOD::Muon_v1::uint8SummaryValue
uint8_t uint8SummaryValue(const SummaryType information) const
Same as bool summaryValue(uint8_t& value, const SummaryType &information) const, but without check (w...
Definition: Muon_v1.cxx:154
ActsTrk::to_string
std::string to_string(const DetectorType &type)
Definition: GeometryDefs.h:34
xAOD::Muon_v1::setIsolationCorrectionBitset
bool setIsolationCorrectionBitset(uint32_t value, const Iso::IsolationFlavour flavour)
Set method for Isolation corection Bitset.
Definition: Muon_v1.cxx:347
TrackSummaryAccessors_v1.h
SG::AuxElement::makePrivateStore
void makePrivateStore()
Create a new (empty) private store for this object.
Definition: AuxElement.cxx:192
Muon
struct TBPatternUnitContext Muon
SG::AuxElement::hasStore
bool hasStore() const
Return true if this object has an associated store.
Definition: AuxElement.cxx:398
TrackParticle.h
xAOD::Muon_v1::inDetTrackParticleLink
const ElementLink< TrackParticleContainer > & inDetTrackParticleLink() const
Returns an ElementLink to the InnerDetector TrackParticle used in identification of this muon.
xAOD::Iso::IsolationCaloCorrection
IsolationCaloCorrection
Enumeration for different ways of correcting isolation in xAOD files.
Definition: Event/xAOD/xAODPrimitives/xAODPrimitives/IsolationCorrection.h:18
getIsolationAccessor.h
xAOD::Muon_v1::setSummaryValue
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...
Definition: Muon_v1.cxx:135
xAOD::Muon_v1::GenVecFourMom_t
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiM4D< double > > GenVecFourMom_t
Base 4 Momentum type for Muon.
Definition: Muon_v1.h:80
xAOD::AUXSTORE_OBJECT_GETTER
AUXSTORE_OBJECT_GETTER(TrigComposite_v1, std::vector< std::string >, linkColNames) AUXSTORE_OBJECT_GETTER(TrigComposite_v1
CaloCondBlobAlgs_fillNoiseFromASCII.author
string author
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:26
xAOD::getIsolationCorrectionBitsetAccessor
const SG::AuxElement::Accessor< uint32_t > getIsolationCorrectionBitsetAccessor(Iso::IsolationFlavour type)
Returns an accessor for the correction bitset corresponding to this IsolationType.
Definition: getIsolationCorrectionAccessor.cxx:12
xAOD::Muon_v1::setIsolationCaloCorrection
bool setIsolationCaloCorrection(float value, const Iso::IsolationFlavour flavour, const Iso::IsolationCaloCorrection type, const Iso::IsolationCorrectionParameter param)
set method for Isolation Calo Corrections.
Definition: Muon_v1.cxx:303
xAOD::Muon_v1::genvecP4
GenVecFourMom_t genvecP4() const
The full 4-momentum of the particle : GenVector.
Definition: Muon_v1.cxx:86
xAOD::Muon_v1::muonSegmentLink
const ElementLink< MuonSegmentContainer > & muonSegmentLink(size_t i) const
Returns a link to the specified MuonSegment.
Definition: Muon_v1.cxx:571
xAOD::Muon_v1::extrapolatedMuonSpectrometerTrackParticleLink
const ElementLink< TrackParticleContainer > & extrapolatedMuonSpectrometerTrackParticleLink() const
Returns an ElementLink to the Extrapolated Muon Spectrometer TrackParticle used in identification of ...
xAOD::Muon_v1::primaryTrackParticle
const TrackParticle * primaryTrackParticle() const
Returns a pointer (which should not usually be NULL, but might be if the muon has been stripped of in...
Definition: Muon_v1.cxx:400
Muon_v1.h
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
SG::AuxElement::container
const SG::AuxVectorData * container() const
Return the container holding this element.
xAOD::Muon_v1::setIsolationTrackCorrection
bool setIsolationTrackCorrection(float value, const Iso::IsolationFlavour flavour, const Iso::IsolationTrackCorrection type)
Set method for Isolation Track Corrections.
Definition: Muon_v1.cxx:326
xAODType::ObjectType
ObjectType
Type of objects that have a representation in the xAOD EDM.
Definition: ObjectType.h:32
ParticleJetParams::Author
Author
Definition: ParticleJetParamDefs.h:33
xAOD::bool
setBGCode setTAP setLVL2ErrorBits bool
Definition: TrigDecision_v1.cxx:60
xAOD::IParticle::operator=
IParticle & operator=(const IParticle &)=default
xAOD::Muon_v1::setQuality
void setQuality(Quality)
Definition: Muon_v1.cxx:233
xAOD::Muon_v1::combinedTrackParticleLink
const ElementLink< TrackParticleContainer > & combinedTrackParticleLink() const
Returns an ElementLink to the InnerDetector TrackParticle used in identification of this muon.
xAOD::AUXSTORE_OBJECT_SETTER_AND_GETTER
AUXSTORE_OBJECT_SETTER_AND_GETTER(CaloRings_v1, RingSetLinks, ringSetLinks, setRingSetLinks) unsigned CaloRings_v1
Definition: CaloRings_v1.cxx:27
xAOD::Muon_v1::muonType
MuonType muonType() const