ATLAS Offline Software
Loading...
Searching...
No Matches
FTF Namespace Reference

header for factorised IRoiDescriptor interface More...

Classes

class  BaseSpacePointFilter
class  LayerCalculator
class  RoI_Filter
class  SpacePointSelector
class  SpacePointShifter
class  SpacePointTransform

Functions

bool isGoodTrackUTT (const Trk::Track *track, trackInfo &theTrackInfo, const float shift_x, const float shift_y, float trkcut_ptgev)
void getBeamSpotShift (float &shift_x, float &shift_y, const InDet::BeamSpotData &beamSpotHandle)

Detailed Description

header for factorised IRoiDescriptor interface

Function Documentation

◆ getBeamSpotShift()

void FTF::getBeamSpotShift ( float & shift_x,
float & shift_y,
const InDet::BeamSpotData & beamSpotHandle )

Definition at line 30 of file TrigInDetUtils.cxx.

30 {
31 Amg::Vector3D vertex = beamSpotHandle.beamPos();
32 //ATH_MSG_VERBOSE("Beam spot position " << vertex);
33 double xVTX = vertex.x();
34 double yVTX = vertex.y();
35 double zVTX = vertex.z();
36 double tiltXZ = beamSpotHandle.beamTilt(0);
37 double tiltYZ = beamSpotHandle.beamTilt(1);
38 shift_x = xVTX - tiltXZ*zVTX;//correction for tilt
39 shift_y = yVTX - tiltYZ*zVTX;//correction for tilt
40 //ATH_MSG_VERBOSE("Beam center position: " << shift_x <<" "<< shift_y);
41}
float beamTilt(int i) const noexcept
Returns the beam sigma for the i+3-th error matrix element (the 'tilt')
const Amg::Vector3D & beamPos() const noexcept
Eigen::Matrix< double, 3, 1 > Vector3D

◆ isGoodTrackUTT()

bool FTF::isGoodTrackUTT ( const Trk::Track * track,
trackInfo & theTrackInfo,
const float shift_x,
const float shift_y,
float trkcut_ptgev )

Definition at line 4 of file TrigInDetUtils.cxx.

4 {
5 static constexpr int TRKCUT_N_HITS_INNER = 1;
6 static constexpr int TRKCUT_N_HITS_PIX = 2;
7 static constexpr float TRKCUT_A0BEAM = 2.5;
8 static constexpr int TRKCUT_N_HITS = 4;
9
10 if ( track->perigeeParameters()==nullptr ) return false;
11 if ( track->trackSummary()==nullptr ) return false;
12 theTrackInfo.n_hits_innermost = track->trackSummary()->get(Trk::SummaryType::numberOfInnermostPixelLayerHits);
13 float n_hits_next_to_innermost = track->trackSummary()->get(Trk::SummaryType::numberOfNextToInnermostPixelLayerHits);
14 theTrackInfo.n_hits_inner = theTrackInfo.n_hits_innermost + n_hits_next_to_innermost;
15 theTrackInfo.n_hits_pix = track->trackSummary()->get(Trk::SummaryType::numberOfPixelHits);
16 theTrackInfo.n_hits_sct = track->trackSummary()->get(Trk::SummaryType::numberOfSCTHits);
17 if( theTrackInfo.n_hits_inner < TRKCUT_N_HITS_INNER ) return false;
18 if( theTrackInfo.n_hits_pix < TRKCUT_N_HITS_PIX ) return false;
19 if( (theTrackInfo.n_hits_pix+theTrackInfo.n_hits_sct) < TRKCUT_N_HITS ) return false;
20 theTrackInfo.eta = track->perigeeParameters()->eta();
21 theTrackInfo.ptGeV = track->perigeeParameters()->pT()/Gaudi::Units::GeV;
22 if( theTrackInfo.ptGeV < trkcut_ptgev ) return false;
23 float a0 = track->perigeeParameters()->parameters()[Trk::d0];
24 theTrackInfo.phi0 = track->perigeeParameters()->parameters()[Trk::phi0];
25 theTrackInfo.a0beam = a0 + shift_x*sin(theTrackInfo.phi0)-shift_y*cos(theTrackInfo.phi0);
26 if( std::abs(theTrackInfo.a0beam) > TRKCUT_A0BEAM ) {return false;}
27 return true;
28}
double a0
Definition globals.cxx:27
@ phi0
Definition ParamDefs.h:65
@ d0
Definition ParamDefs.h:63
@ numberOfPixelHits
number of pixel layers on track with absence of hits
@ numberOfNextToInnermostPixelLayerHits
these are the pixel hits, including the b-layer
@ numberOfInnermostPixelLayerHits
these are the hits in the 1st pixel layer
int n_hits_innermost