ATLAS Offline Software
Loading...
Searching...
No Matches
TauJet_v2.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5// $Id: TauJet_v2.cxx 747258 2016-05-15 02:57:19Z griffith $
6
7
8// System include(s):
9extern "C" {
10# include <cstdint>
11}
12#include <bitset>
13
14// EDM include(s):
16
17// Local include(s):
20#include "TauJetAccessors_v2.h"
21
22namespace xAOD {
23
27
28
33
34
35 //primitive setters and getters for jetseed 4-vector
36 AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, ptJetSeed)
37 AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, etaJetSeed)
38 AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, phiJetSeed)
39 AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, mJetSeed)
40
41 //primitive setters and getters for jetseed 4-vector
42 AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, ptDetectorAxis)
43 AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, etaDetectorAxis)
44 AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, phiDetectorAxis)
45 AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, mDetectorAxis)
46
47 //primitive setters and getters for IntermediateAxis 4-vector
48 AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, ptIntermediateAxis)
49 AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, etaIntermediateAxis)
50 AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, phiIntermediateAxis)
51 AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, mIntermediateAxis)
52
53 //primitive setters and getters for TauEnergyScale 4-vector
54 AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, ptTauEnergyScale)
55 AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, etaTauEnergyScale)
56 AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, phiTauEnergyScale)
57 AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, mTauEnergyScale)
58
59 //primitive setters and getters for jetseed 4-vector
60 AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, ptTauEtaCalib)
61 AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, etaTauEtaCalib)
62 AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, phiTauEtaCalib)
63 AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, mTauEtaCalib)
64
65 //primitive setters and getters for jetseed 4-vector
66 AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, ptPanTauCellBasedProto)
67 AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, etaPanTauCellBasedProto)
68 AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, phiPanTauCellBasedProto)
69 AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, mPanTauCellBasedProto)
70
71 //primitive setters and getters for jetseed 4-vector
72 AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, ptPanTauCellBased)
73 AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, etaPanTauCellBased)
74 AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, phiPanTauCellBased)
75 AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, mPanTauCellBased)
76
77 //primitive setters and getters for HLT 4-vector
78 AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, ptTrigCaloOnly)
79 AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, etaTrigCaloOnly)
80 AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, phiTrigCaloOnly)
81 AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, mTrigCaloOnly)
82
83
84 double TauJet_v2::e() const {
85 return genvecP4().E();
86 }
87
88
89 double TauJet_v2::rapidity() const {
90 return genvecP4().Rapidity();
91 }
92
95 p4.SetPtEtaPhiM( pt(), eta(), phi(),m());
96 return p4;
97 }
98
100 return GenVecFourMom_t(pt(), eta(), phi(), m());
101 }
102
105 switch(calib) {
107 p4.SetPtEtaPhiM( ptJetSeed(), etaJetSeed(), phiJetSeed(), mJetSeed());
108 break;
111 break;
114 break;
117 break;
120 break;
123 break;
126 break;
129 break;
130 default:
131 p4.SetPtEtaPhiM( pt(), eta(), phi(), m());
132 }
133
134 return p4;
135 }
136
159
160
161 void TauJet_v2::setP4(double pt, double eta, double phi, double m) {
162 static const Accessor< float > acc1( "pt" );
163 static const Accessor< float > acc2( "eta" );
164 static const Accessor< float > acc3( "phi" );
165 static const Accessor< float > acc4( "m" );
166 acc1( *this )=pt;
167 acc2( *this )=eta;
168 acc3( *this )=phi;
169 acc4( *this )=m;
170 }
171
172 bool TauJet_v2::setP4(const TauJetParameters::TauCalibType calib, double pt, double eta, double phi, double m) {
173 TauJetCalibTypeMapper_v1 typeMapper;
174 std::string calibString = "";
175 bool result = typeMapper.getValue(calib, calibString);
176 if (result) {
177 Accessor< float > accTauPtCalib( "pt"+calibString );
178 Accessor< float > accTauEtaCalib( "eta"+calibString );
179 Accessor< float > accTauPhiCalib( "phi"+calibString );
180 Accessor< float > accTauMCalib( "m"+calibString );
181 accTauPtCalib( *this )=pt;
182 accTauEtaCalib( *this )=eta;
183 accTauPhiCalib( *this )=phi;
184 accTauMCalib( *this )=m;
185 return true;
186 }
187 else {
188 return false;
189 }
190 }
191
192
193 Type::ObjectType TauJet_v2::type() const {
194 return Type::Tau;
195 }
196
197 AUXSTORE_PRIMITIVE_SETTER_AND_GETTER( TauJet_v2, unsigned int, ROIWord , setROIWord )
199
200 //-------------------------------------------------------------------------
201 // Has discriminant
202 //-------------------------------------------------------------------------
204 {
205 // Get the discriminant accessor:
207 return acc != nullptr;
208 }
209
210
211 //-------------------------------------------------------------------------
212 // Get discriminant
213 //-------------------------------------------------------------------------
215 // Get the discriminant accessor:
217 if( ! acc ) return -1111.0;
218
219 // Retrieve the discriminant value:
220 return ( *acc )( *this );
221 }
222
223 //-------------------------------------------------------------------------
224 // Set discriminant
225 //-------------------------------------------------------------------------
227 ( *( xAODTau::discriminantAccessorV2( discriminant ) ) )( *this ) = value;
228 return;
229 }
230
231 //-------------------------------------------------------------------------
232 // Accept
233 //-------------------------------------------------------------------------
236 {
237 static const Accessor< uint32_t > acc( "isTauFlags" );
238 std::bitset<32> isTauFlags( acc( *this ) );
239 return isTauFlags[flag];
240 }
241
244 {
245 static const Accessor< uint32_t > acc( "isTauFlags" );
246 std::bitset<32> isTauFlags( acc( *this ) );
247 isTauFlags[flag] = value;
248 acc( *this ) = isTauFlags.to_ulong();
249 }
250
251 //-------------------------------------------------------------------------
252 // Veto flags accessors
253 //-------------------------------------------------------------------------
256 {
257 static const Accessor< uint32_t > acc( "vetoFlags" );
258 std::bitset<32> vetoFlags( acc( *this ) );
259 vetoFlags[flag] = value;
260 acc( *this ) = vetoFlags.to_ulong();
261 }
262
265 {
266 static const Accessor< uint32_t > acc( "vetoFlags" );
267 std::bitset<32> vetoFlags( acc( *this ) );
268 return vetoFlags[flag];
269 }
270
271
272
273 //-------------------------------------------------------------------------
274 // Get int detail via enum
275 //-------------------------------------------------------------------------
277 // Get the detail accessor:
279 if( ! acc ) return false;
280 if( ! acc->isAvailable( *this ) ) return false;
281
282 // Retrieve the detail value:
283 value = ( *acc )( *this );
284 return true;
285 }
286
287 //-------------------------------------------------------------------------
288 // Get float detail via enum
289 //-------------------------------------------------------------------------
291 // Get the detail accessor:
293 if( ! acc ) return false;
294 if( ! acc->isAvailable( *this ) ) return false;
295
296 // Retrieve the detail value:
297 value = ( *acc )( *this );
298 return true;
299 }
300
301 //-------------------------------------------------------------------------
302 // Set int detail via enum
303 //-------------------------------------------------------------------------
305 ( *( xAODTau::detailsAccessorV2<int>( detail ) ) )( *this ) = value;
306 }
307
308 //-------------------------------------------------------------------------
309 // Set float detail via enum
310 //-------------------------------------------------------------------------
312 ( *( xAODTau::detailsAccessorV2<float>( detail ) ) )( *this ) = value;
313 }
314
315
316 //-------------------------------------------------------------------------
317 // Get int panTauDetail via enum
318 //-------------------------------------------------------------------------
320 // Get the panTauDetail accessor:
322 if( ! acc ) return false;
323 if( ! acc->isAvailable( *this ) ) return false;
324
325 // Retrieve the panTauDetail value:
326 value = ( *acc )( *this );
327 return true;
328 }
329
330 //-------------------------------------------------------------------------
331 // Get float panTauDetail via enum
332 //-------------------------------------------------------------------------
334 // Get the panTauDetail accessor:
336 if( ! acc ) return false;
337 if( ! acc->isAvailable( *this ) ) return false;
338
339 // Retrieve the panTauDetail value:
340 value = ( *acc )( *this );
341 return true;
342 }
343
344 //-------------------------------------------------------------------------
345 // Set int panTauDetail via enum
346 //-------------------------------------------------------------------------
350
351 //-------------------------------------------------------------------------
352 // Set float panTauDetail via enum
353 //-------------------------------------------------------------------------
357
358
359 // setters and getters for the track links
362 trackLinks,
363 setTrackLinks )
364
366
367 const TrackParticle* TauJet_v2::track( size_t i ) const {
368 return ( *trackAcc( *this )[ i ] );
369 }
370
371 size_t TauJet_v2::nTracks() const {
372 return trackAcc( *this ).size();
373 }
374
376
377 trackAcc( *this ).push_back( tr );
378 return;
379 }
380
382 trackAcc( *this ).clear();
383 return;
384 }
385
386
388 {
389 static const Accessor< std::vector < uint8_t > > trackFlags("trackFlags");
390 std::vector<uint8_t> vec = trackFlags(*this);
391 unsigned int totalTracks = this->nTracks() + this->nWideTracks() + this->nOtherTracks();
392 while (vec.size() < totalTracks) {
393 vec.push_back(0);
394 }
395 for (unsigned int i = 0 ; i < totalTracks ; i++) {
396 const TrackParticle* iterTrack;
397 if (i < this->nTracks()) {
398 iterTrack = this->track(i);
399 }
400 else if (i < this->nTracks() + this->nWideTracks()) {
401 iterTrack = this->wideTrack(i - this->nTracks());
402 }
403 else {
404 iterTrack = this->otherTrack(i - this->nTracks() - this->nWideTracks());
405 }
406 if (track == iterTrack) {
407 std::bitset<8> thisTracksFlags(vec[i]);
408 return thisTracksFlags[flag];
409 }
410 }
411 return false;
412 }
413
415 {
416 static const Accessor< std::vector < uint8_t > > trackFlags("trackFlags");
417 std::vector<uint8_t> vec = trackFlags(*this);
418 unsigned int totalTracks = this->nTracks() + this->nWideTracks() + this->nOtherTracks();
419 while (vec.size() < totalTracks) {
420 vec.push_back(0);
421 }
422 for (unsigned int i = 0 ; i < totalTracks ; i++) {
423 const TrackParticle* iterTrack;
424 if (i < this->nTracks()) {
425 iterTrack = this->track(i);
426 }
427 else if (i < this->nTracks() + this->nWideTracks()) {
428 iterTrack = this->wideTrack(i - this->nTracks());
429 }
430 else {
431 iterTrack = this->otherTrack(i - this->nTracks() - this->nWideTracks());
432 }
433 if (track == iterTrack) {
434 std::bitset<8> thisTracksFlags(vec[i]);
435 thisTracksFlags[flag] = value;
436 vec[i] = thisTracksFlags.to_ulong();
437 }
438 }
439 trackFlags(*this) = vec;
440 }
441
442
443 //setter and getter for trackfilterprongs
444 AUXSTORE_PRIMITIVE_SETTER_AND_GETTER( TauJet_v2, int, trackFilterProngs , setTrackFilterProngs )
445 //setter and getter for trackfilterquality
446 AUXSTORE_PRIMITIVE_SETTER_AND_GETTER( TauJet_v2, int, trackFilterQuality , setTrackFilterQuality )
447 //setter and getter for pi0ConeDR
448 AUXSTORE_PRIMITIVE_SETTER_AND_GETTER( TauJet_v2, float, pi0ConeDR , setPi0ConeDR )
449
450
451
452 float TauJet_v2::trackEtaStrip(unsigned int numTrack) const
453 {
454 static const Accessor< std::vector <float > > trackEtaStripAcc("trackEtaStrip");
455 const std::vector<float>& vec=trackEtaStripAcc(*this);
456 if (vec.size()<numTrack+1)
457 return -999.0;
458 else
459 return vec[numTrack];
460 }
461
462 void TauJet_v2::setTrackEtaStrip(unsigned int numTrack, float eta)
463 {
464 static const Accessor< std::vector <float > > trackEtaStripAcc("trackEtaStrip");
465 std::vector<float>& vec=trackEtaStripAcc(*this);
466 if (vec.size()<numTrack+1)
467 vec.resize(numTrack+1);
468 vec[numTrack]=eta;
469 }
470
471
472 float TauJet_v2::trackPhiStrip(unsigned int numTrack) const
473 {
474 static const Accessor< std::vector <float > > trackPhiStripAcc("trackPhiStrip");
475 const std::vector<float>& vec=trackPhiStripAcc(*this);
476 if (vec.size()<numTrack+1)
477 return -999.0;
478 else
479 return vec[numTrack];
480 }
481
482 void TauJet_v2::setTrackPhiStrip(unsigned int numTrack, float phi)
483 {
484 static const Accessor< std::vector <float > > trackPhiStripAcc("trackPhiStrip");
485 std::vector<float>& vec=trackPhiStripAcc(*this);
486 if (vec.size()<numTrack+1)
487 vec.resize(numTrack+1);
488 vec[numTrack]=phi;
489 }
490
491
492
493 // setters and getters for the wide track links
496 wideTrackLinks,
497 setWideTrackLinks )
498
499 static const SG::Accessor< TauJet_v2::TrackParticleLinks_t > wideTrackAcc( "wideTrackLinks" );
500
501 const TrackParticle* TauJet_v2::wideTrack( size_t i ) const {
502 return ( *wideTrackAcc( *this )[ i ] );
503 }
504
505 size_t TauJet_v2::nWideTracks() const {
506 return wideTrackAcc( *this ).size();
507 }
508
510
511 wideTrackAcc( *this ).push_back( tr );
512 return;
513 }
514
516 wideTrackAcc( *this ).clear();
517 return;
518 }
519
520 // setters and getters for the other track links
523 otherTrackLinks,
524 setOtherTrackLinks )
525
526 static const SG::Accessor< TauJet_v2::TrackParticleLinks_t > otherTrackAcc( "otherTrackLinks" );
527
528 const TrackParticle* TauJet_v2::otherTrack( size_t i ) const {
529 return ( *otherTrackAcc( *this )[ i ] );
530 }
531
532 size_t TauJet_v2::nOtherTracks() const {
533 return otherTrackAcc( *this ).size();
534 }
535
537
538 otherTrackAcc( *this ).push_back( tr );
539 return;
540 }
541
543 otherTrackAcc( *this ).clear();
544 return;
545 }
546
550 jetLink,
551 setJetLink )
552
553 static const SG::Accessor< TauJet_v2::JetLink_t > jetAcc( "jetLink" );
554
555 const Jet* TauJet_v2::jet() const {
556 return ( *jetAcc( *this ) );
557 }
558
559
561 if( jetAcc( *this ).isValid() )
562 jetAcc( *this ).reset();
563 jetAcc( *this ).toContainedElement( *cont, jet );
564 }
565
566
567
571 vertexLink,
572 setVertexLink )
573
574 static const SG::Accessor< TauJet_v2::VertexLink_t > vertexAcc( "vertexLink" );
575
576 const Vertex* TauJet_v2::vertex() const {
577 return ( *vertexAcc( *this ) );
578 }
579
580
582 if( vertexAcc( *this ).isValid() )
583 vertexAcc( *this ).reset();
584 vertexAcc( *this ).toContainedElement( *cont, vertex );
585 }
586
587
588
592 secondaryVertexLink,
593 setSecondaryVertexLink )
594
595 static const SG::Accessor< TauJet_v2::VertexLink_t > secondaryVertexAcc( "secondaryVertexLink" );
596
597 const Vertex* TauJet_v2::secondaryVertex() const {
598 return ( *secondaryVertexAcc( *this ) );
599 }
600
601
603 if( secondaryVertexAcc( *this ).isValid() )
604 secondaryVertexAcc( *this ).reset();
605 secondaryVertexAcc( *this ).toContainedElement( *cont, vertex );
606 }
607
608
609
610
612 // setters and getters for the hadronic PFO links
615 hadronicPFOLinks,
616 setHadronicPFOLinks )
617
618
619
620 static const SG::Accessor< TauJet_v2::PFOLinks_t > hadronicPFOAcc( "hadronicPFOLinks" );
621
622 const PFO* TauJet_v2::hadronicPFO( size_t i ) const {
623 return ( *hadronicPFOAcc( *this )[ i ] );
624 }
625
627 return hadronicPFOAcc( *this ).size();
628 }
629
631
632 hadronicPFOAcc( *this ).push_back( pfo );
633 return;
634 }
635
637 hadronicPFOAcc( *this ).clear();
638 return;
639 }
640
641 // setters and getters for the shot PFO links
644 shotPFOLinks,
645 setShotPFOLinks )
646
647
648
649 static const SG::Accessor< TauJet_v2::PFOLinks_t > shotPFOAcc( "shotPFOLinks" );
650
651 const PFO* TauJet_v2::shotPFO( size_t i ) const {
652 return ( *shotPFOAcc( *this )[ i ] );
653 }
654
655 size_t TauJet_v2::nShotPFOs() const {
656 return shotPFOAcc( *this ).size();
657 }
658
660
661 shotPFOAcc( *this ).push_back( pfo );
662 return;
663 }
664
666 shotPFOAcc( *this ).clear();
667 return;
668 }
669
670
671 // setters and getters for the charged PFO links
674 chargedPFOLinks,
675 setChargedPFOLinks )
676
677
678
679 static const SG::Accessor< TauJet_v2::PFOLinks_t > chargedPFOAcc( "chargedPFOLinks" );
680
681 const PFO* TauJet_v2::chargedPFO( size_t i ) const {
682 return ( *chargedPFOAcc( *this )[ i ] );
683 }
684
685 size_t TauJet_v2::nChargedPFOs() const {
686 return chargedPFOAcc( *this ).size();
687 }
688
690
691 chargedPFOAcc( *this ).push_back( pfo );
692 return;
693 }
694
696 chargedPFOAcc( *this ).clear();
697 return;
698 }
699
700
701
702 // setters and getters for the neutral PFO links
705 neutralPFOLinks,
706 setNeutralPFOLinks )
707
708
709
710 static const SG::Accessor< TauJet_v2::PFOLinks_t > neutralPFOAcc( "neutralPFOLinks" );
711
712 const PFO* TauJet_v2::neutralPFO( size_t i ) const {
713 return ( *neutralPFOAcc( *this )[ i ] );
714 }
715
716 size_t TauJet_v2::nNeutralPFOs() const {
717 return neutralPFOAcc( *this ).size();
718 }
719
721
722 neutralPFOAcc( *this ).push_back( pfo );
723 return;
724 }
725
727 neutralPFOAcc( *this ).clear();
728 return;
729 }
730
731
732
733 // setters and getters for the pi0 PFO links
736 pi0PFOLinks,
737 setPi0PFOLinks )
738
739
740
741 static const SG::Accessor< TauJet_v2::PFOLinks_t > pi0PFOAcc( "pi0PFOLinks" );
742
743 const PFO* TauJet_v2::pi0PFO( size_t i ) const {
744 return ( *pi0PFOAcc( *this )[ i ] );
745 }
746
747 size_t TauJet_v2::nPi0PFOs() const {
748 return pi0PFOAcc( *this ).size();
749 }
750
752
753 pi0PFOAcc( *this ).push_back( pfo );
754 return;
755 }
756
758 pi0PFOAcc( *this ).clear();
759 return;
760 }
761
762
763
764
765
767 // setters and getters for the cellbased_charged PFO links
770 protoChargedPFOLinks,
771 setProtoChargedPFOLinks )
772
773
774
775 static const SG::Accessor< TauJet_v2::PFOLinks_t > protoChargedPFOAcc( "protoChargedPFOLinks" );
776
777 const PFO* TauJet_v2::protoChargedPFO( size_t i ) const {
778 return ( *protoChargedPFOAcc( *this )[ i ] );
779 }
780
782 return protoChargedPFOAcc( *this ).size();
783 }
784
786
787 protoChargedPFOAcc( *this ).push_back( pfo );
788 return;
789 }
790
792 protoChargedPFOAcc( *this ).clear();
793 return;
794 }
795
796
797 // setters and getters for the cellbased_neutral PFO links
800 protoNeutralPFOLinks,
801 setProtoNeutralPFOLinks )
802
803
804
805 static const SG::Accessor< TauJet_v2::PFOLinks_t > protoNeutralPFOAcc( "protoNeutralPFOLinks" );
806
807 const PFO* TauJet_v2::protoNeutralPFO( size_t i ) const {
808 return ( *protoNeutralPFOAcc( *this )[ i ] );
809 }
810
812 return protoNeutralPFOAcc( *this ).size();
813 }
814
816
817 protoNeutralPFOAcc( *this ).push_back( pfo );
818 return;
819 }
820
822 protoNeutralPFOAcc( *this ).clear();
823 return;
824 }
825
826
827
828 // setters and getters for the cellbased_pi0 PFO links
831 protoPi0PFOLinks,
832 setProtoPi0PFOLinks )
833
834
835
836 static const SG::Accessor< TauJet_v2::PFOLinks_t > protoPi0PFOAcc( "protoPi0PFOLinks" );
837
838 const PFO* TauJet_v2::protoPi0PFO( size_t i ) const {
839 return ( *protoPi0PFOAcc( *this )[ i ] );
840 }
841
843 return protoPi0PFOAcc( *this ).size();
844 }
845
847
848 protoPi0PFOAcc( *this ).push_back( pfo );
849 return;
850 }
851
853 protoPi0PFOAcc( *this ).clear();
854 return;
855 }
856
857
858
859
860 void TauJet_v2::dump() const {
861 /* keep these two lines to create the template methods. Otherwise they are optimzed away
862 * later: move these two lines into a dummy method, which nobody is calling
863 */
864 std::cout << this->detail<float>(xAOD::TauJetParameters::ipSigLeadTrk) << std::endl;
865 std::cout << this->detail<int>(xAOD::TauJetParameters::numTopoClusters) << std::endl;
866 }
867
868} // namespace xAOD
869
870// LocalWords: panTauDetail mJetSeed
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_PRIMITIVE_SETTER_AND_GETTER(CL, TYPE, NAME, SETTER)
Macro creating the accessors of primitive auxiliary properties.
#define AUXSTORE_OBJECT_SETTER_AND_GETTER(CL, TYPE, NAME, SETTER)
Macro creating the accessors of complex auxiliary properties.
std::vector< size_t > vec
Helper class to provide type-safe access to aux data.
IParticle()=default
TLorentzVector FourMom_t
Definition of the 4-momentum type.
SG::Accessor< T, ALLOC > Accessor
Definition AuxElement.h:572
void reset()
Function making sure that the object is ready for persistification.
Definition Jet_v1.cxx:231
Class describing a tau jet.
Definition TauJet_v2.h:38
void addOtherTrackLink(const ElementLink< TrackParticleContainer > &tr)
add a track to the tau
void clearHadronicPFOLinks()
Remove all hadronic PFOs from the tau.
double ptDetectorAxis() const
std::vector< ElementLink< xAOD::PFOContainer > > PFOLinks_t
Definition TauJet_v2.h:307
const Vertex * secondaryVertex() const
bool panTauDetail(TauJetParameters::PanTauDetails panTauDetail, int &value) const
Get and set values of pantau details variables via enum.
void addProtoPi0PFOLink(const ElementLink< PFOContainer > &pfo)
add a cellbased_pi0 PFO to the tau
void addHadronicPFOLink(const ElementLink< PFOContainer > &pfo)
add a hadronic PFO to the tau
void setFlag(TauJetParameters::VetoFlags flag, bool value)
Set veto flag.
void addProtoNeutralPFOLink(const ElementLink< PFOContainer > &pfo)
add a cellbased_neutral PFO to the tau
void addShotPFOLink(const ElementLink< PFOContainer > &pfo)
add a shot PFO to the tau
void clearProtoNeutralPFOLinks()
Remove all cellbased_neutral PFOs from the tau.
const PFO * neutralPFO(size_t i) const
Get the pointer to a given neutral PFO associated with this tau.
TauJet_v2()
Default constructor.
Definition TauJet_v2.cxx:24
const PFO * hadronicPFO(size_t i) const
Get the pointer to a given hadronic PFO associated with this tau.
size_t nProtoPi0PFOs() const
Get the number of cellbased_pi0 PFO particles associated with this tau.
double ptPanTauCellBasedProto() const
double ptJetSeed() const
void setSecondaryVertex(const xAOD::VertexContainer *cont, const xAOD::Vertex *vertex)
const PFO * protoPi0PFO(size_t i) const
Get the pointer to a given cellbased_pi0 PFO associated with this tau.
double etaTrigCaloOnly() const
const TrackParticle * wideTrack(size_t i) const
Get the pointer to a given track associated with this tau.
void setPanTauDetail(TauJetParameters::PanTauDetails panTauDetail, int value)
double ptTauEtaCalib() const
void addChargedPFOLink(const ElementLink< PFOContainer > &pfo)
add a charged PFO to the tau
virtual double e() const
The total energy of the particle.
Definition TauJet_v2.cxx:84
double etaPanTauCellBasedProto() const
ElementLink< xAOD::JetContainer > JetLink_t
Definition TauJet_v2.h:197
void clearPi0PFOLinks()
Remove all pi0 PFOs from the tau.
double etaJetSeed() const
void clearProtoChargedPFOLinks()
Remove all cellbased_charged PFOs from the tau.
virtual double eta() const
The pseudorapidity ( ) of the particle.
double etaTauEtaCalib() const
double phiPanTauCellBasedProto() const
const PFO * pi0PFO(size_t i) const
Get the pointer to a given pi0 PFO associated with this tau.
virtual double m() const
The invariant mass of the particle.
const PFO * protoChargedPFO(size_t i) const
Get the pointer to a given cellbased_charged PFO associated with this tau.
const TrackParticle * otherTrack(size_t i) const
Get the pointer to a given track associated with this tau.
double etaDetectorAxis() const
void clearChargedPFOLinks()
Remove all charged PFOs from the tau.
void setDetail(TauJetParameters::Detail detail, int value)
double phiTauEtaCalib() const
virtual FourMom_t p4() const
The full 4-momentum of the particle.
Definition TauJet_v2.cxx:93
bool flag(TauJetParameters::VetoFlags flag) const
Get veto flag.
double phiTrigCaloOnly() const
size_t nOtherTracks() const
Get the number of track particles associated with this tau.
const TrackParticle * track(size_t i) const
Get the pointer to a given track associated with this tau.
void setDiscriminant(TauJetParameters::TauID discID, double disc)
Set value of discriminant.
double ptTrigCaloOnly() const
double ptIntermediateAxis() const
size_t nPi0PFOs() const
Get the number of pi0 PFO particles associated with this tau.
double etaIntermediateAxis() const
double phiTauEnergyScale() const
double phiPanTauCellBased() const
const PFO * chargedPFO(size_t i) const
Get the pointer to a given charged PFO associated with this tau.
double etaPanTauCellBased() const
float trackEtaStrip(unsigned int numTrack) const
const PFO * protoNeutralPFO(size_t i) const
Get the pointer to a given cellbased_neutral PFO associated with this tau.
double mJetSeed() const
void clearTrackLinks()
Remove all tracks from the tau.
bool trackFlag(const TrackParticle *track, TauJetParameters::TauTrackFlag flag) const
double mTrigCaloOnly() const
void clearNeutralPFOLinks()
Remove all neutral PFOs from the tau.
void setJet(const xAOD::JetContainer *cont, const xAOD::Jet *jet)
bool isTau(TauJetParameters::IsTauFlag flag) const
Get Flag for tau acceptance based on predefined arbitrary criteria.
double mPanTauCellBased() const
size_t nProtoNeutralPFOs() const
Get the number of cellbased_neutral PFO particles associated with this tau.
void addProtoChargedPFOLink(const ElementLink< PFOContainer > &pfo)
add a cellbased_charged PFO to the tau
void dump() const
void setTrackEtaStrip(unsigned int numTrack, float eta)
const Jet * jet() const
virtual double pt() const
The transverse momentum ( ) of the particle.
double phiJetSeed() const
double discriminant(TauJetParameters::TauID discID) const
Get value of discriminant.
double ptPanTauCellBased() const
virtual double phi() const
The azimuthal angle ( ) of the particle.
size_t nHadronicPFOs() const
Get the number of hadronic PFO particles associated with this tau.
double etaTauEnergyScale() const
bool detail(TauJetParameters::Detail detail, int &value) const
Get and set values of common details variables via enum.
double ptTauEnergyScale() const
double mTauEtaCalib() const
size_t nNeutralPFOs() const
Get the number of neutral PFO particles associated with this tau.
void setVertex(const xAOD::VertexContainer *cont, const xAOD::Vertex *vertex)
void setP4(double pt, double eta, double phi, double m)
Set methods for IParticle values.
bool hasDiscriminant(TauJetParameters::TauID discID) const
Check if class contains requested discriminant.
GenVecFourMom_t genvecP4() const
The full 4-momentum of the particle : internal taus type.
Definition TauJet_v2.cxx:99
double mIntermediateAxis() const
size_t nTracks() const
virtual Type::ObjectType type() const
The type of the object as a simple enumeration.
const Vertex * vertex() const
void setIsTau(TauJetParameters::IsTauFlag flag, bool value)
Set Flag for tau acceptance based on predefined arbitrary criteria.
double phiDetectorAxis() const
void addWideTrackLink(const ElementLink< TrackParticleContainer > &tr)
add a track to the tau
size_t nWideTracks() const
Get the number of track particles associated with this tau.
size_t nShotPFOs() const
Get the number of shot PFO particles associated with this tau.
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiM4D< double > > GenVecFourMom_t
Base 4 Momentum type for taus.
Definition TauJet_v2.h:66
double mTauEnergyScale() const
size_t nProtoChargedPFOs() const
Get the number of cellbased_charged PFO particles associated with this tau.
void addTrackLink(const ElementLink< TrackParticleContainer > &tr)
add a track to the tau
double mDetectorAxis() const
double mPanTauCellBasedProto() const
double phiIntermediateAxis() const
float trackPhiStrip(unsigned int numTrack) const
void setTrackFlag(const TrackParticle *track, TauJetParameters::TauTrackFlag flag, bool value)
void clearWideTrackLinks()
Remove all tracks from the tau.
ElementLink< xAOD::VertexContainer > VertexLink_t
Definition TauJet_v2.h:209
void addNeutralPFOLink(const ElementLink< PFOContainer > &pfo)
add a neutral PFO to the tau
void addPi0PFOLink(const ElementLink< PFOContainer > &pfo)
add a pi0 PFO to the tau
size_t nChargedPFOs() const
Get the number of charged PFO particles associated with this tau.
void clearShotPFOLinks()
Remove all shot PFOs from the tau.
void setTrackPhiStrip(unsigned int numTrack, float phi)
const PFO * shotPFO(size_t i) const
Get the pointer to a given shot PFO associated with this tau.
void clearOtherTrackLinks()
Remove all tracks from the tau.
void clearProtoPi0PFOLinks()
Remove all cellbased_pi0 PFOs from the tau.
virtual double rapidity() const
The true rapidity (y) of the particle.
Definition TauJet_v2.cxx:89
std::vector< ElementLink< xAOD::TrackParticleContainer > > TrackParticleLinks_t
Definition TauJet_v2.h:232
TauTrackFlag
Enum for tau track flags.
Definition TauDefs.h:400
TauCalibType
Enum for tau calib type.
Definition TauDefs.h:335
Detail
Enum for tau parameters - used mainly for backward compatibility with the analysis code.
Definition TauDefs.h:156
@ numTopoClusters
get number of topocluster constituents of jet associated to tau candidate
Definition TauDefs.h:173
PanTauDetails
Enum for tau details (scalar) calculated by pantau.
Definition TauDefs.h:355
VetoFlags
Enum for Veto flags.
Definition TauDefs.h:103
TauID
Enum for discriminants.
Definition TauDefs.h:46
IsTauFlag
Enum for IsTau flags.
Definition TauDefs.h:116
const SG::Accessor< int > * detailsAccessorV2< int >(xAOD::TauJetParameters::Detail detail)
const SG::Accessor< int > * panTauDetailsAccessorV2< int >(xAOD::TauJetParameters::PanTauDetails detail)
const SG::Accessor< float > * discriminantAccessorV2(xAOD::TauJetParameters::TauID discriminant)
Helper function for managing accessors to id input and output variables defined as enums in TauDefs....
const SG::Accessor< float > * panTauDetailsAccessorV2< float >(xAOD::TauJetParameters::PanTauDetails detail)
const SG::Accessor< float > * detailsAccessorV2< float >(xAOD::TauJetParameters::Detail detail)
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Jet_v1 Jet
Definition of the current "jet version".
setStrategy setMatchFlag ElementLink< TrackParticleContainer >
static const SG::AuxElement::Accessor< Vertex_v1::TrackParticleLinks_t > trackAcc("trackParticleLinks")
Accessor for the track links.
setRcore setEtHad setFside pt
TrackParticle_v1 TrackParticle
Reference the current persistent version:
VertexContainer_v1 VertexContainer
Definition of the current "Vertex container version".
Vertex_v1 Vertex
Define the latest version of the vertex class.
setBGCode setTAP setLVL2ErrorBits bool
static const SG::AuxElement::Accessor< ElementLink< IParticleContainer > > acc("originalObjectLink")
Object used for setting/getting the dynamic decoration in question.
JetContainer_v1 JetContainer
Definition of the current "jet container version".
bool getValue(TauJetParameters::TauCalibType type, std::string &stringName)