ATLAS Offline Software
Loading...
Searching...
No Matches
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
17namespace xAOD {
18
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
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
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
188 float L2StandAloneMuon_v2::superPointZ( int chamber ) const {
189 if( chamber >= 0 && spzAcc( *this ).size() > (unsigned int)chamber ) {
190 return spzAcc( *this ).at( chamber );
191 } else {
192 return 0.;
193 }
194 }
195
196 float L2StandAloneMuon_v2::superPointSlope( int chamber ) const {
197 if( chamber >= 0 && spsAcc( *this ).size() > (unsigned int)chamber ) {
198 return spsAcc( *this ).at( chamber );
199 } else {
200 return 0.;
201 }
202 }
203
204 float L2StandAloneMuon_v2::superPointIntercept( int chamber ) const {
205 if( chamber >= 0 && spiAcc( *this ).size() > (unsigned int)chamber ) {
206 return spiAcc( *this ).at( chamber );
207 } else {
208 return 0.;
209 }
210 }
211
212 float L2StandAloneMuon_v2::superPointChi2( int chamber ) const {
213 if( chamber >= 0 && spcAcc( *this ).size() > (unsigned int)chamber ) {
214 return spcAcc( *this ).at( chamber );
215 } else {
216 return 0.;
217 }
218 }
219
221 void L2StandAloneMuon_v2::setSuperPoint( int chamber, float r, float z,
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
241 if (chamber >=0 && chamber < L2MuonParameters::Chamber::MaxChamber ) {
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 )
328 lumiBlock, setLumiBlock )
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
947
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 }
1033
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 }
1089
1091
1101 static const SG::AuxElement::Accessor< std::vector< float > > rpcdeAcc( "rpcHitDistToEtaReadout" );
1102 static const SG::AuxElement::Accessor< std::vector< float > > rpcdpAcc( "rpcHitDistToPhiReadout" );
1104
1111 static const SG::AuxElement::Accessor< std::vector< int > > tgcsnAcc( "tgcHitStationNum" );
1115
1118 static const SG::AuxElement::Accessor< std::vector< int > > mdtioAcc( "mdtHitIsOutlier" );
1119 static const SG::AuxElement::Accessor< std::vector< int > > mdtcAcc( "mdtHitChamberId" );
1127
1129 static const SG::AuxElement::Accessor< std::vector< int > > cscioAcc( "cscHitIsOutlier" );
1130 static const SG::AuxElement::Accessor< std::vector< int > > csccAcc( "cscHitChamberId" );
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" );
1145
1148 static const SG::AuxElement::Accessor< std::vector< int > > stgcioAcc( "stgcClusterIsOutlier" );
1149 static const SG::AuxElement::Accessor< std::vector< int > > stgctyAcc( "stgcClusterType" );
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
1162 static const SG::AuxElement::Accessor< std::vector< int > > mmioAcc( "mmClusterIsOutlier" );
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
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 }
1324
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 }
1359
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 }
1395
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
1651 void L2StandAloneMuon_v2::setCscHit( int isOutlier, int chamber, uint32_t stationName,
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 }
1718
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
1764std::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}
Scalar eta() const
pseudorapidity method
#define AUXSTORE_PRIMITIVE_GETTER_WITH_CAST(CL, PERSTYPE, TRANSTYPE, NAME)
Macro creating a getter function with a type conversion.
#define AUXSTORE_OBJECT_GETTER(CL, TYPE, NAME)
Macro creating the reader function for a complex auxiliary property.
#define AUXSTORE_PRIMITIVE_GETTER(CL, TYPE, NAME)
Macro creating the reader function for a primitive auxiliary property.
#define AUXSTORE_PRIMITIVE_SETTER_AND_GETTER(CL, TYPE, NAME, SETTER)
Macro creating the accessors of primitive auxiliary properties.
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.
A number of constexpr particle constants to avoid hardcoding them directly in various places.
const double width
unsigned bcTag(unsigned bcBitMap)
#define y
#define x
#define z
#define min(a, b)
Definition cfImp.cxx:40
#define max(a, b)
Definition cfImp.cxx:41
SG::Accessor< T, ALLOC > Accessor
Definition AuxElement.h:572
IParticle()=default
SG::Accessor< T, ALLOC > Accessor
Definition AuxElement.h:572
Class describing standalone muons reconstructed in the LVL2 trigger.
void setRegionR(int station, int sector, float min, float max)
R range.
void setEta(float eta)
Set the pseudorapidity ( ) of the muon.
void setStgcCluster(const unsigned int layer, const int isOutlier, const int type, const float eta, const float phi, const float r, const float z, const float residualR, const float residualPhi, const int stationEta, const int stationPhi, const int stationName)
Set sTGC hits.
void setRpcFitInn(float phi, float slope, float offset)
Set the results of RPC fit.
void setPhi(float phi)
Set the azimuthal angle ( ) of the muon.
void setRpcHit(uint32_t layer, uint32_t measuresPhi, float x, float y, float z, float time, float distEta, float distPhi, const std::string &stationName)
Set RPC hits.
int mdtHitChamber(unsigned int tube) const
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.
float roadAw(int station, int sector) const
Slope.
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.
void setTgcInn(float eta, float phi, float r, float z)
Set the results of TGC fit.
float roadBw(int station, int sector) const
Intercept.
float superPointIntercept(int chamber) const
Get the measured intercept of the muon in one particular super point.
void setMmClustersCapacity(const int value)
Set size of storage for MM clusters.
int cscHitMeasuresPhi(unsigned int tube) const
float trackPositionZ(unsigned int n) const
Get Z postion of track.
float mdtHitZ(unsigned int tube) const
int mdtHitOfflineId(unsigned int tube) const
float mdtHitPhi(unsigned int tube) const
void setRoad(int station, int sector, float aw, float bw)
Road.
void setTgcHit(float eta, float phi, float r, float z, float width, int stationNum, bool isStrip, int bcTag, bool inRoad)
Set TGC hits.
int cscHitCharge(unsigned int tube) const
float mdtHitSigma(unsigned int tube) const
void setTgcMid2(float eta, float phi, float r, float z)
float cscHitEta(unsigned int tube) const
void setCapacities(int rpc, int tgc, int mdt, int csc)
int chamberType2(int station, int sector) const
void setStgcClustersCapacity(const int value)
Set size of storage for sTGC clusters.
GenVecFourMom_t genvecP4() const
The full 4-momentum of the particle : internal trig muon type.
void setTrackPosition(float r, float z, float eta, float phi)
Set position of muon track.
int chamberType1(int station, int sector) const
Get the muon road information Chamber type.
int rpcHitsCapacity() const
Get and set maximum size of storages to be reserved.
float trackPositionPhi(unsigned int n) const
Get phi postion of track.
void setTgcMidF(float rhoChi2, long rhoN, float phiChi2, long phiN)
int cscHitStationEta(unsigned int tube) const
int cscHitStationPhi(unsigned int tube) const
void setRpcHitsCapacity(int value)
Size of storage to be reserved.
float mdtHitResidual(unsigned int tube) const
TLorentzVector FourMom_t
Definition of the 4-momentum type.
int mdtHitIsOutlier(unsigned int tube) const
virtual double pt() const
The transverse momentum ( ) of the particle.
void setRpcFitOut(float phi, float slope, float offset)
float mdtHitR(unsigned int tube) const
void setChamberType2(int station, int sector, int chamberType)
void setMmCluster(const unsigned int layer, const int isOutlier, const float eta, const float phi, const float r, const float z, const float residualR, const float residualPhi, const int stationEta, const int stationPhi, const int stationName)
Set MM hits.
virtual double m() const
The invariant mass of the particle.
float zMin(int station, int sector) const
Z.
virtual double phi() const
The azimuthal angle ( ) of the particle.
virtual double rapidity() const
The true rapidity (y) of the particle.
float rMin(int station, int sector) const
R.
float etaMin(int station, int sector) const
Eta.
float mdtHitSpace(unsigned int tube) const
int cscHitWireLayer(unsigned int tube) const
float trackPositionEta(unsigned int n) const
Get eta postion of track.
uint32_t nMdtHits() const
Get the online ID, offline ID, R, Z, redidual, time, space and sigma of each MDT tube.
float cscHitResidual(unsigned int tube) const
int cscHitChamber(unsigned int tube) const
float rMax(int station, int sector) const
float etaMax(int station, int sector) const
int cscHitChamberLayer(unsigned int tube) const
void setCscHitsCapacity(int value)
Set size of storage for CSC hits.
void setRegionZ(int station, int sector, float min, float max)
Z range.
uint32_t mdtHitOnlineId(unsigned int tube) const
uint32_t nTrackPositions() const
Number of track positions stored.
float superPointR(int chamber) const
Get the measured radious of the muon in one particular super point.
void setChamberType1(int station, int sector, int chamberType)
Set the muon road information.
void setRpcFitMid(float phi, float slope, float offset)
float zMax(int station, int sector) const
uint32_t cscHitStationName(unsigned int tube) const
virtual double e() const
The total energy of the particle.
virtual Type::ObjectType type() const
The type of the object as a simple enumeration.
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiM4D< double > > GenVecFourMom_t
Base 4 Momentum type for trig muons.
virtual FourMom_t p4() const
The full 4-momentum of the particle.
float superPointChi2(int chamber) const
Get the chi2 of the fit in one particular super point.
void setTgcHitsCapacity(int value)
Set size of storage for TGC hits.
int cscHitIsOutlier(unsigned int tube) const
void setTgcMid1(float eta, float phi, float r, float z)
void setRegionEta(int station, int sector, float min, float max)
Eta range.
uint32_t nCscHits() const
Get CSC hits.
float cscHitZ(unsigned int tube) const
void setPt(float pt)
Set the transverse momentum ( ) of the muon.
float trackPositionR(unsigned int n) const
Get R postion of track.
float cscHitTime(unsigned int tube) const
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.
void setMdtHitsCapacity(int value)
Set size of storage for MDT hits.
float mdtHitTime(unsigned int tube) const
virtual double eta() const
The pseudorapidity ( ) of the particle.
float superPointSlope(int chamber) const
Get the measured slope of the muon in one particular super point.
float cscHitR(unsigned int tube) const
float superPointZ(int chamber) const
Get the measured Z position of the muon in one particular super point.
float cscHitPhi(unsigned int tube) const
int cscHitStrip(unsigned int tube) const
void setTgcInnF(float rhoStd, long rhoN, float phiStd, long phiN)
double chi2(TH1 *h0, TH1 *h1)
int r
Definition globals.cxx:22
constexpr double muonMassInMeV
the mass of the muon (in MeV)
Forward declaration.
STL namespace.
ObjectType
Type of objects that have a representation in the xAOD EDM.
Definition ObjectType.h:32
@ MaxChamber
Number of measurement point definitions.
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
static const SG::AuxElement::Accessor< std::vector< int > > mmioAcc("mmClusterIsOutlier")
static const SG::AuxElement::Accessor< std::vector< float > > rminnAcc("rMinNormal")
R range.
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius setPhiMap phiBin
static const SG::AuxElement::Accessor< std::vector< float > > stgceAcc("stgcClusterEta")
static const SG::AuxElement::Accessor< std::vector< int > > cscseAcc("cscHitStationEta")
static const SG::AuxElement::Accessor< std::vector< int > > stgcsnAcc("stgcClusterStationName")
static const SG::AuxElement::Accessor< std::vector< float > > spiAcc("superPointIntercept")
Object for accessing the superPointIntercept variable.
static const SG::AuxElement::Accessor< std::vector< float > > emaxoAcc("etaMaxOverlap")
static const SG::AuxElement::Accessor< std::vector< uint32_t > > mdtonAcc("mdtHitOnlineId")
Object for accessing the MDT tube variables.
static const SG::AuxElement::Accessor< std::vector< float > > mdtpAcc("mdtHitPhi")
static const SG::AuxElement::Accessor< std::vector< int > > cscspAcc("cscHitStationPhi")
setRcore setEtHad setFside pt
static const SG::AuxElement::Accessor< std::vector< float > > mmrAcc("mmClusterR")
static const SG::AuxElement::Accessor< std::vector< float > > stgczAcc("stgcClusterZ")
static const SG::AuxElement::Accessor< std::vector< float > > cscresAcc("cscHitTime")
static const SG::AuxElement::Accessor< std::vector< int > > tgcbcAcc("tgcHitBCTag")
static const SG::AuxElement::Accessor< std::vector< float > > eminoAcc("etaMinOverlap")
static const SG::AuxElement::Accessor< std::vector< float > > tgcwAcc("tgcHitWidth")
setSAddress etaMS
static const SG::AuxElement::Accessor< std::vector< int > > ct2nAcc("chamberType2Normal")
static const SG::AuxElement::Accessor< std::vector< float > > tgcpAcc("tgcHitPhi")
setTeId setLumiBlock setRoiId roiSubsystem
static const SG::AuxElement::Accessor< std::vector< float > > mmrspAcc("mmClusterResidualPhi")
static const SG::AuxElement::Accessor< std::vector< float > > cscrAcc("cscHitR")
static const SG::AuxElement::Accessor< std::vector< int > > cscclAcc("cscHitChamberLayer")
static const SG::AuxElement::Accessor< std::vector< float > > zminnAcc("zMinNormal")
Z range.
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius setInterceptInner setEtaMap setEtaBin isTgcFailure
setTeId setLumiBlock setRoiId setRoiSubsystem roiNumber
AUXSTORE_PRIMITIVE_GETTER_WITH_CAST(Muon_v1, uint8_t, Muon_v1::EnergyLossType, energyLossType) AUXSTORE_PRIMITIVE_SETTER_WITH_CAST(Muon_v1
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius setInterceptInner setEtaMap etaBin
static const SG::AuxElement::Accessor< std::vector< float > > rminoAcc("rMinOverlap")
static const SG::AuxElement::Accessor< std::vector< float > > mdtsigAcc("mdtHitSigma")
static const SG::AuxElement::Accessor< std::vector< float > > tgceAcc("tgcHitEta")
Object for accessing TGC hits.
static const SG::AuxElement::Accessor< std::vector< float > > spcAcc("superPointChi2")
Object for accessing the superPointChi2 variable.
static const SG::AuxElement::Accessor< std::vector< float > > bwnAcc("roadBwNormal")
static const SG::AuxElement::Accessor< std::vector< float > > zmaxnAcc("zMaxNormal")
static const SG::AuxElement::Accessor< std::vector< float > > rpctAcc("rpcHitTime")
static const SG::AuxElement::Accessor< std::vector< int > > csccAcc("cscHitChamberId")
static const SG::AuxElement::Accessor< std::vector< float > > rpcyAcc("rpcHitY")
setSAddress setEtaMS setDirPhiMS dirZMS
static const SG::AuxElement::Accessor< std::vector< int > > cscmpAcc("cscHitMeasuresPhi")
static const SG::AuxElement::Accessor< std::vector< int > > mmspAcc("mmClusterStationPhi")
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha endcapRadius
static const SG::AuxElement::Accessor< std::vector< float > > mdttAcc("mdtHitTime")
static const SG::AuxElement::Accessor< std::vector< float > > spsAcc("superPointSlope")
Object for accessing the superPointSlope variable.
static const SG::AuxElement::Accessor< std::vector< float > > awoAcc("roadAwOverlap")
static const SG::AuxElement::Accessor< std::vector< int > > cscsAcc("cscHitStrip")
static const SG::AuxElement::Accessor< std::vector< float > > rpcdeAcc("rpcHitDistToEtaReadout")
static const SG::AuxElement::Accessor< std::vector< int > > stgcspAcc("stgcClusterStationPhi")
static const SG::AuxElement::Accessor< std::vector< int > > ct2oAcc("chamberType2Overlap")
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius setPhiMap setPhiBin setIsRpcFailure deltaPtParm1
setTeId setLumiBlock setRoiId setRoiSubsystem setRoiNumber setRoiEta setTgcPt setPtBarrelSagitta setPtEndcapBeta ptCSC
static const SG::AuxElement::Accessor< std::vector< float > > stgcpAcc("stgcClusterPhi")
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius setInterceptInner setEtaMap setEtaBin setIsTgcFailure setDeltaPt deltaPhi
static const SG::AuxElement::Accessor< std::vector< float > > bwoAcc("roadBwOverlap")
static const SG::AuxElement::Accessor< std::vector< float > > mmzAcc("mmClusterZ")
static const SG::AuxElement::Accessor< std::vector< int > > ct1oAcc("chamberType1Overlap")
setSAddress setEtaMS setDirPhiMS setDirZMS barrelRadius
static const SG::AuxElement::Accessor< std::vector< float > > rpcxAcc("rpcHitX")
static const SG::AuxElement::Accessor< std::vector< int > > tgcsnAcc("tgcHitStationNum")
static const SG::AuxElement::Accessor< std::vector< uint32_t > > rpclAcc("rpcHitLayer")
Object for accessing RPC hits.
static const SG::AuxElement::Accessor< std::vector< float > > mdtresAcc("mdtHitResidual")
static const SG::AuxElement::Accessor< std::vector< float > > rpcdpAcc("rpcHitDistToPhiReadout")
static const SG::AuxElement::Accessor< std::vector< unsigned int > > mmlAcc("mmClusterLayer")
Object for accessing MM clusters.
static const SG::AuxElement::Accessor< std::vector< int > > mmsnAcc("mmClusterStationName")
static const SG::AuxElement::Accessor< std::vector< float > > rmaxoAcc("rMaxOverlap")
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius endcapAlpha
setTeId lumiBlock
static const SG::AuxElement::Accessor< std::vector< float > > zminoAcc("zMinOverlap")
static const SG::AuxElement::Accessor< std::vector< float > > spzAcc("superPointZ")
Object for accessing the superPointZ variable.
static const SG::AuxElement::Accessor< std::vector< int > > cscwlAcc("cscHitWireLayer")
static const SG::AuxElement::Accessor< std::vector< float > > emaxnAcc("etaMaxNormal")
static const SG::AuxElement::Accessor< std::vector< int > > mmseAcc("mmClusterStationEta")
static const SG::AuxElement::Accessor< std::vector< float > > csczAcc("cscHitZ")
setTeId setLumiBlock setRoiId setRoiSubsystem setRoiNumber setRoiEta setTgcPt setPtBarrelSagitta setPtEndcapBeta static setPtCSC const SG::AuxElement::Accessor< std::vector< int > > ct1nAcc("chamberType1Normal")
Object for accessing the road information.
static const SG::AuxElement::Accessor< std::vector< float > > zmaxoAcc("zMaxOverlap")
static const SG::AuxElement::Accessor< std::vector< int > > cscioAcc("cscHitIsOutlier")
Object for accessing the CSC tube variables.
static const SG::AuxElement::Accessor< std::vector< float > > rmaxnAcc("rMaxNormal")
setPtBarrelSagitta ptEndcapBeta
static const SG::AuxElement::Accessor< std::vector< float > > stgcrsrAcc("stgcClusterResidualR")
static const SG::AuxElement::Accessor< std::vector< float > > mmrsrAcc("mmClusterResidualR")
static const SG::AuxElement::Accessor< std::vector< float > > stgcrspAcc("stgcClusterResidualPhi")
static const SG::AuxElement::Accessor< std::vector< float > > mdtspcAcc("mdtHitSpace")
static const SG::AuxElement::Accessor< std::vector< float > > tgczAcc("tgcHitZ")
static const SG::AuxElement::Accessor< std::vector< float > > tgcrAcc("tgcHitR")
AUXSTORE_PRIMITIVE_SETTER_AND_GETTER(BTagging_v1, float, IP2D_pb, setIP2D_pb) AUXSTORE_PRIMITIVE_SETTER_AND_GETTER(BTagging_v1
static const SG::AuxElement::Accessor< std::vector< float > > mmpAcc("mmClusterPhi")
static const SG::AuxElement::Accessor< std::vector< float > > mmeAcc("mmClusterEta")
static const SG::AuxElement::Accessor< std::vector< float > > awnAcc("roadAwNormal")
road slope and intercept
static const SG::AuxElement::Accessor< std::vector< float > > csceAcc("cscHitEta")
setTeId setLumiBlock setRoiId setRoiSubsystem setRoiNumber setRoiEta tgcPt
static const SG::AuxElement::Accessor< std::vector< bool > > tgcisAcc("tgcHitIsStrip")
static const SG::AuxElement::Accessor< std::vector< bool > > tgcirAcc("tgcHitInRoad")
static const SG::AuxElement::Accessor< std::vector< float > > rpczAcc("rpcHitZ")
static const SG::AuxElement::Accessor< std::vector< float > > trkzAcc("trackPositionZ")
static const SG::AuxElement::Accessor< std::vector< float > > cscpAcc("cscHitPhi")
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius setPhiMap setPhiBin isRpcFailure
static const SG::AuxElement::Accessor< ElementLink< IParticleContainer > > acc("originalObjectLink")
Object used for setting/getting the dynamic decoration in question.
static const SG::AuxElement::Accessor< std::vector< int > > stgcseAcc("stgcClusterStationEta")
static const SG::AuxElement::Accessor< std::vector< float > > stgcrAcc("stgcClusterR")
setSAddress setEtaMS dirPhiMS
static const SG::AuxElement::Accessor< std::vector< float > > csctAcc("cscHitResidual")
setTeId setLumiBlock setRoiId setRoiSubsystem setRoiNumber roiEta
static const SG::AuxElement::Accessor< std::vector< uint32_t > > cscsnAcc("cscHitStationName")
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius setInterceptInner etaMap
static const SG::AuxElement::Accessor< std::vector< uint32_t > > rpcmpAcc("rpcHitMeasuresPhi")
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius setInterceptInner setEtaMap setEtaBin setIsTgcFailure setDeltaPt static setDeltaPhi const SG::AuxElement::Accessor< std::vector< float > > sprAcc("superPointR")
Object for accessing the superPointR variable.
static const SG::AuxElement::Accessor< std::vector< unsigned int > > stgclAcc("stgcClusterLayer")
Object for accessing sTGC clusters.
setTeId setLumiBlock roiId
static const SG::AuxElement::Accessor< std::vector< int > > stgctyAcc("stgcClusterType")
setEventNumber uint32_t
static const SG::AuxElement::Accessor< std::vector< float > > mdtrAcc("mdtHitR")
static const SG::AuxElement::Accessor< std::vector< float > > mdtzAcc("mdtHitZ")
static const SG::AuxElement::Accessor< std::vector< float > > trkphiAcc("trackPositionPhi")
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius setInterceptInner setEtaMap setEtaBin setIsTgcFailure deltaPt
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius phiMap
static const SG::AuxElement::Accessor< std::vector< int > > cscchAcc("cscHitCharge")
static const SG::AuxElement::Accessor< std::vector< float > > trkrAcc("trackPositionR")
Object for accessing track position variables.
static const SG::AuxElement::Accessor< std::vector< int > > mdtcAcc("mdtHitChamberId")
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius setPhiMap setPhiBin setIsRpcFailure setDeltaPtParm1 deltaPtParm3
static const SG::AuxElement::Accessor< std::vector< float > > eminnAcc("etaMinNormal")
Eta range.
static const SG::AuxElement::Accessor< std::vector< std::string > > rpcsnAcc("rpcHitStationName")
static const SG::AuxElement::Accessor< std::vector< int > > stgcioAcc("stgcClusterIsOutlier")
static const SG::AuxElement::Accessor< std::vector< float > > trketaAcc("trackPositionEta")
static const SG::AuxElement::Accessor< std::vector< int > > mdtioAcc("mdtHitIsOutlier")