ATLAS Offline Software
Loading...
Searching...
No Matches
FPGATrackSimGenScanTool::HitPairSet Struct Reference

#include <FPGATrackSimGenScanTool.h>

Collaboration diagram for FPGATrackSimGenScanTool::HitPairSet:

Public Member Functions

int addPair (const HitPair &pair)
const HitPairlastpair () const
const HitPairsecondtolastpair () const
bool hasHit (const StoredHit *hit) const
bool hasLayer (int layer) const
unsigned int lyrCnt () const
double MatchPhi (const HitPair &pair) const
double MatchEta (const HitPair &pair) const
double DeltaDeltaPhi (const HitPair &pair) const
double DeltaDeltaEta (const HitPair &pair) const
double PhiCurvature (const HitPair &pair) const
double EtaCurvature (const HitPair &pair) const
double DeltaPhiCurvature (const HitPair &pair) const
double DeltaEtaCurvature (const HitPair &pair) const
double PhiInExtrapCurved (const HitPair &pair, double r_in) const
double PhiOutExtrapCurved (const HitPair &pair, double r_out) const

Public Attributes

std::vector< HitPairpairList {}
layer_bitmask_t hitLayers = 0
std::vector< const StoredHit * > hitlist {}
double LastPhiCurvature = 0.
double LastEtaCurvature = 0.

Detailed Description

Definition at line 215 of file FPGATrackSimGenScanTool.h.

Member Function Documentation

◆ addPair()

int FPGATrackSimGenScanTool::HitPairSet::addPair ( const HitPair & pair)

Definition at line 682 of file FPGATrackSimGenScanTool.cxx.

683{
684 if (pairList.size() > 0)
685 {
686 // these need to be done before the pair is added
689 }
690
691 pairList.push_back(pair);
692
693 hitLayers |= (0x1 << pair.first->layer);
694 hitLayers |= (0x1 << pair.second->layer);
695 if (!hasHit(pair.first))
696 hitlist.push_back(pair.first);
697 if (!hasHit(pair.second))
698 hitlist.push_back(pair.second);
699 return this->pairList.size();
700}
double PhiCurvature(const HitPair &pair) const
bool hasHit(const StoredHit *hit) const
double EtaCurvature(const HitPair &pair) const
std::vector< const StoredHit * > hitlist

◆ DeltaDeltaEta()

double FPGATrackSimGenScanTool::HitPairSet::DeltaDeltaEta ( const HitPair & pair) const

Definition at line 736 of file FPGATrackSimGenScanTool.cxx.

737{
738 return (pair.dEta() * lastpair().dR() - lastpair().dEta() * pair.dR()) / (lastpair().dR() * pair.dR());
739}
bool dEta(const xAOD::TauJet &tau, const xAOD::CaloVertexedTopoCluster &cluster, float &out)

◆ DeltaDeltaPhi()

double FPGATrackSimGenScanTool::HitPairSet::DeltaDeltaPhi ( const HitPair & pair) const

Definition at line 732 of file FPGATrackSimGenScanTool.cxx.

732 {
733 return (pair.dPhi() * lastpair().dR() - lastpair().dPhi() * pair.dR()) / (lastpair().dR() * pair.dR());
734}
bool dPhi(const xAOD::TauJet &tau, const xAOD::CaloVertexedTopoCluster &cluster, float &out)

◆ DeltaEtaCurvature()

double FPGATrackSimGenScanTool::HitPairSet::DeltaEtaCurvature ( const HitPair & pair) const

Definition at line 753 of file FPGATrackSimGenScanTool.cxx.

754{
755 return EtaCurvature(pair) - LastEtaCurvature;
756}

◆ DeltaPhiCurvature()

double FPGATrackSimGenScanTool::HitPairSet::DeltaPhiCurvature ( const HitPair & pair) const

Definition at line 749 of file FPGATrackSimGenScanTool.cxx.

750{
751 return PhiCurvature(pair) - LastPhiCurvature;
752}

◆ EtaCurvature()

double FPGATrackSimGenScanTool::HitPairSet::EtaCurvature ( const HitPair & pair) const

Definition at line 745 of file FPGATrackSimGenScanTool.cxx.

746{
747 return 2 * DeltaDeltaEta(pair) / (lastpair().dR() + pair.dR());
748}
double DeltaDeltaEta(const HitPair &pair) const

◆ hasHit()

bool FPGATrackSimGenScanTool::HitPairSet::hasHit ( const StoredHit * hit) const

Definition at line 673 of file FPGATrackSimGenScanTool.cxx.

674{for (const FPGATrackSimBinUtil::StoredHit* hit : hitlist)
675 {
676 if (hit == newhit)
677 return true;
678 }
679 return false;
680}

◆ hasLayer()

bool FPGATrackSimGenScanTool::HitPairSet::hasLayer ( int layer) const
inline

Definition at line 240 of file FPGATrackSimGenScanTool.h.

240{ return ((hitLayers & (0x1 << layer)) != 0); }

◆ lastpair()

const HitPair & FPGATrackSimGenScanTool::HitPairSet::lastpair ( ) const
inline

Definition at line 236 of file FPGATrackSimGenScanTool.h.

236{ return pairList.back(); }

◆ lyrCnt()

unsigned int FPGATrackSimGenScanTool::HitPairSet::lyrCnt ( ) const
inline

Definition at line 241 of file FPGATrackSimGenScanTool.h.

241{ return __builtin_popcount(hitLayers); }

◆ MatchEta()

double FPGATrackSimGenScanTool::HitPairSet::MatchEta ( const HitPair & pair) const

Definition at line 717 of file FPGATrackSimGenScanTool.cxx.

718{
719 if ((lastpair().first->hitptr==pair.first->hitptr)||
720 (lastpair().first->hitptr==pair.second->hitptr)||
721 (lastpair().second->hitptr==pair.first->hitptr)||
722 (lastpair().second->hitptr==pair.second->hitptr))
723 return 0.0;
724
725 double dr = (lastpair().second->hitptr->getR() - pair.first->hitptr->getR()) / 2.0;
726 double lastpairextrap = lastpair().second->etaShift - lastpair().dEta() / lastpair().dR() * dr;
727 double newpairextrap = pair.first->etaShift + pair.dEta() / pair.dR() * dr;
728 return lastpairextrap - newpairextrap;
729}
bool first
Definition DeMoScan.py:534

◆ MatchPhi()

double FPGATrackSimGenScanTool::HitPairSet::MatchPhi ( const HitPair & pair) const

Definition at line 703 of file FPGATrackSimGenScanTool.cxx.

704{
705 if ((lastpair().first->hitptr==pair.first->hitptr)||
706 (lastpair().first->hitptr==pair.second->hitptr)||
707 (lastpair().second->hitptr==pair.first->hitptr)||
708 (lastpair().second->hitptr==pair.second->hitptr))
709 return 0.0;
710
711 double dr = (lastpair().second->hitptr->getR() - pair.first->hitptr->getR()) / 2.0;
712 double lastpairextrap = lastpair().second->phiShift - lastpair().dPhi() / lastpair().dR() * dr;
713 double newpairextrap = pair.first->phiShift + pair.dPhi() / pair.dR() * dr;
714 return lastpairextrap - newpairextrap;
715}

◆ PhiCurvature()

double FPGATrackSimGenScanTool::HitPairSet::PhiCurvature ( const HitPair & pair) const

Definition at line 741 of file FPGATrackSimGenScanTool.cxx.

742{
743 return 2 * DeltaDeltaPhi(pair) / (lastpair().dR() + pair.dR());
744}
double DeltaDeltaPhi(const HitPair &pair) const

◆ PhiInExtrapCurved()

double FPGATrackSimGenScanTool::HitPairSet::PhiInExtrapCurved ( const HitPair & pair,
double r_in ) const

Definition at line 757 of file FPGATrackSimGenScanTool.cxx.

758{
759 double r = std::min(lastpair().first->hitptr->getR(),lastpair().second->hitptr->getR());
760 return lastpair().PhiInExtrap(r_in) + 0.5 * PhiCurvature(pair) * (r_in - r) * (r_in - r);
761}
int r
Definition globals.cxx:22

◆ PhiOutExtrapCurved()

double FPGATrackSimGenScanTool::HitPairSet::PhiOutExtrapCurved ( const HitPair & pair,
double r_out ) const

Definition at line 762 of file FPGATrackSimGenScanTool.cxx.

763{
764 double r = std::max(lastpair().first->hitptr->getR(),lastpair().second->hitptr->getR());
765 return pair.PhiOutExtrap(r_out) + 0.5 * PhiCurvature(pair) * (r_out - r) * (r_out - r);
766}

◆ secondtolastpair()

const HitPair & FPGATrackSimGenScanTool::HitPairSet::secondtolastpair ( ) const
inline

Definition at line 237 of file FPGATrackSimGenScanTool.h.

237{ return *std::prev(pairList.end(), 2); }

Member Data Documentation

◆ hitLayers

layer_bitmask_t FPGATrackSimGenScanTool::HitPairSet::hitLayers = 0

Definition at line 224 of file FPGATrackSimGenScanTool.h.

◆ hitlist

std::vector<const StoredHit *> FPGATrackSimGenScanTool::HitPairSet::hitlist {}

Definition at line 227 of file FPGATrackSimGenScanTool.h.

227{};

◆ LastEtaCurvature

double FPGATrackSimGenScanTool::HitPairSet::LastEtaCurvature = 0.

Definition at line 231 of file FPGATrackSimGenScanTool.h.

◆ LastPhiCurvature

double FPGATrackSimGenScanTool::HitPairSet::LastPhiCurvature = 0.

Definition at line 230 of file FPGATrackSimGenScanTool.h.

◆ pairList

std::vector<HitPair> FPGATrackSimGenScanTool::HitPairSet::pairList {}

Definition at line 221 of file FPGATrackSimGenScanTool.h.

221{};

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