|
ATLAS Offline Software
|
Algorithm using an instance of a ITrackFitter to refit the tracks of a given pseudotrack collection after changing the cluster position to the truth particle position.
More...
#include <ReFitTrackWithTruth.h>
|
| ReFitTrackWithTruth (const std::string &name, ISvcLocator *pSvcLocator) |
| standard Algorithm constructor More...
|
|
virtual StatusCode | initialize () override |
|
virtual StatusCode | execute () override |
|
virtual StatusCode | sysInitialize () override |
| Override sysInitialize. More...
|
|
virtual const DataObjIDColl & | extraOutputDeps () const override |
| Return the list of extra output dependencies. More...
|
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
|
SG::ReadHandleKey< TrackCollection > | m_inputTrackColName {this,"InputTrackColName","","collection name for tracks to be refitted"} |
|
SG::WriteHandleKey< TrackCollection > | m_outputTrackCollectionName {this,"OutputTrackColName","ReFitted_TracksWithTruth","collection name for output tracks"} |
|
boost::thread_specific_ptr< TRandom3 > | m_random |
| smear away! More...
|
|
Trk::RunOutlierRemoval | m_runOutlier = false |
|
int | m_matEffects = 3 |
|
Gaudi::Property< bool > | m_saveWrongHits {this, "SaveWrongHits", false} |
|
Gaudi::Property< bool > | m_fixWrongHits {this, "FixWrongHits", false} |
|
Gaudi::Property< bool > | m_rejNoiseHits {this, "RejectNoiseHits", false} |
|
Trk::ParticleHypothesis | m_ParticleHypothesis = Trk::pion |
|
SG::ReadHandleKey< SiHitCollection > | m_siHitCollectionName {this,"SiHitCollectionName","PixelHits",""} |
|
SG::ReadHandleKey< InDetSimDataCollection > | m_SDOContainerName {this,"MC_SDOs","PixelSDO_Map"} |
|
SG::ReadHandleKey< TrackTruthCollection > | m_truthMapName {this,"TruthMap","InDetTracksTruthCollection"} |
|
Gaudi::Property< std::vector< float > > | m_resolutionRPhi {this, "ResolutionRPhi", {}} |
|
Gaudi::Property< std::vector< float > > | m_resolutionZ {this, "ResolutionZ", {}} |
|
Gaudi::Property< std::vector< float > > | m_errorRPhi {this, "ErrorFactorRPhi", {}} |
|
Gaudi::Property< std::vector< float > > | m_errorZ {this, "ErrorFactorZ", {}} |
|
ToolHandle< Trk::ITrackFitter > | m_ITrackFitter {this, "FitterTool", "Trk::GlobalChi2Fitter/InDetTrackFitter" } |
| the refit tool More...
|
|
ToolHandle< Trk::IExtendedTrackSummaryTool > | m_trkSummaryTool {this, "SummaryTool", "Trk::TrackSummaryTool/InDetTrackSummaryTool" } |
| the track summary tool More...
|
|
ToolHandle< Trk::IPRDtoTrackMapTool > | m_assoTool {this, "AssociationTool", "Trk::PRDtoTrackMapTool" } |
| Tool to create and populate PRD to track. More...
|
|
const AtlasDetectorID * | m_idHelper = nullptr |
| Detector ID helper. More...
|
|
const PixelID * | m_pixelID = nullptr |
| Pixel ID. More...
|
|
DataObjIDColl | m_extendedExtraObjects |
|
StoreGateSvc_t | m_evtStore |
| Pointer to StoreGate (event store by default) More...
|
|
StoreGateSvc_t | m_detStore |
| Pointer to StoreGate (detector store by default) More...
|
|
std::vector< SG::VarHandleKeyArray * > | m_vhka |
|
bool | m_varHandleArraysDeclared |
|
Algorithm using an instance of a ITrackFitter to refit the tracks of a given pseudotrack collection after changing the cluster position to the truth particle position.
- Author
- Gabri.nosp@m.el.F.nosp@m.acini.nosp@m.@cer.nosp@m.n.ch, Andre.nosp@m.a.Sc.nosp@m.iandr.nosp@m.a@ce.nosp@m.rn.ch
Definition at line 54 of file ReFitTrackWithTruth.h.
◆ StoreGateSvc_t
◆ Track
◆ ReFitTrackWithTruth()
Trk::ReFitTrackWithTruth::ReFitTrackWithTruth |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
StatusCode Trk::ReFitTrackWithTruth::execute |
( |
| ) |
|
|
overridevirtual |
Definition at line 112 of file ReFitTrackWithTruth.cxx.
115 std::unique_ptr<Trk::PRDtoTrackMap> prd_to_track_map(
m_assoTool->createPRDtoTrackMap());
116 const EventContext& ctx = Gaudi::Hive::currentContext();
119 if (!tracks.isValid()) {
121 return StatusCode::FAILURE;
126 if (!siHits.isValid()) {
128 return StatusCode::FAILURE;
133 if (!sdoCollection.isValid()) {
135 return StatusCode::FAILURE;
140 if (!truthMap.isValid()) {
142 return StatusCode::FAILURE;
146 std::vector<std::unique_ptr<Trk::Track> > newtracks;
163 od0 = origPerigee->parameters()[
Trk::d0];
164 oz0 = origPerigee->parameters()[
Trk::z0];
165 ophi0 = origPerigee->parameters()[
Trk::phi0];
166 otheta = origPerigee->parameters()[
Trk::theta];
168 ATH_MSG_DEBUG (
"Original parameters " << od0 <<
" " << oz0 <<
" " << ophi0 <<
" " << otheta <<
" " << oqOverP);
180 TrackTruthCollection::const_iterator
found = truthMap->find(tracklink2);
181 if (
found == truthMap->end() ) {
continue; }
182 if ( !
found->second.particleLink().isValid() ) {
continue; }
183 if (
found->second.probability() < minProb ) {
continue; }
188 std::vector<const Trk::MeasurementBase*> measurementSet;
189 std::vector<const Trk::MeasurementBase*> trash;
191 ATH_MSG_DEBUG (
"Loop over measurementsOnTrack " << (*itr)->measurementsOnTrack()->size() );
192 for (
const auto *measurement : *((*itr)->measurementsOnTrack())) {
197 if (rio ==
nullptr) {
198 ATH_MSG_WARNING(
"Cannot get RIO_OnTrack from measurement. Hit will NOT be included in track fit.");
205 measurementSet.push_back( measurement );
211 if (
pix ==
nullptr) {
233 double maxEnergyDeposit(-1);
236 if ( !hasSDOMatch ) {
241 if( matchedSiHits.empty() ) {
242 if( !
m_rejNoiseHits ) { measurementSet.push_back( measurement ); }
246 for(
const auto& siHit : matchedSiHits ) {
247 if (siHit.energyLoss() > maxEnergyDeposit) {
248 maxEnergyDeposit = siHit.energyLoss();
249 maxEDepSiHit = siHit;
253 measurementSet.push_back( measurement );
259 if( matchedSiHits.empty() ) {
263 ATH_MSG_DEBUG (
"N SiHit matching cluster: " << matchedSiHits.size());
267 for(
const auto& siHit : matchedSiHits ) {
268 if (siHit.energyLoss() > maxEnergyDeposit) {
269 maxEnergyDeposit = siHit.energyLoss();
270 maxEDepSiHit = siHit;
285 HepGeom::Point3D<double> smearedPosition =
smearTruthPosition( averagePosition,
bec, layer_disk, design );
302 if(
bec!=0) layer_disk++;
303 if(pixWidth.
phiR()>0) {
326 measurementSet.push_back( pcot);
327 trash.push_back(pcot);
336 ATH_MSG_DEBUG (
"Fit new tracks with measurementSet : " << measurementSet.size());
337 std::unique_ptr<Trk::Track> newtrack;
346 ATH_MSG_ERROR (
"Refit Logic Error. No new track. Message: " <<
e.what());
358 if (aMeasPer==
nullptr){
361 double d0 = aMeasPer->parameters()[
Trk::d0];
362 double z0 = aMeasPer->parameters()[
Trk::z0];
367 << (od0-
d0)/od0 <<
" "
368 << (oz0-
z0)/oz0 <<
" "
369 << (ophi0-
phi0)/ophi0 <<
" "
370 << (otheta-
theta)/otheta <<
" "
371 << (oqOverP-
qOverP)/oqOverP );
376 if (newtrack) { newtracks.push_back(std::move(newtrack)); }
384 for(
const std::unique_ptr<Trk::Track> &new_track : newtracks ) {
390 std::unique_ptr<TrackCollection> new_track_collection = std::make_unique<TrackCollection>();
391 new_track_collection->
reserve(newtracks.size());
392 for(std::unique_ptr<Trk::Track> &new_track : newtracks ) {
394 new_track_collection->
push_back(std::move(new_track));
400 ATH_MSG_INFO (
"ReFitTrackWithTruth::execute() completed");
401 return StatusCode::SUCCESS;
◆ extraDeps_update_handler()
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.
57 return Algorithm::extraOutputDeps();
◆ getEtaPosErrorFactor()
double Trk::ReFitTrackWithTruth::getEtaPosErrorFactor |
( |
int |
layer | ) |
const |
|
private |
◆ getEtaPosResolution()
double Trk::ReFitTrackWithTruth::getEtaPosResolution |
( |
int |
layer | ) |
const |
|
private |
◆ getPhiPosErrorFactor()
double Trk::ReFitTrackWithTruth::getPhiPosErrorFactor |
( |
int |
layer | ) |
const |
|
private |
◆ getPhiPosResolution()
double Trk::ReFitTrackWithTruth::getPhiPosResolution |
( |
int |
layer | ) |
const |
|
private |
◆ initialize()
StatusCode Trk::ReFitTrackWithTruth::initialize |
( |
| ) |
|
|
overridevirtual |
Definition at line 42 of file ReFitTrackWithTruth.cxx.
55 return StatusCode::FAILURE;
62 return StatusCode::FAILURE;
70 return StatusCode::FAILURE;
83 return StatusCode::FAILURE;
108 return StatusCode::SUCCESS;
◆ inputHandles()
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.
◆ IsClusterFromTruth()
Definition at line 537 of file ReFitTrackWithTruth.cxx.
547 for(
const auto &hitIdentifier : pixClus->
rdoList() ) {
550 auto pos = sdoCollection.find(hitIdentifier);
551 if(
pos == sdoCollection.end() ) {
continue; }
554 for(
const auto& deposit :
pos->second.getdeposits() ){
555 if( !deposit.first ){
continue; }
556 if(
HepMC::uniqueID(&(deposit.first)) != uniqueIdToMatch ) {
continue; }
◆ matchSiHitsToCluster()
Definition at line 404 of file ReFitTrackWithTruth.cxx.
410 ATH_MSG_VERBOSE(
" Have " << (*siHitCollection).size() <<
" SiHits to look through" );
411 std::vector<SiHit> matchingHits;
416 ATH_MSG_WARNING(
"Do not have detector element to find the local position of SiHits!");
423 std::vector<const SiHit* > multiMatchingHits;
426 for (
const auto& siHit : *siHitCollection) {
428 if ( uniqueIdToMatch > 0 ) {
429 if (
HepMC::uniqueID(&(siHit.particleLink())) != uniqueIdToMatch ) {
continue; }
433 if( !siHit.isPixel() ) {
continue; }
443 multiMatchingHits.push_back(&siHit);
451 ATH_MSG_DEBUG(
"Found " << multiMatchingHits.size() <<
" SiHit " );
456 for ( ; siHitIter != multiMatchingHits.end(); ++siHitIter) {
457 const SiHit* lowestXPos = *siHitIter;
458 const SiHit* highestXPos = *siHitIter;
462 std::vector<const SiHit* > ajoiningHits;
463 ajoiningHits.push_back( *siHitIter );
465 siHitIter2 = siHitIter+1;
466 while ( siHitIter2 != multiMatchingHits.end() ) {
476 if (std::abs((highestXPos->
localEndPosition().x()-(*siHitIter2)->localStartPosition().x()))<0.00005 &&
477 std::abs((highestXPos->
localEndPosition().y()-(*siHitIter2)->localStartPosition().y()))<0.00005 &&
478 std::abs((highestXPos->
localEndPosition().z()-(*siHitIter2)->localStartPosition().z()))<0.00005 )
480 highestXPos = *siHitIter2;
481 ajoiningHits.push_back( *siHitIter2 );
483 siHitIter2 = multiMatchingHits.erase( siHitIter2 );
485 }
else if (std::abs((lowestXPos->
localStartPosition().x()-(*siHitIter2)->localEndPosition().x()))<0.00005 &&
486 std::abs((lowestXPos->
localStartPosition().y()-(*siHitIter2)->localEndPosition().y()))<0.00005 &&
487 std::abs((lowestXPos->
localStartPosition().z()-(*siHitIter2)->localEndPosition().z()))<0.00005)
489 lowestXPos = *siHitIter2;
490 ajoiningHits.push_back( *siHitIter2 );
492 siHitIter2 = multiMatchingHits.erase( siHitIter2 );
499 if( ajoiningHits.empty()){
503 if(ajoiningHits.size() == 1){
505 matchingHits.push_back( *ajoiningHits[0] );
509 ATH_MSG_DEBUG(
"Merging " << ajoiningHits.size() <<
" SiHits together." );
514 for(
auto& siHit : ajoiningHits){
515 energyDep += siHit->energyLoss();
516 time += siHit->meanTime();
526 (*siHitIter)->getBarrelEndcap(),
527 (*siHitIter)->getLayerDisk(),
528 (*siHitIter)->getEtaModule(),
529 (*siHitIter)->getPhiModule(),
530 (*siHitIter)->getSide() );
531 ATH_MSG_DEBUG(
"Finished Merging " << ajoiningHits.size() <<
" SiHits together." );
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
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()
◆ renounceArray()
◆ smearTruthPosition()
Definition at line 566 of file ReFitTrackWithTruth.cxx.
571 HepGeom::Point3D<double> smeared(0,0,0);
573 smeared.setX(orig.x());
578 smeared.setY(orig.y() + smearLocY);
579 smeared.setZ(orig.z() + smearLocZ);
583 smeared.setY(orig.y());
584 smeared.setZ(orig.z());
588 if (smeared.y()>design->
width()/2) {
589 smeared.setY(design->
width()/2-1
e-6);
590 }
else if (smeared.y()<-design->
width()/2) {
591 smeared.setY(-design->
width()/2+1
e-6);
593 if (smeared.z()>design->
length()/2) {
594 smeared.setZ(design->
length()/2-1
e-6);
595 }
else if (smeared.z()<-design->
length()/2) {
596 smeared.setZ(-design->
width()/2+1
e-6);
◆ sysInitialize()
StatusCode AthAlgorithm::sysInitialize |
( |
| ) |
|
|
overridevirtualinherited |
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ m_assoTool
◆ m_detStore
◆ m_errorRPhi
Gaudi::Property<std::vector<float> > Trk::ReFitTrackWithTruth::m_errorRPhi {this, "ErrorFactorRPhi", {}} |
|
private |
◆ m_errorZ
Gaudi::Property<std::vector<float> > Trk::ReFitTrackWithTruth::m_errorZ {this, "ErrorFactorZ", {}} |
|
private |
◆ m_evtStore
◆ m_extendedExtraObjects
DataObjIDColl AthAlgorithm::m_extendedExtraObjects |
|
privateinherited |
◆ m_fixWrongHits
Gaudi::Property<bool> Trk::ReFitTrackWithTruth::m_fixWrongHits {this, "FixWrongHits", false} |
|
private |
◆ m_idHelper
◆ m_inputTrackColName
◆ m_ITrackFitter
◆ m_matEffects
int Trk::ReFitTrackWithTruth::m_matEffects = 3 |
|
private |
◆ m_outputTrackCollectionName
◆ m_ParticleHypothesis
◆ m_pixelID
const PixelID* Trk::ReFitTrackWithTruth::m_pixelID = nullptr |
|
private |
◆ m_random
boost::thread_specific_ptr<TRandom3> Trk::ReFitTrackWithTruth::m_random |
|
private |
◆ m_rejNoiseHits
Gaudi::Property<bool> Trk::ReFitTrackWithTruth::m_rejNoiseHits {this, "RejectNoiseHits", false} |
|
private |
◆ m_resolutionRPhi
Gaudi::Property<std::vector<float> > Trk::ReFitTrackWithTruth::m_resolutionRPhi {this, "ResolutionRPhi", {}} |
|
private |
◆ m_resolutionZ
Gaudi::Property<std::vector<float> > Trk::ReFitTrackWithTruth::m_resolutionZ {this, "ResolutionZ", {}} |
|
private |
◆ m_runOutlier
◆ m_saveWrongHits
Gaudi::Property<bool> Trk::ReFitTrackWithTruth::m_saveWrongHits {this, "SaveWrongHits", false} |
|
private |
◆ m_SDOContainerName
◆ m_siHitCollectionName
◆ m_trkSummaryTool
◆ m_truthMapName
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
void reserve(size_type n)
Attempt to preallocate enough memory for a specified number of elements.
def retrieve(aClass, aKey=None)
Gaudi::Property< std::vector< float > > m_resolutionRPhi
JetConstituentVector::iterator iterator
bool is_pixel(Identifier id) const
SG::ReadHandleKey< InDetSimDataCollection > m_SDOContainerName
ToolHandle< Trk::IExtendedTrackSummaryTool > m_trkSummaryTool
the track summary tool
Const iterator class for DataVector/DataList.
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
double getPhiPosErrorFactor(int layer) const
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
virtual double width() const =0
Method to calculate average width of a module.
HepGeom::Point3D< double > localEndPosition() const
static bool IsClusterFromTruth(const InDet::PixelCluster *pixClus, const int uniqueIdToMatch, const InDetSimDataCollection &sdoCollection)
Gaudi::Property< bool > m_saveWrongHits
SG::ReadHandleKey< TrackCollection > m_inputTrackColName
SG::ReadHandleKey< SiHitCollection > m_siHitCollectionName
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
boost::thread_specific_ptr< TRandom3 > m_random
smear away!
std::vector< SiHit > matchSiHitsToCluster(const int uniqueIdToMatch, const InDet::PixelCluster *pixClus, SG::ReadHandle< AtlasHitsVector< SiHit >> &siHitCollection) const
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
const PixelID * m_pixelID
Pixel ID.
virtual double length() const =0
Method to calculate length of a module.
Gaudi::Property< std::vector< float > > m_errorRPhi
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
const std::vector< Identifier > & rdoList() const
return the List of rdo identifiers (pointers)
bool msgLvl(const MSG::Level lvl) const
@ loc2
generic first and second local coordinate
double getEtaPosErrorFactor(int layer) const
Gaudi::Property< std::vector< float > > m_resolutionZ
Trk::RunOutlierRemoval m_runOutlier
#define ATH_MSG_VERBOSE(x)
virtual IdentifierHash identifyHash() const override final
identifier hash (inline)
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual void setOwner(IDataHandleHolder *o)=0
double get(ParamDefs par) const
Retrieve specified parameter (const version).
Trk::ParticleHypothesis m_ParticleHypothesis
virtual StatusCode sysInitialize() override
Override sysInitialize.
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
::StatusCode StatusCode
StatusCode definition for legacy code.
SG::WriteHandleKey< TrackCollection > m_outputTrackCollectionName
double getEtaPosResolution(int layer) const
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
ToolHandle< Trk::IPRDtoTrackMapTool > m_assoTool
Tool to create and populate PRD to track.
virtual const InDetDD::SiDetectorElement * detectorElement() const override final
return the detector element corresponding to this PRD The pointer will be zero if the det el is not d...
Amg::Vector2D hitLocalToLocal(double xEta, double xPhi) const
Simulation/Hit local frame to reconstruction local frame.
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Identifier identify() const
return the identifier
int layer_disk(const Identifier &id) const
bool setElement(ElementType element)
Set to point to an element.
const Perigee * perigeeParameters() const
return Perigee.
int eta_module(const Identifier &id) const
bool setStorableObject(BaseConstReference data, bool replace=false, IProxyDict *sg=0)
Set link to point to a new container (storable).
ParametersBase< TrackParametersDim, Charged > TrackParameters
value_type push_back(value_type pElem)
Add an element to the end of the collection.
Gaudi::Property< std::vector< float > > m_errorZ
Eigen::Matrix< double, 3, 1 > Vector3D
virtual const Trk::PrepRawData * prepRawData() const =0
returns the PrepRawData (also known as RIO) object to which this RIO_OnTrack is associated.
const LocalParameters & localParameters() const
Interface method to get the LocalParameters.
DataObjIDColl m_extendedExtraObjects
SG::ReadHandleKey< TrackTruthCollection > m_truthMapName
def time(flags, cells_name, *args, **kw)
Gaudi::Property< bool > m_rejNoiseHits
#define ATH_MSG_WARNING(x)
HepGeom::Point3D< double > globalPosition(const HepGeom::Point3D< double > &localPos) const
transform a reconstruction local position into a global position (inline):
Identifier identify() const
return the identifier -extends MeasurementBase
Gaudi::Property< bool > m_fixWrongHits
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
AthAlgorithm()
Default constructor:
HepGeom::Point3D< double > smearTruthPosition(const HepGeom::Point3D< double > &orig, const int bec, const int layer_disk, const InDetDD::SiDetectorDesign *design) const
virtual const SiDetectorDesign & design() const override final
access to the local description (inline):
int phi_module(const Identifier &id) const
double getPhiPosResolution(int layer) const
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
ToolHandle< Trk::ITrackFitter > m_ITrackFitter
the refit tool
const AtlasDetectorID * m_idHelper
Detector ID helper.
Vertex centroid(const Polygon &p)
HepGeom::Point3D< double > localStartPosition() const
bool match(std::string s1, std::string s2)
match the individual directories of two strings