ATLAS Offline Software
L2StandAloneMuon_v2.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 
6 // System include(s):
7 #include <iostream>
8 
9 // EDM include(s):
11 
12 // Local include(s):
15 
16 namespace xAOD {
17 
19  : IParticle() {
20 
21  }
22 
24  //
25  // Implementation of the xAOD::IParticle functions
26  //
27 
29  pt )
31  eta )
33  phi )
34 
35  double L2StandAloneMuon_v2::m() const {
36 
37  return 105.6583715;
38  }
39 
40  double L2StandAloneMuon_v2::e() const {
41 
42  return genvecP4().E();
43  }
44 
45  double L2StandAloneMuon_v2::rapidity() const {
46 
47  return genvecP4().Rapidity();
48  }
49 
51  FourMom_t p4;
52  p4.SetPtEtaPhiM( pt(), eta(), phi(),m());
53  return p4;
54  }
55 
58  return GenVecFourMom_t(pt(), eta(), phi(), m());
59  }
60 
62 
63  // Create some trigger types in xAODBase in the next round...
64  return Type::Other;
65  }
66 
67  //
69 
71  //
72  // Implementation of the 4-momentum setter functions
73  //
74 
75  void L2StandAloneMuon_v2::setPt( float pt ) {
76 
77  static const Accessor< float > acc( "pt" );
78  acc( *this ) = pt;
79  return;
80  }
81 
83 
84  static const Accessor< float > acc( "eta" );
85  acc( *this ) = eta;
86  return;
87  }
88 
90 
91  static const Accessor< float > acc( "phi" );
92  acc( *this ) = phi;
93  return;
94  }
95 
96  //
98 
100  //
101  // Implementation of the LVL2 muon specific functions
102  //
104 
110  roiWord, setRoIWord )
112  sAddress, setSAddress )
114  rMS, setRMS )
116  etaMS, setEtaMS )
118  phiMS, setPhiMS )
120  dirPhiMS, setDirPhiMS )
122  zMS, setZMS )
124  dirZMS, setDirZMS )
126  beta, setBeta )
128  barrelRadius, setBarrelRadius )
130  barrelSagitta, setBarrelSagitta )
132  endcapAlpha, setEndcapAlpha )
134  endcapBeta, setEndcapBeta )
136  endcapRadius, setEndcapRadius )
138  etaMap, setEtaMap )
140  phiMap, setPhiMap )
142  etaBin, setEtaBin )
144  phiBin, setPhiBin )
146  isTgcFailure, setIsTgcFailure )
148  isRpcFailure, setIsRpcFailure )
150  deltaPt, setDeltaPt )
152  deltaPtParm1, setDeltaPtParm1 )
154  deltaPtParm2, setDeltaPtParm2 )
156  deltaPtParm3, setDeltaPtParm3 )
158  deltaEta, setDeltaEta )
160  deltaPhi, setDeltaPhi )
161  //
163 
168  static const SG::AuxElement::Accessor< std::vector< float > > sprAcc( "superPointR" );
170  static const SG::AuxElement::Accessor< std::vector< float > > spzAcc( "superPointZ" );
172  static const SG::AuxElement::Accessor< std::vector< float > > spsAcc( "superPointSlope" );
174  static const SG::AuxElement::Accessor< std::vector< float > > spiAcc( "superPointIntercept" );
176  static const SG::AuxElement::Accessor< std::vector< float > > spcAcc( "superPointChi2" );
177 
179  float L2StandAloneMuon_v2::superPointR( int chamber ) const {
180  if( chamber >= 0 && sprAcc( *this ).size() > (unsigned int)chamber ) {
181  return sprAcc( *this ).at( chamber );
182  } else {
183  return 0.;
184  }
185  }
186 
188  if( chamber >= 0 && spzAcc( *this ).size() > (unsigned int)chamber ) {
189  return spzAcc( *this ).at( chamber );
190  } else {
191  return 0.;
192  }
193  }
194 
196  if( chamber >= 0 && spsAcc( *this ).size() > (unsigned int)chamber ) {
197  return spsAcc( *this ).at( chamber );
198  } else {
199  return 0.;
200  }
201  }
202 
204  if( chamber >= 0 && spiAcc( *this ).size() > (unsigned int)chamber ) {
205  return spiAcc( *this ).at( chamber );
206  } else {
207  return 0.;
208  }
209  }
210 
212  if( chamber >= 0 && spcAcc( *this ).size() > (unsigned int)chamber ) {
213  return spcAcc( *this ).at( chamber );
214  } else {
215  return 0.;
216  }
217  }
218 
221  float slope, float intercept, float chi2 ) {
222 
223  // Make sure that the variables are big enough:
224  if( sprAcc( *this ).size() < L2MuonParameters::Chamber::MaxChamber ) {
225  sprAcc( *this ).resize( L2MuonParameters::Chamber::MaxChamber, 0.0 );
226  }
227  if( spzAcc( *this ).size() < L2MuonParameters::Chamber::MaxChamber ) {
228  spzAcc( *this ).resize( L2MuonParameters::Chamber::MaxChamber, 0.0 );
229  }
230  if( spsAcc( *this ).size() < L2MuonParameters::Chamber::MaxChamber ) {
231  spsAcc( *this ).resize( L2MuonParameters::Chamber::MaxChamber, 0.0 );
232  }
233  if( spiAcc( *this ).size() < L2MuonParameters::Chamber::MaxChamber ) {
234  spiAcc( *this ).resize( L2MuonParameters::Chamber::MaxChamber, 0.0 );
235  }
236  if( spcAcc( *this ).size() < L2MuonParameters::Chamber::MaxChamber ) {
237  spcAcc( *this ).resize( L2MuonParameters::Chamber::MaxChamber, 0.0 );
238  }
239 
241  // Set the variables:
242  sprAcc( *this ).at( chamber ) = r;
243  spzAcc( *this ).at( chamber ) = z;
244  spsAcc( *this ).at( chamber ) = slope;
245  spiAcc( *this ).at( chamber ) = intercept;
246  spcAcc( *this ).at( chamber ) = chi2;
247  }
248 
249  return;
250  }
251 
254 
258  static const SG::AuxElement::Accessor< std::vector< float > > trkrAcc( "trackPositionR" );
259  static const SG::AuxElement::Accessor< std::vector< float > > trkzAcc( "trackPositionZ" );
260  static const SG::AuxElement::Accessor< std::vector< float > > trketaAcc( "trackPositionEta" );
261  static const SG::AuxElement::Accessor< std::vector< float > > trkphiAcc( "trackPositionPhi" );
262 
265  return trkrAcc( *this ).size();
266  }
267 
268  float L2StandAloneMuon_v2::trackPositionR( unsigned int n ) const {
269  if( trkrAcc( *this ).size() > n ) {
270  return trkrAcc( *this ).at( n );
271  } else {
272  return 0.;
273  }
274  }
275 
276  float L2StandAloneMuon_v2::trackPositionZ( unsigned int n ) const {
277  if( trkzAcc( *this ).size() > n ) {
278  return trkzAcc( *this ).at( n );
279  } else {
280  return 0.;
281  }
282  }
283 
284  float L2StandAloneMuon_v2::trackPositionEta( unsigned int n ) const {
285  if( trketaAcc( *this ).size() > n ) {
286  return trketaAcc( *this ).at( n );
287  } else {
288  return 0.;
289  }
290  }
291 
292  float L2StandAloneMuon_v2::trackPositionPhi( unsigned int n ) const {
293  if( trkphiAcc( *this ).size() > n ) {
294  return trkphiAcc( *this ).at( n );
295  } else {
296  return 0.;
297  }
298  }
299 
300 
301  void L2StandAloneMuon_v2::setTrackPosition( float r, float z, float eta, float phi ) {
302 
303  // Set the variables:
304  trkrAcc( *this ).push_back( r );
305  trkzAcc( *this ).push_back( z );
306  trketaAcc( *this ).push_back( eta );
307  trkphiAcc( *this ).push_back( phi );
308 
309  return;
310  }
311  //
313 
317 
321  algoId, setAlgoId )
323  teId, setTeId )
325  lvl1Id, setLvl1Id )
329  muonDetMask, setMuonDetMask )
331  roiId, setRoiId )
333  roiSystem, setRoiSystem )
335  roiSubsystem, setRoiSubsystem )
337  roiSector, setRoiSector )
339  roiNumber, setRoiNumber )
341  roiThreshold, setRoiThreshold )
343  roiEta, setRoiEta )
345  roiPhi, setRoiPhi )
348 
352  tgcPt, setTgcPt )
354  ptBarrelRadius, setPtBarrelRadius )
356  ptBarrelSagitta, setPtBarrelSagitta )
358  ptEndcapAlpha, setPtEndcapAlpha )
360  ptEndcapBeta, setPtEndcapBeta )
362  ptEndcapRadius, setPtEndcapRadius )
364  ptCSC, setPtCSC )
367 
373  static const SG::AuxElement::Accessor< std::vector< int > >
374  ct1nAcc( "chamberType1Normal" );
375  static const SG::AuxElement::Accessor< std::vector< int > >
376  ct1oAcc( "chamberType1Overlap" );
377  static const SG::AuxElement::Accessor< std::vector< int > >
378  ct2nAcc( "chamberType2Normal" );
379  static const SG::AuxElement::Accessor< std::vector< int > >
380  ct2oAcc( "chamberType2Overlap" );
381 
383  static const SG::AuxElement::Accessor< std::vector< float > >
384  awnAcc( "roadAwNormal" );
385  static const SG::AuxElement::Accessor< std::vector< float > >
386  awoAcc( "roadAwOverlap" );
387  static const SG::AuxElement::Accessor< std::vector< float > >
388  bwnAcc( "roadBwNormal" );
389  static const SG::AuxElement::Accessor< std::vector< float > >
390  bwoAcc( "roadBwOverlap" );
391 
393  static const SG::AuxElement::Accessor< std::vector< float > >
394  zminnAcc( "zMinNormal" );
395  static const SG::AuxElement::Accessor< std::vector< float > >
396  zminoAcc( "zMinOverlap" );
397  static const SG::AuxElement::Accessor< std::vector< float > >
398  zmaxnAcc( "zMaxNormal" );
399  static const SG::AuxElement::Accessor< std::vector< float > >
400  zmaxoAcc( "zMaxOverlap" );
401 
403  static const SG::AuxElement::Accessor< std::vector< float > >
404  rminnAcc( "rMinNormal" );
405  static const SG::AuxElement::Accessor< std::vector< float > >
406  rminoAcc( "rMinOverlap" );
407  static const SG::AuxElement::Accessor< std::vector< float > >
408  rmaxnAcc( "rMaxNormal" );
409  static const SG::AuxElement::Accessor< std::vector< float > >
410  rmaxoAcc( "rMaxOverlap" );
411 
413  static const SG::AuxElement::Accessor< std::vector< float > >
414  eminnAcc( "etaMinNormal" );
415  static const SG::AuxElement::Accessor< std::vector< float > >
416  eminoAcc( "etaMinOverlap" );
417  static const SG::AuxElement::Accessor< std::vector< float > >
418  emaxnAcc( "etaMaxNormal" );
419  static const SG::AuxElement::Accessor< std::vector< float > >
420  emaxoAcc( "etaMaxOverlap" );
421 
426  int L2StandAloneMuon_v2::chamberType1( int station, int sector ) const {
427 
428  if ( station < 0 ) return 0;
429 
430  if ( sector == 0 ) {
432 
433  if ( ct1nAcc( *this ).size() > (unsigned int)station ) {
434  return ct1nAcc( *this ).at( station );
435  } else {
436  return 0;
437  }
438 
439  } else if ( sector == 1 ) {
441 
442  if ( ct1oAcc( *this ).size() > (unsigned int)station ) {
443  return ct1oAcc( *this ).at( station );
444  } else {
445  return 0;
446  }
447 
448  }
449 
450  return 0;
451  }
452 
453  int L2StandAloneMuon_v2::chamberType2( int station, int sector ) const {
454 
455  if ( station < 0 ) return 0;
456 
457  if ( sector == 0 ) {
459  if ( ct2nAcc( *this ).size() > (unsigned int)station ) {
460  return ct2nAcc( *this ).at( station );
461  } else {
462  return 0;
463  }
464 
465  } else if ( sector == 1 ) {
467 
468  if ( ct2oAcc( *this ).size() > (unsigned int)station ) {
469  return ct2oAcc( *this ).at( station );
470  } else {
471  return 0;
472  }
473 
474  }
475 
476  return 0;
477  }
478 
480  float L2StandAloneMuon_v2::roadAw( int station, int sector ) const {
481 
482  if ( station < 0 ) return 0;
483 
484  if ( sector == 0 ) {
486  if ( awnAcc( *this ).size() > (unsigned int)station ) {
487  return awnAcc( *this ).at( station );
488  } else {
489  return 0.;
490  }
491 
492  } else if ( sector == 1 ) {
494 
495  if ( awoAcc( *this ).size() > (unsigned int)station ) {
496  return awoAcc( *this ).at( station );
497  } else {
498  return 0.;
499  }
500 
501  }
502 
503  return 0.;
504  }
505 
507  float L2StandAloneMuon_v2::roadBw( int station, int sector ) const {
508 
509  if ( station < 0 ) return 0;
510 
511  if ( sector == 0 ) {
513  if ( bwnAcc( *this ).size() > (unsigned int)station ) {
514  return bwnAcc( *this ).at( station );
515  } else {
516  return 0.;
517  }
518 
519  } else if ( sector == 1 ) {
521 
522  if ( bwoAcc( *this ).size() > (unsigned int)station ) {
523  return bwoAcc( *this ).at( station );
524  } else {
525  return 0.;
526  }
527 
528  }
529 
530  return 0.;
531  }
532 
534  float L2StandAloneMuon_v2::zMin( int station, int sector ) const {
535 
536  if ( station < 0 ) return 0;
537 
538  if ( sector == 0 ) {
540  if ( zminnAcc( *this ).size() > (unsigned int)station ) {
541  return zminnAcc( *this ).at( station );
542  } else {
543  return 0.;
544  }
545 
546  } else if ( sector == 1 ) {
548 
549  if ( zminoAcc( *this ).size() > (unsigned int)station ) {
550  return zminoAcc( *this ).at( station );
551  } else {
552  return 0.;
553  }
554 
555  }
556 
557  return 0.;
558  }
559 
560  float L2StandAloneMuon_v2::zMax( int station, int sector ) const {
561 
562  if ( station < 0 ) return 0;
563 
564  if ( sector == 0 ) {
566  if ( zmaxnAcc( *this ).size() > (unsigned int)station ) {
567  return zmaxnAcc( *this ).at( station );
568  } else {
569  return 0.;
570  }
571 
572  } else if ( sector == 1 ) {
574 
575  if ( zmaxoAcc( *this ).size() > (unsigned int)station ) {
576  return zmaxoAcc( *this ).at( station );
577  } else {
578  return 0.;
579  }
580 
581  }
582 
583  return 0.;
584  }
585 
587  float L2StandAloneMuon_v2::rMin( int station, int sector ) const {
588 
589  if ( station < 0 ) return 0;
590 
591  if ( sector == 0 ) {
593  if ( rminnAcc( *this ).size() > (unsigned int)station ) {
594  return rminnAcc( *this ).at( station );
595  } else {
596  return 0.;
597  }
598 
599  } else if ( sector == 1 ) {
601 
602  if ( rminoAcc( *this ).size() > (unsigned int)station ) {
603  return rminoAcc( *this ).at( station );
604  } else {
605  return 0.;
606  }
607 
608  }
609 
610  return 0.;
611  }
612 
613  float L2StandAloneMuon_v2::rMax( int station, int sector ) const {
614 
615  if ( station < 0 ) return 0;
616 
617  if ( sector == 0 ) {
619  if ( rmaxnAcc( *this ).size() > (unsigned int)station ) {
620  return rmaxnAcc( *this ).at( station );
621  } else {
622  return 0.;
623  }
624 
625  } else if ( sector == 1 ) {
627 
628  if ( rmaxoAcc( *this ).size() > (unsigned int)station ) {
629  return rmaxoAcc( *this ).at( station );
630  } else {
631  return 0.;
632  }
633 
634  }
635 
636  return 0.;
637  }
638 
640  float L2StandAloneMuon_v2::etaMin( int station, int sector ) const {
641 
642  if ( station < 0 ) return 0;
643 
644  if ( sector == 0 ) {
646  if ( eminnAcc( *this ).size() > (unsigned int)station ) {
647  return eminnAcc( *this ).at( station );
648  } else {
649  return 0.;
650  }
651 
652  } else if ( sector == 1 ) {
654 
655  if ( eminoAcc( *this ).size() > (unsigned int)station ) {
656  return eminoAcc( *this ).at( station );
657  } else {
658  return 0.;
659  }
660 
661  }
662 
663  return 0.;
664  }
665 
666  float L2StandAloneMuon_v2::etaMax( int station, int sector ) const {
667 
668  if ( station < 0 ) return 0;
669 
670  if ( sector == 0 ) {
672  if ( emaxnAcc( *this ).size() > (unsigned int)station ) {
673  return emaxnAcc( *this ).at( station );
674  } else {
675  return 0.;
676  }
677 
678  } else if ( sector == 1 ) {
680 
681  if ( emaxoAcc( *this ).size() > (unsigned int)station ) {
682  return emaxoAcc( *this ).at( station );
683  } else {
684  return 0.;
685  }
686 
687  }
688 
689  return 0.;
690  }
691 
692 
694 
696  void L2StandAloneMuon_v2::setChamberType1( int station, int sector, int chamberType ) {
697 
698  // Make sure that the variables are big enough:
699  if( ct1nAcc( *this ).size() < L2MuonParameters::Chamber::MaxChamber ) {
700  ct1nAcc( *this ).resize( L2MuonParameters::Chamber::MaxChamber, 0.0 );
701  }
702  if( ct1oAcc( *this ).size() < L2MuonParameters::Chamber::MaxChamber ) {
703  ct1oAcc( *this ).resize( L2MuonParameters::Chamber::MaxChamber, 0.0 );
704  }
705 
706  // Make sure that the variables are big enough:
707  if ( station < 0 || station >= L2MuonParameters::Chamber::MaxChamber ) return;
708  if ( sector < 0 || sector > 1 ) return;
709 
710  if (sector == 0 ) {
712  ct1nAcc( *this ).at( station ) = chamberType;
713 
714  } else if ( sector == 1 ) {
716  ct1oAcc( *this ).at( station ) = chamberType;
717 
718  }
719 
720  return;
721  }
722 
723  void L2StandAloneMuon_v2::setChamberType2( int station, int sector, int chamberType ) {
724 
725  // Make sure that the variables are big enough:
726  if( ct2nAcc( *this ).size() < L2MuonParameters::Chamber::MaxChamber ) {
727  ct2nAcc( *this ).resize( L2MuonParameters::Chamber::MaxChamber, 0.0 );
728  }
729  if( ct2oAcc( *this ).size() < L2MuonParameters::Chamber::MaxChamber ) {
730  ct2oAcc( *this ).resize( L2MuonParameters::Chamber::MaxChamber, 0.0 );
731  }
732 
733  // Make sure that the variables are big enough:
734  if ( station < 0 || station >= L2MuonParameters::Chamber::MaxChamber ) return;
735  if ( sector < 0 || sector > 1 ) return;
736 
737  if (sector == 0 ) {
739  ct2nAcc( *this ).at( station ) = chamberType;
740 
741  } else if ( sector == 1 ) {
743  ct2oAcc( *this ).at( station ) = chamberType;
744 
745  }
746 
747  return;
748  }
749 
751  void L2StandAloneMuon_v2::setRoad( int station, int sector, float aw, float bw ) {
752 
753  // Make sure that the variables are big enough:
754  if( awnAcc( *this ).size() < L2MuonParameters::Chamber::MaxChamber ) {
755  awnAcc( *this ).resize( L2MuonParameters::Chamber::MaxChamber, 0.0 );
756  }
757  if( bwnAcc( *this ).size() < L2MuonParameters::Chamber::MaxChamber ) {
758  bwnAcc( *this ).resize( L2MuonParameters::Chamber::MaxChamber, 0.0 );
759  }
760  if( awoAcc( *this ).size() < L2MuonParameters::Chamber::MaxChamber ) {
761  awoAcc( *this ).resize( L2MuonParameters::Chamber::MaxChamber, 0.0 );
762  }
763  if( bwoAcc( *this ).size() < L2MuonParameters::Chamber::MaxChamber ) {
764  bwoAcc( *this ).resize( L2MuonParameters::Chamber::MaxChamber, 0.0 );
765  }
766 
767  // Make sure that the variables are big enough:
768  if ( station < 0 || station >= L2MuonParameters::Chamber::MaxChamber ) return;
769  if ( sector < 0 || sector > 1 ) return;
770 
771  if (sector == 0 ) {
773 
775  awnAcc( *this ).at( station ) = aw;
776 
778  bwnAcc( *this ).at( station ) = bw;
779 
780  } else if ( sector == 1 ) {
782 
784  awoAcc( *this ).at( station ) = aw;
785 
787  bwoAcc( *this ).at( station ) = bw;
788 
789  }
790 
791  return;
792  }
793 
795  void L2StandAloneMuon_v2::setRegionZ( int station, int sector, float min, float max ) {
796 
797  // Make sure that the variables are big enough:
798  if( zminnAcc( *this ).size() < L2MuonParameters::Chamber::MaxChamber ) {
799  zminnAcc( *this ).resize( L2MuonParameters::Chamber::MaxChamber, 0.0 );
800  }
801  if( zmaxnAcc( *this ).size() < L2MuonParameters::Chamber::MaxChamber ) {
802  zmaxnAcc( *this ).resize( L2MuonParameters::Chamber::MaxChamber, 0.0 );
803  }
804  if( zminoAcc( *this ).size() < L2MuonParameters::Chamber::MaxChamber ) {
805  zminoAcc( *this ).resize( L2MuonParameters::Chamber::MaxChamber, 0.0 );
806  }
807  if( zmaxoAcc( *this ).size() < L2MuonParameters::Chamber::MaxChamber ) {
808  zmaxoAcc( *this ).resize( L2MuonParameters::Chamber::MaxChamber, 0.0 );
809  }
810 
811  // Make sure that the variables are big enough:
812  if ( station < 0 || station >= L2MuonParameters::Chamber::MaxChamber ) return;
813  if ( sector < 0 || sector > 1 ) return;
814 
815  if (sector == 0 ) {
817 
819  zminnAcc( *this ).at( station ) = min;
820 
822  zmaxnAcc( *this ).at( station ) = max;
823 
824  } else if ( sector == 1 ) {
826 
828  zminoAcc( *this ).at( station ) = min;
829 
831  zmaxoAcc( *this ).at( station ) = max;
832 
833  }
834 
835  return;
836  }
837 
839  void L2StandAloneMuon_v2::setRegionR( int station, int sector, float min, float max ) {
840 
841  // Make sure that the variables are big enough:
842  if( rminnAcc( *this ).size() < L2MuonParameters::Chamber::MaxChamber ) {
843  rminnAcc( *this ).resize( L2MuonParameters::Chamber::MaxChamber, 0.0 );
844  }
845  if( rmaxnAcc( *this ).size() < L2MuonParameters::Chamber::MaxChamber ) {
846  rmaxnAcc( *this ).resize( L2MuonParameters::Chamber::MaxChamber, 0.0 );
847  }
848  if( rminoAcc( *this ).size() < L2MuonParameters::Chamber::MaxChamber ) {
849  rminoAcc( *this ).resize( L2MuonParameters::Chamber::MaxChamber, 0.0 );
850  }
851  if( rmaxoAcc( *this ).size() < L2MuonParameters::Chamber::MaxChamber ) {
852  rmaxoAcc( *this ).resize( L2MuonParameters::Chamber::MaxChamber, 0.0 );
853  }
854 
855  // Make sure that the variables are big enough:
856  if ( station < 0 || station >= L2MuonParameters::Chamber::MaxChamber ) return;
857  if ( sector < 0 || sector > 1 ) return;
858 
859  if (sector == 0 ) {
861 
863  rminnAcc( *this ).at( station ) = min;
864 
866  rmaxnAcc( *this ).at( station ) = max;
867 
868  } else if ( sector == 1 ) {
870 
872  rminoAcc( *this ).at( station ) = min;
873 
875  rmaxoAcc( *this ).at( station ) = max;
876 
877  }
878 
879  return;
880  }
881 
883  void L2StandAloneMuon_v2::setRegionEta( int station, int sector, float min, float max ) {
884 
885  // Make sure that the variables are big enough:
886  if( eminnAcc( *this ).size() < L2MuonParameters::Chamber::MaxChamber ) {
887  eminnAcc( *this ).resize( L2MuonParameters::Chamber::MaxChamber, 0.0 );
888  }
889  if( emaxnAcc( *this ).size() < L2MuonParameters::Chamber::MaxChamber ) {
890  emaxnAcc( *this ).resize( L2MuonParameters::Chamber::MaxChamber, 0.0 );
891  }
892  if( eminoAcc( *this ).size() < L2MuonParameters::Chamber::MaxChamber ) {
893  eminoAcc( *this ).resize( L2MuonParameters::Chamber::MaxChamber, 0.0 );
894  }
895  if( emaxoAcc( *this ).size() < L2MuonParameters::Chamber::MaxChamber ) {
896  emaxoAcc( *this ).resize( L2MuonParameters::Chamber::MaxChamber, 0.0 );
897  }
898 
899  // Make sure that the variables are big enough:
900  if ( station < 0 || station >= L2MuonParameters::Chamber::MaxChamber ) return;
901  if ( sector < 0 || sector > 1 ) return;
902 
903  if (sector == 0 ) {
905 
907  eminnAcc( *this ).at( station ) = min;
908 
910  emaxnAcc( *this ).at( station ) = max;
911 
912  } else if ( sector == 1 ) {
914 
916  eminoAcc( *this ).at( station ) = min;
917 
919  emaxoAcc( *this ).at( station ) = max;
920 
921  }
922 
923  return;
924  }
925 
928 
936 
937  AUXSTORE_PRIMITIVE_GETTER( L2StandAloneMuon_v2, float, tgcInnRhoStd )
939  AUXSTORE_PRIMITIVE_GETTER( L2StandAloneMuon_v2, float, tgcInnPhiStd )
941 
942  AUXSTORE_PRIMITIVE_GETTER( L2StandAloneMuon_v2, float, tgcMid1Eta )
943  AUXSTORE_PRIMITIVE_GETTER( L2StandAloneMuon_v2, float, tgcMid1Phi )
946 
947  AUXSTORE_PRIMITIVE_GETTER( L2StandAloneMuon_v2, float, tgcMid2Eta )
948  AUXSTORE_PRIMITIVE_GETTER( L2StandAloneMuon_v2, float, tgcMid2Phi )
951 
952  AUXSTORE_PRIMITIVE_GETTER( L2StandAloneMuon_v2, float, tgcMidRhoChi2 )
954  AUXSTORE_PRIMITIVE_GETTER( L2StandAloneMuon_v2, float, tgcMidPhiChi2 )
956 
957 
958  void L2StandAloneMuon_v2::setTgcInn( float eta, float phi, float r, float z ) {
959 
960  static const Accessor< float > tieAcc( "tgcInnEta" );
961  static const Accessor< float > tipAcc( "tgcInnPhi" );
962  static const Accessor< float > tirAcc( "tgcInnR" );
963  static const Accessor< float > tizAcc( "tgcInnZ" );
964 
965  tieAcc( *this ) = eta;
966  tipAcc( *this ) = phi;
967  tirAcc( *this ) = r;
968  tizAcc( *this ) = z;
969 
970  return;
971  }
972 
973  void L2StandAloneMuon_v2::setTgcInnF( float rhoStd, long rhoN, float phiStd, long phiN ) {
974 
975  static const Accessor< float > tirsAcc( "tgcInnRhoStd" );
976  static const Accessor< long > tirnAcc( "tgcInnRhoN" );
977  static const Accessor< float > tipsAcc( "tgcInnPhiStd" );
978  static const Accessor< long > tipnAcc( "tgcInnPhiN" );
979 
980  tirsAcc( *this ) = rhoStd;
981  tirnAcc( *this ) = rhoN;
982  tipsAcc( *this ) = phiStd;
983  tipnAcc( *this ) = phiN;
984 
985  return;
986  }
987 
988  void L2StandAloneMuon_v2::setTgcMid1( float eta, float phi, float r, float z ) {
989 
990  static const Accessor< float > tm1eAcc( "tgcMid1Eta" );
991  static const Accessor< float > tm1pAcc( "tgcMid1Phi" );
992  static const Accessor< float > tm1rAcc( "tgcMid1R" );
993  static const Accessor< float > tm1zAcc( "tgcMid1Z" );
994 
995  tm1eAcc( *this ) = eta;
996  tm1pAcc( *this ) = phi;
997  tm1rAcc( *this ) = r;
998  tm1zAcc( *this ) = z;
999 
1000  return;
1001  }
1002 
1003  void L2StandAloneMuon_v2::setTgcMid2( float eta, float phi, float r, float z ) {
1004 
1005  static const Accessor< float > tm2eAcc( "tgcMid2Eta" );
1006  static const Accessor< float > tm2pAcc( "tgcMid2Phi" );
1007  static const Accessor< float > tm2rAcc( "tgcMid2R" );
1008  static const Accessor< float > tm2zAcc( "tgcMid2Z" );
1009 
1010  tm2eAcc( *this ) = eta;
1011  tm2pAcc( *this ) = phi;
1012  tm2rAcc( *this ) = r;
1013  tm2zAcc( *this ) = z;
1014 
1015  return;
1016  }
1017 
1018  void L2StandAloneMuon_v2::setTgcMidF( float rhoChi2, long rhoN, float phiChi2, long phiN ) {
1019 
1020  static const Accessor< float > tmrcAcc( "tgcMidRhoChi2" );
1021  static const Accessor< long > tmrnAcc( "tgcMidRhoN" );
1022  static const Accessor< float > tmpcAcc( "tgcMidPhiChi2" );
1023  static const Accessor< long > tmpnAcc( "tgcMidPhiN" );
1024 
1025  tmrcAcc( *this ) = rhoChi2;
1026  tmrnAcc( *this ) = rhoN;
1027  tmpcAcc( *this ) = phiChi2;
1028  tmpnAcc( *this ) = phiN;
1029 
1030  return;
1031  }
1034 
1038  AUXSTORE_PRIMITIVE_GETTER( L2StandAloneMuon_v2, float, rpcFitInnPhi )
1039  AUXSTORE_PRIMITIVE_GETTER( L2StandAloneMuon_v2, float, rpcFitInnSlope )
1040  AUXSTORE_PRIMITIVE_GETTER( L2StandAloneMuon_v2, float, rpcFitInnOffset )
1041 
1042  AUXSTORE_PRIMITIVE_GETTER( L2StandAloneMuon_v2, float, rpcFitMidPhi )
1043  AUXSTORE_PRIMITIVE_GETTER( L2StandAloneMuon_v2, float, rpcFitMidSlope )
1044  AUXSTORE_PRIMITIVE_GETTER( L2StandAloneMuon_v2, float, rpcFitMidOffset )
1045 
1046  AUXSTORE_PRIMITIVE_GETTER( L2StandAloneMuon_v2, float, rpcFitOutPhi )
1047  AUXSTORE_PRIMITIVE_GETTER( L2StandAloneMuon_v2, float, rpcFitOutSlope )
1048  AUXSTORE_PRIMITIVE_GETTER( L2StandAloneMuon_v2, float, rpcFitOutOffset )
1049 
1050  void L2StandAloneMuon_v2::setRpcFitInn( float phi, float slope, float offset ) {
1051 
1052  static const Accessor< float > rfipAcc( "rpcFitInnPhi" );
1053  static const Accessor< float > rfisAcc( "rpcFitInnSlope" );
1054  static const Accessor< float > rfioAcc( "rpcFitInnOffset" );
1055 
1056  rfipAcc( *this ) = phi;
1057  rfisAcc( *this ) = slope;
1058  rfioAcc( *this ) = offset;
1059 
1060  return;
1061  }
1062 
1063  void L2StandAloneMuon_v2::setRpcFitMid( float phi, float slope, float offset ) {
1064 
1065  static const Accessor< float > rfmpAcc( "rpcFitMidPhi" );
1066  static const Accessor< float > rfmsAcc( "rpcFitMidSlope" );
1067  static const Accessor< float > rfmoAcc( "rpcFitMidOffset" );
1068 
1069  rfmpAcc( *this ) = phi;
1070  rfmsAcc( *this ) = slope;
1071  rfmoAcc( *this ) = offset;
1072 
1073  return;
1074  }
1075 
1076  void L2StandAloneMuon_v2::setRpcFitOut( float phi, float slope, float offset ) {
1077 
1078  static const Accessor< float > rfopAcc( "rpcFitOutPhi" );
1079  static const Accessor< float > rfosAcc( "rpcFitOutSlope" );
1080  static const Accessor< float > rfooAcc( "rpcFitOutOffset" );
1081 
1082  rfopAcc( *this ) = phi;
1083  rfosAcc( *this ) = slope;
1084  rfooAcc( *this ) = offset;
1085 
1086  return;
1087  }
1090 
1094  static const SG::AuxElement::Accessor< std::vector< uint32_t > > rpclAcc( "rpcHitLayer" );
1095  static const SG::AuxElement::Accessor< std::vector< uint32_t > > rpcmpAcc( "rpcHitMeasuresPhi" );
1096  static const SG::AuxElement::Accessor< std::vector< float > > rpcxAcc( "rpcHitX" );
1097  static const SG::AuxElement::Accessor< std::vector< float > > rpcyAcc( "rpcHitY" );
1098  static const SG::AuxElement::Accessor< std::vector< float > > rpczAcc( "rpcHitZ" );
1099  static const SG::AuxElement::Accessor< std::vector< float > > rpctAcc( "rpcHitTime" );
1100  static const SG::AuxElement::Accessor< std::vector< float > > rpcdeAcc( "rpcHitDistToEtaReadout" );
1101  static const SG::AuxElement::Accessor< std::vector< float > > rpcdpAcc( "rpcHitDistToPhiReadout" );
1102  static const SG::AuxElement::Accessor< std::vector< std::string > > rpcsnAcc( "rpcHitStationName" );
1103 
1105  static const SG::AuxElement::Accessor< std::vector< float > > tgceAcc( "tgcHitEta" );
1106  static const SG::AuxElement::Accessor< std::vector< float > > tgcpAcc( "tgcHitPhi" );
1107  static const SG::AuxElement::Accessor< std::vector< float > > tgcrAcc( "tgcHitR" );
1108  static const SG::AuxElement::Accessor< std::vector< float > > tgczAcc( "tgcHitZ" );
1109  static const SG::AuxElement::Accessor< std::vector< float > > tgcwAcc( "tgcHitWidth" );
1110  static const SG::AuxElement::Accessor< std::vector< int > > tgcsnAcc( "tgcHitStationNum" );
1111  static const SG::AuxElement::Accessor< std::vector< bool > > tgcisAcc( "tgcHitIsStrip" );
1112  static const SG::AuxElement::Accessor< std::vector< int > > tgcbcAcc( "tgcHitBCTag" );
1113  static const SG::AuxElement::Accessor< std::vector< bool > > tgcirAcc( "tgcHitInRoad" );
1114 
1116  static const SG::AuxElement::Accessor< std::vector< uint32_t > > mdtonAcc( "mdtHitOnlineId" );
1117  static const SG::AuxElement::Accessor< std::vector< int > > mdtioAcc( "mdtHitIsOutlier" );
1118  static const SG::AuxElement::Accessor< std::vector< int > > mdtcAcc( "mdtHitChamberId" );
1119  static const SG::AuxElement::Accessor< std::vector< float > > mdtrAcc( "mdtHitR" );
1120  static const SG::AuxElement::Accessor< std::vector< float > > mdtzAcc( "mdtHitZ" );
1121  static const SG::AuxElement::Accessor< std::vector< float > > mdtpAcc( "mdtHitPhi" );
1122  static const SG::AuxElement::Accessor< std::vector< float > > mdtresAcc( "mdtHitResidual" );
1123  static const SG::AuxElement::Accessor< std::vector< float > > mdttAcc( "mdtHitTime" );
1124  static const SG::AuxElement::Accessor< std::vector< float > > mdtspcAcc( "mdtHitSpace" );
1125  static const SG::AuxElement::Accessor< std::vector< float > > mdtsigAcc( "mdtHitSigma" );
1126 
1128  static const SG::AuxElement::Accessor< std::vector< int > > cscioAcc( "cscHitIsOutlier" );
1129  static const SG::AuxElement::Accessor< std::vector< int > > csccAcc( "cscHitChamberId" );
1130  static const SG::AuxElement::Accessor< std::vector< uint32_t > > cscsnAcc( "cscHitStationName" );
1131  static const SG::AuxElement::Accessor< std::vector< int > > cscseAcc( "cscHitStationEta" );
1132  static const SG::AuxElement::Accessor< std::vector< int > > cscspAcc( "cscHitStationPhi" );
1133  static const SG::AuxElement::Accessor< std::vector< int > > cscclAcc( "cscHitChamberLayer" );
1134  static const SG::AuxElement::Accessor< std::vector< int > > cscwlAcc( "cscHitWireLayer" );
1135  static const SG::AuxElement::Accessor< std::vector< int > > cscmpAcc( "cscHitMeasuresPhi" );
1136  static const SG::AuxElement::Accessor< std::vector< int > > cscsAcc( "cscHitStrip" );
1137  static const SG::AuxElement::Accessor< std::vector< float > > csceAcc( "cscHitEta" );
1138  static const SG::AuxElement::Accessor< std::vector< float > > cscpAcc( "cscHitPhi" );
1139  static const SG::AuxElement::Accessor< std::vector< float > > cscrAcc( "cscHitR" );
1140  static const SG::AuxElement::Accessor< std::vector< float > > csczAcc( "cscHitZ" );
1141  static const SG::AuxElement::Accessor< std::vector< int > > cscchAcc( "cscHitCharge" );
1142  static const SG::AuxElement::Accessor< std::vector< float > > cscresAcc( "cscHitTime" );
1143  static const SG::AuxElement::Accessor< std::vector< float > > csctAcc( "cscHitResidual" );
1144 
1146  static const SG::AuxElement::Accessor< std::vector< unsigned int > > stgclAcc( "stgcClusterLayer" );
1147  static const SG::AuxElement::Accessor< std::vector< int > > stgcioAcc( "stgcClusterIsOutlier" );
1148  static const SG::AuxElement::Accessor< std::vector< int > > stgctyAcc( "stgcClusterType" );
1149  static const SG::AuxElement::Accessor< std::vector< float > > stgceAcc( "stgcClusterEta" );
1150  static const SG::AuxElement::Accessor< std::vector< float > > stgcpAcc( "stgcClusterPhi" );
1151  static const SG::AuxElement::Accessor< std::vector< float > > stgcrAcc( "stgcClusterR" );
1152  static const SG::AuxElement::Accessor< std::vector< float > > stgczAcc( "stgcClusterZ" );
1153  static const SG::AuxElement::Accessor< std::vector< float > > stgcrsrAcc( "stgcClusterResidualR" );
1154  static const SG::AuxElement::Accessor< std::vector< float > > stgcrspAcc( "stgcClusterResidualPhi" );
1155  static const SG::AuxElement::Accessor< std::vector< int > > stgcseAcc( "stgcClusterStationEta" );
1156  static const SG::AuxElement::Accessor< std::vector< int > > stgcspAcc( "stgcClusterStationPhi" );
1157  static const SG::AuxElement::Accessor< std::vector< int > > stgcsnAcc( "stgcClusterStationName" );
1158 
1160  static const SG::AuxElement::Accessor< std::vector< unsigned int > > mmlAcc( "mmClusterLayer" );
1161  static const SG::AuxElement::Accessor< std::vector< int > > mmioAcc( "mmClusterIsOutlier" );
1162  static const SG::AuxElement::Accessor< std::vector< float > > mmeAcc( "mmClusterEta" );
1163  static const SG::AuxElement::Accessor< std::vector< float > > mmpAcc( "mmClusterPhi" );
1164  static const SG::AuxElement::Accessor< std::vector< float > > mmrAcc( "mmClusterR" );
1165  static const SG::AuxElement::Accessor< std::vector< float > > mmzAcc( "mmClusterZ" );
1166  static const SG::AuxElement::Accessor< std::vector< float > > mmrsrAcc( "mmClusterResidualR" );
1167  static const SG::AuxElement::Accessor< std::vector< float > > mmrspAcc( "mmClusterResidualPhi" );
1168  static const SG::AuxElement::Accessor< std::vector< int > > mmseAcc( "mmClusterStationEta" );
1169  static const SG::AuxElement::Accessor< std::vector< int > > mmspAcc( "mmClusterStationPhi" );
1170  static const SG::AuxElement::Accessor< std::vector< int > > mmsnAcc( "mmClusterStationName" );
1173 
1177  AUXSTORE_PRIMITIVE_GETTER( L2StandAloneMuon_v2, int, rpcHitsCapacity )
1178  AUXSTORE_PRIMITIVE_GETTER( L2StandAloneMuon_v2, int, tgcHitsCapacity )
1179  AUXSTORE_PRIMITIVE_GETTER( L2StandAloneMuon_v2, int, mdtHitsCapacity )
1180  AUXSTORE_PRIMITIVE_GETTER( L2StandAloneMuon_v2, int, cscHitsCapacity )
1181 
1182 
1183  void L2StandAloneMuon_v2::setRpcHitsCapacity( int value ) {
1184 
1185  static const Accessor< int > rcapAcc( "rpcHitsCapacity" );
1186  rcapAcc( *this ) = value;
1187 
1188  if ( value > 0 ) {
1189  rpclAcc( *this ).reserve( (unsigned int)value );
1190  rpcmpAcc( *this ).reserve( (unsigned int)value );
1191  rpcxAcc( *this ).reserve( (unsigned int)value );
1192  rpcyAcc( *this ).reserve( (unsigned int)value );
1193  rpczAcc( *this ).reserve( (unsigned int)value );
1194  rpctAcc( *this ).reserve( (unsigned int)value );
1195  rpcdeAcc( *this ).reserve( (unsigned int)value );
1196  rpcdpAcc( *this ).reserve( (unsigned int)value );
1197  rpcsnAcc( *this ).reserve( (unsigned int)value );
1198  }
1199 
1200  return;
1201  }
1202 
1205 
1206  static const Accessor< int > tcapAcc( "tgcHitsCapacity" );
1207  tcapAcc( *this ) = value;
1208 
1209  if ( value > 0 ) {
1210  tgceAcc( *this ).reserve( (unsigned int)value );
1211  tgcpAcc( *this ).reserve( (unsigned int)value );
1212  tgcrAcc( *this ).reserve( (unsigned int)value );
1213  tgczAcc( *this ).reserve( (unsigned int)value );
1214  tgcwAcc( *this ).reserve( (unsigned int)value );
1215  tgcsnAcc( *this ).reserve( (unsigned int)value );
1216  tgcisAcc( *this ).reserve( (unsigned int)value );
1217  tgcbcAcc( *this ).reserve( (unsigned int)value );
1218  tgcirAcc( *this ).reserve( (unsigned int)value );
1219  }
1220 
1221  return;
1222  }
1223 
1226 
1227  static const Accessor< int > mcapAcc( "mdtHitsCapacity" );
1228  mcapAcc( *this ) = value;
1229 
1230  if ( value > 0 ) {
1231  mdtonAcc( *this ).reserve( (unsigned int)value );
1232  mdtioAcc( *this ).reserve( (unsigned int)value );
1233  mdtrAcc( *this ).reserve( (unsigned int)value );
1234  mdtzAcc( *this ).reserve( (unsigned int)value );
1235  mdtpAcc( *this ).reserve( (unsigned int)value );
1236  mdtresAcc( *this ).reserve( (unsigned int)value );
1237  mdttAcc( *this ).reserve( (unsigned int)value );
1238  mdtspcAcc( *this ).reserve( (unsigned int)value );
1239  mdtsigAcc( *this ).reserve( (unsigned int)value );
1240  }
1241 
1242  return;
1243  }
1244 
1247 
1248  static const Accessor< int > ccapAcc( "cscHitsCapacity" );
1249  ccapAcc( *this ) = value;
1250 
1251  if ( value > 0 ) {
1252  cscioAcc( *this ).reserve( (unsigned int)value );
1253  csccAcc( *this ).reserve( (unsigned int)value );
1254  cscsnAcc( *this ).reserve( (unsigned int)value );
1255  cscseAcc( *this ).reserve( (unsigned int)value );
1256  cscspAcc( *this ).reserve( (unsigned int)value );
1257  cscclAcc( *this ).reserve( (unsigned int)value );
1258  cscwlAcc( *this ).reserve( (unsigned int)value );
1259  cscmpAcc( *this ).reserve( (unsigned int)value );
1260  cscsAcc( *this ).reserve( (unsigned int)value );
1261  csceAcc( *this ).reserve( (unsigned int)value );
1262  cscpAcc( *this ).reserve( (unsigned int)value );
1263  cscrAcc( *this ).reserve( (unsigned int)value );
1264  csczAcc( *this ).reserve( (unsigned int)value );
1265  cscchAcc( *this ).reserve( (unsigned int)value );
1266  csctAcc( *this ).reserve( (unsigned int)value );
1267  cscresAcc( *this ).reserve( (unsigned int)value );
1268  }
1269 
1270  return;
1271  }
1272 
1275 
1276  if ( value > 0 ) {
1277  stgclAcc( *this ).reserve( (unsigned int)value );
1278  stgcioAcc( *this ).reserve( (unsigned int)value );
1279  stgctyAcc( *this ).reserve( (unsigned int)value );
1280  stgceAcc( *this ).reserve( (unsigned int)value );
1281  stgcpAcc( *this ).reserve( (unsigned int)value );
1282  stgcrAcc( *this ).reserve( (unsigned int)value );
1283  stgczAcc( *this ).reserve( (unsigned int)value );
1284  stgcrsrAcc( *this ).reserve( (unsigned int)value );
1285  stgcrspAcc( *this ).reserve( (unsigned int)value );
1286  stgcseAcc( *this ).reserve( (unsigned int)value );
1287  stgcspAcc( *this ).reserve( (unsigned int)value );
1288  stgcsnAcc( *this ).reserve( (unsigned int)value );
1289  }
1290 
1291  return;
1292  }
1293 
1296 
1297  if ( value > 0 ) {
1298  mmlAcc( *this ).reserve( (unsigned int)value );
1299  mmioAcc( *this ).reserve( (unsigned int)value );
1300  mmeAcc( *this ).reserve( (unsigned int)value );
1301  mmpAcc( *this ).reserve( (unsigned int)value );
1302  mmrAcc( *this ).reserve( (unsigned int)value );
1303  mmzAcc( *this ).reserve( (unsigned int)value );
1304  mmrsrAcc( *this ).reserve( (unsigned int)value );
1305  mmrspAcc( *this ).reserve( (unsigned int)value );
1306  mmseAcc( *this ).reserve( (unsigned int)value );
1307  mmspAcc( *this ).reserve( (unsigned int)value );
1308  mmsnAcc( *this ).reserve( (unsigned int)value );
1309  }
1310 
1311  return;
1312  }
1313 
1314  void L2StandAloneMuon_v2::setCapacities( int rpc, int tgc, int mdt, int csc ) {
1315 
1316  setRpcHitsCapacity( rpc );
1317  setTgcHitsCapacity( tgc );
1318  setMdtHitsCapacity( mdt );
1319  setCscHitsCapacity( csc );
1320 
1321  return;
1322  }
1325 
1329  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< uint32_t >, rpcHitLayer)
1330  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< uint32_t >, rpcHitMeasuresPhi)
1331  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< float >, rpcHitX)
1332  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< float >, rpcHitY)
1333  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< float >, rpcHitZ)
1334  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< float >, rpcHitTime)
1335  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< float >, rpcHitDistToEtaReadout)
1336  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< float >, rpcHitDistToPhiReadout)
1337  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< std::string >, rpcHitStationName)
1338 
1339 
1340  void L2StandAloneMuon_v2::setRpcHit(uint32_t layer, uint32_t measuresPhi, float x, float y, float z,
1341  float time, float distEta, float distPhi, const std::string& stationName ) {
1342  // Make sure that the size of vector is still within the capacity
1343  if ( rpclAcc( *this ).size() >= (unsigned int)rpcHitsCapacity() ) return;
1344 
1345  // Set the variables:
1346  rpclAcc( *this ).push_back( layer );
1347  rpcmpAcc( *this ).push_back( measuresPhi );
1348  rpcxAcc( *this ).push_back( x );
1349  rpcyAcc( *this ).push_back( y );
1350  rpczAcc( *this ).push_back( z );
1351  rpctAcc( *this ).push_back( time );
1352  rpcdeAcc( *this ).push_back( distEta );
1353  rpcdpAcc( *this ).push_back( distPhi );
1354  rpcsnAcc( *this ).push_back( stationName );
1355 
1356  return;
1357  }
1360 
1364  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< float >, tgcHitEta )
1365  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< float >, tgcHitPhi )
1366  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< float >, tgcHitR )
1367  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< float >, tgcHitZ )
1368  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< float >, tgcHitWidth )
1369  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< int >, tgcHitStationNum )
1370  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< bool >, tgcHitIsStrip )
1371  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< int >, tgcHitBCTag )
1372  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< bool >, tgcHitInRoad )
1373 
1374 
1375  void L2StandAloneMuon_v2::setTgcHit( float eta, float phi, float r, float z, float width,
1376  int stationName, bool isStrip, int bcTag, bool inRoad ) {
1377 
1378  // Make sure that the size of vector is still within the capacity
1379  if ( tgceAcc( *this ).size() >= (unsigned int)tgcHitsCapacity() ) return;
1380 
1381  // Set the varables:
1382  tgceAcc( *this ).push_back( eta );
1383  tgcpAcc( *this ).push_back( phi );
1384  tgcrAcc( *this ).push_back( r );
1385  tgczAcc( *this ).push_back( z );
1386  tgcwAcc( *this ).push_back( width );
1387  tgcsnAcc( *this ).push_back( stationName );
1388  tgcisAcc( *this ).push_back( isStrip );
1389  tgcbcAcc( *this ).push_back( bcTag );
1390  tgcirAcc( *this ).push_back( inRoad );
1391 
1392  return;
1393  }
1396 
1401  return mdtonAcc( *this ).size();
1402  }
1403 
1405  if( mdtonAcc( *this ).size() > tube ) {
1406  return mdtonAcc( *this ).at( tube );
1407  } else {
1408  return 0;
1409  }
1410  }
1411 
1412  int L2StandAloneMuon_v2::mdtHitOfflineId( unsigned int tube ) const {
1413  if( mdtioAcc( *this ).size() > tube ) {
1414  return mdtioAcc( *this ).at( tube );
1415  } else {
1416  return 0;
1417  }
1418  }
1419 
1420  int L2StandAloneMuon_v2::mdtHitIsOutlier( unsigned int tube ) const {
1421  if( mdtioAcc( *this ).size() > tube ) {
1422  return mdtioAcc( *this ).at( tube );
1423  } else {
1424  return 0;
1425  }
1426  }
1427 
1428  int L2StandAloneMuon_v2::mdtHitChamber( unsigned int tube ) const {
1429  if( mdtcAcc( *this ).size() > tube ) {
1430  return mdtcAcc( *this ).at( tube );
1431  } else {
1432  return 0;
1433  }
1434  }
1435 
1436  float L2StandAloneMuon_v2::mdtHitR( unsigned int tube ) const {
1437  if( mdtrAcc( *this ).size() > tube ) {
1438  return mdtrAcc( *this ).at( tube );
1439  } else {
1440  return 0.;
1441  }
1442  }
1443 
1444  float L2StandAloneMuon_v2::mdtHitZ( unsigned int tube ) const {
1445  if( mdtzAcc( *this ).size() > tube ) {
1446  return mdtzAcc( *this ).at( tube );
1447  } else {
1448  return 0.;
1449  }
1450  }
1451 
1452  float L2StandAloneMuon_v2::mdtHitPhi( unsigned int tube ) const {
1453  if( mdtpAcc( *this ).size() > tube ) {
1454  return mdtpAcc( *this ).at( tube );
1455  } else {
1456  return 0.;
1457  }
1458  }
1459 
1460  float L2StandAloneMuon_v2::mdtHitResidual( unsigned int tube ) const {
1461  if( mdtresAcc( *this ).size() > tube ) {
1462  return mdtresAcc( *this ).at( tube );
1463  } else {
1464  return 0.;
1465  }
1466  }
1467 
1468  float L2StandAloneMuon_v2::mdtHitTime( unsigned int tube ) const {
1469  if( mdttAcc( *this ).size() > tube ) {
1470  return mdttAcc( *this ).at( tube );
1471  } else {
1472  return 0.;
1473  }
1474  }
1475 
1476  float L2StandAloneMuon_v2::mdtHitSpace( unsigned int tube ) const {
1477  if( mdtspcAcc( *this ).size() > tube ) {
1478  return mdtspcAcc( *this ).at( tube );
1479  } else {
1480  return 0.;
1481  }
1482  }
1483 
1484  float L2StandAloneMuon_v2::mdtHitSigma( unsigned int tube ) const {
1485  if( mdtsigAcc( *this ).size() > tube ) {
1486  return mdtsigAcc( *this ).at( tube );
1487  } else {
1488  return 0.;
1489  }
1490  }
1491 
1492  void L2StandAloneMuon_v2::setMdtHit( uint32_t onlineId, int isOutlier, int chamber, float r, float z, float phi,
1493  float residual, float time, float space, float sigma ) {
1494 
1495  // Make sure that the number of MDT hits is still within the capacity
1496  if ( mdtonAcc( *this ).size() >= (unsigned int)mdtHitsCapacity() ) return;
1497 
1498  // Set the variables:
1499  mdtonAcc( *this ).push_back( onlineId );
1500  mdtioAcc( *this ).push_back( isOutlier );
1501  mdtcAcc( *this ).push_back( chamber );
1502  mdtrAcc( *this ).push_back( r );
1503  mdtzAcc( *this ).push_back( z );
1504  mdtpAcc( *this ).push_back( phi );
1505  mdtresAcc( *this ).push_back( residual );
1506  mdttAcc( *this ).push_back( time );
1507  mdtspcAcc( *this ).push_back( space );
1508  mdtsigAcc( *this ).push_back( sigma );
1509 
1510  return;
1511  }
1512  //
1514 
1519  return cscioAcc( *this ).size();
1520  }
1521 
1522  int L2StandAloneMuon_v2::cscHitIsOutlier( unsigned int tube ) const {
1523  if( cscioAcc( *this ).size() > tube ) {
1524  return cscioAcc( *this ).at( tube );
1525  } else {
1526  return 0;
1527  }
1528  }
1529 
1530  int L2StandAloneMuon_v2::cscHitChamber( unsigned int tube ) const {
1531  if( csccAcc( *this ).size() > tube ) {
1532  return csccAcc( *this ).at( tube );
1533  } else {
1534  return 0;
1535  }
1536  }
1537 
1539  if( cscsnAcc( *this ).size() > tube ) {
1540  return cscsnAcc( *this ).at( tube );
1541  } else {
1542  return 0;
1543  }
1544  }
1545 
1546  int L2StandAloneMuon_v2::cscHitStationEta( unsigned int tube ) const {
1547  if( cscseAcc( *this ).size() > tube ) {
1548  return cscseAcc( *this ).at( tube );
1549  } else {
1550  return 0;
1551  }
1552  }
1553 
1554  int L2StandAloneMuon_v2::cscHitStationPhi( unsigned int tube ) const {
1555  if( cscspAcc( *this ).size() > tube ) {
1556  return cscspAcc( *this ).at( tube );
1557  } else {
1558  return 0;
1559  }
1560  }
1561 
1562  int L2StandAloneMuon_v2::cscHitChamberLayer( unsigned int tube ) const {
1563  if( cscclAcc( *this ).size() > tube ) {
1564  return cscclAcc( *this ).at( tube );
1565  } else {
1566  return 0;
1567  }
1568  }
1569 
1570  int L2StandAloneMuon_v2::cscHitWireLayer( unsigned int tube ) const {
1571  if( cscwlAcc( *this ).size() > tube ) {
1572  return cscwlAcc( *this ).at( tube );
1573  } else {
1574  return 0;
1575  }
1576  }
1577 
1578  int L2StandAloneMuon_v2::cscHitMeasuresPhi( unsigned int tube ) const {
1579  if( cscmpAcc( *this ).size() > tube ) {
1580  return cscmpAcc( *this ).at( tube );
1581  } else {
1582  return 0;
1583  }
1584  }
1585 
1586  int L2StandAloneMuon_v2::cscHitStrip( unsigned int tube ) const {
1587  if( cscsAcc( *this ).size() > tube ) {
1588  return cscsAcc( *this ).at( tube );
1589  } else {
1590  return 0;
1591  }
1592  }
1593 
1594  float L2StandAloneMuon_v2::cscHitEta( unsigned int tube ) const {
1595  if( csceAcc( *this ).size() > tube ) {
1596  return csceAcc( *this ).at( tube );
1597  } else {
1598  return 0.;
1599  }
1600  }
1601 
1602  float L2StandAloneMuon_v2::cscHitPhi( unsigned int tube ) const {
1603  if( cscpAcc( *this ).size() > tube ) {
1604  return cscpAcc( *this ).at( tube );
1605  } else {
1606  return 0.;
1607  }
1608  }
1609 
1610  float L2StandAloneMuon_v2::cscHitR( unsigned int tube ) const {
1611  if( cscrAcc( *this ).size() > tube ) {
1612  return cscrAcc( *this ).at( tube );
1613  } else {
1614  return 0.;
1615  }
1616  }
1617 
1618  float L2StandAloneMuon_v2::cscHitZ( unsigned int tube ) const {
1619  if( csczAcc( *this ).size() > tube ) {
1620  return csczAcc( *this ).at( tube );
1621  } else {
1622  return 0.;
1623  }
1624  }
1625 
1626  int L2StandAloneMuon_v2::cscHitCharge( unsigned int tube ) const {
1627  if( cscchAcc( *this ).size() > tube ) {
1628  return cscchAcc( *this ).at( tube );
1629  } else {
1630  return 0;
1631  }
1632  }
1633 
1634  float L2StandAloneMuon_v2::cscHitTime( unsigned int tube ) const {
1635  if( csctAcc( *this ).size() > tube ) {
1636  return csctAcc( *this ).at( tube );
1637  } else {
1638  return 0.;
1639  }
1640  }
1641 
1642  float L2StandAloneMuon_v2::cscHitResidual( unsigned int tube ) const {
1643  if( cscresAcc( *this ).size() > tube ) {
1644  return cscresAcc( *this ).at( tube );
1645  } else {
1646  return 0.;
1647  }
1648  }
1649 
1651  int stationEta, int stationPhi, int chamberLayer, int wireLayer, int measuresPhi, int strip,
1652  float eta, float phi, float r, float z, int charge, float time, float residual ) {
1653 
1654  // Make sure that the number of CSC hits is still within the capacity
1655  if ( cscioAcc( *this ).size() >= (unsigned int)cscHitsCapacity() ) return;
1656 
1657  // Set the variables:
1658  cscioAcc( *this ).push_back( isOutlier );
1659  csccAcc( *this ).push_back( chamber );
1660  cscsnAcc( *this ).push_back( stationName );
1661  cscseAcc( *this ).push_back( stationEta );
1662  cscspAcc( *this ).push_back( stationPhi );
1663  cscclAcc( *this ).push_back( chamberLayer );
1664  cscwlAcc( *this ).push_back( wireLayer );
1665  cscmpAcc( *this ).push_back( measuresPhi );
1666  cscsAcc( *this ).push_back( strip );
1667  csceAcc( *this ).push_back( eta );
1668  cscpAcc( *this ).push_back( phi );
1669  cscrAcc( *this ).push_back( r );
1670  csczAcc( *this ).push_back( z );
1671  cscchAcc( *this ).push_back( charge );
1672  csctAcc( *this ).push_back( time );
1673  cscresAcc( *this ).push_back( residual );
1674 
1675  return;
1676  }
1677  //
1679 
1683  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< unsigned int >, stgcClusterLayer)
1684  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< int >, stgcClusterIsOutlier)
1685  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< int >, stgcClusterType)
1686  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< float >, stgcClusterEta)
1687  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< float >, stgcClusterPhi)
1688  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< float >, stgcClusterR)
1689  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< float >, stgcClusterZ)
1690  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< float >, stgcClusterResidualR)
1691  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< float >, stgcClusterResidualPhi)
1692  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< int >, stgcClusterStationEta)
1693  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< int >, stgcClusterStationPhi)
1694  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< int >, stgcClusterStationName)
1695 
1696 
1697  void L2StandAloneMuon_v2::setStgcCluster(const unsigned int layer, const int isOutlier, const int type,
1698  const float eta, const float phi, const float r, const float z,
1699  const float residualR, const float residualPhi,
1700  const int stationEta, const int stationPhi, const int stationName ) {
1701  // Set the variables:
1702  stgclAcc( *this ).push_back( layer );
1703  stgcioAcc( *this ).push_back( isOutlier );
1704  stgctyAcc( *this ).push_back( type );
1705  stgceAcc( *this ).push_back( eta );
1706  stgcpAcc( *this ).push_back( phi );
1707  stgcrAcc( *this ).push_back( r );
1708  stgczAcc( *this ).push_back( z );
1709  stgcrsrAcc( *this ).push_back( residualR );
1710  stgcrspAcc( *this ).push_back( residualPhi );
1711  stgcseAcc( *this ).push_back( stationEta );
1712  stgcspAcc( *this ).push_back( stationPhi );
1713  stgcsnAcc( *this ).push_back( stationName );
1714 
1715  return;
1716  }
1719 
1723  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< unsigned int >, mmClusterLayer)
1724  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< int >, mmClusterIsOutlier)
1725  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< float >, mmClusterEta)
1726  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< float >, mmClusterPhi)
1727  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< float >, mmClusterR)
1728  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< float >, mmClusterZ)
1729  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< float >, mmClusterResidualR)
1730  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< float >, mmClusterResidualPhi)
1731  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< int >, mmClusterStationEta)
1732  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< int >, mmClusterStationPhi)
1733  AUXSTORE_OBJECT_GETTER( L2StandAloneMuon_v2, std::vector< int >, mmClusterStationName)
1734 
1735 
1736  void L2StandAloneMuon_v2::setMmCluster(const unsigned int layer, const int isOutlier,
1737  const float eta, const float phi, const float r, const float z,
1738  const float residualR, const float residualPhi,
1739  const int stationEta, const int stationPhi, const int stationName ) {
1740  // Set the variables:
1741  mmlAcc( *this ).push_back( layer );
1742  mmioAcc( *this ).push_back( isOutlier );
1743  mmeAcc( *this ).push_back( eta );
1744  mmpAcc( *this ).push_back( phi );
1745  mmrAcc( *this ).push_back( r );
1746  mmzAcc( *this ).push_back( z );
1747  mmrsrAcc( *this ).push_back( residualR );
1748  mmrspAcc( *this ).push_back( residualPhi );
1749  mmseAcc( *this ).push_back( stationEta );
1750  mmspAcc( *this ).push_back( stationPhi );
1751  mmsnAcc( *this ).push_back( stationName );
1752 
1753  return;
1754  }
1755  //
1757 
1758 } // namespace xAOD
1759 
1763 std::ostream& operator<< ( std::ostream& out,
1764  const xAOD::L2StandAloneMuon_v2& mu ) {
1765 
1766  out << "roiWord: " << mu.roiWord() << "; ";
1767  out << "sAddress: " << mu.sAddress() << "; ";
1768  out << "pt: " << mu.pt() << "; ";
1769  out << "phi: " << mu.phi() << "; ";
1770  out << "eta: " << mu.eta() << "; ";
1771  out << "rMS: " << mu.rMS() << "; ";
1772  out << "etaMS: " << mu.etaMS() << "; ";
1773  out << "phiMS: " << mu.phiMS() << "; ";
1774  out << "dirPhiMS: " << mu.dirPhiMS() << "; ";
1775  out << "zMS: " << mu.zMS() << "; ";
1776  out << "dirZMS: " << mu.dirZMS() << "; ";
1777  out << "beta: " << mu.beta() << "; ";
1778  out << "barrelRadius: " << mu.barrelRadius() << "; ";
1779  out << "barrelSagitta: " << mu.barrelSagitta() << "; ";
1780  out << "endcapAlpha: " << mu.endcapAlpha() << "; ";
1781  out << "endcapBeta: " << mu.endcapBeta() << "; ";
1782  out << "endcapRadius: " << mu.endcapRadius() << "; ";
1783  out << "etaMap: " << mu.etaMap() << "; ";
1784  out << "phiMap: " << mu.phiMap() << "; ";
1785  out << "etaBin: " << mu.etaBin() << "; ";
1786  out << "phiBin: " << mu.phiBin() << "; ";
1787  out << "isTgcFailure: " << mu.isTgcFailure() << "; ";
1788  out << "isRpcFailure: " << mu.isRpcFailure() << "; ";
1789  out << "deltaPt: " << mu.deltaPt() << "; ";
1790  out << "deltaEta: " << mu.deltaEta() << "; ";
1791  out << "deltaPhi: " << mu.deltaPhi() << "; ";
1792  out << "algoId: " << mu.algoId() << "; ";
1793  out << "teId: " << mu.teId() << "; ";
1794  out << "lvl1Id: " << mu.lvl1Id() << "; ";
1795  out << "lumiBlock: " << mu.lumiBlock() << "; ";
1796  out << "muonDetMask: " << mu.muonDetMask() << "; ";
1797  out << "roiId: " << mu.roiId() << "; ";
1798  out << "roiSystem: " << mu.roiSystem() << "; ";
1799  out << "roiSubsystem: " << mu.roiSubsystem() << "; ";
1800  out << "roiSector: " << mu.roiSector() << "; ";
1801  out << "roiNumber: " << mu.roiNumber() << "; ";
1802  out << "roiThreshold: " << mu.roiThreshold() << "; ";
1803  out << "roiEta: " << mu.roiEta() << "; ";
1804  out << "roiPhi: " << mu.roiPhi() << "; ";
1805  out << "rpcHitsCapacity: " << mu.rpcHitsCapacity() << "; ";
1806  out << "tgcHitsCapacity: " << mu.tgcHitsCapacity() << "; ";
1807  out << "mdtHitsCapacity: " << mu.mdtHitsCapacity() << "; ";
1808  out << "cscHitsCapacity: " << mu.cscHitsCapacity() << "; ";
1809 
1810  // Return the stream:
1811  return out;
1812 }
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
beamspotman.r
def r
Definition: beamspotman.py:676
xAOD::L2StandAloneMuon_v2::GenVecFourMom_t
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiM4D< double > > GenVecFourMom_t
Base 4 Momentum type for trig muons.
Definition: L2StandAloneMuon_v2.h:65
xAOD::L2StandAloneMuon_v2::type
virtual Type::ObjectType type() const
The type of the object as a simple enumeration.
xAOD::L2StandAloneMuon_v2::setMmClustersCapacity
void setMmClustersCapacity(const int value)
Set size of storage for MM clusters.
Definition: L2StandAloneMuon_v2.cxx:1295
xAOD::deltaPt
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius setInterceptInner setEtaMap setEtaBin setIsTgcFailure deltaPt
Definition: L2StandAloneMuon_v1.cxx:156
pdg_comparison.sigma
sigma
Definition: pdg_comparison.py:324
xAOD::L2StandAloneMuon_v2::setTgcMidF
void setTgcMidF(float rhoChi2, long rhoN, float phiChi2, long phiN)
Definition: L2StandAloneMuon_v2.cxx:1018
xAOD::L2StandAloneMuon_v2::trackPositionPhi
float trackPositionPhi(unsigned int n) const
Get phi postion of track.
Definition: L2StandAloneMuon_v2.cxx:292
xAOD::L2StandAloneMuon_v2::mdtHitOfflineId
int mdtHitOfflineId(unsigned int tube) const
Definition: L2StandAloneMuon_v2.cxx:1412
xAOD::L2StandAloneMuon_v2::FourMom_t
TLorentzVector FourMom_t
Definition of the 4-momentum type.
Definition: L2StandAloneMuon_v2.h:59
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
max
#define max(a, b)
Definition: cfImp.cxx:41
HLTSeedingRoIToolDefs::roiPhi
constexpr float roiPhi(const AnyRoIPointer &roi)
Definition: HLTSeedingRoIToolDefs.h:167
xAOD::L2StandAloneMuon_v2::cscHitMeasuresPhi
int cscHitMeasuresPhi(unsigned int tube) const
Definition: L2StandAloneMuon_v2.cxx:1578
SG
Forward declaration.
Definition: CaloCellPacker_400_500.h:32
xAOD::L2StandAloneMuon_v2::rMax
float rMax(int station, int sector) const
Definition: L2StandAloneMuon_v2.cxx:613
xAOD::L2StandAloneMuon_v2::genvecP4
GenVecFourMom_t genvecP4() const
The full 4-momentum of the particle : internal trig muon type.
xAOD::etaMS
setSAddress etaMS
Definition: L2StandAloneMuon_v1.cxx:116
xAOD::isTgcFailure
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius setInterceptInner setEtaMap setEtaBin isTgcFailure
Definition: L2StandAloneMuon_v1.cxx:152
xAOD::L2StandAloneMuon_v2::nCscHits
uint32_t nCscHits() const
Get CSC hits.
Definition: L2StandAloneMuon_v2.cxx:1518
xAOD::L2StandAloneMuon_v2::setRegionEta
void setRegionEta(int station, int sector, float min, float max)
Eta range.
Definition: L2StandAloneMuon_v2.cxx:883
SG::Accessor< float >
AuxStoreAccessorMacros.h
xAOD::ptCSC
setTeId setLumiBlock setRoiId setRoiSubsystem setRoiNumber setRoiEta setTgcPt setPtBarrelSagitta setPtEndcapBeta ptCSC
Definition: L2StandAloneMuon_v2.cxx:364
xAOD::L2StandAloneMuon_v2::mdtHitSigma
float mdtHitSigma(unsigned int tube) const
Definition: L2StandAloneMuon_v2.cxx:1484
dumpTgcDigiDeadChambers.stationName
dictionary stationName
Definition: dumpTgcDigiDeadChambers.py:30
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
xAOD::L2StandAloneMuon_v2::cscHitR
float cscHitR(unsigned int tube) const
Definition: L2StandAloneMuon_v2.cxx:1610
ClusterSeg::residual
@ residual
Definition: ClusterNtuple.h:20
xAOD::L2StandAloneMuon_v2
Class describing standalone muons reconstructed in the LVL2 trigger.
Definition: L2StandAloneMuon_v2.h:36
calibdata.chamber
chamber
Definition: calibdata.py:32
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
operator<<
std::ostream & operator<<(std::ostream &out, const xAOD::L2StandAloneMuon_v2 &mu)
Helper operator for easily printing the properties of a LVL2 muon object for debugging.
Definition: L2StandAloneMuon_v2.cxx:1763
xAOD::L2StandAloneMuon_v2::cscHitIsOutlier
int cscHitIsOutlier(unsigned int tube) const
Definition: L2StandAloneMuon_v2.cxx:1522
xAOD::L2StandAloneMuon_v2::mdtHitR
float mdtHitR(unsigned int tube) const
Definition: L2StandAloneMuon_v2.cxx:1436
xAOD::deltaPhi
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius setInterceptInner setEtaMap setEtaBin setIsTgcFailure setDeltaPt deltaPhi
Definition: L2StandAloneMuon_v1.cxx:160
xAOD::teId
teId
Definition: L2StandAloneMuon_v1.cxx:323
xAOD::L2StandAloneMuon_v2::roadAw
float roadAw(int station, int sector) const
Slope.
Definition: L2StandAloneMuon_v2.cxx:480
xAOD::L2StandAloneMuon_v2::setMdtHit
void setMdtHit(uint32_t onlineId, int isOutier, int chamber, float r, float z, float phi, float residual, float time, float space, float sigma)
Set the properties of each MDT tube.
Definition: L2StandAloneMuon_v2.cxx:1492
xAOD::L2StandAloneMuon_v2::setPt
void setPt(float pt)
Set the transverse momentum ( ) of the muon.
xAOD::L2StandAloneMuon_v2::m
virtual double m() const
The invariant mass of the particle.
xAOD::L2StandAloneMuon_v2::trackPositionR
float trackPositionR(unsigned int n) const
Get R postion of track.
Definition: L2StandAloneMuon_v2.cxx:268
xAOD::L2StandAloneMuon_v2::etaMin
float etaMin(int station, int sector) const
Eta.
Definition: L2StandAloneMuon_v2.cxx:640
xAOD::L2StandAloneMuon_v2::setSuperPoint
void setSuperPoint(int chamber, float r, float z, float slope, float intercept=0., float chi2=0.)
Set the properties of one particular super point measurement.
Definition: L2StandAloneMuon_v2.cxx:220
athena.value
value
Definition: athena.py:122
xAOD
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Definition: ICaloAffectedTool.h:24
xAOD::roiEta
setTeId setLumiBlock setRoiId setRoiSubsystem setRoiNumber roiEta
Definition: L2StandAloneMuon_v2.cxx:343
xAOD::barrelRadius
setSAddress setEtaMS setDirPhiMS setDirZMS barrelRadius
Definition: L2StandAloneMuon_v1.cxx:128
xAOD::isRpcFailure
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius setPhiMap setPhiBin isRpcFailure
Definition: L2StandAloneMuon_v2.cxx:148
xAOD::pt
setRcore setEtHad setFside pt
Definition: TrigPhoton_v1.cxx:106
xAOD::L2StandAloneMuon_v2::cscHitChamber
int cscHitChamber(unsigned int tube) const
Definition: L2StandAloneMuon_v2.cxx:1530
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
xAOD::L2StandAloneMuon_v2::chamberType2
int chamberType2(int station, int sector) const
Definition: L2StandAloneMuon_v2.cxx:453
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:40
xAOD::L2StandAloneMuon_v2::cscHitChamberLayer
int cscHitChamberLayer(unsigned int tube) const
Definition: L2StandAloneMuon_v2.cxx:1562
x
#define x
xAOD::L2StandAloneMuon_v2::cscHitsCapacity
int cscHitsCapacity() const
xAOD::sAddress
sAddress
Definition: L2StandAloneMuon_v1.cxx:112
xAOD::L2StandAloneMuon_v2::superPointChi2
float superPointChi2(int chamber) const
Get the chi2 of the fit in one particular super point.
Definition: L2StandAloneMuon_v2.cxx:211
xAOD::deltaPtParm3
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius setPhiMap setPhiBin setIsRpcFailure setDeltaPtParm1 deltaPtParm3
Definition: L2StandAloneMuon_v2.cxx:156
xAOD::L2StandAloneMuon_v2::cscHitStationPhi
int cscHitStationPhi(unsigned int tube) const
Definition: L2StandAloneMuon_v2.cxx:1554
xAOD::L2StandAloneMuon_v2::rapidity
virtual double rapidity() const
The true rapidity (y) of the particle.
xAOD::L2StandAloneMuon_v2::eta
virtual double eta() const
The pseudorapidity ( ) of the particle.
xAOD::L2StandAloneMuon_v2::setTgcHitsCapacity
void setTgcHitsCapacity(int value)
Set size of storage for TGC hits.
Definition: L2StandAloneMuon_v2.cxx:1204
xAOD::L2StandAloneMuon_v2::setTgcInnF
void setTgcInnF(float rhoStd, long rhoN, float phiStd, long phiN)
Definition: L2StandAloneMuon_v2.cxx:973
xAOD::phi
setEt phi
Definition: TrigEMCluster_v1.cxx:29
JetVar::Accessor
SG::AuxElement::Accessor< T > Accessor
Definition: JetVariable.h:31
xAOD::roiWord
roiWord
Definition: TrigMissingET_v1.cxx:36
xAOD::tgcPt
setTeId setLumiBlock setRoiId setRoiSubsystem setRoiNumber setRoiEta tgcPt
Definition: L2StandAloneMuon_v2.cxx:352
xAOD::L2StandAloneMuon_v2::mdtHitOnlineId
uint32_t mdtHitOnlineId(unsigned int tube) const
Definition: L2StandAloneMuon_v2.cxx:1404
xAOD::endcapAlpha
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius endcapAlpha
Definition: L2StandAloneMuon_v1.cxx:132
xAOD::L2StandAloneMuon_v2::setEta
void setEta(float eta)
Set the pseudorapidity ( ) of the muon.
Definition: L2StandAloneMuon_v2.cxx:82
xAOD::etaBin
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius setInterceptInner setEtaMap etaBin
Definition: L2StandAloneMuon_v1.cxx:148
xAOD::L2StandAloneMuon_v2::superPointIntercept
float superPointIntercept(int chamber) const
Get the measured intercept of the muon in one particular super point.
Definition: L2StandAloneMuon_v2.cxx:203
xAOD::L2StandAloneMuon_v2::setRoad
void setRoad(int station, int sector, float aw, float bw)
Road.
Definition: L2StandAloneMuon_v2.cxx:751
xAOD::L2StandAloneMuon_v2::cscHitPhi
float cscHitPhi(unsigned int tube) const
Definition: L2StandAloneMuon_v2.cxx:1602
xAOD::L2StandAloneMuon_v2::zMax
float zMax(int station, int sector) const
Definition: L2StandAloneMuon_v2.cxx:560
xAOD::L2StandAloneMuon_v2::setPhi
void setPhi(float phi)
Set the azimuthal angle ( ) of the muon.
Definition: L2StandAloneMuon_v2.cxx:89
Trk::distEta
@ distEta
readout for silicon
Definition: ParamDefs.h:57
P4Helpers::deltaEta
double deltaEta(const I4Momentum &p1, const I4Momentum &p2)
Computes efficiently .
Definition: P4Helpers.h:53
z
#define z
xAOD::ptBarrelSagitta
ptBarrelSagitta
Definition: L2StandAloneMuon_v1.cxx:373
xAOD::L2MuonParameters::MaxChamber
@ MaxChamber
Number of measurement point definitions.
Definition: TrigMuonDefs.h:27
beamspotman.n
n
Definition: beamspotman.py:731
vector
Definition: MultiHisto.h:13
xAOD::etaMap
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius setInterceptInner etaMap
Definition: L2StandAloneMuon_v1.cxx:144
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
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::roiId
setTeId setLumiBlock roiId
Definition: L2StandAloneMuon_v1.cxx:331
xAOD::L2StandAloneMuon_v2::setChamberType2
void setChamberType2(int station, int sector, int chamberType)
Definition: L2StandAloneMuon_v2.cxx:723
xAOD::L2StandAloneMuon_v2::mdtHitPhi
float mdtHitPhi(unsigned int tube) const
Definition: L2StandAloneMuon_v2.cxx:1452
xAODType::Other
@ Other
An object not falling into any of the other categories.
Definition: ObjectType.h:34
chi2
double chi2(TH1 *h0, TH1 *h1)
Definition: comparitor.cxx:522
xAOD::L2StandAloneMuon_v2::etaMax
float etaMax(int station, int sector) const
Definition: L2StandAloneMuon_v2.cxx:666
xAOD::L2StandAloneMuon_v2::mdtHitChamber
int mdtHitChamber(unsigned int tube) const
Definition: L2StandAloneMuon_v2.cxx:1428
AthenaPoolTestRead.acc
acc
Definition: AthenaPoolTestRead.py:16
xAOD::dirZMS
setSAddress setEtaMS setDirPhiMS dirZMS
Definition: L2StandAloneMuon_v1.cxx:124
xAOD::L2StandAloneMuon_v2::setCscHit
void setCscHit(int isOutlier, int chamber, uint32_t stationName, int stationEta, int stationPhi, int chamberLayer, int wireLayer, int measuresPhi, int strip, float eta, float phi, float r, float z, int charge, float time, float residual)
Set the properties of each CSC tube.
Definition: L2StandAloneMuon_v2.cxx:1650
xAOD::L2StandAloneMuon_v2::setRegionZ
void setRegionZ(int station, int sector, float min, float max)
Z range.
Definition: L2StandAloneMuon_v2.cxx:795
xAOD::L2StandAloneMuon_v2::setRpcFitOut
void setRpcFitOut(float phi, float slope, float offset)
Definition: L2StandAloneMuon_v2.cxx:1076
Trk::distPhi
@ distPhi
Definition: ParamDefs.h:56
xAOD::L2StandAloneMuon_v2::cscHitZ
float cscHitZ(unsigned int tube) const
Definition: L2StandAloneMuon_v2.cxx:1618
xAOD::L2StandAloneMuon_v2::setChamberType1
void setChamberType1(int station, int sector, int chamberType)
Set the muon road information.
Definition: L2StandAloneMuon_v2.cxx:696
min
#define min(a, b)
Definition: cfImp.cxx:40
xAOD::L2StandAloneMuon_v2::nTrackPositions
uint32_t nTrackPositions() const
Number of track positions stored.
Definition: L2StandAloneMuon_v2.cxx:264
xAOD::L2StandAloneMuon_v2::cscHitStationEta
int cscHitStationEta(unsigned int tube) const
Definition: L2StandAloneMuon_v2.cxx:1546
dumpTgcDigiThreshold.isStrip
list isStrip
Definition: dumpTgcDigiThreshold.py:33
xAOD::L2StandAloneMuon_v2::mdtHitIsOutlier
int mdtHitIsOutlier(unsigned int tube) const
Definition: L2StandAloneMuon_v2.cxx:1420
xAOD::phiMap
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius phiMap
Definition: L2StandAloneMuon_v2.cxx:140
xAOD::L2StandAloneMuon_v2::setCapacities
void setCapacities(int rpc, int tgc, int mdt, int csc)
Definition: L2StandAloneMuon_v2.cxx:1314
xAOD::phiBin
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius setPhiMap phiBin
Definition: L2StandAloneMuon_v2.cxx:144
xAOD::L2StandAloneMuon_v2::setRpcHitsCapacity
void setRpcHitsCapacity(int value)
Size of storage to be reserved.
Definition: L2StandAloneMuon_v2.cxx:1183
xAOD::roiNumber
setTeId setLumiBlock setRoiId setRoiSubsystem roiNumber
Definition: L2StandAloneMuon_v1.cxx:339
xAOD::L2StandAloneMuon_v2::setMdtHitsCapacity
void setMdtHitsCapacity(int value)
Set size of storage for MDT hits.
Definition: L2StandAloneMuon_v2.cxx:1225
test_pythinning.out
out
Definition: test_pythinning.py:94
xAOD::L2StandAloneMuon_v2::phi
virtual double phi() const
The azimuthal angle ( ) of the particle.
python.CTPfragment.setLumiBlock
def setLumiBlock(rob, lb)
Definition: CTPfragment.py:89
xAOD::L2StandAloneMuon_v2::mdtHitsCapacity
int mdtHitsCapacity() const
xAOD::L2StandAloneMuon_v2::mdtHitTime
float mdtHitTime(unsigned int tube) const
Definition: L2StandAloneMuon_v2.cxx:1468
TrigMuonDefs.h
xAOD::L2StandAloneMuon_v2::cscHitTime
float cscHitTime(unsigned int tube) const
Definition: L2StandAloneMuon_v2.cxx:1634
xAOD::L2StandAloneMuon_v2::cscHitResidual
float cscHitResidual(unsigned int tube) const
Definition: L2StandAloneMuon_v2.cxx:1642
xAOD::L2StandAloneMuon_v2::setRpcFitMid
void setRpcFitMid(float phi, float slope, float offset)
Definition: L2StandAloneMuon_v2.cxx:1063
xAOD::ptEndcapBeta
setPtBarrelSagitta ptEndcapBeta
Definition: L2StandAloneMuon_v1.cxx:377
xAOD::L2StandAloneMuon_v2::L2StandAloneMuon_v2
L2StandAloneMuon_v2()
Constructor.
Definition: L2StandAloneMuon_v2.cxx:18
y
#define y
xAOD::L2StandAloneMuon_v2::nMdtHits
uint32_t nMdtHits() const
Get the online ID, offline ID, R, Z, redidual, time, space and sigma of each MDT tube.
Definition: L2StandAloneMuon_v2.cxx:1400
xAOD::L2StandAloneMuon_v2::mdtHitResidual
float mdtHitResidual(unsigned int tube) const
Definition: L2StandAloneMuon_v2.cxx:1460
Base_Fragment.width
width
Definition: Sherpa_i/share/common/Base_Fragment.py:59
CaloSwCorrections.time
def time(flags, cells_name, *args, **kw)
Definition: CaloSwCorrections.py:242
xAOD::L2StandAloneMuon_v2::cscHitStrip
int cscHitStrip(unsigned int tube) const
Definition: L2StandAloneMuon_v2.cxx:1586
xAOD::endcapRadius
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha endcapRadius
Definition: L2StandAloneMuon_v1.cxx:136
xAOD::L2StandAloneMuon_v2::cscHitStationName
uint32_t cscHitStationName(unsigned int tube) const
Definition: L2StandAloneMuon_v2.cxx:1538
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
xAOD::L2StandAloneMuon_v2::setRegionR
void setRegionR(int station, int sector, float min, float max)
R range.
Definition: L2StandAloneMuon_v2.cxx:839
xAOD::AUXSTORE_OBJECT_GETTER
AUXSTORE_OBJECT_GETTER(TrigComposite_v1, std::vector< std::string >, linkColNames) AUXSTORE_OBJECT_GETTER(TrigComposite_v1
bcTag
unsigned bcTag(unsigned bcBitMap)
Definition: TgcByteStreamData.h:367
AUXSTORE_PRIMITIVE_GETTER
#define AUXSTORE_PRIMITIVE_GETTER(CL, TYPE, NAME)
Macro creating the reader function for a primitive auxiliary property.
Definition: AuxStoreAccessorMacros.h:59
convertTimingResiduals.offset
offset
Definition: convertTimingResiduals.py:71
xAOD::L2StandAloneMuon_v2::cscHitCharge
int cscHitCharge(unsigned int tube) const
Definition: L2StandAloneMuon_v2.cxx:1626
xAOD::L2StandAloneMuon_v2::roadBw
float roadBw(int station, int sector) const
Intercept.
Definition: L2StandAloneMuon_v2.cxx:507
xAOD::roiSubsystem
setTeId setLumiBlock setRoiId roiSubsystem
Definition: L2StandAloneMuon_v1.cxx:335
xAOD::L2StandAloneMuon_v2::pt
virtual double pt() const
The transverse momentum ( ) of the particle.
xAOD::L2StandAloneMuon_v2::zMin
float zMin(int station, int sector) const
Z.
Definition: L2StandAloneMuon_v2.cxx:534
xAOD::L2StandAloneMuon_v2::rMin
float rMin(int station, int sector) const
R.
Definition: L2StandAloneMuon_v2.cxx:587
xAOD::L2StandAloneMuon_v2::trackPositionEta
float trackPositionEta(unsigned int n) const
Get eta postion of track.
Definition: L2StandAloneMuon_v2.cxx:284
xAOD::L2StandAloneMuon_v2::superPointSlope
float superPointSlope(int chamber) const
Get the measured slope of the muon in one particular super point.
Definition: L2StandAloneMuon_v2.cxx:195
xAOD::L2StandAloneMuon_v2::cscHitEta
float cscHitEta(unsigned int tube) const
Definition: L2StandAloneMuon_v2.cxx:1594
xAOD::L2StandAloneMuon_v2::cscHitWireLayer
int cscHitWireLayer(unsigned int tube) const
Definition: L2StandAloneMuon_v2.cxx:1570
xAOD::L2StandAloneMuon_v2::setCscHitsCapacity
void setCscHitsCapacity(int value)
Set size of storage for CSC hits.
Definition: L2StandAloneMuon_v2.cxx:1246
xAOD::L2StandAloneMuon_v2::mdtHitSpace
float mdtHitSpace(unsigned int tube) const
Definition: L2StandAloneMuon_v2.cxx:1476
xAOD::L2StandAloneMuon_v2::setStgcClustersCapacity
void setStgcClustersCapacity(const int value)
Set size of storage for sTGC clusters.
Definition: L2StandAloneMuon_v2.cxx:1274
MuonParameters::beta
@ beta
Definition: MuonParamDefs.h:144
xAODType::ObjectType
ObjectType
Type of objects that have a representation in the xAOD EDM.
Definition: ObjectType.h:32
xAOD::lumiBlock
setTeId lumiBlock
Definition: L2StandAloneMuon_v1.cxx:327
xAOD::L2StandAloneMuon_v2::e
virtual double e() const
The total energy of the particle.
CaloNoise_fillDB.mu
mu
Definition: CaloNoise_fillDB.py:53
xAOD::L2StandAloneMuon_v2::mdtHitZ
float mdtHitZ(unsigned int tube) const
Definition: L2StandAloneMuon_v2.cxx:1444
xAOD::dirPhiMS
setSAddress setEtaMS dirPhiMS
Definition: L2StandAloneMuon_v1.cxx:120
xAOD::L2StandAloneMuon_v2::superPointZ
float superPointZ(int chamber) const
Get the measured Z position of the muon in one particular super point.
Definition: L2StandAloneMuon_v2.cxx:187
xAOD::deltaPtParm1
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius setPhiMap setPhiBin setIsRpcFailure deltaPtParm1
Definition: L2StandAloneMuon_v2.cxx:152
calibdata.tube
tube
Definition: calibdata.py:31
L2StandAloneMuon_v2.h
xAOD::L2StandAloneMuon_v2::setTgcMid2
void setTgcMid2(float eta, float phi, float r, float z)
Definition: L2StandAloneMuon_v2.cxx:1003
xAOD::L2StandAloneMuon_v2::setTgcMid1
void setTgcMid1(float eta, float phi, float r, float z)
Definition: L2StandAloneMuon_v2.cxx:988
xAOD::L2StandAloneMuon_v2::setTrackPosition
void setTrackPosition(float r, float z, float eta, float phi)
Set position of muon track.
Definition: L2StandAloneMuon_v2.cxx:301
xAOD::L2StandAloneMuon_v2::p4
virtual FourMom_t p4() const
The full 4-momentum of the particle.
xAOD::L2StandAloneMuon_v2::trackPositionZ
float trackPositionZ(unsigned int n) const
Get Z postion of track.
Definition: L2StandAloneMuon_v2.cxx:276