ATLAS Offline Software
Loading...
Searching...
No Matches
InDetAlignFillTrack Class Reference

#include <InDetAlignFillTrack.h>

Inheritance diagram for InDetAlignFillTrack:
Collaboration diagram for InDetAlignFillTrack:

Public Member Functions

 InDetAlignFillTrack (const std::string &type, const std::string &name, const IInterface *parent)
virtual StatusCode initialize () override
virtual StatusCode finalize () override
virtual StatusCode FillTrack () override
virtual int GetTrks () const override
virtual int GetTrkHits () const override
virtual int GetTrkPixHits () const override
virtual int GetTrkSCTHits () const override
virtual int GetTrkTRTHits () const override

Private Member Functions

void bookNtuple ()
void bookUpNtuple ()
void bookLowNtuple ()
void bookMatchingNtuple ()
int dumpTrackCol (const TrackCollection *)
int dumpTrackCol (const TrackCollection *, const std::string &)
void dumpTrack (int, const Trk::Track *, const std::string &)
void dumpPerigee (const Trk::TrackParameters *, int)
StatusCode dumpMatching (const TrackCollection *, const TrackCollection *)

Private Attributes

ServiceHandle< INTupleSvc > m_ntupleSvc {this,"NTupleSvc","NTupleSvc"}
BooleanProperty m_doTruth {this,"doTruth",false}
 switch on/off the truth information
StringProperty m_TruthTrkCol {this,"TruthTrkCol","TrackTruthCollection"}
StringProperty m_inputCol {this,"InputTrkCol","Tracks"}
StringProperty m_inputUpCol {this,"InputUpTrkCol",""}
StringProperty m_inputLowCol {this,"InputLowTrkCol",""}
BooleanProperty m_doMatching {this,"doMatching",true}
 switch on/off the matching information
FloatProperty m_matchedRcut {this,"dRCut",100.}
FloatProperty m_mindR {this,"minimumdR",10000.}
StringProperty m_ntupleName {this,"NtupleName","/NTUPLES/GLOBFILE"}
int m_totaltrks {0}
int m_totalhits {0}
int m_totalPixhits {0}
int m_totalSCThits {0}
int m_totalTRThits {0}
int m_totalUptrks {0}
int m_totalUphits {0}
int m_totalUpPixhits {0}
int m_totalUpSCThits {0}
int m_totalUpTRThits {0}
int m_totalLowtrks {0}
int m_totalLowhits {0}
int m_totalLowPixhits {0}
int m_totalLowSCThits {0}
int m_totalLowTRThits {0}
int m_events {0}
ToolHandle< Trk::ITruthToTrackm_truthToTrack
ToolHandle< Trk::IExtrapolatorm_extrapolator
ToolHandle< Trk::ITrackParticleCreatorToolm_particleCreator
NTuple::Item< long > m_nt_ntracks
 number of tracks
NTuple::Item< long > m_nt_nUptracks
 number of Up tracks
NTuple::Item< long > m_nt_nLowtracks
 number of Low tracks
NTuple::Item< long > m_nt_nmctracks
 number of mc tracks
NTuple::Item< long > m_nt_matchingTrk
 matching tracks
NTuple::Array< float > m_nt_Trk_d0
 d0 parameter
NTuple::Array< float > m_nt_Trk_z0
 z0 parameter
NTuple::Array< float > m_nt_Trk_phi0
 phi0 parameter
NTuple::Array< float > m_nt_Trk_theta0
 theta0 parameter
NTuple::Array< float > m_nt_Trk_qoverp
 q/p parameter
NTuple::Array< float > m_nt_Trk_pt
 pt parameter
NTuple::Array< long > m_nt_Trk_nHits
 number of hits
NTuple::Array< long > m_nt_Trk_nhitspix
 number of Pixel hits
NTuple::Array< long > m_nt_Trk_nhitssct
 number of SCT hits
NTuple::Array< long > m_nt_Trk_nhitstrt
 number of TRT hits
NTuple::Array< long > m_nt_Trk_nsharedPixels
 number of Pixel shared hits
NTuple::Array< long > m_nt_Trk_nsharedSCT
 number of SCT shared hits
NTuple::Array< long > m_nt_Trk_nshared
 number of shared hits
NTuple::Array< long > m_nt_Trk_nholesPixels
 number of Pixel holes
NTuple::Array< long > m_nt_Trk_nholesSCT
 number of SCT holes
NTuple::Array< long > m_nt_Trk_nholes
 number of holes
NTuple::Array< float > m_nt_Trk_chi2
 number of chi2
NTuple::Array< long > m_nt_Trk_ndof
 number of ndof
NTuple::Array< float > m_nt_Trk_chi2Prob
 number of chi2 probability
NTuple::Array< float > m_nt_Trk_d0_Up
 d0 parameter (Up track)
NTuple::Array< float > m_nt_Trk_z0_Up
 z0 parameter (Up track)
NTuple::Array< float > m_nt_Trk_phi0_Up
 phi0 parameter (Up track)
NTuple::Array< float > m_nt_Trk_theta0_Up
 theta0 parameter (Up track)
NTuple::Array< float > m_nt_Trk_qoverp_Up
 q/p parameter (Up track)
NTuple::Array< float > m_nt_Trk_pt_Up
 pt parameter (Up track)
NTuple::Array< long > m_nt_Trk_nHits_Up
 number of hits (Up track)
NTuple::Array< long > m_nt_Trk_nhitspix_Up
 number of Pixel hits (Up track)
NTuple::Array< long > m_nt_Trk_nhitssct_Up
 number of SCT hits (Up track)
NTuple::Array< long > m_nt_Trk_nhitstrt_Up
 number of TRT hits (Up track)
NTuple::Array< long > m_nt_Trk_nsharedPixels_Up
 number of Pixel shared hits (Up track)
NTuple::Array< long > m_nt_Trk_nsharedSCT_Up
 number of SCT shared hits (Up track)
NTuple::Array< long > m_nt_Trk_nshared_Up
 number of shared hits (Up track)
NTuple::Array< long > m_nt_Trk_nholesPixels_Up
 number of Pixel holes (Up track)
NTuple::Array< long > m_nt_Trk_nholesSCT_Up
 number of SCT holes (Up track)
NTuple::Array< long > m_nt_Trk_nholes_Up
 number of holes (Up track)
NTuple::Array< float > m_nt_Trk_chi2_Up
 number of chi2 (Up track)
NTuple::Array< long > m_nt_Trk_ndof_Up
 number of ndof (Up track)
NTuple::Array< float > m_nt_Trk_chi2Prob_Up
 number of chi2 probability (Up track)
NTuple::Array< float > m_nt_Trk_d0_Low
 d0 parameter (Low track)
NTuple::Array< float > m_nt_Trk_z0_Low
 z0 parameter (Low track)
NTuple::Array< float > m_nt_Trk_phi0_Low
 phi0 parameter (Low track)
NTuple::Array< float > m_nt_Trk_theta0_Low
 theta0 parameter (Low track)
NTuple::Array< float > m_nt_Trk_qoverp_Low
 q/p parameter (Low track)
NTuple::Array< float > m_nt_Trk_pt_Low
 pt parameter (Low track)
NTuple::Array< long > m_nt_Trk_nHits_Low
 number of hits (Low track)
NTuple::Array< long > m_nt_Trk_nhitspix_Low
 number of Pixel hits (Low track)
NTuple::Array< long > m_nt_Trk_nhitssct_Low
 number of SCT hits (Low track)
NTuple::Array< long > m_nt_Trk_nhitstrt_Low
 number of TRT hits (Low track)
NTuple::Array< long > m_nt_Trk_nsharedPixels_Low
 number of Pixel shared hits (Low track)
NTuple::Array< long > m_nt_Trk_nsharedSCT_Low
 number of SCT shared hits (Low track)
NTuple::Array< long > m_nt_Trk_nshared_Low
 number of shared hits (Low track)
NTuple::Array< long > m_nt_Trk_nholesPixels_Low
 number of Pixel holes (Low track)
NTuple::Array< long > m_nt_Trk_nholesSCT_Low
 number of SCT holes (Low track)
NTuple::Array< long > m_nt_Trk_nholes_Low
 number of holes (Low track)
NTuple::Array< float > m_nt_Trk_chi2_Low
 number of chi2 (Low track)
NTuple::Array< long > m_nt_Trk_ndof_Low
 number of ndof (Low track)
NTuple::Array< float > m_nt_Trk_chi2Prob_Low
 number of chi2 probability (Low track)
NTuple::Array< float > m_nt_mc_trkistruth
 Has the Track an associated truth track?
NTuple::Array< float > m_nt_mc_Trk_genParticlePt
 generated pt
NTuple::Array< float > m_nt_mc_Trk_genParticleEta
 generated eta
NTuple::Array< float > m_nt_mc_Trk_genParticlePhi
 generated phi
NTuple::Array< float > m_nt_mc_Trk_d0
 MonteCarlo d0 parameter.
NTuple::Array< float > m_nt_mc_Trk_z0
 MonteCarlo z0 parameter.
NTuple::Array< float > m_nt_mc_Trk_phi0
 MonteCarlo phi0 parameter.
NTuple::Array< float > m_nt_mc_Trk_theta0
 MonteCarlo theta0 parameter.
NTuple::Array< float > m_nt_mc_Trk_eta
 MonteCarlo eta parameter.
NTuple::Array< float > m_nt_mc_Trk_qoverp
 MonteCarlo q/p parameter.
NTuple::Array< float > m_nt_mc_Trk_qoverpt
 MonteCarlo q/pt parameter.
NTuple::Array< float > m_nt_mc_Trk_pt
 MonteCarlo pt parameter.
NTuple::Array< float > m_nt_mc_Trk_charge
 MonteCarlo charge parameter.
NTuple::Array< float > m_nt_mc_Trk_prob
 MonteCarlo prob parameter.
NTuple::Array< float > m_nt_mc_Trk_pdg
 MonteCarlo pdg parameter.
NTuple::Array< float > m_nt_mc_Trk_vtxX
 MonteCarlo Vertex.X parameter.
NTuple::Array< float > m_nt_mc_Trk_vtxY
 MonteCarlo Vertex.Y parameter.
NTuple::Array< float > m_nt_mc_Trk_vtxZ
 MonteCarlo Vertex.Z parameter.
NTuple::Array< float > m_nt_Trk_delta_d0
 d0 parameter
NTuple::Array< float > m_nt_Trk_delta_z0
 z0 parameter
NTuple::Array< float > m_nt_Trk_delta_phi0
 phi0 parameter
NTuple::Array< float > m_nt_Trk_delta_theta0
 theta parameter
NTuple::Array< float > m_nt_Trk_delta_eta
 eta parameter
NTuple::Array< float > m_nt_Trk_delta_qoverpt
 q/pt parameter
NTuple::Array< float > m_nt_Trk_delta_pt
 pt parameter
NTuple::Array< float > m_nt_Trk_delta_charge
 charge parameter

Detailed Description

Definition at line 38 of file InDetAlignFillTrack.h.

Constructor & Destructor Documentation

◆ InDetAlignFillTrack()

InDetAlignFillTrack::InDetAlignFillTrack ( const std::string & type,
const std::string & name,
const IInterface * parent )

Definition at line 52 of file InDetAlignFillTrack.cxx.

55 : base_class(type, name, parent)
56{
57}

Member Function Documentation

◆ bookLowNtuple()

void InDetAlignFillTrack::bookLowNtuple ( )
private

Definition at line 638 of file InDetAlignFillTrack.cxx.

638 {
639 ATH_MSG_DEBUG("Booking Low Trk::Track Info...");
640
641 std::string nt2id = m_ntupleName + "/TrkTrack_Low";
642 std::string comments = "Trk::LowTrack Information";
643
644 NTuplePtr nt2(m_ntupleSvc.get(), nt2id);
645 if (nt2) {
646 ATH_MSG_DEBUG("Ntuple is already booked");
647 } else {
648 ATH_MSG_DEBUG("Attempting to book general ntuple");
649 nt2 = m_ntupleSvc->book(nt2id, CLID_ColumnWiseTuple, comments);
650
651 if (nt2) {
653 // sc = nt2->addItem("event", m_nt_event); // event number
654 sc = nt2->addItem("nTracks_Low", m_nt_nLowtracks, 0, maxTracks); // number of tracks
655
656 // ----------------------------------------------------------------------
657 // Trk::Track parameters
658 sc = nt2->addItem("Trk_d0_Low", m_nt_nLowtracks, m_nt_Trk_d0_Low);
659 sc = nt2->addItem("Trk_z0_Low", m_nt_nLowtracks, m_nt_Trk_z0_Low);
660 sc = nt2->addItem("Trk_phi0_Low", m_nt_nLowtracks, m_nt_Trk_phi0_Low);
661 sc = nt2->addItem("Trk_theta0_Low", m_nt_nLowtracks, m_nt_Trk_theta0_Low);
662 sc = nt2->addItem("Trk_qoverp_Low", m_nt_nLowtracks, m_nt_Trk_qoverp_Low);
663 sc = nt2->addItem("Trk_pt_Low", m_nt_nLowtracks, m_nt_Trk_pt_Low);
664 // ----------------------------------------------------------------------
665
666 // ----------------------------------------------------------------------
667 // Trk::Track hits...
668 sc = nt2->addItem("Trk_nHits_Low", m_nt_nLowtracks, m_nt_Trk_nHits_Low);
669 sc = nt2->addItem("Trk_nhitsPixels_Low", m_nt_nLowtracks, m_nt_Trk_nhitspix_Low);
670 sc = nt2->addItem("Trk_nhitsSCT_Low", m_nt_nLowtracks, m_nt_Trk_nhitssct_Low);
671 sc = nt2->addItem("Trk_nhitsTRT_Low", m_nt_nLowtracks, m_nt_Trk_nhitstrt_Low);
672
673 sc = nt2->addItem("Trk_nsharedPixels_Low", m_nt_nLowtracks, m_nt_Trk_nsharedPixels_Low);
674 sc = nt2->addItem("Trk_nsharedSCT_Low", m_nt_nLowtracks, m_nt_Trk_nsharedSCT_Low);
675 sc = nt2->addItem("Trk_nshared_Low", m_nt_nLowtracks, m_nt_Trk_nshared_Low);
676
677 sc = nt2->addItem("Trk_nholesPixels_Low", m_nt_nLowtracks, m_nt_Trk_nholesPixels_Low);
678 sc = nt2->addItem("Trk_nholesSCT_Low", m_nt_nLowtracks, m_nt_Trk_nholesSCT_Low);
679 sc = nt2->addItem("Trk_nholes_Low", m_nt_nLowtracks, m_nt_Trk_nholes_Low);
680
681 sc = nt2->addItem("Trk_chi2_Low", m_nt_nLowtracks, m_nt_Trk_chi2_Low);
682 sc = nt2->addItem("Trk_ndof_Low", m_nt_nLowtracks, m_nt_Trk_ndof_Low);
683 sc = nt2->addItem("Trk_chi2Prob_Low", m_nt_nLowtracks, m_nt_Trk_chi2Prob_Low);
684 // ----------------------------------------------------------------------
685 if (sc.isFailure()) msg(MSG::FATAL) << "Failed ntupleSvc()" << endmsg;
686 else msg(MSG::DEBUG) << "Ntuple " << nt2id << " has been booked successfully! " << endmsg;
687 } else {
688 ATH_MSG_ERROR("Error booking ntuple");
689 }
690 }
691}
#define endmsg
#define ATH_MSG_ERROR(x)
#define ATH_MSG_DEBUG(x)
static const int maxTracks
static Double_t sc
NTuple::Array< long > m_nt_Trk_nhitssct_Low
number of SCT hits (Low track)
ServiceHandle< INTupleSvc > m_ntupleSvc
NTuple::Array< long > m_nt_Trk_nsharedSCT_Low
number of SCT shared hits (Low track)
StringProperty m_ntupleName
NTuple::Array< float > m_nt_Trk_qoverp_Low
q/p parameter (Low track)
NTuple::Array< float > m_nt_Trk_chi2_Low
number of chi2 (Low track)
NTuple::Array< long > m_nt_Trk_nshared_Low
number of shared hits (Low track)
NTuple::Array< long > m_nt_Trk_nholesPixels_Low
number of Pixel holes (Low track)
NTuple::Array< float > m_nt_Trk_pt_Low
pt parameter (Low track)
NTuple::Array< long > m_nt_Trk_nhitstrt_Low
number of TRT hits (Low track)
NTuple::Array< float > m_nt_Trk_z0_Low
z0 parameter (Low track)
NTuple::Array< long > m_nt_Trk_nhitspix_Low
number of Pixel hits (Low track)
NTuple::Array< float > m_nt_Trk_d0_Low
d0 parameter (Low track)
NTuple::Item< long > m_nt_nLowtracks
number of Low tracks
NTuple::Array< long > m_nt_Trk_nholes_Low
number of holes (Low track)
NTuple::Array< long > m_nt_Trk_nsharedPixels_Low
number of Pixel shared hits (Low track)
NTuple::Array< float > m_nt_Trk_chi2Prob_Low
number of chi2 probability (Low track)
NTuple::Array< float > m_nt_Trk_phi0_Low
phi0 parameter (Low track)
NTuple::Array< long > m_nt_Trk_nHits_Low
number of hits (Low track)
NTuple::Array< long > m_nt_Trk_nholesSCT_Low
number of SCT holes (Low track)
NTuple::Array< float > m_nt_Trk_theta0_Low
theta0 parameter (Low track)
NTuple::Array< long > m_nt_Trk_ndof_Low
number of ndof (Low track)
::StatusCode StatusCode
StatusCode definition for legacy code.
MsgStream & msg
Definition testRead.cxx:32

◆ bookMatchingNtuple()

void InDetAlignFillTrack::bookMatchingNtuple ( )
private

Definition at line 696 of file InDetAlignFillTrack.cxx.

696 {
697 ATH_MSG_DEBUG("Booking Matching between Up and Low Trk::Track Collections...");
698
699 std::string nt3id = m_ntupleName + "/TrkTrack_Matching";
700 std::string comments = "Matching between Up and Low Trk::Track Collections";
701
702 NTuplePtr nt3(m_ntupleSvc.get(), nt3id);
703 if (nt3) {
704 ATH_MSG_DEBUG("Ntuple is already booked");
705 } else {
706 ATH_MSG_DEBUG("Attempting to book general ntuple");
707 m_ntupleSvc->book(nt3id, CLID_ColumnWiseTuple, comments);
708
709 if (nt3) {
711 // sc = nt3->addItem("event", m_nt_event); // event number
712
713 sc = nt3->addItem("nTracks_Match", m_nt_matchingTrk, 0, maxTracks); // number of tracks
714
715 // ----------------------------------------------------------------------
716 // Matching for the usual Trk::Track parameters
717 sc = nt3->addItem("Trk_delta_d0", m_nt_matchingTrk, m_nt_Trk_delta_d0);
718 sc = nt3->addItem("Trk_delta_phi0", m_nt_matchingTrk, m_nt_Trk_delta_phi0);
719 sc = nt3->addItem("Trk_delta_theta0", m_nt_matchingTrk, m_nt_Trk_delta_theta0);
720 sc = nt3->addItem("Trk_delta_eta", m_nt_matchingTrk, m_nt_Trk_delta_eta);
721 sc = nt3->addItem("Trk_delta_z0", m_nt_matchingTrk, m_nt_Trk_delta_z0);
722 sc = nt3->addItem("Trk_delta_qoverpt", m_nt_matchingTrk, m_nt_Trk_delta_qoverpt);
723 sc = nt3->addItem("Trk_delta_pt", m_nt_matchingTrk, m_nt_Trk_delta_pt);
724 sc = nt3->addItem("Trk_delta_charge", m_nt_matchingTrk, m_nt_Trk_delta_charge);
725 // ----------------------------------------------------------------------
726
727 if (sc.isFailure()) msg(MSG::FATAL) << "Failed ntupleSvc()" << endmsg;
728 else msg(MSG::DEBUG) << "Ntuple " << nt3id << " has been booked successfully! " << endmsg;
729 } else {
730 if (msgLvl(MSG::ERROR)) msg(MSG::DEBUG) << "Error booking ntuple" << endmsg;
731 }
732 }
733
734 return;
735}
NTuple::Array< float > m_nt_Trk_delta_charge
charge parameter
NTuple::Item< long > m_nt_matchingTrk
matching tracks
NTuple::Array< float > m_nt_Trk_delta_qoverpt
q/pt parameter
NTuple::Array< float > m_nt_Trk_delta_pt
pt parameter
NTuple::Array< float > m_nt_Trk_delta_z0
z0 parameter
NTuple::Array< float > m_nt_Trk_delta_phi0
phi0 parameter
NTuple::Array< float > m_nt_Trk_delta_theta0
theta parameter
NTuple::Array< float > m_nt_Trk_delta_eta
eta parameter
NTuple::Array< float > m_nt_Trk_delta_d0
d0 parameter

◆ bookNtuple()

void InDetAlignFillTrack::bookNtuple ( )
private

Definition at line 488 of file InDetAlignFillTrack.cxx.

488 {
489 ATH_MSG_DEBUG("Booking Trk::Track Info...");
490
491 NTupleFilePtr file1(m_ntupleSvc.get(), m_ntupleName);
492 std::string nt0id = m_ntupleName + "/TrkTrack";
493 std::string comments = "Trk::Track Information";
494
495 NTuplePtr nt0(m_ntupleSvc.get(), nt0id);
496 if (nt0) {
497 ATH_MSG_DEBUG("Ntuple is already booked");
498 } else {
499 ATH_MSG_DEBUG("Attempting to book general ntuple");
500 nt0 = m_ntupleSvc->book(nt0id, CLID_ColumnWiseTuple, comments);
501
502 if (nt0) {
504 // nt0->addItem("event", m_nt_event); // event number
505 sc = nt0->addItem("nTracks", m_nt_ntracks, 0, maxTracks); // number of tracks
506 if (m_doTruth) sc = nt0->addItem("mc_nTracks", m_nt_nmctracks, 0, maxTracks); // number of mc tracks
507
508 // ----------------------------------------------------------------------
509 // Trk::Track parameters
510 sc = nt0->addItem("Trk_d0", m_nt_ntracks, m_nt_Trk_d0);
511 sc = nt0->addItem("Trk_z0", m_nt_ntracks, m_nt_Trk_z0);
512 sc = nt0->addItem("Trk_phi0", m_nt_ntracks, m_nt_Trk_phi0);
513 sc = nt0->addItem("Trk_theta0", m_nt_ntracks, m_nt_Trk_theta0);
514 sc = nt0->addItem("Trk_qoverp", m_nt_ntracks, m_nt_Trk_qoverp);
515 sc = nt0->addItem("Trk_pt", m_nt_ntracks, m_nt_Trk_pt);
516 // ----------------------------------------------------------------------
517
518 // ----------------------------------------------------------------------
519 // Trk::Track hits...
520 sc = nt0->addItem("Trk_nHits", m_nt_ntracks, m_nt_Trk_nHits);
521 sc = nt0->addItem("Trk_nhitsPixels", m_nt_ntracks, m_nt_Trk_nhitspix);
522 sc = nt0->addItem("Trk_nhitsSCT", m_nt_ntracks, m_nt_Trk_nhitssct);
523 sc = nt0->addItem("Trk_nhitsTRT", m_nt_ntracks, m_nt_Trk_nhitstrt);
524
525 sc = nt0->addItem("Trk_nsharedPixels", m_nt_ntracks, m_nt_Trk_nsharedPixels);
526 sc = nt0->addItem("Trk_nsharedSCT", m_nt_ntracks, m_nt_Trk_nsharedSCT);
527 sc = nt0->addItem("Trk_nshared", m_nt_ntracks, m_nt_Trk_nshared);
528
529 sc = nt0->addItem("Trk_nholesPixels", m_nt_ntracks, m_nt_Trk_nholesPixels);
530 sc = nt0->addItem("Trk_nholesSCT", m_nt_ntracks, m_nt_Trk_nholesSCT);
531 sc = nt0->addItem("Trk_nholes", m_nt_ntracks, m_nt_Trk_nholes);
532
533 sc = nt0->addItem("Trk_chi2", m_nt_ntracks, m_nt_Trk_chi2);
534 sc = nt0->addItem("Trk_ndof", m_nt_ntracks, m_nt_Trk_ndof);
535 sc = nt0->addItem("Trk_chi2Prob", m_nt_ntracks, m_nt_Trk_chi2Prob);
536 // ----------------------------------------------------------------------
537
538 if (m_doTruth) {
539 // ----------------------------------------------------------------------
540 sc = nt0->addItem("mc_TrkIsTruth", m_nt_ntracks, m_nt_mc_trkistruth);
541
542 // generated particle parameters
543 sc = nt0->addItem("mc_Trk_genParticlePt", m_nt_ntracks, m_nt_mc_Trk_genParticlePt);
544 sc = nt0->addItem("mc_Trk_genParticleEta", m_nt_ntracks, m_nt_mc_Trk_genParticleEta);
545 sc = nt0->addItem("mc_Trk_genParticlePhi", m_nt_ntracks, m_nt_mc_Trk_genParticlePhi);
546
547 // MonteCarlo Track parameters
548 sc = nt0->addItem("mc_Trk_d0", m_nt_ntracks, m_nt_mc_Trk_d0);
549 sc = nt0->addItem("mc_Trk_z0", m_nt_ntracks, m_nt_mc_Trk_z0);
550 sc = nt0->addItem("mc_Trk_phi0", m_nt_ntracks, m_nt_mc_Trk_phi0);
551 sc = nt0->addItem("mc_Trk_theta", m_nt_ntracks, m_nt_mc_Trk_theta0);
552 sc = nt0->addItem("mc_Trk_eta", m_nt_ntracks, m_nt_mc_Trk_eta);
553 sc = nt0->addItem("mc_Trk_qoverp", m_nt_ntracks, m_nt_mc_Trk_qoverp);
554 sc = nt0->addItem("mc_Trk_qoverpt", m_nt_ntracks, m_nt_mc_Trk_qoverpt);
555 sc = nt0->addItem("mc_Trk_pt", m_nt_ntracks, m_nt_mc_Trk_pt);
556 sc = nt0->addItem("mc_Trk_charge", m_nt_ntracks, m_nt_mc_Trk_charge);
557 sc = nt0->addItem("mc_Trk_prob", m_nt_ntracks, m_nt_mc_Trk_prob);
558 sc = nt0->addItem("mc_Trk_pdg", m_nt_ntracks, m_nt_mc_Trk_pdg);
559
560 sc = nt0->addItem("mc_Trk_vtxX", m_nt_ntracks, m_nt_mc_Trk_vtxX);
561 sc = nt0->addItem("mc_Trk_vtxY", m_nt_ntracks, m_nt_mc_Trk_vtxY);
562 sc = nt0->addItem("mc_Trk_vtxZ", m_nt_ntracks, m_nt_mc_Trk_vtxZ);
563 // ----------------------------------------------------------------------
564 }
565
566 if (sc.isFailure()) ATH_MSG_FATAL("Failed ntupleSvc()");
567 else ATH_MSG_DEBUG("Ntuple " << nt0id << " has been booked successfully! ");
568 } else {
569 ATH_MSG_ERROR("Error booking ntuple");
570 }
571 }
572
573 // return;
574}
#define ATH_MSG_FATAL(x)
NTuple::Array< long > m_nt_Trk_nholesSCT
number of SCT holes
BooleanProperty m_doTruth
switch on/off the truth information
NTuple::Item< long > m_nt_nmctracks
number of mc tracks
NTuple::Array< float > m_nt_Trk_d0
d0 parameter
NTuple::Array< long > m_nt_Trk_nholes
number of holes
NTuple::Array< float > m_nt_mc_Trk_vtxY
MonteCarlo Vertex.Y parameter.
NTuple::Array< long > m_nt_Trk_ndof
number of ndof
NTuple::Array< float > m_nt_mc_Trk_genParticlePt
generated pt
NTuple::Array< float > m_nt_mc_trkistruth
Has the Track an associated truth track?
NTuple::Array< long > m_nt_Trk_nshared
number of shared hits
NTuple::Array< float > m_nt_mc_Trk_qoverpt
MonteCarlo q/pt parameter.
NTuple::Array< long > m_nt_Trk_nhitstrt
number of TRT hits
NTuple::Array< float > m_nt_mc_Trk_genParticleEta
generated eta
NTuple::Array< long > m_nt_Trk_nsharedPixels
number of Pixel shared hits
NTuple::Array< float > m_nt_mc_Trk_z0
MonteCarlo z0 parameter.
NTuple::Array< float > m_nt_mc_Trk_qoverp
MonteCarlo q/p parameter.
NTuple::Array< float > m_nt_mc_Trk_pdg
MonteCarlo pdg parameter.
NTuple::Array< float > m_nt_mc_Trk_eta
MonteCarlo eta parameter.
NTuple::Array< float > m_nt_Trk_chi2
number of chi2
NTuple::Array< float > m_nt_mc_Trk_prob
MonteCarlo prob parameter.
NTuple::Array< long > m_nt_Trk_nhitssct
number of SCT hits
NTuple::Array< float > m_nt_mc_Trk_vtxZ
MonteCarlo Vertex.Z parameter.
NTuple::Array< float > m_nt_Trk_phi0
phi0 parameter
NTuple::Array< float > m_nt_Trk_theta0
theta0 parameter
NTuple::Array< float > m_nt_Trk_qoverp
q/p parameter
NTuple::Array< float > m_nt_mc_Trk_d0
MonteCarlo d0 parameter.
NTuple::Item< long > m_nt_ntracks
number of tracks
NTuple::Array< long > m_nt_Trk_nhitspix
number of Pixel hits
NTuple::Array< float > m_nt_mc_Trk_genParticlePhi
generated phi
NTuple::Array< float > m_nt_Trk_z0
z0 parameter
NTuple::Array< float > m_nt_mc_Trk_phi0
MonteCarlo phi0 parameter.
NTuple::Array< long > m_nt_Trk_nsharedSCT
number of SCT shared hits
NTuple::Array< long > m_nt_Trk_nHits
number of hits
NTuple::Array< float > m_nt_mc_Trk_charge
MonteCarlo charge parameter.
NTuple::Array< float > m_nt_mc_Trk_pt
MonteCarlo pt parameter.
NTuple::Array< float > m_nt_Trk_chi2Prob
number of chi2 probability
NTuple::Array< float > m_nt_Trk_pt
pt parameter
NTuple::Array< float > m_nt_mc_Trk_vtxX
MonteCarlo Vertex.X parameter.
NTuple::Array< long > m_nt_Trk_nholesPixels
number of Pixel holes
NTuple::Array< float > m_nt_mc_Trk_theta0
MonteCarlo theta0 parameter.

◆ bookUpNtuple()

void InDetAlignFillTrack::bookUpNtuple ( )
private

Definition at line 579 of file InDetAlignFillTrack.cxx.

579 {
580 ATH_MSG_DEBUG("Booking Up Trk::Track Info...");
581
582 std::string nt1id = m_ntupleName + "/TrkTrack_Up";
583 std::string comments = "Trk::UpTrack Information";
584
585 NTuplePtr nt1(m_ntupleSvc.get(), nt1id);
586 if (nt1) {
587 ATH_MSG_DEBUG("Ntuple is already booked");
588 } else {
589 ATH_MSG_DEBUG("Attempting to book general ntuple");
590 nt1 = m_ntupleSvc->book(nt1id, CLID_ColumnWiseTuple, comments);
591
592 if (nt1) {
594 // nt1->addItem("event", m_nt_event); // event number
595 sc = nt1->addItem("nTracks_Up", m_nt_nUptracks, 0, maxTracks); // number of tracks
596
597 // ----------------------------------------------------------------------
598 // Trk::Track parameters
599 sc = nt1->addItem("Trk_d0_Up", m_nt_nUptracks, m_nt_Trk_d0_Up);
600 sc = nt1->addItem("Trk_z0_Up", m_nt_nUptracks, m_nt_Trk_z0_Up);
601 sc = nt1->addItem("Trk_phi0_Up", m_nt_nUptracks, m_nt_Trk_phi0_Up);
602 sc = nt1->addItem("Trk_theta0_Up", m_nt_nUptracks, m_nt_Trk_theta0_Up);
603 sc = nt1->addItem("Trk_qoverp_Up", m_nt_nUptracks, m_nt_Trk_qoverp_Up);
604 sc = nt1->addItem("Trk_pt_Up", m_nt_nUptracks, m_nt_Trk_pt_Up);
605 // ----------------------------------------------------------------------
606
607 // ----------------------------------------------------------------------
608 // Trk::Track hits...
609 sc = nt1->addItem("Trk_nHits_Up", m_nt_nUptracks, m_nt_Trk_nHits_Up);
610 sc = nt1->addItem("Trk_nhitsPixels_Up", m_nt_nUptracks, m_nt_Trk_nhitspix_Up);
611 sc = nt1->addItem("Trk_nhitsSCT_Up", m_nt_nUptracks, m_nt_Trk_nhitssct_Up);
612 sc = nt1->addItem("Trk_nhitsTRT_Up", m_nt_nUptracks, m_nt_Trk_nhitstrt_Up);
613
614 sc = nt1->addItem("Trk_nsharedPixels_Up", m_nt_nUptracks, m_nt_Trk_nsharedPixels_Up);
615 sc = nt1->addItem("Trk_nsharedSCT_Up", m_nt_nUptracks, m_nt_Trk_nsharedSCT_Up);
616 sc = nt1->addItem("Trk_nshared_Up", m_nt_nUptracks, m_nt_Trk_nshared_Up);
617
618 sc = nt1->addItem("Trk_nholesPixels_Up", m_nt_nUptracks, m_nt_Trk_nholesPixels_Up);
619 sc = nt1->addItem("Trk_nholesSCT_Up", m_nt_nUptracks, m_nt_Trk_nholesSCT_Up);
620 sc = nt1->addItem("Trk_nholes_Up", m_nt_nUptracks, m_nt_Trk_nholes_Up);
621
622 sc = nt1->addItem("Trk_chi2_Up", m_nt_nUptracks, m_nt_Trk_chi2_Up);
623 sc = nt1->addItem("Trk_ndof_Up", m_nt_nUptracks, m_nt_Trk_ndof_Up);
624 sc = nt1->addItem("Trk_chi2Prob_Up", m_nt_nUptracks, m_nt_Trk_chi2Prob_Up);
625 // ----------------------------------------------------------------------
626
627 if (sc.isFailure()) ATH_MSG_FATAL("Failed ntupleSvc()");
628 else ATH_MSG_DEBUG("Ntuple " << nt1id << " has been booked successfully! ");
629 } else {
630 ATH_MSG_ERROR("Error booking ntuple");
631 }
632 }
633}
NTuple::Array< long > m_nt_Trk_nsharedPixels_Up
number of Pixel shared hits (Up track)
NTuple::Array< float > m_nt_Trk_chi2Prob_Up
number of chi2 probability (Up track)
NTuple::Array< long > m_nt_Trk_nholesSCT_Up
number of SCT holes (Up track)
NTuple::Array< long > m_nt_Trk_nholes_Up
number of holes (Up track)
NTuple::Array< float > m_nt_Trk_theta0_Up
theta0 parameter (Up track)
NTuple::Array< float > m_nt_Trk_qoverp_Up
q/p parameter (Up track)
NTuple::Array< long > m_nt_Trk_nholesPixels_Up
number of Pixel holes (Up track)
NTuple::Array< float > m_nt_Trk_d0_Up
d0 parameter (Up track)
NTuple::Array< long > m_nt_Trk_nHits_Up
number of hits (Up track)
NTuple::Array< float > m_nt_Trk_pt_Up
pt parameter (Up track)
NTuple::Array< long > m_nt_Trk_nshared_Up
number of shared hits (Up track)
NTuple::Array< long > m_nt_Trk_nhitspix_Up
number of Pixel hits (Up track)
NTuple::Array< long > m_nt_Trk_ndof_Up
number of ndof (Up track)
NTuple::Array< float > m_nt_Trk_z0_Up
z0 parameter (Up track)
NTuple::Array< long > m_nt_Trk_nsharedSCT_Up
number of SCT shared hits (Up track)
NTuple::Array< long > m_nt_Trk_nhitstrt_Up
number of TRT hits (Up track)
NTuple::Array< long > m_nt_Trk_nhitssct_Up
number of SCT hits (Up track)
NTuple::Array< float > m_nt_Trk_phi0_Up
phi0 parameter (Up track)
NTuple::Array< float > m_nt_Trk_chi2_Up
number of chi2 (Up track)
NTuple::Item< long > m_nt_nUptracks
number of Up tracks

◆ dumpMatching()

StatusCode InDetAlignFillTrack::dumpMatching ( const TrackCollection * tracksUpper,
const TrackCollection * tracksLower )
private

Definition at line 1029 of file InDetAlignFillTrack.cxx.

1030 {
1031 ATH_MSG_DEBUG("In dumpMatching()");
1032
1033 int nTracksUpper = 0;
1034
1035 // looping over the upper barrel tracks
1036 TrackCollection::const_iterator trackItrUpper = tracksUpper->begin();
1037 TrackCollection::const_iterator trackItrUpperE = tracksUpper->end();
1038 for (; trackItrUpper != trackItrUpperE; ++trackItrUpper) {
1039 const Trk::Track* trackUpper = *trackItrUpper;
1040 if (trackUpper == nullptr) {
1041 ATH_MSG_DEBUG("No associated Trk::Track object found for track " << nTracksUpper);
1042 continue;
1043 }
1044
1045 const Trk::Perigee* measUpperPer = trackUpper->perigeeParameters();
1046
1047 // Get the track parameters from the Upper Track
1048 float d0Up = measUpperPer->parameters()[Trk::d0];
1049 float phi0Up = measUpperPer->parameters()[Trk::phi0];
1050 float eta0Up = measUpperPer->eta();
1051 float z0Up = measUpperPer->parameters()[Trk::z0];
1052 float thetaUp = measUpperPer->parameters()[Trk::theta];
1053 float qOverPtUp = measUpperPer->parameters()[Trk::qOverP] * 1000 / std::sin(thetaUp);
1054 float chargeUp = measUpperPer->charge();
1055 float ptUp = measUpperPer->pT() / 1000.;
1056
1057 if (msgLvl(MSG::DEBUG)) {
1058 msg(MSG::DEBUG) << nTracksUpper << ". UpTrack -> Track Parameters:" << endmsg;
1059 msg(MSG::DEBUG) << " d0, z0, phi0, theta, q/p" << d0Up << ", " << z0Up << ", "
1060 << phi0Up << ", " << thetaUp << ", " << qOverPtUp << endmsg;
1061 }
1062
1063 int nTracksLower = 0;
1064
1065 bool matchFound = false;
1066 float Matched_Low_d0 = -999;
1067 float Matched_Low_phi0 = -999;
1068 //**
1069 float Matched_Low_theta = -999;
1070 float Matched_Low_eta0 = -999;
1071 float Matched_Low_z0 = -999;
1072 float Matched_Low_qOverPt = -999;
1073 float Matched_Low_charge = -999;
1074 float Matched_Low_pt = -999;
1075
1076 // looping over the lower barrel tracks
1077 DataVector<Trk::Track>::const_iterator trackItrLower = tracksLower->begin();
1078 DataVector<Trk::Track>::const_iterator trackItrLowerE = tracksLower->end();
1079 for (; trackItrLower != trackItrLowerE; ++trackItrLower) { //looping over Lower tracks
1080 const Trk::Track* trackLower = *trackItrLower;
1081 if (trackLower == nullptr) {
1082 ATH_MSG_DEBUG("No associated Trk::Track object found for track " << nTracksLower);
1083 continue;
1084 }
1085
1086 const Trk::Perigee* measLowerPer = trackLower->perigeeParameters();
1087
1088 float d0Low = measLowerPer->parameters()[Trk::d0];
1089 float phi0Low = measLowerPer->parameters()[Trk::phi0];
1090 float eta0Low = measLowerPer->eta();
1091 float z0Low = measLowerPer->parameters()[Trk::z0];
1092 float thetaLow = measLowerPer->parameters()[Trk::theta];
1093 float qOverPtLow = measLowerPer->parameters()[Trk::qOverP] * 1000 / std::sin(thetaLow);
1094 float chargeLow = measLowerPer->charge();
1095 float ptLow = measLowerPer->pT() / 1000.;
1096
1097 //selecting Lower track that is closest to Upper in eta-phi
1098 float dphi2 = (phi0Up - phi0Low) * (phi0Up - phi0Low);
1099
1100 //For TRT only tracks we will ignore the delta eta
1101 // and just require a delta phi match
1102 float deta2 = (eta0Up - eta0Low) * (eta0Up - eta0Low);
1103
1104 // look for a matching track within a cone
1105 float dR = std::sqrt(dphi2 + deta2);
1106 ATH_MSG_DEBUG("dR (sqrt(dphi+deta2): " << dR);
1107 ATH_MSG_DEBUG("minmdR (sqrt(dphi+deta2): " << m_mindR);
1108 if (dR < m_mindR) {
1109 // m_mindR = dR;
1110 Matched_Low_d0 = d0Low;
1111 Matched_Low_phi0 = phi0Low;
1112 //**
1113 Matched_Low_theta = thetaLow;
1114 Matched_Low_eta0 = eta0Low;
1115 Matched_Low_z0 = z0Low;
1116 Matched_Low_qOverPt = qOverPtLow;
1117 Matched_Low_charge = chargeLow;
1118 Matched_Low_pt = ptLow;
1119
1120 if (dR < m_matchedRcut) {
1121 if (msgLvl(MSG::DEBUG)) {
1122 msg(MSG::DEBUG) << nTracksLower << ". LowTrack -> Track Parameters:" << endmsg;
1123 msg(MSG::DEBUG) << " d0, z0, phi0, theta, q/p: " << d0Low << ", " << z0Low << ", "
1124 << phi0Low << ", " << thetaLow << ", " << qOverPtLow << endmsg;
1125 }
1126
1127 matchFound = true;
1128 }
1129 } else {
1130 ATH_MSG_DEBUG("No matching low track found!!");
1131 }
1132 nTracksLower++;
1133 } //looping over lower tracks
1134
1135 if (matchFound) {
1136 ATH_MSG_DEBUG("Match found!");
1137 m_nt_matchingTrk = 1;
1138 m_nt_Trk_delta_d0[nTracksUpper] = d0Up - Matched_Low_d0;
1139 m_nt_Trk_delta_phi0[nTracksUpper] = phi0Up - Matched_Low_phi0;
1140 //**
1141 m_nt_Trk_delta_theta0[nTracksUpper] = thetaUp - Matched_Low_theta;
1142 m_nt_Trk_delta_eta[nTracksUpper] = eta0Up - Matched_Low_eta0;
1143 m_nt_Trk_delta_z0[nTracksUpper] = z0Up - Matched_Low_z0;
1144 m_nt_Trk_delta_qoverpt[nTracksUpper] = qOverPtUp - Matched_Low_qOverPt;
1145 m_nt_Trk_delta_pt[nTracksUpper] = ptUp - Matched_Low_pt;
1146 m_nt_Trk_delta_charge[nTracksUpper] = chargeUp - Matched_Low_charge;
1147 } // end match found
1148
1149
1150 nTracksUpper++;
1151 } //looping over upper tracks
1152
1153 return StatusCode::SUCCESS;
1154}
DataModel_detail::const_iterator< DataVector > const_iterator
Definition DataVector.h:838
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
double eta() const
Access method for pseudorapidity - from momentum.
double charge() const
Returns the charge.
double pT() const
Access method for transverse momentum.
const Perigee * perigeeParameters() const
return Perigee.
ParametersT< TrackParametersDim, Charged, PerigeeSurface > Perigee
@ phi0
Definition ParamDefs.h:65
@ theta
Definition ParamDefs.h:66
@ qOverP
perigee
Definition ParamDefs.h:67
@ d0
Definition ParamDefs.h:63
@ z0
Definition ParamDefs.h:64

◆ dumpPerigee()

void InDetAlignFillTrack::dumpPerigee ( const Trk::TrackParameters * generatedTrackPerigee,
int index )
private

Definition at line 988 of file InDetAlignFillTrack.cxx.

989 {
990 ATH_MSG_VERBOSE( "In dumpPerigee()" );
991
992 float d0 = generatedTrackPerigee->parameters()[Trk::d0];
993 float z0 = generatedTrackPerigee->parameters()[Trk::z0];
994 float phi0 = generatedTrackPerigee->parameters()[Trk::phi0];
995 float theta = generatedTrackPerigee->parameters()[Trk::theta];
996 float eta = generatedTrackPerigee->eta();
997 float charge = generatedTrackPerigee->charge();
998 float qoverp = generatedTrackPerigee->parameters()[Trk::qOverP];
999 float qoverpt = generatedTrackPerigee->parameters()[Trk::qOverP] / (std::sin(theta));
1000 float pt = (1 / qoverpt) * (charge);
1001 // int pdg = genParticle->pdg_id();
1002
1003 if (msgLvl(MSG::DEBUG)) {
1004 msg(MSG::DEBUG) << " - Extrapolated genParticle perigee parameters "
1005 << "(d0, z0, phi0, theta, q/p)" << endmsg;
1006 msg(MSG::DEBUG) << " " << d0 << ", " << z0 << ", "
1007 << phi0 << ", " << theta << ", " << qoverp << endmsg;
1008
1009 msg(MSG::DEBUG) << " p = " << std::abs(1.0 / qoverp) / CLHEP::GeV << " CLHEP::GeV/c, "
1010 << " pT = " << pt / CLHEP::GeV << " CLHEP::GeV/c" << endmsg;
1011 }
1012
1018 m_nt_mc_Trk_qoverp[index] = qoverp;
1019 m_nt_mc_Trk_qoverpt[index] = qoverpt;
1022
1023 return;
1024}
Scalar eta() const
pseudorapidity method
Scalar theta() const
theta method
#define ATH_MSG_VERBOSE(x)
double charge(const T &p)
Definition AtlasPID.h:997
str index
Definition DeMoScan.py:362

◆ dumpTrack()

void InDetAlignFillTrack::dumpTrack ( int itrk,
const Trk::Track * trk,
const std::string & TrkColName )
private

Definition at line 769 of file InDetAlignFillTrack.cxx.

770 {
771 ATH_MSG_VERBOSE("In dump" << TrkColName << "Track()");
772
773 const Trk::Perigee* aMeasPer = trk->perigeeParameters();
774
775 if (aMeasPer == nullptr) {
776 ATH_MSG_ERROR("Could not get Trk::MeasuredPerigee");
777 } else {
778 double d0 = aMeasPer->parameters()[Trk::d0];
779 double z0 = aMeasPer->parameters()[Trk::z0];
780 double phi0 = aMeasPer->parameters()[Trk::phi0];
781 double theta = aMeasPer->parameters()[Trk::theta];
782 double qOverP = aMeasPer->parameters()[Trk::qOverP];
783
784 if (msgLvl(MSG::DEBUG)) {
785 msg(MSG::DEBUG) << itrk << ". " << TrkColName
786 << " Track Parameters (d0, z0, phi0, theta, q/p)" << endmsg;
787 msg(MSG::DEBUG) << " " << d0 << ", " << z0 << ", "
788 << phi0 << ", " << theta << ", " << qOverP << endmsg;
789 }
790
791 float transverseMomentum = std::sqrt((aMeasPer->momentum().x()) * (aMeasPer->momentum().x())
792 + (aMeasPer->momentum().y()) * (aMeasPer->momentum().y()));
793
794 ATH_MSG_DEBUG(" p = " << aMeasPer->momentum().mag() / CLHEP::GeV << " CLHEP::GeV/c, "
795 << " pT = " << transverseMomentum / CLHEP::GeV << " CLHEP::GeV/c");
796
797 // number of hits
798 int nHits = (*trk).measurementsOnTrack()->size();
799 ATH_MSG_DEBUG(" - number of hits : " << nHits);
800 if (nHits != 0) {
801 if (TrkColName == "Up") m_totalUphits += nHits;
802 else if (TrkColName == "Low") m_totalLowhits += nHits;
803 else m_totalhits += nHits;
804 }
805
806 // number of hits, shared hits and holes
807 int nhitspix = 0, nhitssct = 0, nhitstrt = 0;
808 int nshared = 0, nshpix = 0, nshsct = 0;
809 int nholes = 0, nhpix = 0, nhsct = 0;
810
811 xAOD::TrackParticle* trackPart = m_particleCreator->createParticle(*trk);
812 uint8_t iSummaryValue(0); // Dummy counter to retrieve summary values
813
814 if (not trackPart) ATH_MSG_ERROR("Could not get xAOD::TrackParticle");
815
816 else {
817 // hits
818 nhitspix = trackPart->summaryValue(iSummaryValue, xAOD::numberOfPixelHits) ? iSummaryValue : 0;
819 nhitssct = trackPart->summaryValue(iSummaryValue, xAOD::numberOfSCTHits) ? iSummaryValue : 0;
820 nhitstrt = trackPart->summaryValue(iSummaryValue, xAOD::numberOfTRTHits) ? iSummaryValue : 0;
821
822 if (msgLvl(MSG::DEBUG)) {
823 msg(MSG::DEBUG) << " -- number of Pixel hits : " << nhitspix << endmsg;
824 msg(MSG::DEBUG) << " -- number of SCT hits : " << nhitssct << endmsg;
825 msg(MSG::DEBUG) << " -- number of TRT hits : " << nhitstrt << endmsg;
826 }
827
828 if (nhitspix != 0) {
829 if (TrkColName == "Up") m_totalUpPixhits += nhitspix;
830 else if (TrkColName == "Low") m_totalLowPixhits += nhitspix;
831 else m_totalPixhits += nhitspix;
832 }
833 if (nhitssct != 0) {
834 if (TrkColName == "Up") m_totalUpSCThits += nhitssct;
835 else if (TrkColName == "Low") m_totalLowSCThits += nhitssct;
836 else m_totalSCThits += nhitssct;
837 }
838 if (nhitstrt != 0) {
839 if (TrkColName == "Up") m_totalUpTRThits += nhitstrt;
840 else if (TrkColName == "Low") m_totalLowTRThits += nhitstrt;
841 else m_totalTRThits += nhitstrt;
842 }
843
844 // shared hits
845 nshpix = trackPart->summaryValue(iSummaryValue, xAOD::numberOfPixelSharedHits) ? iSummaryValue : 0;
846 nshsct = trackPart->summaryValue(iSummaryValue, xAOD::numberOfSCTSharedHits) ? iSummaryValue : 0;
847 nshared = nshpix + nshsct;
848
849 if (nshpix < 0) nshpix = 0;
850 if (nshsct < 0) nshsct = 0;
851 if (nshared < 0) nshared = 0;
852
853 if (msgLvl(MSG::DEBUG)) {
854 msg(MSG::DEBUG) << " - number of shared hits : " << nshared << endmsg;
855 msg(MSG::DEBUG) << " -- number of Pixel shared hits : " << nshpix << endmsg;
856 msg(MSG::DEBUG) << " -- number of SCT shared hits : " << nshsct << endmsg;
857 }
858
859 // holes
860 nhpix = trackPart->summaryValue(iSummaryValue, xAOD::numberOfPixelHoles) ? iSummaryValue : 0;
861 nhsct = trackPart->summaryValue(iSummaryValue, xAOD::numberOfSCTHoles) ? iSummaryValue : 0;
862 nholes = nhpix + nhsct;
863
864 if (nhpix < 0) nhpix = 0;
865 if (nhsct < 0) nhsct = 0;
866 if (nholes < 0) nholes = 0;
867
868 if (msgLvl(MSG::DEBUG)) {
869 msg(MSG::DEBUG) << " - number of Pixel holes : " << nhpix << endmsg;
870 msg(MSG::DEBUG) << " -- number of SCT holes : " << nhsct << endmsg;
871 msg(MSG::DEBUG) << " -- number of holes : " << nholes << endmsg;
872 }
873 }
874
875 // get fit quality and chi2 probability of track
876 // chi2Prob = TMath::Prob(chi2,DoF) ROOT function
877 double chi2Prob = 0.;
878 const Trk::FitQuality* fitQual = (*trk).fitQuality();
879 if (fitQual == nullptr) {
880 ATH_MSG_ERROR("No fit quality assigned to the track");
881 chi2Prob = -1e12; // return big value
882 } else {
883 if (fitQual->chiSquared() > 0. && fitQual->numberDoF() > 0) {
884 Genfun::CumulativeChiSquare probabilityFunction(fitQual->numberDoF());
885 chi2Prob = 1 - probabilityFunction(fitQual->chiSquared());
886
887 if (msgLvl(MSG::DEBUG)) {
888 msg(MSG::DEBUG) << " - chi2 : " << fitQual->chiSquared() << endmsg;
889 msg(MSG::DEBUG) << " - ndof : " << fitQual->numberDoF() << endmsg;
890 msg(MSG::DEBUG) << " - chi2 propability : " << chi2Prob << endmsg;
891 }
892 }
893 }
894 // Fill ntuple
895 if (TrkColName == "Up") {
896 m_nt_Trk_d0_Up[itrk] = d0;
897 m_nt_Trk_z0_Up[itrk] = z0;
898 m_nt_Trk_phi0_Up[itrk] = phi0;
901 m_nt_Trk_pt_Up[itrk] = transverseMomentum;
902
903 m_nt_Trk_nHits_Up[itrk] = nHits;
904 m_nt_Trk_nhitspix_Up[itrk] = nhitspix;
905 m_nt_Trk_nhitssct_Up[itrk] = nhitssct;
906 m_nt_Trk_nhitstrt_Up[itrk] = nhitstrt;
907
908 m_nt_Trk_nsharedPixels_Up[itrk] = nshpix;
909 m_nt_Trk_nsharedSCT_Up[itrk] = nshsct;
910 m_nt_Trk_nshared_Up[itrk] = nshared;
911
912 m_nt_Trk_nholesPixels_Up[itrk] = nhpix;
913 m_nt_Trk_nholesSCT_Up[itrk] = nhsct;
914 m_nt_Trk_nholes_Up[itrk] = nholes;
915 if (fitQual) {
916 m_nt_Trk_chi2_Up[itrk] = fitQual->chiSquared();
917 m_nt_Trk_ndof_Up[itrk] = fitQual->numberDoF();
918 } else {
919 m_nt_Trk_chi2_Up[itrk] = 0;
920 m_nt_Trk_ndof_Up[itrk] = 0;
921 }
922 m_nt_Trk_chi2Prob_Up[itrk] = chi2Prob;
923 } else if (TrkColName == "Low") {
924 m_nt_Trk_d0_Low[itrk] = d0;
925 m_nt_Trk_z0_Low[itrk] = z0;
926 m_nt_Trk_phi0_Low[itrk] = phi0;
929 m_nt_Trk_pt_Low[itrk] = transverseMomentum;
930
932 m_nt_Trk_nhitspix_Low[itrk] = nhitspix;
933 m_nt_Trk_nhitssct_Low[itrk] = nhitssct;
934 m_nt_Trk_nhitstrt_Low[itrk] = nhitstrt;
935
936 m_nt_Trk_nsharedPixels_Low[itrk] = nshpix;
937 m_nt_Trk_nsharedSCT_Low[itrk] = nshsct;
938 m_nt_Trk_nshared_Low[itrk] = nshared;
939
940 m_nt_Trk_nholesPixels_Low[itrk] = nhpix;
941 m_nt_Trk_nholesSCT_Low[itrk] = nhsct;
942 m_nt_Trk_nholes_Low[itrk] = nholes;
943 if (fitQual) {
944 m_nt_Trk_chi2_Low[itrk] = fitQual->chiSquared();
945 m_nt_Trk_ndof_Low[itrk] = fitQual->numberDoF();
946 } else {
947 m_nt_Trk_chi2_Low[itrk] = 0;
948 m_nt_Trk_ndof_Low[itrk] = 0;
949 }
950 m_nt_Trk_chi2Prob_Low[itrk] = chi2Prob;
951 } else {
952 m_nt_Trk_d0[itrk] = d0;
953 m_nt_Trk_z0[itrk] = z0;
954 m_nt_Trk_phi0[itrk] = phi0;
955 m_nt_Trk_theta0[itrk] = theta;
956 m_nt_Trk_qoverp[itrk] = qOverP;
957 m_nt_Trk_pt[itrk] = transverseMomentum;
958
959 m_nt_Trk_nHits[itrk] = nHits;
960 m_nt_Trk_nhitspix[itrk] = nhitspix;
961 m_nt_Trk_nhitssct[itrk] = nhitssct;
962 m_nt_Trk_nhitstrt[itrk] = nhitstrt;
963
964 m_nt_Trk_nsharedPixels[itrk] = nshpix;
965 m_nt_Trk_nsharedSCT[itrk] = nshsct;
966 m_nt_Trk_nshared[itrk] = nshared;
967
968 m_nt_Trk_nholesPixels[itrk] = nhpix;
969 m_nt_Trk_nholesSCT[itrk] = nhsct;
970 m_nt_Trk_nholes[itrk] = nholes;
971 if (fitQual) {
972 m_nt_Trk_chi2[itrk] = fitQual->chiSquared();
973 m_nt_Trk_ndof[itrk] = fitQual->numberDoF();
974 } else {
975 m_nt_Trk_chi2[itrk] = 0;
976 m_nt_Trk_ndof[itrk] = 0;
977 }
978 m_nt_Trk_chi2Prob[itrk] = chi2Prob;
979 }
980 }
981
982 return;
983}
static const uint32_t nHits
ToolHandle< Trk::ITrackParticleCreatorTool > m_particleCreator
int numberDoF() const
returns the number of degrees of freedom of the overall track or vertex fit as integer
Definition FitQuality.h:60
double chiSquared() const
returns the of the overall track fit
Definition FitQuality.h:56
const Amg::Vector3D & momentum() const
Access method for the momentum.
@ qOverP
perigee
TrackParticle_v1 TrackParticle
Reference the current persistent version:
@ numberOfPixelHoles
number of pixel layers on track with absence of hits [unit8_t].
@ numberOfTRTHits
number of TRT hits [unit8_t].
@ numberOfSCTHits
number of hits in SCT [unit8_t].
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
@ numberOfPixelSharedHits
number of Pixel all-layer hits shared by several tracks [unit8_t].
@ numberOfSCTSharedHits
number of SCT hits shared by several tracks [unit8_t].
@ numberOfSCTHoles
number of SCT holes [unit8_t].

◆ dumpTrackCol() [1/2]

int InDetAlignFillTrack::dumpTrackCol ( const TrackCollection * tracks)
private

Definition at line 740 of file InDetAlignFillTrack.cxx.

740 {
741 return dumpTrackCol(tracks, "");
742}
int dumpTrackCol(const TrackCollection *)

◆ dumpTrackCol() [2/2]

int InDetAlignFillTrack::dumpTrackCol ( const TrackCollection * tracks,
const std::string & TrkColName )
private

Definition at line 747 of file InDetAlignFillTrack.cxx.

748 {
749 ATH_MSG_DEBUG("In dump" << TrkColName << "TrackCol()");
750
751 int itrk = 0;
752
753 TrackCollection::const_iterator trackItr = tracks->begin();
754 TrackCollection::const_iterator trackItrE = tracks->end();
755
756 //looping over tracks
757 for (; trackItr != trackItrE && itrk < maxTracks; ++trackItr) {
758 if (*trackItr != nullptr) dumpTrack(itrk, (*trackItr), TrkColName);
759
760 itrk++;
761 }
762
763 return itrk;
764}
void dumpTrack(int, const Trk::Track *, const std::string &)

◆ FillTrack()

StatusCode InDetAlignFillTrack::FillTrack ( )
overridevirtual

Definition at line 131 of file InDetAlignFillTrack.cxx.

131 {
132 ATH_MSG_DEBUG("In FillTrack()");
133 ATH_MSG_DEBUG(" event " << m_events);
135
136 const EventContext& ctx = Gaudi::Hive::currentContext();
137 const TrackCollection* tracks;// = new TrackCollection;
138 const TrackCollection* Uptracks;// = new TrackCollection;
139 const TrackCollection* Lowtracks;// = new TrackCollection;
140
141 // retrieve all tracks from TDS
142 ATH_CHECK(evtStore()->retrieve(tracks, m_inputCol));
143
144 // retrieve all Up tracks from TDS
145 if (m_inputUpCol != "") {
146 ATH_CHECK(evtStore()->retrieve(Uptracks, m_inputUpCol));
147 }
148
149 // retrieve all Low tracks from TDS
150 if (m_inputLowCol != "") {
151 ATH_CHECK(evtStore()->retrieve(Lowtracks, m_inputLowCol));
152 }
153
154 m_nt_ntracks = tracks->size();
155 ATH_MSG_DEBUG("Retrieved Track Collection size: " << tracks->size());
156
157 if (m_inputUpCol != "") {
158 m_nt_nUptracks = Uptracks->size();
159 ATH_MSG_DEBUG("Retrieved Up Track Collection size: " << Uptracks->size());
160 }
161
162 if (m_inputLowCol != "") {
163 m_nt_nLowtracks = Lowtracks->size();
164 ATH_MSG_DEBUG("Retrieved Low Track Collection size: " << Lowtracks->size());
165 }
166
167 ATH_MSG_DEBUG("Printing input track collection");
168 m_totaltrks += dumpTrackCol(tracks);
169 if (m_inputUpCol != "") m_totalUptrks += dumpTrackCol(Uptracks, "Up");
170 if (m_inputLowCol != "") m_totalLowtrks += dumpTrackCol(Lowtracks, "Low");
171
172 // matching
173 if (m_doMatching && m_inputUpCol != "" && m_inputLowCol != "")
174 if (StatusCode::SUCCESS != dumpMatching(Uptracks, Lowtracks)) {
175 ATH_MSG_ERROR("dumpMatching failure");
176 return StatusCode::FAILURE;
177 }
178
179
180 // if truth is available...
181 if (m_doTruth) {
182 int nTracks = 0;
183
184 const TrackTruthCollection* truthCol = nullptr;
185
186 // retrieve all track truth collection from TDS
187 if (StatusCode::SUCCESS != evtStore()->retrieve(truthCol, m_TruthTrkCol)) {
188 ATH_MSG_ERROR("Cannot find " << m_inputCol);
189 return StatusCode::FAILURE;
190 } else {
191 if (!truthCol) {
192 ATH_MSG_ERROR( "Failure retrieving " << m_TruthTrkCol );
193 return StatusCode::FAILURE;
194 }
195
196 if (msgLvl(MSG::DEBUG)) {
197 msg(MSG::DEBUG) << "Collection with name " << m_TruthTrkCol << " found in StoreGate" << endmsg;
198 msg(MSG::DEBUG) << "Retrieved " << truthCol->size() << " truth tracks from StoreGate" << endmsg;
199 }
200
201 m_nt_nmctracks = truthCol->size();
202
203 TrackCollection::const_iterator trackItr = tracks->begin();
204 TrackCollection::const_iterator trackItrE = tracks->end();
205
206 //looping over tracks
207 for (; trackItr != trackItrE && nTracks < maxTracks; ++trackItr) {
208 const Trk::Track* track = *trackItr;
209 if (track == nullptr) {
210 ATH_MSG_WARNING("No associated Trk::Track object found for track "
211 << nTracks);
212 continue;
213 }
214 //Coverity fix: 14309: useless check. Commented out
215 //if (truthCol) {
216
217 // the key for the truth std::map is an ElementLink<TrackCollection> object
218 // comprises a pointer to the track and reconstructed track collection
219 ElementLink<TrackCollection> trackLink;
220 trackLink.setElement(const_cast<Trk::Track*>(track));
221 trackLink.setStorableObject(*tracks);
222 const ElementLink<TrackCollection> trackLink2 = trackLink;
223
224 // trying to find the std::map entry for this reconstructed track
225 TrackTruthCollection::const_iterator found = truthCol->find(trackLink2);
226
227 if (found != truthCol->end()) {
228 // getting the TrackTruth object - the map element
229 TrackTruth trkTruth = found->second;
230 ATH_MSG_DEBUG("got trkTruth");
231
232 // probability of the reco<->truth match
233 float trkTruthProb = trkTruth.probability();
234
235 const HepMcParticleLink& HMPL = trkTruth.particleLink();
236
237 if (HMPL.isValid()) {
238#ifdef HEPMC3
239 HepMC::ConstGenParticlePtr genParticle = HMPL.scptr();
240#else
241 const HepMC::GenParticle* genParticle = HMPL.cptr();
242#endif
243
244 double charge = 1.0;
245 if (genParticle->pdg_id() < 0) charge = -charge;
246
247 Amg::Vector3D productionVertex(genParticle->production_vertex()->position().x(),
248 genParticle->production_vertex()->position().y(),
249 genParticle->production_vertex()->position().z());
250
251 if (msgLvl(MSG::DEBUG)) {
252 msg(MSG::DEBUG) << nTracks << ". Generated Particle " << genParticle << endmsg;
253 }
254
255 float genPt = std::sqrt((genParticle->momentum().x()) * (genParticle->momentum().x())
256 + (genParticle->momentum().y()) * (genParticle->momentum().y()));
257
258 ATH_MSG_DEBUG(" * pt " << genPt / CLHEP::GeV << " CLHEP::GeV/c"
259 << ", p " << genParticle->momentum().e() / CLHEP::GeV << " CLHEP::GeV/c"
260 << ", eta " << genParticle->momentum().eta()
261 << ", phi " << genParticle->momentum().phi() << " CLHEP::rad");
262
263 m_nt_mc_trkistruth[nTracks] = 1;
264 m_nt_mc_Trk_pdg[nTracks] = genParticle->pdg_id();
265 m_nt_mc_Trk_prob[nTracks] = trkTruthProb;
266 float pX = genParticle->momentum().px();
267 float pY = genParticle->momentum().py();
268 float genParticlePt = std::sqrt((pX * pX) + (pY * pY));
269 m_nt_mc_Trk_genParticlePt[nTracks] = genParticlePt;
270 m_nt_mc_Trk_genParticleEta[nTracks] = genParticle->momentum().eta();
271 m_nt_mc_Trk_genParticlePhi[nTracks] = genParticle->momentum().phi();
272
273 if (genParticle->pdg_id() == 0) ATH_MSG_WARNING("Particle with PDG 0!");
274 else if (!genParticle->production_vertex()) ATH_MSG_WARNING(
275 "No GenVertex (generator level) production vertex found!");
276 else {
277 // currently cannot configure the TruthToTrack tool properly
278
279 const Trk::TrackParameters* generatedTrackPerigee = nullptr;
280
281 //using a tool to produce perigee track parameters from generated parameters
282 generatedTrackPerigee = m_truthToTrack->makePerigeeParameters(genParticle);
283
284 if (!generatedTrackPerigee) {
285 if (msgLvl(MSG::DEBUG)) {
286 msg(MSG::DEBUG) << "Unable to extrapolate genParticle to perigee!" << endmsg;
287 msg(MSG::DEBUG) << "Trying to extrapolate directly to exclude material effects!" << endmsg;
288 }
289
290 const TrackRecordCollection* recordCollection = nullptr;
291
292 sc = evtStore()->retrieve(recordCollection, "CaloEntryLayer");
293 if (sc == StatusCode::FAILURE) {
294 ATH_MSG_ERROR("Could not get track record!");
295 return sc;
296 }
297 ATH_MSG_DEBUG("reading from track record, size = "
298 << recordCollection->size());
299
300 int nmctracks = 0;
301
302 for (TrackRecordCollection::const_iterator record = recordCollection->begin();
303 record != recordCollection->end(); ++record) {
304 if (std::abs((*record).GetPDGCode()) != 13) continue;
305 HepGeom::Point3D<double> productionVertex = (*record).GetPosition();
306 double charge = (*record).GetPDGCode() > 0 ? -1.0 : 1.0;
307
308
309 Amg::Vector3D direction((*record).GetMomentum().x(),
310 (*record).GetMomentum().y(),
311 (*record).GetMomentum().z());
312
313 double momentum = direction.mag();
314 if (momentum < 500) continue;
315 double genPar_qOverP = 1. / direction.mag();
316 direction *= genPar_qOverP;
317 if (charge < 0) genPar_qOverP = -genPar_qOverP;
318
319
320 double genPar_phi = direction.phi();
321 if (genPar_phi < 0.) genPar_phi = genPar_phi + 2.0*M_PI;
322
323 ATH_MSG_DEBUG("Production vertex (x,y,z): ("
324 << productionVertex.x() << ", "
325 << productionVertex.y() << ", "
326 << productionVertex.z() << ")");
327
328 double genPar_theta = direction.theta();
329
330 // Create a planar surface and transform the vertex information to a TrackParameters object
331 Amg::Transform3D globalSurfaceCentre;
332 globalSurfaceCentre.setIdentity();
333 globalSurfaceCentre *= Amg::Translation3D(productionVertex.x(),
334 productionVertex.y(), productionVertex.z());
335
336 Trk::PlaneSurface planeSurface(globalSurfaceCentre, 5., 5.);
337
338 const Amg::Vector3D productionVertexAsGlobalPosition(productionVertex.x(),
339 productionVertex.y(),
340 productionVertex.z());
341
342 const Trk::AtaPlane* productionVertexTrackParams
343 = new Trk::AtaPlane(productionVertexAsGlobalPosition,
344 genPar_phi, genPar_theta, genPar_qOverP,
345 planeSurface);
346
347 // Create a new perigee surface
348 Trk::PerigeeSurface perigeeSurface;
349
350 if (!tracks->empty()) perigeeSurface = ((**tracks->begin()).perigeeParameters()->associatedSurface());
351
352
353 const Amg::Vector3D& perigeeGlobalPosition = perigeeSurface.center();
354
355 ATH_MSG_DEBUG("Surface global centre (x,y,z): ("
356 << perigeeGlobalPosition.x() << ", "
357 << perigeeGlobalPosition.y() << ", "
358 << perigeeGlobalPosition.z() << ")");
359
360 // Extrapolate the TrackParameters object to the perigee
361
362 // ( Establish the distance between perigee and generated vertex.
363 // If less than tolerance don't bother with the propagation )
364 const Amg::Vector3D difference = productionVertexAsGlobalPosition - perigeeGlobalPosition;
365
366 double distance = std::sqrt(difference.x() * difference.x() + difference.y() * difference.y());
367 ATH_MSG_DEBUG("Distance between perigee point and generated vertex: "
368 << distance / CLHEP::m << " m");
369
370 const Trk::TrackParameters* generatedTrackPerigee = nullptr;
371
372 // Extrapolate directly to exclude material effects!
373 if (distance > 1.e-4) {
374 ATH_MSG_DEBUG("Distance between perigee and generated vertex exceeds tolerance ("
375 << 1.e-4 << " mm)... Extrapolating!");
376
377 generatedTrackPerigee = m_extrapolator->extrapolateDirectly(ctx,
378 *productionVertexTrackParams,
379 perigeeSurface,
381 false,
382 Trk::nonInteracting).release();
383 if (!generatedTrackPerigee) continue;
384 } else {
385 ATH_MSG_DEBUG("Distance between perigee and generated vertex is less than tolerance ("
386 << 1.e-4 << " CLHEP::mm)... " << "No propagation to perigee required");
387
388 // Clone the parameters from the AtaPlane object on to perigee
389 generatedTrackPerigee = new Trk::Perigee(0., 0.,
390 genPar_phi, genPar_theta, genPar_qOverP,
391 Trk::PerigeeSurface(productionVertexAsGlobalPosition));
392 }
393
394 dumpPerigee(generatedTrackPerigee, nmctracks);
395 m_nt_mc_Trk_vtxX[nmctracks] = productionVertex.x();
396 m_nt_mc_Trk_vtxY[nmctracks] = productionVertex.y();
397 m_nt_mc_Trk_vtxZ[nmctracks] = productionVertex.z();
398
399 delete productionVertexTrackParams;
400 delete generatedTrackPerigee;
401
402 nmctracks++;
403 }
404 }
405
406 if (generatedTrackPerigee) {
407 dumpPerigee(generatedTrackPerigee, nTracks);
408 m_nt_mc_Trk_vtxX[nTracks] = genParticle->production_vertex()->position().x();
409 m_nt_mc_Trk_vtxY[nTracks] = genParticle->production_vertex()->position().y();
410 m_nt_mc_Trk_vtxZ[nTracks] = genParticle->production_vertex()->position().z();
411
412 delete generatedTrackPerigee;
413 }
414 }
415 }
416 m_nt_mc_trkistruth[nTracks] = 0;
417 }
418 //} // if (truthCol) commented out for coverity 14309
419
420 nTracks++;
421 }
422 }
423 } // end if m_doTruth
424
425 // Store TrkTrack branch
426 std::string nt0id = m_ntupleName + "/TrkTrack";
427 sc = m_ntupleSvc->writeRecord(nt0id);
428 if (sc.isFailure()) ATH_MSG_ERROR("Could not write " << nt0id << "!");
429
430 if (m_inputUpCol != "") {
431 // Store TrkTrack_Up branch
432 std::string nt1id = m_ntupleName + "/TrkTrack_Up";
433 sc = m_ntupleSvc->writeRecord(nt1id);
434 if (sc.isFailure()) ATH_MSG_ERROR("Could not write " << nt1id << "!");
435 }
436
437 if (m_inputLowCol != "") {
438 // Store TrkTrack_Low branch
439 std::string nt2id = m_ntupleName + "/TrkTrack_Low";
440 sc = m_ntupleSvc->writeRecord(nt2id);
441 if (sc.isFailure()) ATH_MSG_ERROR("Could not write " << nt2id << "!");
442 }
443
444 if (m_doMatching && m_inputUpCol != "" && m_inputLowCol != "") {
445 // Store Matching Up/Low TrkTracks branch
446 std::string nt3id = m_ntupleName + "/TrkTrack_Matching";
447 sc = m_ntupleSvc->writeRecord(nt3id);
448 if (sc.isFailure()) ATH_MSG_ERROR("Could not write " << nt3id << "!");
449 }
450
451
452 m_events++;
453
454 // check for negative values
455 if (m_totaltrks < 0) m_totaltrks = 0;
456 if (m_totalhits < 0) m_totalhits = 0;
457 if (m_totalPixhits < 0) m_totalPixhits = 0;
458 if (m_totalSCThits < 0) m_totalSCThits = 0;
459 if (m_totalTRThits < 0) m_totalTRThits = 0;
460
461 if (m_inputUpCol != "") {
462 if (m_totalUptrks < 0) m_totalUptrks = 0;
463 if (m_totalUphits < 0) m_totalUphits = 0;
467 }
468
469 if (m_inputLowCol != "") {
470 if (m_totalLowtrks < 0) m_totalLowtrks = 0;
471 if (m_totalLowhits < 0) m_totalLowhits = 0;
475 }
476
477 if (m_events < 0) m_events = 0;
478 // no deletion because StoreGate owns these pointers.
479 //delete tracks;
480 //delete Uptracks;
481 //delete Lowtracks;
482 return StatusCode::SUCCESS;
483}
#define M_PI
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_WARNING(x)
DataVector< Trk::Track > TrackCollection
This typedef represents a collection of Trk::Track objects.
AtlasHitsVector< TrackRecord > TrackRecordCollection
CONT::const_iterator const_iterator
const_iterator begin() const
size_type size() const
const_iterator end() const
size_type size() const noexcept
Returns the number of elements in the collection.
bool empty() const noexcept
Returns true if the collection is empty.
StringProperty m_inputLowCol
StringProperty m_inputUpCol
ToolHandle< Trk::ITruthToTrack > m_truthToTrack
void dumpPerigee(const Trk::TrackParameters *, int)
BooleanProperty m_doMatching
switch on/off the matching information
StringProperty m_TruthTrkCol
StatusCode dumpMatching(const TrackCollection *, const TrackCollection *)
ToolHandle< Trk::IExtrapolator > m_extrapolator
float probability() const
Definition TrackTruth.h:28
const HepMcParticleLink & particleLink() const
Definition TrackTruth.h:26
const Amg::Vector3D & center() const
Returns the center position of the Surface.
Eigen::Affine3d Transform3D
float distance(const Amg::Vector3D &p1, const Amg::Vector3D &p2)
calculates the distance between two point in 3D space
Eigen::Matrix< double, 3, 1 > Vector3D
Eigen::Translation< double, 3 > Translation3D
const GenParticle * ConstGenParticlePtr
Definition GenParticle.h:38
@ anyDirection
@ perigeeParameters
ParametersBase< TrackParametersDim, Charged > TrackParameters
ParametersT< TrackParametersDim, Charged, PlaneSurface > AtaPlane
difference(file_1="Geometry_1.json", file_2="Geometry_2.json", output_file="Geometry_diff.json")
retrieve(aClass, aKey=None)
Definition PyKernel.py:110

◆ finalize()

StatusCode InDetAlignFillTrack::finalize ( )
overridevirtual

Definition at line 87 of file InDetAlignFillTrack.cxx.

87 {
88 if (msgLvl(MSG::DEBUG)) {
89 msg(MSG::DEBUG) << "Finalize() of FillTrack" << endmsg;
90
91 msg(MSG::DEBUG) << "________________________________________________________" << endmsg;
92 msg(MSG::DEBUG) << endmsg;
93 msg(MSG::DEBUG) << " InDetAlignFillTrack Summary: " << endmsg;
94 msg(MSG::DEBUG) << " - " << m_events << " events" << endmsg;
95 msg(MSG::DEBUG) << " - " << m_totaltrks << " tracks" << endmsg;
96 msg(MSG::DEBUG) << " - " << m_totalhits << " hits" << endmsg;
97 msg(MSG::DEBUG) << " - " << m_totalPixhits << " Pixel hits" << endmsg;
98 msg(MSG::DEBUG) << " - " << m_totalSCThits << " SCT hits" << endmsg;
99 msg(MSG::DEBUG) << " - " << m_totalTRThits << " TRT hits" << endmsg;
100 msg(MSG::DEBUG) << "________________________________________________________" << endmsg;
101
102 if (m_inputUpCol != "") {
103 msg(MSG::DEBUG) << " Up Track Summary: " << endmsg;
104 msg(MSG::DEBUG) << " - " << m_totalUptrks << " tracks" << endmsg;
105 msg(MSG::DEBUG) << " - " << m_totalUphits << " hits" << endmsg;
106 msg(MSG::DEBUG) << " - " << m_totalUpPixhits << " Pixel hits" << endmsg;
107 msg(MSG::DEBUG) << " - " << m_totalUpSCThits << " SCT hits" << endmsg;
108 msg(MSG::DEBUG) << " - " << m_totalUpTRThits << " TRT hits" << endmsg;
109 msg(MSG::DEBUG) << "________________________________________________________" << endmsg;
110 }
111
112 if (m_inputLowCol != "") {
113 msg(MSG::DEBUG) << " Low Track Summary: " << endmsg;
114 msg(MSG::DEBUG) << " - " << m_totalLowtrks << " tracks" << endmsg;
115 msg(MSG::DEBUG) << " - " << m_totalLowhits << " hits" << endmsg;
116 msg(MSG::DEBUG) << " - " << m_totalLowPixhits << " Pixel hits" << endmsg;
117 msg(MSG::DEBUG) << " - " << m_totalLowSCThits << " SCT hits" << endmsg;
118 msg(MSG::DEBUG) << " - " << m_totalLowTRThits << " TRT hits" << endmsg;
119 msg(MSG::DEBUG) << "________________________________________________________" << endmsg;
120 }
121
122 msg(MSG::DEBUG) << endmsg;
123 }
124
125 return StatusCode::SUCCESS;
126}

◆ GetTrkHits()

virtual int InDetAlignFillTrack::GetTrkHits ( ) const
inlineoverridevirtual

Definition at line 49 of file InDetAlignFillTrack.h.

49{ return m_totalhits; }

◆ GetTrkPixHits()

virtual int InDetAlignFillTrack::GetTrkPixHits ( ) const
inlineoverridevirtual

Definition at line 50 of file InDetAlignFillTrack.h.

50{ return m_totalPixhits; }

◆ GetTrks()

virtual int InDetAlignFillTrack::GetTrks ( ) const
inlineoverridevirtual

Definition at line 48 of file InDetAlignFillTrack.h.

48{ return m_totaltrks; }

◆ GetTrkSCTHits()

virtual int InDetAlignFillTrack::GetTrkSCTHits ( ) const
inlineoverridevirtual

Definition at line 51 of file InDetAlignFillTrack.h.

51{ return m_totalSCThits; }

◆ GetTrkTRTHits()

virtual int InDetAlignFillTrack::GetTrkTRTHits ( ) const
inlineoverridevirtual

Definition at line 52 of file InDetAlignFillTrack.h.

52{ return m_totalTRThits; }

◆ initialize()

StatusCode InDetAlignFillTrack::initialize ( )
overridevirtual

Definition at line 62 of file InDetAlignFillTrack.cxx.

62 {
63 ATH_MSG_DEBUG("Initialize() of FillTrack");
64 // retrieve the NTuple Service
65 ATH_CHECK(m_ntupleSvc.retrieve());
66 // get TrackParticleCreatorTool
67 ATH_CHECK(m_particleCreator.retrieve());
68 // if Truth...
69 if (m_doTruth) {
70 // Get TruthToTrack
71 ATH_CHECK(m_truthToTrack.retrieve());
72 // Get Extrapolator Tool
73 ATH_CHECK(m_extrapolator.retrieve());
74 }
75 // Book Ntuple
76 bookNtuple();
77 if (!m_inputUpCol.empty()) bookUpNtuple();
78 if (!m_inputLowCol.empty()) bookLowNtuple();
79 if (m_doMatching && !m_inputUpCol.empty() && !m_inputLowCol.empty()) bookMatchingNtuple();
80 ATH_MSG_DEBUG("Initialize() of FillTrack successful");
81 return StatusCode::SUCCESS;
82}

Member Data Documentation

◆ m_doMatching

BooleanProperty InDetAlignFillTrack::m_doMatching {this,"doMatching",true}
private

switch on/off the matching information

Definition at line 79 of file InDetAlignFillTrack.h.

79{this,"doMatching",true};

◆ m_doTruth

BooleanProperty InDetAlignFillTrack::m_doTruth {this,"doTruth",false}
private

switch on/off the truth information

Definition at line 71 of file InDetAlignFillTrack.h.

71{this,"doTruth",false};

◆ m_events

int InDetAlignFillTrack::m_events {0}
private

Definition at line 102 of file InDetAlignFillTrack.h.

102{0};

◆ m_extrapolator

ToolHandle< Trk::IExtrapolator > InDetAlignFillTrack::m_extrapolator
private
Initial value:
{this
, "ExtrapolationTool"
, "Trk::Extrapolator/CosmicsExtrapolator"
, "tool to extrapolate tracks"}

Definition at line 110 of file InDetAlignFillTrack.h.

110 {this
111 , "ExtrapolationTool"
112 , "Trk::Extrapolator/CosmicsExtrapolator"
113 , "tool to extrapolate tracks"};

◆ m_inputCol

StringProperty InDetAlignFillTrack::m_inputCol {this,"InputTrkCol","Tracks"}
private

Definition at line 74 of file InDetAlignFillTrack.h.

74{this,"InputTrkCol","Tracks"};

◆ m_inputLowCol

StringProperty InDetAlignFillTrack::m_inputLowCol {this,"InputLowTrkCol",""}
private

Definition at line 76 of file InDetAlignFillTrack.h.

76{this,"InputLowTrkCol",""};

◆ m_inputUpCol

StringProperty InDetAlignFillTrack::m_inputUpCol {this,"InputUpTrkCol",""}
private

Definition at line 75 of file InDetAlignFillTrack.h.

75{this,"InputUpTrkCol",""};

◆ m_matchedRcut

FloatProperty InDetAlignFillTrack::m_matchedRcut {this,"dRCut",100.}
private

Definition at line 80 of file InDetAlignFillTrack.h.

80{this,"dRCut",100.};

◆ m_mindR

FloatProperty InDetAlignFillTrack::m_mindR {this,"minimumdR",10000.}
private

Definition at line 81 of file InDetAlignFillTrack.h.

81{this,"minimumdR",10000.};

◆ m_nt_matchingTrk

NTuple::Item<long> InDetAlignFillTrack::m_nt_matchingTrk
private

matching tracks

Definition at line 124 of file InDetAlignFillTrack.h.

◆ m_nt_mc_Trk_charge

NTuple::Array<float> InDetAlignFillTrack::m_nt_mc_Trk_charge
private

MonteCarlo charge parameter.

Definition at line 230 of file InDetAlignFillTrack.h.

◆ m_nt_mc_Trk_d0

NTuple::Array<float> InDetAlignFillTrack::m_nt_mc_Trk_d0
private

MonteCarlo d0 parameter.

Definition at line 221 of file InDetAlignFillTrack.h.

◆ m_nt_mc_Trk_eta

NTuple::Array<float> InDetAlignFillTrack::m_nt_mc_Trk_eta
private

MonteCarlo eta parameter.

Definition at line 225 of file InDetAlignFillTrack.h.

◆ m_nt_mc_Trk_genParticleEta

NTuple::Array<float> InDetAlignFillTrack::m_nt_mc_Trk_genParticleEta
private

generated eta

Definition at line 217 of file InDetAlignFillTrack.h.

◆ m_nt_mc_Trk_genParticlePhi

NTuple::Array<float> InDetAlignFillTrack::m_nt_mc_Trk_genParticlePhi
private

generated phi

Definition at line 218 of file InDetAlignFillTrack.h.

◆ m_nt_mc_Trk_genParticlePt

NTuple::Array<float> InDetAlignFillTrack::m_nt_mc_Trk_genParticlePt
private

generated pt

Definition at line 216 of file InDetAlignFillTrack.h.

◆ m_nt_mc_Trk_pdg

NTuple::Array<float> InDetAlignFillTrack::m_nt_mc_Trk_pdg
private

MonteCarlo pdg parameter.

Definition at line 232 of file InDetAlignFillTrack.h.

◆ m_nt_mc_Trk_phi0

NTuple::Array<float> InDetAlignFillTrack::m_nt_mc_Trk_phi0
private

MonteCarlo phi0 parameter.

Definition at line 223 of file InDetAlignFillTrack.h.

◆ m_nt_mc_Trk_prob

NTuple::Array<float> InDetAlignFillTrack::m_nt_mc_Trk_prob
private

MonteCarlo prob parameter.

Definition at line 231 of file InDetAlignFillTrack.h.

◆ m_nt_mc_Trk_pt

NTuple::Array<float> InDetAlignFillTrack::m_nt_mc_Trk_pt
private

MonteCarlo pt parameter.

Definition at line 229 of file InDetAlignFillTrack.h.

◆ m_nt_mc_Trk_qoverp

NTuple::Array<float> InDetAlignFillTrack::m_nt_mc_Trk_qoverp
private

MonteCarlo q/p parameter.

Definition at line 226 of file InDetAlignFillTrack.h.

◆ m_nt_mc_Trk_qoverpt

NTuple::Array<float> InDetAlignFillTrack::m_nt_mc_Trk_qoverpt
private

MonteCarlo q/pt parameter.

Definition at line 227 of file InDetAlignFillTrack.h.

◆ m_nt_mc_Trk_theta0

NTuple::Array<float> InDetAlignFillTrack::m_nt_mc_Trk_theta0
private

MonteCarlo theta0 parameter.

Definition at line 224 of file InDetAlignFillTrack.h.

◆ m_nt_mc_Trk_vtxX

NTuple::Array<float> InDetAlignFillTrack::m_nt_mc_Trk_vtxX
private

MonteCarlo Vertex.X parameter.

Definition at line 234 of file InDetAlignFillTrack.h.

◆ m_nt_mc_Trk_vtxY

NTuple::Array<float> InDetAlignFillTrack::m_nt_mc_Trk_vtxY
private

MonteCarlo Vertex.Y parameter.

Definition at line 235 of file InDetAlignFillTrack.h.

◆ m_nt_mc_Trk_vtxZ

NTuple::Array<float> InDetAlignFillTrack::m_nt_mc_Trk_vtxZ
private

MonteCarlo Vertex.Z parameter.

Definition at line 236 of file InDetAlignFillTrack.h.

◆ m_nt_mc_Trk_z0

NTuple::Array<float> InDetAlignFillTrack::m_nt_mc_Trk_z0
private

MonteCarlo z0 parameter.

Definition at line 222 of file InDetAlignFillTrack.h.

◆ m_nt_mc_trkistruth

NTuple::Array<float> InDetAlignFillTrack::m_nt_mc_trkistruth
private

Has the Track an associated truth track?

Definition at line 213 of file InDetAlignFillTrack.h.

◆ m_nt_nLowtracks

NTuple::Item<long> InDetAlignFillTrack::m_nt_nLowtracks
private

number of Low tracks

Definition at line 122 of file InDetAlignFillTrack.h.

◆ m_nt_nmctracks

NTuple::Item<long> InDetAlignFillTrack::m_nt_nmctracks
private

number of mc tracks

Definition at line 123 of file InDetAlignFillTrack.h.

◆ m_nt_ntracks

NTuple::Item<long> InDetAlignFillTrack::m_nt_ntracks
private

number of tracks

Definition at line 120 of file InDetAlignFillTrack.h.

◆ m_nt_nUptracks

NTuple::Item<long> InDetAlignFillTrack::m_nt_nUptracks
private

number of Up tracks

Definition at line 121 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_chi2

NTuple::Array<float> InDetAlignFillTrack::m_nt_Trk_chi2
private

number of chi2

Definition at line 149 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_chi2_Low

NTuple::Array<float> InDetAlignFillTrack::m_nt_Trk_chi2_Low
private

number of chi2 (Low track)

Definition at line 207 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_chi2_Up

NTuple::Array<float> InDetAlignFillTrack::m_nt_Trk_chi2_Up
private

number of chi2 (Up track)

Definition at line 178 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_chi2Prob

NTuple::Array<float> InDetAlignFillTrack::m_nt_Trk_chi2Prob
private

number of chi2 probability

Definition at line 151 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_chi2Prob_Low

NTuple::Array<float> InDetAlignFillTrack::m_nt_Trk_chi2Prob_Low
private

number of chi2 probability (Low track)

Definition at line 209 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_chi2Prob_Up

NTuple::Array<float> InDetAlignFillTrack::m_nt_Trk_chi2Prob_Up
private

number of chi2 probability (Up track)

Definition at line 180 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_d0

NTuple::Array<float> InDetAlignFillTrack::m_nt_Trk_d0
private

d0 parameter

Definition at line 127 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_d0_Low

NTuple::Array<float> InDetAlignFillTrack::m_nt_Trk_d0_Low
private

d0 parameter (Low track)

Definition at line 185 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_d0_Up

NTuple::Array<float> InDetAlignFillTrack::m_nt_Trk_d0_Up
private

d0 parameter (Up track)

Definition at line 156 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_delta_charge

NTuple::Array<float> InDetAlignFillTrack::m_nt_Trk_delta_charge
private

charge parameter

Definition at line 250 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_delta_d0

NTuple::Array<float> InDetAlignFillTrack::m_nt_Trk_delta_d0
private

d0 parameter

Definition at line 242 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_delta_eta

NTuple::Array<float> InDetAlignFillTrack::m_nt_Trk_delta_eta
private

eta parameter

Definition at line 247 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_delta_phi0

NTuple::Array<float> InDetAlignFillTrack::m_nt_Trk_delta_phi0
private

phi0 parameter

Definition at line 244 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_delta_pt

NTuple::Array<float> InDetAlignFillTrack::m_nt_Trk_delta_pt
private

pt parameter

Definition at line 249 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_delta_qoverpt

NTuple::Array<float> InDetAlignFillTrack::m_nt_Trk_delta_qoverpt
private

q/pt parameter

Definition at line 248 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_delta_theta0

NTuple::Array<float> InDetAlignFillTrack::m_nt_Trk_delta_theta0
private

theta parameter

Definition at line 246 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_delta_z0

NTuple::Array<float> InDetAlignFillTrack::m_nt_Trk_delta_z0
private

z0 parameter

Definition at line 243 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_ndof

NTuple::Array<long> InDetAlignFillTrack::m_nt_Trk_ndof
private

number of ndof

Definition at line 150 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_ndof_Low

NTuple::Array<long> InDetAlignFillTrack::m_nt_Trk_ndof_Low
private

number of ndof (Low track)

Definition at line 208 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_ndof_Up

NTuple::Array<long> InDetAlignFillTrack::m_nt_Trk_ndof_Up
private

number of ndof (Up track)

Definition at line 179 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_nHits

NTuple::Array<long> InDetAlignFillTrack::m_nt_Trk_nHits
private

number of hits

Definition at line 136 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_nHits_Low

NTuple::Array<long> InDetAlignFillTrack::m_nt_Trk_nHits_Low
private

number of hits (Low track)

Definition at line 194 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_nHits_Up

NTuple::Array<long> InDetAlignFillTrack::m_nt_Trk_nHits_Up
private

number of hits (Up track)

Definition at line 165 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_nhitspix

NTuple::Array<long> InDetAlignFillTrack::m_nt_Trk_nhitspix
private

number of Pixel hits

Definition at line 137 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_nhitspix_Low

NTuple::Array<long> InDetAlignFillTrack::m_nt_Trk_nhitspix_Low
private

number of Pixel hits (Low track)

Definition at line 195 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_nhitspix_Up

NTuple::Array<long> InDetAlignFillTrack::m_nt_Trk_nhitspix_Up
private

number of Pixel hits (Up track)

Definition at line 166 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_nhitssct

NTuple::Array<long> InDetAlignFillTrack::m_nt_Trk_nhitssct
private

number of SCT hits

Definition at line 138 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_nhitssct_Low

NTuple::Array<long> InDetAlignFillTrack::m_nt_Trk_nhitssct_Low
private

number of SCT hits (Low track)

Definition at line 196 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_nhitssct_Up

NTuple::Array<long> InDetAlignFillTrack::m_nt_Trk_nhitssct_Up
private

number of SCT hits (Up track)

Definition at line 167 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_nhitstrt

NTuple::Array<long> InDetAlignFillTrack::m_nt_Trk_nhitstrt
private

number of TRT hits

Definition at line 139 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_nhitstrt_Low

NTuple::Array<long> InDetAlignFillTrack::m_nt_Trk_nhitstrt_Low
private

number of TRT hits (Low track)

Definition at line 197 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_nhitstrt_Up

NTuple::Array<long> InDetAlignFillTrack::m_nt_Trk_nhitstrt_Up
private

number of TRT hits (Up track)

Definition at line 168 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_nholes

NTuple::Array<long> InDetAlignFillTrack::m_nt_Trk_nholes
private

number of holes

Definition at line 147 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_nholes_Low

NTuple::Array<long> InDetAlignFillTrack::m_nt_Trk_nholes_Low
private

number of holes (Low track)

Definition at line 205 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_nholes_Up

NTuple::Array<long> InDetAlignFillTrack::m_nt_Trk_nholes_Up
private

number of holes (Up track)

Definition at line 176 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_nholesPixels

NTuple::Array<long> InDetAlignFillTrack::m_nt_Trk_nholesPixels
private

number of Pixel holes

Definition at line 145 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_nholesPixels_Low

NTuple::Array<long> InDetAlignFillTrack::m_nt_Trk_nholesPixels_Low
private

number of Pixel holes (Low track)

Definition at line 203 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_nholesPixels_Up

NTuple::Array<long> InDetAlignFillTrack::m_nt_Trk_nholesPixels_Up
private

number of Pixel holes (Up track)

Definition at line 174 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_nholesSCT

NTuple::Array<long> InDetAlignFillTrack::m_nt_Trk_nholesSCT
private

number of SCT holes

Definition at line 146 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_nholesSCT_Low

NTuple::Array<long> InDetAlignFillTrack::m_nt_Trk_nholesSCT_Low
private

number of SCT holes (Low track)

Definition at line 204 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_nholesSCT_Up

NTuple::Array<long> InDetAlignFillTrack::m_nt_Trk_nholesSCT_Up
private

number of SCT holes (Up track)

Definition at line 175 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_nshared

NTuple::Array<long> InDetAlignFillTrack::m_nt_Trk_nshared
private

number of shared hits

Definition at line 143 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_nshared_Low

NTuple::Array<long> InDetAlignFillTrack::m_nt_Trk_nshared_Low
private

number of shared hits (Low track)

Definition at line 201 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_nshared_Up

NTuple::Array<long> InDetAlignFillTrack::m_nt_Trk_nshared_Up
private

number of shared hits (Up track)

Definition at line 172 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_nsharedPixels

NTuple::Array<long> InDetAlignFillTrack::m_nt_Trk_nsharedPixels
private

number of Pixel shared hits

Definition at line 141 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_nsharedPixels_Low

NTuple::Array<long> InDetAlignFillTrack::m_nt_Trk_nsharedPixels_Low
private

number of Pixel shared hits (Low track)

Definition at line 199 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_nsharedPixels_Up

NTuple::Array<long> InDetAlignFillTrack::m_nt_Trk_nsharedPixels_Up
private

number of Pixel shared hits (Up track)

Definition at line 170 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_nsharedSCT

NTuple::Array<long> InDetAlignFillTrack::m_nt_Trk_nsharedSCT
private

number of SCT shared hits

Definition at line 142 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_nsharedSCT_Low

NTuple::Array<long> InDetAlignFillTrack::m_nt_Trk_nsharedSCT_Low
private

number of SCT shared hits (Low track)

Definition at line 200 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_nsharedSCT_Up

NTuple::Array<long> InDetAlignFillTrack::m_nt_Trk_nsharedSCT_Up
private

number of SCT shared hits (Up track)

Definition at line 171 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_phi0

NTuple::Array<float> InDetAlignFillTrack::m_nt_Trk_phi0
private

phi0 parameter

Definition at line 129 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_phi0_Low

NTuple::Array<float> InDetAlignFillTrack::m_nt_Trk_phi0_Low
private

phi0 parameter (Low track)

Definition at line 187 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_phi0_Up

NTuple::Array<float> InDetAlignFillTrack::m_nt_Trk_phi0_Up
private

phi0 parameter (Up track)

Definition at line 158 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_pt

NTuple::Array<float> InDetAlignFillTrack::m_nt_Trk_pt
private

pt parameter

Definition at line 132 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_pt_Low

NTuple::Array<float> InDetAlignFillTrack::m_nt_Trk_pt_Low
private

pt parameter (Low track)

Definition at line 190 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_pt_Up

NTuple::Array<float> InDetAlignFillTrack::m_nt_Trk_pt_Up
private

pt parameter (Up track)

Definition at line 161 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_qoverp

NTuple::Array<float> InDetAlignFillTrack::m_nt_Trk_qoverp
private

q/p parameter

Definition at line 131 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_qoverp_Low

NTuple::Array<float> InDetAlignFillTrack::m_nt_Trk_qoverp_Low
private

q/p parameter (Low track)

Definition at line 189 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_qoverp_Up

NTuple::Array<float> InDetAlignFillTrack::m_nt_Trk_qoverp_Up
private

q/p parameter (Up track)

Definition at line 160 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_theta0

NTuple::Array<float> InDetAlignFillTrack::m_nt_Trk_theta0
private

theta0 parameter

Definition at line 130 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_theta0_Low

NTuple::Array<float> InDetAlignFillTrack::m_nt_Trk_theta0_Low
private

theta0 parameter (Low track)

Definition at line 188 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_theta0_Up

NTuple::Array<float> InDetAlignFillTrack::m_nt_Trk_theta0_Up
private

theta0 parameter (Up track)

Definition at line 159 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_z0

NTuple::Array<float> InDetAlignFillTrack::m_nt_Trk_z0
private

z0 parameter

Definition at line 128 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_z0_Low

NTuple::Array<float> InDetAlignFillTrack::m_nt_Trk_z0_Low
private

z0 parameter (Low track)

Definition at line 186 of file InDetAlignFillTrack.h.

◆ m_nt_Trk_z0_Up

NTuple::Array<float> InDetAlignFillTrack::m_nt_Trk_z0_Up
private

z0 parameter (Up track)

Definition at line 157 of file InDetAlignFillTrack.h.

◆ m_ntupleName

StringProperty InDetAlignFillTrack::m_ntupleName {this,"NtupleName","/NTUPLES/GLOBFILE"}
private

Definition at line 84 of file InDetAlignFillTrack.h.

84{this,"NtupleName","/NTUPLES/GLOBFILE"};

◆ m_ntupleSvc

ServiceHandle<INTupleSvc> InDetAlignFillTrack::m_ntupleSvc {this,"NTupleSvc","NTupleSvc"}
private

Definition at line 55 of file InDetAlignFillTrack.h.

55{this,"NTupleSvc","NTupleSvc"};

◆ m_particleCreator

ToolHandle<Trk::ITrackParticleCreatorTool> InDetAlignFillTrack::m_particleCreator
private
Initial value:
{this
, "TrackParticleCreatorTool"
, "Trk::TrackParticleCreatorTool/TrackParticleCreatorTool"
, "tool to build TrackParticle"}

Definition at line 115 of file InDetAlignFillTrack.h.

115 {this
116 , "TrackParticleCreatorTool"
117 , "Trk::TrackParticleCreatorTool/TrackParticleCreatorTool"
118 , "tool to build TrackParticle"};

◆ m_totalhits

int InDetAlignFillTrack::m_totalhits {0}
private

Definition at line 88 of file InDetAlignFillTrack.h.

88{0};

◆ m_totalLowhits

int InDetAlignFillTrack::m_totalLowhits {0}
private

Definition at line 98 of file InDetAlignFillTrack.h.

98{0};

◆ m_totalLowPixhits

int InDetAlignFillTrack::m_totalLowPixhits {0}
private

Definition at line 99 of file InDetAlignFillTrack.h.

99{0};

◆ m_totalLowSCThits

int InDetAlignFillTrack::m_totalLowSCThits {0}
private

Definition at line 100 of file InDetAlignFillTrack.h.

100{0};

◆ m_totalLowtrks

int InDetAlignFillTrack::m_totalLowtrks {0}
private

Definition at line 97 of file InDetAlignFillTrack.h.

97{0};

◆ m_totalLowTRThits

int InDetAlignFillTrack::m_totalLowTRThits {0}
private

Definition at line 101 of file InDetAlignFillTrack.h.

101{0};

◆ m_totalPixhits

int InDetAlignFillTrack::m_totalPixhits {0}
private

Definition at line 89 of file InDetAlignFillTrack.h.

89{0};

◆ m_totalSCThits

int InDetAlignFillTrack::m_totalSCThits {0}
private

Definition at line 90 of file InDetAlignFillTrack.h.

90{0};

◆ m_totaltrks

int InDetAlignFillTrack::m_totaltrks {0}
private

Definition at line 87 of file InDetAlignFillTrack.h.

87{0};

◆ m_totalTRThits

int InDetAlignFillTrack::m_totalTRThits {0}
private

Definition at line 91 of file InDetAlignFillTrack.h.

91{0};

◆ m_totalUphits

int InDetAlignFillTrack::m_totalUphits {0}
private

Definition at line 93 of file InDetAlignFillTrack.h.

93{0};

◆ m_totalUpPixhits

int InDetAlignFillTrack::m_totalUpPixhits {0}
private

Definition at line 94 of file InDetAlignFillTrack.h.

94{0};

◆ m_totalUpSCThits

int InDetAlignFillTrack::m_totalUpSCThits {0}
private

Definition at line 95 of file InDetAlignFillTrack.h.

95{0};

◆ m_totalUptrks

int InDetAlignFillTrack::m_totalUptrks {0}
private

Definition at line 92 of file InDetAlignFillTrack.h.

92{0};

◆ m_totalUpTRThits

int InDetAlignFillTrack::m_totalUpTRThits {0}
private

Definition at line 96 of file InDetAlignFillTrack.h.

96{0};

◆ m_truthToTrack

ToolHandle< Trk::ITruthToTrack > InDetAlignFillTrack::m_truthToTrack
private
Initial value:
{this
, "TruthToTrackTool"
, "Trk::TruthToTrack"
, "tool to produce perigee track parameters from generated parameters"}

Definition at line 105 of file InDetAlignFillTrack.h.

105 {this
106 , "TruthToTrackTool"
107 , "Trk::TruthToTrack"
108 , "tool to produce perigee track parameters from generated parameters"};

◆ m_TruthTrkCol

StringProperty InDetAlignFillTrack::m_TruthTrkCol {this,"TruthTrkCol","TrackTruthCollection"}
private

Definition at line 72 of file InDetAlignFillTrack.h.

72{this,"TruthTrkCol","TrackTruthCollection"};

The documentation for this class was generated from the following files: