ATLAS Offline Software
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
24 
25 namespace xAOD {
26 
28  : IParticle() {
29  }
30 
32  : IParticle(rhs) //IParticle does not have a copy constructor. AuxElement has one with same behavior as default ctor
33  {
34  this->makePrivateStore(rhs);
35  }
36 
38  if(this == &rhs) return *this;
39 
40  if( ( ! hasStore() ) && ( ! container() ) ) {
42  }
43  this->IParticle::operator=( rhs );
44 
45  return *this;
46  }
47 
49  }
50 
52  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( Muon_v1, float, double, eta)
55 
56  // AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( Muon_v1, float, double, e)
57 
58  double Muon_v1::e() const {
59  // FIXME - optimise?
60  return genvecP4().E();
61  }
62 
63  double Muon_v1::m() const {
65  }
66 
67  void Muon_v1::setP4(double pt, double eta, double phi) {
68  static const Accessor< float > acc1( "pt" );
69  static const Accessor< float > acc2( "eta" );
70  static const Accessor< float > acc3( "phi" );
71  acc1( *this )=pt;
72  acc2( *this )=eta;
73  acc3( *this )=phi;
74  }
75 
76  double Muon_v1::rapidity() const {
77  return genvecP4().Rapidity();
78  }
79 
82  p4.SetPtEtaPhiM( pt(), eta(), phi(), m() );
83  return p4;
84  }
85 
86  // depend on return value optimization
88  return GenVecFourMom_t(pt(), eta(), phi(), m());
89  }
90 
91 // float Muon_v1::charge() const {
92 // if (primaryTrackParticle()) return primaryTrackParticle()->charge();
93 // // something has gone wrong!
94 // throw std::runtime_error("No link to primary TrackParticle!");
95 // }
96 
98  return Type::Muon;
99  }
100 
103 
104  AUXSTORE_PRIMITIVE_SETTER_AND_GETTER( Muon_v1, uint16_t, allAuthors, setAllAuthors)
105 
106 
107  void Muon_v1::addAllAuthor ( const Author author ){
108  static const Accessor< uint16_t > acc( "allAuthors" );
109  acc(*this) |= 1<<static_cast<unsigned int>(author);
110  }
111 
112  bool Muon_v1::isAuthor ( const Author author ) const{
113  static const Accessor< uint16_t > acc( "allAuthors" );
114  return (acc(*this)& (1<<static_cast<unsigned int>(author)));
115  }
116 
117  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( Muon_v1, uint16_t, Muon_v1::MuonType, muonType)
118  AUXSTORE_PRIMITIVE_SETTER_WITH_CAST( Muon_v1, uint16_t, Muon_v1::MuonType, muonType, setMuonType)
119 
120  bool Muon_v1::summaryValue(uint8_t& value, const SummaryType information) const {
121  // Here we want to check if this information has been added to the Muon, and use this first if so.
122  // @todo ?Could further optimise the below, to see first if the SummaryType value is one of the ones we write to Muons?
123  // @todo ?Is there a better way than catching the exception?
124  try {
126  value = ( *acc )( *this );
127  return true;
128  } catch ( SG::ExcBadAuxVar& ) {}
129 
130  // Okay - fallback: try to get from TrackParticle.
131  const ElementLink< TrackParticleContainer >& el= primaryTrackParticleLink();
132  if (!el.isValid()) return false;
133  return (*el)->summaryValue(value,information);
134  }
135 
136  void Muon_v1::setSummaryValue( uint8_t value, const SummaryType information ) {
138  // Set the value:
139  ( *acc )( *this ) = value;
140  }
141 
142  // No set method for 'float' values as not expected to be needed
143 
144  bool Muon_v1::summaryValue(float& value, const SummaryType information) const {
146  if (!el.isValid()) return false;
147  return (*el)->summaryValue(value,information);
148  }
149 
150  float Muon_v1::floatSummaryValue(const SummaryType information) const {
152  return ( *acc )( *this );
153  }
154 
157  return ( *acc )( *this );
158  }
159 
160  bool Muon_v1::summaryValue(uint8_t& value, const MuonSummaryType information) const {
161  const Muon_v1::Accessor< uint8_t >* acc = muonTrackSummaryAccessorV1( information );
162  if( ! acc ) return false;
163  if( ! acc->isAvailable( *this ) ) return false;
164 
165  // Retrieve the value:
166  value = ( *acc )( *this );
167  return true;
168  }
169 
170  float Muon_v1::uint8MuonSummaryValue(const MuonSummaryType information) const{
171  const Muon_v1::Accessor< uint8_t >* acc = muonTrackSummaryAccessorV1( information );
172  return ( *acc )( *this );
173  }
174 
175 
177  const Muon_v1::Accessor< uint8_t >* acc = muonTrackSummaryAccessorV1( information );
178  // Set the value:
179  ( *acc )( *this ) = value;
180  }
181 
182  bool Muon_v1::parameter(float& value, const Muon_v1::ParamDef information) const {
183  const xAOD::Muon_v1::Accessor< float >* acc = parameterAccessorV1<float>( information );
184  if( ! acc ) return false;
185  if( ! acc->isAvailable( *this ) ) return false;
186 
187  // Retrieve the value:
188  value = ( *acc )( *this );
189  return true;
190  }
191 
193  const xAOD::Muon_v1::Accessor< float >* acc = parameterAccessorV1<float>( information );
194  return ( *acc )( *this );
195  }
196 
197  void Muon_v1::setParameter(float value, const Muon_v1::ParamDef information){
198  const xAOD::Muon_v1::Accessor< float >* acc = parameterAccessorV1<float>( information );
199  if( ! acc ) throw std::runtime_error("Muon_v1::setParameter - no float accessor for paramdef number: "+std::to_string(information));
200 
201  // Set the value:
202  ( *acc )( *this ) = value;
203  }
204 
205  bool Muon_v1::parameter(int& value, const Muon_v1::ParamDef information) const {
206  const xAOD::Muon_v1::Accessor< int >* acc = parameterAccessorV1<int>( information );
207  if( ! acc ) return false;
208  if( ! acc->isAvailable( *this ) ) return false;
209 
210  // Retrieve the value:
211  value = ( *acc )( *this );
212  return true;
213  }
214 
216  const xAOD::Muon_v1::Accessor< int >* acc = parameterAccessorV1<int>( information );
217  return ( *acc )( *this );
218  }
219 
220  void Muon_v1::setParameter(int value, const Muon_v1::ParamDef information){
221  const xAOD::Muon_v1::Accessor< int >* acc = parameterAccessorV1<int>( information );
222  if( ! acc ) throw std::runtime_error("Muon_v1::setParameter - no int accessor for paramdef number: "+std::to_string(information));
223 
224  // Set the value:
225  ( *acc )( *this ) = value;
226  }
227 
228  xAOD::Muon_v1::Quality Muon_v1::quality() const {
229  static const Accessor< uint8_t > acc( "quality" );
230  uint8_t temp = acc( *this );
231  return static_cast<Quality>(temp&3);
232  }
233 
234  void Muon_v1::setQuality(xAOD::Muon_v1::Quality value) {
235  static const Accessor< uint8_t > acc( "quality" );
236  uint8_t temp = static_cast< uint8_t >(value);
237  acc( *this ) = acc( *this ) & ~(0x7); // Reset the first 3 bits.
238  acc( *this ) |= temp;
239  return;
240  }
241 
242  bool Muon_v1::passesIDCuts() const {
243  static const Accessor< uint8_t > acc( "quality" );
244  uint8_t temp = acc( *this );
245  // We use 4th bit for 'passesIDCuts'
246  return temp&8;
247  }
248 
250  static const Accessor< uint8_t > acc( "quality" );
251  // We use 4th bit for 'passesIDCuts'
252  if (value) acc( *this ) |= 8;
253  else acc( *this ) &= 247;
254  return;
255  }
256 
257  // AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( Muon_v1, uint8_t, Muon_v1::Quality,
258  // quality )
259  // AUXSTORE_PRIMITIVE_SETTER_WITH_CAST( Muon_v1, uint8_t, Muon_v1::Quality,
260  // quality, setQuality )
261 
262  bool Muon_v1::isolation(float& value, const Iso::IsolationType information) const {
263  const SG::AuxElement::Accessor< float >* acc = getIsolationAccessor( information );
264 
265  if( ! acc ) return false;
266  if( !acc->isAvailable( *this) ) return false;
267 
268  // Retrieve the value:
269  value = ( *acc )( *this );
270  return true;
271  }
272 
273  float Muon_v1::isolation( const Iso::IsolationType information) const {
274  const SG::AuxElement::Accessor< float >* acc = getIsolationAccessor( information );
275  if( !acc ) throw std::runtime_error( "Unknown/Unavailable Isolation type requested" );
276  return ( *acc )( *this );
277  }
278 
279  void Muon_v1::setIsolation(float value, const Iso::IsolationType information){
280  const SG::AuxElement::Accessor< float >* acc = getIsolationAccessor( information );
281  if( !acc ) throw std::runtime_error( "Unknown/Unavailable Isolation type requested" );
282  // Set the value:
283  ( *acc )( *this ) = value;
284  }
285 
288  const Iso::IsolationCorrectionParameter param) const{
290  if( !acc.isAvailable( *this) ) return false;
291  // Retrieve the value:
292  value = acc( *this );
293  return true;
294  }
295 
297  const Iso::IsolationCorrectionParameter param) const{
298 
300  if( !acc.isAvailable( *this) ) throw std::runtime_error( "Unknown/Unavailable Isolation correction requested" );
301  return acc( *this );
302  }
303 
307  // Set the value:
308  acc( *this ) = value;
309  return true;
310  }
311 
314  if( !acc.isAvailable( *this) ) return false;
315  // Retrieve the value:
316  value = acc( *this );
317  return true;
318  }
319 
321 
323  if( !acc.isAvailable( *this) ) throw std::runtime_error( "Unknown/Unavailable Isolation correction requested" );
324  return acc( *this );
325  }
326 
329  // Set the value:
330  acc( *this ) = value;
331  return true;
332  }
333 
334  bool Muon_v1::isolationCorrectionBitset(std::bitset<32>& value, const Iso::IsolationFlavour flavour ) const{
336  if( !acc.isAvailable( *this) ) return false;
337  // Retrieve the value:
338  value = std::bitset<32>(acc( *this ));
339  return true;
340  }
341 
342  std::bitset<32> Muon_v1::isolationCorrectionBitset(const Iso::IsolationFlavour flavour ) const{
344  if( !acc.isAvailable( *this) ) throw std::runtime_error( "Unknown/Unavailable Isolation BitSet requested" );
345  return std::bitset<32>( acc( *this ) );
346  }
347 
350  // Set the value:
351  acc( *this ) = value;
352  return true;
353  }
354 
356  AUXSTORE_OBJECT_GETTER( Muon_v1, ElementLink< TrackParticleContainer >, muonSpectrometerTrackParticleLink)
357  AUXSTORE_OBJECT_GETTER( Muon_v1, ElementLink< TrackParticleContainer >, extrapolatedMuonSpectrometerTrackParticleLink)
358  AUXSTORE_OBJECT_GETTER( Muon_v1, ElementLink< TrackParticleContainer >, msOnlyExtrapolatedMuonSpectrometerTrackParticleLink)
360 
361  const ElementLink< TrackParticleContainer >& Muon_v1::primaryTrackParticleLink() const{
362  MuonType type = muonType();
363  switch ( type ) {
364  case Combined :
365  case SiliconAssociatedForwardMuon :
366  return combinedTrackParticleLink();
367  break;
368  case SegmentTagged :
369  case CaloTagged :
370  return inDetTrackParticleLink();
371  break;
372  case MuonStandAlone :
373  {
374  // Not checking if links are valid here - this is the job of the client (as per the cases above).
375  // But we DO check that the link is available, so we can check for both types of links.
376 
377  static const Accessor< ElementLink< TrackParticleContainer > > acc1( "extrapolatedMuonSpectrometerTrackParticleLink" );
378  if ( acc1.isAvailable( *this ) && acc1( *this ).isValid() ) {
379  return acc1( *this );
380  }
381 
382  static const Accessor< ElementLink< TrackParticleContainer > > acc2( "msOnlyExtrapolatedMuonSpectrometerTrackParticleLink" );
383  if ( acc2.isAvailable( *this ) && acc2( *this ).isValid() ) {
384  return acc2( *this );
385  }
386 
387  static const Accessor< ElementLink< TrackParticleContainer > > acc3( "muonSpectrometerTrackParticleLink" );
388  if ( acc3.isAvailable( *this ) && acc3( *this ).isValid()) {
389  return acc3( *this );
390  }
391  // 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...?
392  throw std::runtime_error("Type is MuonStandAlone but no available link to return!");
393  }
394  default:
395  throw std::runtime_error("Unknown primary type - not sure which track particle to return!");
396  }
397  // static ElementLink< TrackParticleContainer > dummy;
398  // return dummy;
399  }
400 
402 
403  MuonType type = muonType();
404  switch( type ) {
405  case Combined:
406  case SiliconAssociatedForwardMuon :
407  {
408  static const Accessor< ElementLink< TrackParticleContainer > > acc( "combinedTrackParticleLink" );
409  if( ! acc.isAvailable( *this ) ) return nullptr;
410 
411  const ElementLink< TrackParticleContainer >& link = acc( *this );
412  if( ! link.isValid() ) return nullptr;
413 
414  return *link;
415  }
416  case SegmentTagged:
417  case CaloTagged :
418  {
419  static const Accessor< ElementLink< TrackParticleContainer > > acc( "inDetTrackParticleLink" );
420  if( ! acc.isAvailable( *this ) ) return nullptr;
421 
422  const ElementLink< TrackParticleContainer >& link = acc( *this );
423  if( ! link.isValid() ) return nullptr;
424 
425  return *link;
426  }
427  case MuonStandAlone :
428  {
429  // Want to return link to extrapolated MS track particle if possible.
430  static const Accessor< ElementLink< TrackParticleContainer > > acc1( "extrapolatedMuonSpectrometerTrackParticleLink" );
431  if ( acc1.isAvailable( *this ) ) {
432  const ElementLink< TrackParticleContainer >& link = acc1( *this );
433  if ( link.isValid() ) return *link;
434  }
435 
436  //if no, maybe the MS-only extrapolated track particle?
437  static const Accessor< ElementLink< TrackParticleContainer > > acc2( "msOnlyExtrapolatedMuonSpectrometerTrackParticleLink" );
438  if ( acc2.isAvailable( *this ) ) {
439  const ElementLink< TrackParticleContainer >& link = acc2( *this );
440  if ( link.isValid() ) return *link;
441  }
442 
443  // Try fallback (non-extrapolated MS track particle)...
444  static const Accessor< ElementLink< TrackParticleContainer > > acc3( "muonSpectrometerTrackParticleLink" );
445  if ( acc3.isAvailable( *this ) ) {
446  const ElementLink< TrackParticleContainer >& link = acc3( *this );
447  if ( link.isValid() ) return *link;
448  }
449 
450  return nullptr;
451  }
452  default:
453  {
454  // No valid link.
455  return nullptr;
456  }
457  }
458  }
459 
460  const ElementLink< TrackParticleContainer >& Muon_v1::trackParticleLink( Muon_v1::TrackParticleType type) const{
461  switch ( type ) {
462  case Primary :
463  return primaryTrackParticleLink();
464  break;
465  case CombinedTrackParticle :
466  return combinedTrackParticleLink();
467  break;
468  case InnerDetectorTrackParticle :
469  return inDetTrackParticleLink();
470  break;
471  case MuonSpectrometerTrackParticle :
473  break;
474  case ExtrapolatedMuonSpectrometerTrackParticle :
476  break;
477  case MSOnlyExtrapolatedMuonSpectrometerTrackParticle :
479  break;
480  default:
481  throw std::runtime_error("Unknown TrackParticleType - not sure which track particle to return!");
482  }
483  // static ElementLink< TrackParticleContainer > dummy;
484  // return dummy;
485  }
486 
487  const xAOD::TrackParticle* Muon_v1::trackParticle( Muon_v1::TrackParticleType type) const{
488  // TODO - perhaps we can get rid of this try/catch clause?
489  try {
490  // Get the ElementLink pointing to the requested track particle:
493 
494  // If it's invalid, return a null pointer:
495  if( ! el.isValid() ) {
496  return nullptr;
497  }
498 
499  // If it's valid, let's de-reference it:
500  return *el;
501  } catch ( SG::ExcBadAuxVar& ) {
502  return nullptr;
503  }
504  }
505 
507  switch ( type ) {
508  case InnerDetectorTrackParticle :
509  static const Accessor< ElementLink< TrackParticleContainer > > acc1( "inDetTrackParticleLink" );
510  acc1(*this)=link;
511  break;
512  case MuonSpectrometerTrackParticle :
513  static const Accessor< ElementLink< TrackParticleContainer > > acc2( "muonSpectrometerTrackParticleLink" );
514  acc2(*this)=link;
515  break;
516  case CombinedTrackParticle :
517  static const Accessor< ElementLink< TrackParticleContainer > > acc3( "combinedTrackParticleLink" );
518  acc3(*this)=link;
519  break;
520  case ExtrapolatedMuonSpectrometerTrackParticle :
521  static const Accessor< ElementLink< TrackParticleContainer > > acc4( "extrapolatedMuonSpectrometerTrackParticleLink" );
522  acc4(*this)=link;
523  break;
524  case MSOnlyExtrapolatedMuonSpectrometerTrackParticle :
525  static const Accessor< ElementLink< TrackParticleContainer > > acc5( "msOnlyExtrapolatedMuonSpectrometerTrackParticleLink" );
526  acc5(*this)=link;
527  break;
528  case Primary :
529  default:
530  throw std::runtime_error("Unknown or Primary TrackParticleType - not sure which track particle to set!");
531  }
532  }
533 
535  const CaloCluster* Muon_v1::cluster() const {
536 
537  static const Accessor< ElementLink< TrackParticleContainer > > acc( "inDetTrackParticleLink" );
538  if( ! acc.isAvailable( *this ) ) {
539  return nullptr;
540  }
541  const ElementLink< TrackParticleContainer >& link = acc( *this );
542  if( ! link.isValid() ) {
543  return nullptr;
544  }
545 
546  // Get the ElementLink pointing to the calo cluster:
547  const ElementLink< CaloClusterContainer >& el = clusterLink();
548  // If it's invalid, return a null pointer:
549  if( ! el.isValid() ) {
550  return nullptr;
551  }
552  // If it's valid, let's de-reference it:
553  return *el;
554  }
555 
559  energyLossType, setEnergyLossType )
560 
561  AUXSTORE_OBJECT_SETTER_AND_GETTER( Muon_v1, std::vector< ElementLink< xAOD::MuonSegmentContainer > >, muonSegmentLinks, setMuonSegmentLinks)
562 
563  static const SG::AuxElement::Accessor< std::vector< ElementLink< MuonSegmentContainer > > > muonSegmentsAcc( "muonSegmentLinks" );
564  size_t Muon_v1::nMuonSegments() const {
565  // If a link was not set (yet), return zero.
566  if( ! muonSegmentsAcc.isAvailable( *this ) ) {
567  return 0;
568  }
569  return muonSegmentsAcc(*this).size();
570  }
571 
573  // If a Trk::Track link was not set (yet), return a dummy object:
574  // FIXME - maybe
575  if( ! muonSegmentsAcc.isAvailable( *this ) ) {
577  return dummy;
578  }
579  return muonSegmentsAcc(*this).at(i);
580  }
581 
582  const MuonSegment* Muon_v1::muonSegment( size_t i ) const{
583  // Get the ElementLink pointing to the requested muon segment:
585  muonSegmentLink( i );
586  // If it's invalid, return a null pointer:
587  if( ! el.isValid() ) {
588  return nullptr;
589  }
590  // If it's valid, let's de-reference it:
591  return *el;
592  }
593 } // namespace xAOD
594 
python.CaloBCIDAvgAlgConfig.acc3
def acc3
Definition: CaloBCIDAvgAlgConfig.py:69
xAOD::Muon_v1::primaryTrackParticleLink
const ElementLink< TrackParticleContainer > & primaryTrackParticleLink() const
Definition: Muon_v1.cxx:361
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:76
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:262
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:558
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:487
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:80
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:582
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:228
ParticleConstants::PDG2011::muonMassInMeV
constexpr double muonMassInMeV
the mass of the muon (in MeV)
Definition: ParticleConstants.h:29
xAOD::Muon_v1::setTrackParticleLink
void setTrackParticleLink(TrackParticleType type, const ElementLink< TrackParticleContainer > &link)
Set method for TrackParticle links.
Definition: Muon_v1.cxx:506
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:215
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:67
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:48
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:249
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:279
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:460
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:312
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:27
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:334
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:120
ParticleConstants.h
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.
CalibDbCompareRT.dummy
dummy
Definition: CalibDbCompareRT.py:59
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.
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:150
xAOD::Muon_v1::m
virtual double m() const
The invariant mass of the particle..
Definition: Muon_v1.cxx:63
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:37
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:192
xAOD::Muon_v1::type
virtual Type::ObjectType type() const
The type of the object as a simple enumeration.
Definition: Muon_v1.cxx:97
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:170
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:286
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:112
xAOD::energyLossType
energyLossType
Definition: Muon_v1.cxx:559
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:242
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:155
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:348
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:136
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:25
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:304
xAOD::Muon_v1::genvecP4
GenVecFourMom_t genvecP4() const
The full 4-momentum of the particle : GenVector.
Definition: Muon_v1.cxx:87
xAOD::Muon_v1::muonSegmentLink
const ElementLink< MuonSegmentContainer > & muonSegmentLink(size_t i) const
Returns a link to the specified MuonSegment.
Definition: Muon_v1.cxx:572
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:401
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:327
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:234
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