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

#include <AddTRTMomConstr.h>

Inheritance diagram for AddTRTMomConstr:
Collaboration diagram for AddTRTMomConstr:

Public Member Functions

 AddTRTMomConstr (const std::string &name, ISvcLocator *pSvcLocator)
 The AddTRTMomConstr is an implementation to add the so-called TRT momentum constraint on a track.
 ~AddTRTMomConstr ()
StatusCode initialize ()
 initialize method of this algorithm.
StatusCode execute ()
 execute method of this algorithm that is called for each event
StatusCode finalize ()
 finalize method of this algorithm.
MsgStream & dump (MsgStream &outst) const
virtual StatusCode sysInitialize () override
 Override sysInitialize.
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies.
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed.

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

const Trk::TrackStateOnSurfacefindouterscthit (const Trk::Track *track)
 Returns the outermost SCT TSOS on the given Track.
const Trk::TrackStateOnSurfacefindinnertrthit (const Trk::Track *track)
 Returns the innermost TRT TSOS on the given Track.
bool accept (const Trk::Track &track)
 Verifies if the given track passes the track selection criteria specified via the jobOptions.
const Trk::MeasurementSet addPM (Trk::MeasurementSet &ms, const Trk::PseudoMeasurementOnTrack *pm)
 adds a PseudoMeasurement to a MeasurementSet
const Trk::PseudoMeasurementOnTrackcreatePMfromSi (const Trk::Perigee *mp)
 creates a PseudoMeasurement with (z0, theta) from extended track perigee parameters
const Trk::PseudoMeasurementOnTrackcreatePMfromTRT (const Trk::Perigee *mpSi, const Trk::Perigee *mpTRT)
 creates a PseudoMeasurement with (z0, theta, q/p) from TRT track perigee parameters
Trk::TrackaddTRTMomentumConstraint (const Trk::Track *track)
 Strips of all TRT hits from the track and replaces them with a TRT momentum constraint from a the TRT segment belonging to the (extended) track (returns NULL in case of failure)
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

const AtlasDetectorIDm_idHelper
 Detector ID helper.
const TRT_IDm_trtid
 Identifier helper class for the TRT.
std::string m_trackListInput
 Name of the TrackCollection (input)
std::string m_trackListOutput
 Name of the TrackCollection (Output)
ToolHandle< Trk::ITrackSummaryToolm_trackSummaryTool
 The summary tool to make the track selection.
ToolHandle< Trk::ITrackFitterm_trackFitter
 The TrackFitter to refit the tracks (segment, momentum constraint)
bool m_useThetaCorrection
 correct theta after TRT+PM(z0,theta) refit, small diff.
double m_thetaCorr
 theta can be different after TRT+PM fit by < o(10e-4).
bool m_applyTrkSel
 apply a selection on tracks or not
double m_selPtMin
 minimal pT cut value for the TrackSelection
double m_selEtaMin
 minimal eta cut value for the TrackSelection
double m_selEtaMax
 maximal eta cut value for the TrackSelection
int m_selNHitPIXMin
 minimal number of PIX hits cut value for the TrackSelection
int m_selNHitSCTMin
 minimal number of SCT hits cut value for the TrackSelection
int m_selNHitTRTMin
 minimal number of TRT hits cut value for the TrackSelection
int m_selNHitTRTMinCrack
 minimal number of TRT hits cut value in trans.
double m_selEtaCrackMin
 minimum |eta| to define the transition region
double m_selEtaCrackMax
 maximum |eta| to define the transition region
double m_selChiSqPerDOFMin
 maximal Chisquare per degree of freedom cut value for the TrackSelection
size_t m_nTracksProcessed
 Counter for number of tracks processed.
size_t m_nTracksPresel
 Counter for number of tracks passing the preselection.
size_t m_nTracksAccepted
 Counter for number of tracks passing the preselection and with PM.
size_t m_nRejectPIX
 Counter for number of tracks failing the min number of PIX hits req.
size_t m_nRejectSCT
 Counter for number of tracks failing the min number of SCT hits req.
size_t m_nRejectTRT
 Counter for number of tracks failing the min number of TRT hits req.
size_t m_nRejectPM
 Counter for number of tracks failing the addition of a pseudo-measurement (PM)
DataObjIDColl m_extendedExtraObjects
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default)
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Detailed Description

Definition at line 36 of file AddTRTMomConstr.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< Algorithm > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ AddTRTMomConstr()

AddTRTMomConstr::AddTRTMomConstr ( const std::string & name,
ISvcLocator * pSvcLocator )

The AddTRTMomConstr is an implementation to add the so-called TRT momentum constraint on a track.

It was developed in the context of alignment, and its main idea is that if the TRT is free from "weak modes", its curvature measurement can be added as a PseudoMeasurement (PM) to a Si-only track. This extra information, taken into account while refitting the Si-only part of the track or read in by the alignment algorithms directly, can serve to eliminate the alignment weak modes from the Si tracker of ATLAS. More details can be found at: https://twiki.cern.ch/twiki/bin/view/Atlas/TRTMomConstraint

Definition at line 34 of file AddTRTMomConstr.cxx.

35 : AthAlgorithm (name, pSvcLocator)
36 , m_idHelper(nullptr)
37 , m_trtid(nullptr)
38 , m_trackListInput("ExtendedTracks")
39 , m_trackListOutput("SiTracksWithTRTMomConstr")
40 , m_trackSummaryTool("Trk::ITrackSummaryTool/ITrackSummaryTool")
41 , m_trackFitter("Trk::KalmanFitter/TrkKalmanFitter")
43 , m_thetaCorr(1.)
44 , m_applyTrkSel(false)
45 , m_selPtMin(0)
46 , m_selEtaMin(-2.5)
47 , m_selEtaMax(2.5)
50 , m_selNHitTRTMin(20)
52 , m_selEtaCrackMin(0.7)
58 , m_nRejectPIX(0)
59 , m_nRejectSCT(0)
60 , m_nRejectTRT(0)
61 , m_nRejectPM(0)
62{
63 // declare algorithm parameters
64 declareProperty("TrackListInput" , m_trackListInput) ;
65 declareProperty("TrackListOutput" , m_trackListOutput) ;
66 declareProperty("TrackFitter" , m_trackFitter) ;
67 declareProperty("TrackSummaryTool" , m_trackSummaryTool) ;
68 declareProperty("UseThetaCorrection" , m_useThetaCorrection) ;
69 declareProperty("ApplyTrkSel" , m_applyTrkSel) ;
70 declareProperty("SelPtMin" , m_selPtMin) ;
71 declareProperty("SelEtaMin" , m_selEtaMin) ;
72 declareProperty("SelEtaMax" , m_selEtaMax) ;
73 declareProperty("SelNHitPIXMin" , m_selNHitPIXMin) ;
74 declareProperty("SelNHitSCTMin" , m_selNHitSCTMin) ;
75 declareProperty("SelNHitTRTMin" , m_selNHitTRTMin) ;
76 declareProperty("SelNHitTRTMinCrack" , m_selNHitTRTMinCrack) ;
77 declareProperty("SelEtaCrackMin" , m_selEtaCrackMin) ;
78 declareProperty("SelEtaCrackMax" , m_selEtaCrackMax) ;
79 declareProperty("SelChiSqPerDOFMin" , m_selChiSqPerDOFMin) ;
80}
size_t m_nRejectPM
Counter for number of tracks failing the addition of a pseudo-measurement (PM)
std::string m_trackListInput
Name of the TrackCollection (input)
double m_selPtMin
minimal pT cut value for the TrackSelection
bool m_useThetaCorrection
correct theta after TRT+PM(z0,theta) refit, small diff.
size_t m_nRejectSCT
Counter for number of tracks failing the min number of SCT hits req.
size_t m_nTracksProcessed
Counter for number of tracks processed.
double m_selEtaCrackMax
maximum |eta| to define the transition region
size_t m_nTracksAccepted
Counter for number of tracks passing the preselection and with PM.
std::string m_trackListOutput
Name of the TrackCollection (Output)
ToolHandle< Trk::ITrackFitter > m_trackFitter
The TrackFitter to refit the tracks (segment, momentum constraint)
int m_selNHitPIXMin
minimal number of PIX hits cut value for the TrackSelection
const TRT_ID * m_trtid
Identifier helper class for the TRT.
double m_selEtaMax
maximal eta cut value for the TrackSelection
int m_selNHitTRTMinCrack
minimal number of TRT hits cut value in trans.
double m_selEtaMin
minimal eta cut value for the TrackSelection
int m_selNHitSCTMin
minimal number of SCT hits cut value for the TrackSelection
ToolHandle< Trk::ITrackSummaryTool > m_trackSummaryTool
The summary tool to make the track selection.
double m_selEtaCrackMin
minimum |eta| to define the transition region
int m_selNHitTRTMin
minimal number of TRT hits cut value for the TrackSelection
double m_selChiSqPerDOFMin
maximal Chisquare per degree of freedom cut value for the TrackSelection
size_t m_nTracksPresel
Counter for number of tracks passing the preselection.
double m_thetaCorr
theta can be different after TRT+PM fit by < o(10e-4).
bool m_applyTrkSel
apply a selection on tracks or not
size_t m_nRejectTRT
Counter for number of tracks failing the min number of TRT hits req.
size_t m_nRejectPIX
Counter for number of tracks failing the min number of PIX hits req.
const AtlasDetectorID * m_idHelper
Detector ID helper.
AthAlgorithm()
Default constructor:
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ ~AddTRTMomConstr()

AddTRTMomConstr::~AddTRTMomConstr ( )

Definition at line 82 of file AddTRTMomConstr.cxx.

82{}

Member Function Documentation

◆ accept()

bool AddTRTMomConstr::accept ( const Trk::Track & track)
private

Verifies if the given track passes the track selection criteria specified via the jobOptions.

Definition at line 149 of file AddTRTMomConstr.cxx.

149 {
150 // selection for alignment quality tracks
151 ATH_MSG_DEBUG( "Inside accept(.)") ;
152
153 bool rc=true ;
154 const Trk::Track* pTrack = &track ;
155 const Trk::Perigee* mesp = pTrack->perigeeParameters();
156 if( !mesp ) {
157 ATH_MSG_WARNING("MeasuredPerigee pointer 0, track not accepted") ;
158 return false ;
159 }
160
161 float theta = mesp->parameters()[Trk::theta] ;
162 float pt = 0. ;
163 if( theta != 0 ){
164 float ptInv = std::abs( mesp->parameters()[Trk::qOverP] ) / std::sin( theta ) ;
165 if( ptInv != 0 ) {
166 pt = 1./ptInv ;
167 if( m_selPtMin > 0 && pt < m_selPtMin ) rc = false ;
168 }
169 } else {
170 ATH_MSG_WARNING( "theta = 0, q/p conversion to p_T failed!" );
171 return false ;
172 }
173
174 float eta = -std::log( std::tan( theta/2. ) ) ;
176 rc = false ;
177 }
178
179 float chisqpdof = track.fitQuality()->chiSquared() / track.fitQuality()->numberDoF() ;
180 if( m_selChiSqPerDOFMin > 0 && chisqpdof > m_selChiSqPerDOFMin ) rc = false ;
181 std::unique_ptr<const Trk::TrackSummary> summary
182 = m_trackSummaryTool->summary(Gaudi::Hive::currentContext(), *pTrack ) ;
184 ++m_nRejectPIX ;
185 rc = false;
186 }
188 ++m_nRejectSCT ;
189 rc = false ;
190 }
191 // different treatment for TRT in transition region
192 bool isInTransitionRegion = std::abs(eta) > m_selEtaCrackMin && std::abs(eta) < m_selEtaCrackMax ;
193 if( isInTransitionRegion ) {
195 ++m_nRejectTRT ;
196 rc = false ;
197 }
198 } else {
199 if( int(summary->get(Trk::numberOfTRTHits)) < m_selNHitTRTMin ) {
200 ++m_nRejectTRT ;
201 rc = false ;
202 }
203 }
204
205 // All cuts passed...
206 ATH_MSG_DEBUG( "Track selection:"
207 << "\n\t passed : " << rc
208 << "\n\t Pt = " << pt
209 << "\n\t phi = " << mesp->parameters()[Trk::phi]
210 << "\n\t eta = " << eta
211 << "\n\t nPIX = " << summary->get(Trk::numberOfPixelHits)
212 << "\n\t nSCT = " << summary->get(Trk::numberOfSCTHits)
213 << "\n\t nTRT = " << summary->get(Trk::numberOfTRTHits)
214 ) ;
215 ATH_MSG_DEBUG( "leaving accept(.)" ) ;
216 return rc ;
217} // accept(.)
Scalar eta() const
pseudorapidity method
Scalar theta() const
theta method
#define ATH_MSG_WARNING(x)
#define ATH_MSG_DEBUG(x)
static Double_t rc
const Perigee * perigeeParameters() const
return Perigee.
ParametersT< TrackParametersDim, Charged, PerigeeSurface > Perigee
@ theta
Definition ParamDefs.h:66
@ qOverP
perigee
Definition ParamDefs.h:67
@ phi
Definition ParamDefs.h:75
@ numberOfPixelHits
number of pixel layers on track with absence of hits

◆ addPM()

const Trk::MeasurementSet AddTRTMomConstr::addPM ( Trk::MeasurementSet & ms,
const Trk::PseudoMeasurementOnTrack * pm )
private

adds a PseudoMeasurement to a MeasurementSet

Definition at line 329 of file AddTRTMomConstr.cxx.

329 {
330 Trk::MeasurementSet sortedMS ;
331 sortedMS.push_back( pm ) ;
332 for( int i=0, i_max=ms.size() ; i!=i_max ; ++i ) {
333 sortedMS.push_back( ms[i] ) ;
334 }
335 return sortedMS ;
336}
std::vector< const MeasurementBase * > MeasurementSet
vector of fittable measurements
Definition FitterTypes.h:30

◆ addTRTMomentumConstraint()

Trk::Track * AddTRTMomConstr::addTRTMomentumConstraint ( const Trk::Track * track)
private

Strips of all TRT hits from the track and replaces them with a TRT momentum constraint from a the TRT segment belonging to the (extended) track (returns NULL in case of failure)

Definition at line 338 of file AddTRTMomConstr.cxx.

338 {
339 Trk::MeasurementSet setSi ;
340 Trk::MeasurementSet setTRT ;
341 //store all silicon measurements into the measurementset
342 for (const auto it:*(track->measurementsOnTrack())){
343 const Trk::RIO_OnTrack* rio = dynamic_cast <const Trk::RIO_OnTrack*>(it);
344 if (rio) {
345 const Identifier& surfaceID = (rio->identify()) ;
346 if( m_idHelper->is_sct(surfaceID) || m_idHelper->is_pixel(surfaceID) ) {
347 setSi.push_back ( it ) ;
348 }
349 if( m_idHelper->is_trt(surfaceID) ) {
350 setTRT.push_back ( it ) ;
351 }
352 }
353 }
354 ATH_MSG_DEBUG("TRTMomConstr() : Found " << setSi.size() << " Si measurm's!" ) ;
355 ATH_MSG_DEBUG("TRTMomConstr() : Found " << setTRT.size() << " TRT measurm's!") ;
356 if( int(setTRT.size()) < m_selNHitTRTMin ) {
357 ATH_MSG_DEBUG( "TRTMomConstr() : fewer TRT measurements than required: "
358 << setTRT.size() << " < " << m_selNHitTRTMin << ", skip track" ) ;
359 return nullptr ;
360 }
361
362 ATH_MSG_DEBUG( std::setiosflags( std::ios::scientific )) ;
363 ATH_MSG_DEBUG (std::setprecision( 7 )) ;
364 ATH_MSG_VERBOSE ( std::setiosflags( std::ios::scientific )) ;
365 ATH_MSG_VERBOSE ( std::setprecision( 7 )) ;
366 const Trk::Perigee* perTrk = track->perigeeParameters();
367 if( !perTrk ) {
368 ATH_MSG_WARNING("TRTMomConstr() : No Perigee parameter on track!");
369 return nullptr ;
370 }
371
372 // now add z_0 and theta from original track as PseudoMeas to the TRT MeasurementSet
373 const Trk::PseudoMeasurementOnTrack *pmFromSi = createPMfromSi( perTrk ) ;
374 if( !pmFromSi ) {
375 ATH_MSG_ERROR( "TRTMomConstr() : PseudoMeasurementOnTrack creation failed! " );
376 return nullptr ;
377 }
378 ATH_MSG_DEBUG( "TRTMomConstr() : pmFromSi " << *pmFromSi) ;
379 Trk::MeasurementSet setTRTPM = addPM( setTRT, pmFromSi ) ;
380
381 ATH_MSG_VERBOSE ( "TRTMomConstr() : TRT+PM MeasurementSet : " );
382 for( int i=0, i_max=setTRTPM.size() ; i!=i_max ; ++i ) {
383 ATH_MSG_VERBOSE ("============== i=" << i << " =============");
384 ATH_MSG_VERBOSE ( *(setTRTPM[i]));
385 }
386 ATH_MSG_VERBOSE ("==========================================");
387
388 // fit TRT part of the track with PseudoMeas on z_0, theta
389 Trk::Track* trkTRT = (m_trackFitter->fit(
390 Gaudi::Hive::currentContext(), setTRTPM, *perTrk, true, Trk::pion
391 //, Trk::muon
392 //, Trk::nonInteracting
393 )).release();
394 if (!trkTRT) {
395 ATH_MSG_DEBUG("TRTMomConstr() : Fit of TRT part of the track failed! ");
396 return nullptr;
397 }
398 const Trk::Perigee* perTRT = trkTRT->perigeeParameters();
399 ATH_MSG_DEBUG( "TRTMomConstr() : perTRT " << *perTRT) ;
400 // the theta value after TRT+PM fit can be different from the initial one by < o(10e-4). Correct q/p optionally
401 if( m_useThetaCorrection ) m_thetaCorr = std::sin( perTrk->parameters()[Trk::theta] )
402 / std::sin( perTRT->parameters()[Trk::theta] ) ;
403 ATH_MSG_DEBUG( "TRTMomConstr() : Scalefactor to correct q/p: " << m_thetaCorr) ;
404
405 // define new PM with the momentum constraint from the TRT to pass to Si
406 const Trk::PseudoMeasurementOnTrack *pmFromTRT = createPMfromTRT( perTrk, perTRT ) ;
407 if( !pmFromTRT ) {
408 ATH_MSG_ERROR( "TRTMomConstr() : PseudoMeasurementOnTrack creation failed! " );
409 return nullptr ;
410 }
411 ATH_MSG_DEBUG("TRTMomConstr() : pmFromTRT " << *pmFromTRT ) ;
412 Trk::MeasurementSet setSiPM = addPM( setSi, pmFromTRT ) ;
413
414 // fit Si part of the track with PM from TRT
415 Trk::Track* fittedTrack =
417 ->fit(Gaudi::Hive::currentContext(), setSiPM, *perTrk, true, Trk::pion
418 //, Trk::muon
419 //, Trk::nonInteracting
420 ).release();
421 if (!fittedTrack) {
422 ATH_MSG_DEBUG( "TRTMomConstr() : Si+TRT-p_T Track fit failed !" ) ;
423 } else {
424 const Trk::Perigee* perSi = fittedTrack->perigeeParameters();
425
426 ATH_MSG_DEBUG( "TRTMomConstr() : Si+PM(TRT) track parameteres @ perigee: " << *perSi ) ;
427 }
428
429 return fittedTrack;
430} // TRTMomentumConstraintForExtTracks
#define ATH_MSG_ERROR(x)
#define ATH_MSG_VERBOSE(x)
const Trk::PseudoMeasurementOnTrack * createPMfromSi(const Trk::Perigee *mp)
creates a PseudoMeasurement with (z0, theta) from extended track perigee parameters
const Trk::PseudoMeasurementOnTrack * createPMfromTRT(const Trk::Perigee *mpSi, const Trk::Perigee *mpTRT)
creates a PseudoMeasurement with (z0, theta, q/p) from TRT track perigee parameters
const Trk::MeasurementSet addPM(Trk::MeasurementSet &ms, const Trk::PseudoMeasurementOnTrack *pm)
adds a PseudoMeasurement to a MeasurementSet
Identifier identify() const
return the identifier -extends MeasurementBase

◆ createPMfromSi()

const Trk::PseudoMeasurementOnTrack * AddTRTMomConstr::createPMfromSi ( const Trk::Perigee * mp)
private

creates a PseudoMeasurement with (z0, theta) from extended track perigee parameters

Definition at line 269 of file AddTRTMomConstr.cxx.

269 {
270 Trk::DefinedParameter z0 ( mp->parameters()[Trk::z0], Trk::z0 ) ;
271 Trk::DefinedParameter theta( mp->parameters()[Trk::theta], Trk::theta ) ;
272 std::array<Trk::DefinedParameter, 2> defPar = {z0, theta};
273 if( !mp->covariance() ) return nullptr;
274 Trk::LocalParameters parFromSi( defPar ) ;
275 AmgSymMatrix(2) covFromSi;
276
277 covFromSi( 0, 0 ) = (*mp->covariance())( Trk::z0,Trk::z0 ) ;
278 covFromSi( 1, 1 ) = (*mp->covariance())( Trk::theta,Trk::theta ) ;
279 covFromSi( 1, 0 ) = (*mp->covariance())( Trk::z0, Trk::theta ) ;
280 covFromSi( 0, 1 ) = (*mp->covariance())( Trk::z0, Trk::theta ) ;
281
282 const Trk::Surface& mpSurf = mp->associatedSurface() ;
283
284 Trk::PseudoMeasurementOnTrack *pm = new Trk::PseudoMeasurementOnTrack( std::move(parFromSi)
285 , covFromSi
286 , mpSurf
287 ) ;
288 return pm ;
289}
#define AmgSymMatrix(dim)
@ z0
Definition ParamDefs.h:64
std::pair< double, ParamDefs > DefinedParameter
Typedef to of a std::pair<double, ParamDefs> to identify a passed-through double as a specific type o...

◆ createPMfromTRT()

const Trk::PseudoMeasurementOnTrack * AddTRTMomConstr::createPMfromTRT ( const Trk::Perigee * mpSi,
const Trk::Perigee * mpTRT )
private

creates a PseudoMeasurement with (z0, theta, q/p) from TRT track perigee parameters

< from Si

< from Si

< from TRT

Definition at line 291 of file AddTRTMomConstr.cxx.

292 {
293
294 if( !mpSi->covariance() || !mpTRT->covariance() ) return nullptr;
295
296 // since z0, theta not measured by TRT, take back initial Si values with blown up errors.
297 Trk::DefinedParameter z0TRT ( mpSi->parameters()[Trk::z0], Trk::z0 ) ;
298 Trk::DefinedParameter thetaTRT ( mpSi->parameters()[Trk::theta], Trk::theta ) ;
299 Trk::DefinedParameter qOvewPTRT( mpTRT->parameters()[Trk::qOverP]*m_thetaCorr, Trk::qOverP ) ;
300 std::array<Trk::DefinedParameter, 3> parFromTRT_vec = {z0TRT, thetaTRT,
301 qOvewPTRT};
302 Trk::LocalParameters parFromTRT(parFromTRT_vec);
303 double A = 1e6 ; // scale up the errorfor z0 and theta to avoid double-counting when including the PM
304
305
306 AmgSymMatrix(3) covFromTRT;
307
308 // take the z0 theta part from extended track (correl. messed up by TRT fit) and scale it up with A
309 covFromTRT( 0, 0 ) = (*mpSi->covariance())( Trk::z0, Trk::z0 ) * A * A ;
310 covFromTRT( 1, 1 ) = (*mpSi->covariance())( Trk::theta, Trk::theta ) * A * A ;
311 covFromTRT( 1, 0 ) = (*mpSi->covariance())( Trk::z0 , Trk::theta ) * A * A ;
312 covFromTRT( 0, 1 ) = (*mpSi->covariance())( Trk::z0 , Trk::theta ) * A * A ;
313 // scale up the cov terms dependant on z0 and theta by A, and m_thetaCorr from q/p. Same m_thetaCorr for theta
314 covFromTRT( 2, 2 ) = (*mpTRT->covariance())( Trk::qOverP, Trk::qOverP ) * m_thetaCorr * m_thetaCorr ;
315 covFromTRT( 2, 0 ) = (*mpTRT->covariance())( Trk::z0 , Trk::qOverP ) * A * m_thetaCorr ;
316 covFromTRT( 2, 1 ) = (*mpTRT->covariance())( Trk::theta, Trk::qOverP ) * A * m_thetaCorr * m_thetaCorr ;
317 covFromTRT( 0, 2 ) = (*mpTRT->covariance())( Trk::z0 , Trk::qOverP ) * A * m_thetaCorr ;
318 covFromTRT( 1, 2 ) = (*mpTRT->covariance())( Trk::theta, Trk::qOverP ) * A * m_thetaCorr * m_thetaCorr ;
319
320 const Trk::Surface& mpTRTSurf = mpSi->associatedSurface() ;
321
322 Trk::PseudoMeasurementOnTrack *pm = new Trk::PseudoMeasurementOnTrack( std::move(parFromTRT)
323 , covFromTRT
324 , mpTRTSurf
325 ) ;
326 return pm ;
327}

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T, V, H > & hndl,
const SG::VarHandleKeyType &  )
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< Algorithm > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ dump()

MsgStream & AddTRTMomConstr::dump ( MsgStream & outst) const

Definition at line 436 of file AddTRTMomConstr.cxx.

436 {
437 outst << "\n|-------------------------------------------------------------------";
438 outst << "-----------------------------|\n" ;
439 outst << "| processed : "
440 << std::setw(7) << m_nTracksProcessed
441 << " tracks |\n";
442 outst << "| accepted by track presel. : "
443 << std::setw(7) << m_nTracksPresel
444 << " tracks |\n";
445 outst << "| accepted by track presel. + PM : "
446 << std::setw(7) << m_nTracksAccepted
447 << " tracks |\n";
448 outst << "| ------------------------------------------------------------------";
449 outst << "---------------------------- |\n" ;
450 outst << "| reject by # PIX hits : "
451 << std::setw(7) << m_nRejectPIX
452 << " tracks |\n";
453 outst << "| reject by # SCT hits : "
454 << std::setw(7) << m_nRejectSCT
455 << " tracks |\n";
456 outst << "| reject by # TRT hits : "
457 << std::setw(7) << m_nRejectTRT
458 << " tracks |\n";
459 outst << "| ------------------------------------------------------------------";
460 outst << "---------------------------- |\n" ;
461 outst << "| reject by exist. PM(TRT) : "
462 << std::setw(7) << m_nRejectPM
463 << " tracks |\n";
464
465 outst << "|-------------------------------------------------------------------";
466 outst << "-----------------------------|\n" ;
467 return outst ;
468}

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< Algorithm > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ execute()

StatusCode AddTRTMomConstr::execute ( )

execute method of this algorithm that is called for each event

Definition at line 117 of file AddTRTMomConstr.cxx.

117 {
118 if( !m_trackListOutput.empty() && !m_trackListInput.empty() ) {
119 const TrackCollection* inputtracks = nullptr;
120 ATH_CHECK(evtStore()->retrieve( inputtracks, m_trackListInput) );
121 auto outputtracks = std::make_unique<ConstDataVector<TrackCollection> >( SG::VIEW_ELEMENTS ) ;
122 for (const auto it : *inputtracks){
123 auto track=it;
124 if( m_applyTrkSel && !accept( *track ) ) {
125 ATH_MSG_DEBUG( "kinematic requirements not passed, skip track") ;
126 continue ;
127 }
130 if( track ) {
131 ATH_MSG_VERBOSE ( "addTRTMomentumConstraint(.) produced new track" ) ;
132 outputtracks->push_back( track ) ;
133 } else {
134 ATH_MSG_DEBUG( "addTRTMomentumConstraint(.) returned 0 pointer, skip track") ;
135 ++m_nRejectPM ;
136 }
137 }
138
139 m_nTracksProcessed += inputtracks->size() ;
140 m_nTracksAccepted += outputtracks->size() ;
141
142 if( evtStore()->record( std::move(outputtracks), m_trackListOutput ).isFailure() ) {
143 ATH_MSG_ERROR( "Failed to record trackcollection with name " << m_trackListOutput );
144 }
145 }
146 return StatusCode::SUCCESS;
147} // execute(.)
#define ATH_CHECK
Evaluate an expression and check for errors.
DataVector< Trk::Track > TrackCollection
This typedef represents a collection of Trk::Track objects.
Trk::Track * addTRTMomentumConstraint(const Trk::Track *track)
Strips of all TRT hits from the track and replaces them with a TRT momentum constraint from a the TRT...
bool accept(const Trk::Track &track)
Verifies if the given track passes the track selection criteria specified via the jobOptions.
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
retrieve(aClass, aKey=None)
Definition PyKernel.py:110

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ extraOutputDeps()

const DataObjIDColl & AthAlgorithm::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

This list is extended to include symlinks implied by inheritance relations.

Definition at line 50 of file AthAlgorithm.cxx.

51{
52 // If we didn't find any symlinks to add, just return the collection
53 // from the base class. Otherwise, return the extended collection.
54 if (!m_extendedExtraObjects.empty()) {
56 }
57 return Algorithm::extraOutputDeps();
58}
DataObjIDColl m_extendedExtraObjects

◆ finalize()

StatusCode AddTRTMomConstr::finalize ( )

finalize method of this algorithm.

Prints out a summary of all events

Definition at line 112 of file AddTRTMomConstr.cxx.

112 {
113 ATH_MSG_DEBUG( (*this) ) ;
114 return StatusCode::SUCCESS;
115}

◆ findinnertrthit()

const Trk::TrackStateOnSurface * AddTRTMomConstr::findinnertrthit ( const Trk::Track * track)
private

Returns the innermost TRT TSOS on the given Track.

Definition at line 244 of file AddTRTMomConstr.cxx.

244 {
245 ATH_MSG_VERBOSE ( "Inside findinnerscthit: " << track->trackStateOnSurfaces()->size() );
246 double rmin=9999999. ;
247 const Trk::TrackStateOnSurface* rc=nullptr ;
248 for (const Trk::TrackStateOnSurface* tsos : *track->trackStateOnSurfaces()) {
249 if( !tsos->type(Trk::TrackStateOnSurface::Outlier) &&
250 tsos->measurementOnTrack() &&
251 tsos->trackParameters() ) {
252 ATH_MSG_VERBOSE ( "Found good measuredtrackparameters" );
253 const InDet::TRT_DriftCircleOnTrack* trthit = dynamic_cast<const InDet::TRT_DriftCircleOnTrack*>(tsos->measurementOnTrack());
254 if(trthit) {
255 ATH_MSG_VERBOSE ( "Found TRT_DriftCircleOnTrack" );
256 const Amg::Vector3D& pos = trthit->globalPosition() ;
257 double r = sqrt(pos.x()*pos.x() + pos.y()*pos.y()) ;
258 if(rc==nullptr || r<rmin) {
259 rc = tsos ;
260 rmin = r ;
261 }
262 }
263 }
264 }
265 ATH_MSG_VERBOSE ( "Returning surface with adress: " << rc << " at radius " << rmin );
266 return rc ;
267}
virtual const Amg::Vector3D & globalPosition() const override final
return the global position of this RIO_OnTrack
@ Outlier
This TSoS contains an outlier, that is, it contains a MeasurementBase/RIO_OnTrack which was not used ...
int r
Definition globals.cxx:22
Eigen::Matrix< double, 3, 1 > Vector3D

◆ findouterscthit()

const Trk::TrackStateOnSurface * AddTRTMomConstr::findouterscthit ( const Trk::Track * track)
private

Returns the outermost SCT TSOS on the given Track.

Definition at line 219 of file AddTRTMomConstr.cxx.

219 {
220 ATH_MSG_VERBOSE ("Inside findouterscthit: " << track->trackStateOnSurfaces()->size());
221 double rmax=0. ;
222 const Trk::TrackStateOnSurface* rc=nullptr ;
223 for (const Trk::TrackStateOnSurface* tsos : *track->trackStateOnSurfaces()) {
224 if( !tsos->type(Trk::TrackStateOnSurface::Outlier) &&
225 tsos->measurementOnTrack() &&
226 tsos->trackParameters() ) {
227 ATH_MSG_VERBOSE ( "Found good measuredtrackparameters" );
228 const InDet::SCT_ClusterOnTrack* sctclus = dynamic_cast<const InDet::SCT_ClusterOnTrack*>(tsos->measurementOnTrack());
229 if(sctclus) {
230 ATH_MSG_VERBOSE ( "Found SCT_ClusterOnTrack");
231 const Amg::Vector3D& pos = sctclus->globalPosition() ;
232 double r = std::sqrt(pos.x()*pos.x() + pos.y()*pos.y()) ;
233 if(rc==nullptr || r>rmax) {
234 rc = tsos ;
235 rmax = r ;
236 }
237 }
238 }
239 }
240 ATH_MSG_VERBOSE ( "Returning surface with adress: " << rc << " at radius " << rmax);
241 return rc ;
242}
virtual const Amg::Vector3D & globalPosition() const override
returns global position (gathered through Surface constraint)

◆ initialize()

StatusCode AddTRTMomConstr::initialize ( )

initialize method of this algorithm.

Definition at line 84 of file AddTRTMomConstr.cxx.

84 {
85 //retrieve the DetectorStore service
88 ATH_CHECK(detStore()->retrieve(m_idHelper, "AtlasID"));
89 // get TrackSummaryTool
90 ATH_CHECK(m_trackSummaryTool.retrieve());
91 // Set up fitter
92 ATH_CHECK(m_trackFitter.retrieve());
93 // Print input properties
94 if( m_applyTrkSel ) {
96 "Track selection will be applied:"
97 << "\n " << m_selEtaMin << " < eta < " << m_selEtaMax
98 << "\n trans. region: " << m_selEtaCrackMin << " < |eta| < " << m_selEtaCrackMax
99 << "\n pT > " << m_selPtMin/Gaudi::Units::GeV << " GeV"
100 << "\n number_of_PIXEL_hits >= " << m_selNHitPIXMin
101 << "\n number_of_SCT_hits >= " << m_selNHitSCTMin
102 << "\n number_of_TRT_hits >= " << m_selNHitTRTMin
103 << "\n number_of_TRT_hits in crack >= " << m_selNHitTRTMinCrack
104 << "\n chi2/dof < " << m_selChiSqPerDOFMin
105 ) ;
106 } else {
107 ATH_MSG_DEBUG( "NO selection will be applied to tracks" ) ;
108 }
109 return StatusCode::SUCCESS;
110} // initialize(.)
const ServiceHandle< StoreGateSvc > & detStore() const

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Algorithm > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ msg()

MsgStream & AthCommonMsg< Algorithm >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ msgLvl()

bool AthCommonMsg< Algorithm >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< Algorithm > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ sysInitialize()

StatusCode AthAlgorithm::sysInitialize ( )
overridevirtualinherited

Override sysInitialize.

Override sysInitialize from the base class.

Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc

Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc

Reimplemented from AthCommonDataStore< AthCommonMsg< Algorithm > >.

Reimplemented in AthAnalysisAlgorithm, AthFilterAlgorithm, AthHistogramAlgorithm, and PyAthena::Alg.

Definition at line 66 of file AthAlgorithm.cxx.

66 {
68
69 if (sc.isFailure()) {
70 return sc;
71 }
72 ServiceHandle<ICondSvc> cs("CondSvc",name());
73 for (auto h : outputHandles()) {
74 if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
75 // do this inside the loop so we don't create the CondSvc until needed
76 if ( cs.retrieve().isFailure() ) {
77 ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
78 return StatusCode::SUCCESS;
79 }
80 if (cs->regHandle(this,*h).isFailure()) {
81 sc = StatusCode::FAILURE;
82 ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
83 << " with CondSvc");
84 }
85 }
86 }
87 return sc;
88}
static Double_t sc
virtual StatusCode sysInitialize() override
Override sysInitialize.
AthCommonDataStore(const std::string &name, T... args)
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
::StatusCode StatusCode
StatusCode definition for legacy code.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Algorithm > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308 {
309 // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310 // << " size: " << m_vhka.size() << endmsg;
311 for (auto &a : m_vhka) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka

Member Data Documentation

◆ m_applyTrkSel

bool AddTRTMomConstr::m_applyTrkSel
private

apply a selection on tracks or not

Definition at line 82 of file AddTRTMomConstr.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Algorithm > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Algorithm > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthAlgorithm::m_extendedExtraObjects
privateinherited

Definition at line 79 of file AthAlgorithm.h.

◆ m_idHelper

const AtlasDetectorID* AddTRTMomConstr::m_idHelper
private

Detector ID helper.

Definition at line 72 of file AddTRTMomConstr.h.

◆ m_nRejectPIX

size_t AddTRTMomConstr::m_nRejectPIX
private

Counter for number of tracks failing the min number of PIX hits req.

Definition at line 96 of file AddTRTMomConstr.h.

◆ m_nRejectPM

size_t AddTRTMomConstr::m_nRejectPM
private

Counter for number of tracks failing the addition of a pseudo-measurement (PM)

Definition at line 99 of file AddTRTMomConstr.h.

◆ m_nRejectSCT

size_t AddTRTMomConstr::m_nRejectSCT
private

Counter for number of tracks failing the min number of SCT hits req.

Definition at line 97 of file AddTRTMomConstr.h.

◆ m_nRejectTRT

size_t AddTRTMomConstr::m_nRejectTRT
private

Counter for number of tracks failing the min number of TRT hits req.

Definition at line 98 of file AddTRTMomConstr.h.

◆ m_nTracksAccepted

size_t AddTRTMomConstr::m_nTracksAccepted
private

Counter for number of tracks passing the preselection and with PM.

Definition at line 95 of file AddTRTMomConstr.h.

◆ m_nTracksPresel

size_t AddTRTMomConstr::m_nTracksPresel
private

Counter for number of tracks passing the preselection.

Definition at line 94 of file AddTRTMomConstr.h.

◆ m_nTracksProcessed

size_t AddTRTMomConstr::m_nTracksProcessed
private

Counter for number of tracks processed.

Definition at line 93 of file AddTRTMomConstr.h.

◆ m_selChiSqPerDOFMin

double AddTRTMomConstr::m_selChiSqPerDOFMin
private

maximal Chisquare per degree of freedom cut value for the TrackSelection

Definition at line 92 of file AddTRTMomConstr.h.

◆ m_selEtaCrackMax

double AddTRTMomConstr::m_selEtaCrackMax
private

maximum |eta| to define the transition region

Definition at line 91 of file AddTRTMomConstr.h.

◆ m_selEtaCrackMin

double AddTRTMomConstr::m_selEtaCrackMin
private

minimum |eta| to define the transition region

Definition at line 90 of file AddTRTMomConstr.h.

◆ m_selEtaMax

double AddTRTMomConstr::m_selEtaMax
private

maximal eta cut value for the TrackSelection

Definition at line 85 of file AddTRTMomConstr.h.

◆ m_selEtaMin

double AddTRTMomConstr::m_selEtaMin
private

minimal eta cut value for the TrackSelection

Definition at line 84 of file AddTRTMomConstr.h.

◆ m_selNHitPIXMin

int AddTRTMomConstr::m_selNHitPIXMin
private

minimal number of PIX hits cut value for the TrackSelection

Definition at line 86 of file AddTRTMomConstr.h.

◆ m_selNHitSCTMin

int AddTRTMomConstr::m_selNHitSCTMin
private

minimal number of SCT hits cut value for the TrackSelection

Definition at line 87 of file AddTRTMomConstr.h.

◆ m_selNHitTRTMin

int AddTRTMomConstr::m_selNHitTRTMin
private

minimal number of TRT hits cut value for the TrackSelection

Definition at line 88 of file AddTRTMomConstr.h.

◆ m_selNHitTRTMinCrack

int AddTRTMomConstr::m_selNHitTRTMinCrack
private

minimal number of TRT hits cut value in trans.

region for the TrackSelection

Definition at line 89 of file AddTRTMomConstr.h.

◆ m_selPtMin

double AddTRTMomConstr::m_selPtMin
private

minimal pT cut value for the TrackSelection

Definition at line 83 of file AddTRTMomConstr.h.

◆ m_thetaCorr

double AddTRTMomConstr::m_thetaCorr
private

theta can be different after TRT+PM fit by < o(10e-4).

Correct q/p optionally

Definition at line 81 of file AddTRTMomConstr.h.

◆ m_trackFitter

ToolHandle<Trk::ITrackFitter> AddTRTMomConstr::m_trackFitter
private

The TrackFitter to refit the tracks (segment, momentum constraint)

Definition at line 77 of file AddTRTMomConstr.h.

◆ m_trackListInput

std::string AddTRTMomConstr::m_trackListInput
private

Name of the TrackCollection (input)

Definition at line 74 of file AddTRTMomConstr.h.

◆ m_trackListOutput

std::string AddTRTMomConstr::m_trackListOutput
private

Name of the TrackCollection (Output)

Definition at line 75 of file AddTRTMomConstr.h.

◆ m_trackSummaryTool

ToolHandle<Trk::ITrackSummaryTool> AddTRTMomConstr::m_trackSummaryTool
private

The summary tool to make the track selection.

Definition at line 76 of file AddTRTMomConstr.h.

◆ m_trtid

const TRT_ID* AddTRTMomConstr::m_trtid
private

Identifier helper class for the TRT.

Definition at line 73 of file AddTRTMomConstr.h.

◆ m_useThetaCorrection

bool AddTRTMomConstr::m_useThetaCorrection
private

correct theta after TRT+PM(z0,theta) refit, small diff.

typically < o(3x10e-4)

Definition at line 80 of file AddTRTMomConstr.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< Algorithm > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< Algorithm > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


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