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