|
ATLAS Offline Software
|
#include <TRT_SegmentsToTrack.h>
|
| TRT_SegmentsToTrack (const std::string &name, ISvcLocator *pSvcLocator) |
|
| ~TRT_SegmentsToTrack () |
|
StatusCode | initialize () |
|
StatusCode | execute () |
|
StatusCode | finalize () |
|
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< Trk::SegmentCollection > | m_inputSegmentCollectionName {this,"InputSegmentsCollection","TrackSegments","RHK to retrieve input track collection"} |
| Name of the TrackSegment Collection to read in. More...
|
|
SG::WriteHandleKey< TrackCollection > | m_outputTrackCollectionName {this,"OutputTrackCollection","SegmentTracks","WHK to store output tracks"} |
| Name of the TrackCollection to write out. More...
|
|
ToolHandle< Trk::ITrackFitter > | m_trackFitter {this,"TrackFitter","Trk::KalmanFitter/TrkKalmanFitter",""} |
| The TrackFitter. More...
|
|
ToolHandle< Trk::IExtrapolator > | m_extrapolator {this,"ExtrapolationTool","Trk::Extrapolator/InDetExtrapolator",""} |
| The Extrapolator. More...
|
|
ToolHandle< Trk::IExtendedTrackSummaryTool > | m_trkSummaryTool {this, "SummaryTool","",""} |
|
ToolHandle< Trk::IPRDtoTrackMapTool > | m_assoTool {this, "AssociationTool", "","" } |
|
SG::WriteHandleKey< Trk::PRDtoTrackMap > | m_assoMapName {this,"AssociationMapName","",""} |
| key for the PRDtoTrackMap to filled by the ambiguity score processor. More...
|
|
SG::ReadHandleKey< Trk::PRDtoTrackMap > | m_inputAssoMapName {this,"InputAssociationMapName","",""} |
| key to be set to optionally store PRD to track association map More...
|
|
double | m_noiseCut |
| All tracks with a TRT Noise fraction larger than this variable will be thrown away. More...
|
|
int | m_minTRTHits |
| All tracks with less Hits (after the track fit) will be thrown away. More...
|
|
const AtlasDetectorID * | m_idHelper |
|
const TRT_ID * | m_trtid |
|
SG::ReadHandleKey< PRD_MultiTruthCollection > | m_multiTruthCollectionTRTName {this,"PRDTruthCollectionTRT","","RHK to retrieve TRT turth info"} |
| Name of the TRT MultiTruthCollection. More...
|
|
int | m_nTracksReal |
| Counter for real reconstructed Tracks. More...
|
|
int | m_nTracksFake |
| Counter for fake reconstructed Track. More...
|
|
double | m_noiseratio |
| average percentage of noise in real tracks More...
|
|
std::atomic< int > | m_events |
| Event counter. More...
|
|
std::map< int, int > | m_MapReal |
| Map of hits and real tracks. More...
|
|
std::map< int, int > | m_MapFake |
| Map of hits and fake tracks. More...
|
|
bool | m_materialEffects |
| Flag to switch on Material Effects in the Fitter. More...
|
|
bool | m_outlierRemoval |
| Flag to switch on the outlier removal in the track fitter. More...
|
|
bool | m_combineSegments |
| Try to combine segments from Barrel and Endcap. More...
|
|
SG::ReadHandleKey< Trk::SegmentCollection > | m_barrelSegments {this,"BarrelSegments","TRTBarrelSegments","RHK to retrieve barrel track segments"} |
| Name of Barrel segment collection. More...
|
|
SG::ReadHandleKey< Trk::SegmentCollection > | m_endcapSegments {this,"EndcapSegments","TRTEndcapSegments","RHK to retrieve endcap track segments"} |
| Name of Endcap segment collection. More...
|
|
SG::WriteHandleKey< TrackCollection > | m_BECCollectionName {this,"BarrelEndcapTracks","TRT_Barrel_EC","WHK to write tracks"} |
| Name of the combined (TRT Barrel+EC) TrackCollection to write out. More...
|
|
std::atomic< int > | m_n_combined_fit |
|
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 |
|
Definition at line 53 of file TRT_SegmentsToTrack.h.
◆ StoreGateSvc_t
◆ TRT_SegmentsToTrack()
InDet::TRT_SegmentsToTrack::TRT_SegmentsToTrack |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ ~TRT_SegmentsToTrack()
InDet::TRT_SegmentsToTrack::~TRT_SegmentsToTrack |
( |
| ) |
|
◆ combineSegments()
void InDet::TRT_SegmentsToTrack::combineSegments |
( |
const EventContext & |
ctx | ) |
const |
|
private |
Definition at line 573 of file TRT_SegmentsToTrack.cxx.
579 int n_combined_fit=0;
586 sc = outputCombiCollection.record(std::make_unique<TrackCollection>());
587 if (
sc.isFailure())
return;
589 if (!BarrelSegments.isValid()){
594 if (!EndcapSegments.isValid()) {
599 ATH_MSG_VERBOSE(
"Got both barrel and endcap segment collections of size "<<BarrelSegments->size()<<
" "<<EndcapSegments->size());
605 for(;iseg!=isegE;++iseg,
scount++){
609 iseg = EndcapSegments->begin();
610 isegE = EndcapSegments->end();
613 for(;iseg!=isegE;++iseg,
scount++){
617 if(BarrelSegments->size()==1 && EndcapSegments->size()==1){
618 ATH_MSG_VERBOSE(
"Here we go: one barrel segment and one endcap segment!");
627 for(;isegBarrel!=isegBarrelE;++isegBarrel){
628 for(;isegEndcap!=isegEndcapE;++isegEndcap){
630 std::vector< Trk::PseudoMeasurementOnTrack*> tobedeleted;
632 ATH_MSG_VERBOSE(
"Barrel Segment : phi="<<(*isegBarrel)->localParameters()[
Trk::phi]<<
" with "<<(*isegBarrel)->numberOfMeasurementBases()<<
" hits");
633 ATH_MSG_VERBOSE(
"Endcap Segment : phi="<<(*isegEndcap)->localParameters()[
Trk::phi]<<
" with "<<(*isegEndcap)->numberOfMeasurementBases()<<
" hits");
638 bool barreldown=((*isegBarrel)->measurement((*isegBarrel)->numberOfMeasurementBases()/2)->globalPosition().y()<0);
640 if((*isegEndcap)->localParameters().contains(
Trk::theta)){
645 if(( (*isegEndcap)->globalPosition().y()>0 && (*isegEndcap)->globalPosition().z()>0) ||
646 ((*isegEndcap)->globalPosition().y()<0 && (*isegEndcap)->globalPosition().z()<0)
664 if(!barreldown && (*isegEndcap)->globalPosition().y()>0){
665 ATH_MSG_VERBOSE(
"Both barrel and endcap segments in top sectors, won't fit");
669 if(barreldown && (*isegEndcap)->globalPosition().y()<0){
670 ATH_MSG_VERBOSE(
"Both barrel and endcap segments in lower sectors, won't fit");
673 int firstechit=0,lastechit=0;
674 if((*isegEndcap)->globalPosition().y()>0){
676 for(
int i=0;
i<(
int)echits.size();++
i){
686 myset.push_back(meas);
694 for(
unsigned int i=0;
i<(*isegBarrel)->numberOfMeasurementBases();++
i){
695 const Amg::VectorX LocalParameters = (*isegBarrel)->measurement(
i)->localParameters();
696 const Amg::MatrixX LocalErrorMatrix = (*isegBarrel)->measurement(
i)->localCovariance();
697 double z=(*isegBarrel)->measurement(
i)->globalPosition().z();
698 double phi=(*isegBarrel)->measurement(
i)->globalPosition().phi();
699 double r=(*isegBarrel)->measurement(
i)->globalPosition().perp();
704 myset.push_back((*isegBarrel)->measurement(
i));
712 for(
unsigned int i=0;
i<(*isegBarrel)->numberOfMeasurementBases();++
i){
713 const Amg::VectorX LocalParameters = (*isegBarrel)->measurement(
i)->localParameters();
714 const Amg::MatrixX LocalErrorMatrix = (*isegBarrel)->measurement(
i)->localCovariance();
715 double z=(*isegBarrel)->measurement(
i)->globalPosition().z();
716 double phi=(*isegBarrel)->measurement(
i)->globalPosition().phi();
717 double r=(*isegBarrel)->measurement(
i)->globalPosition().perp();
722 myset.push_back((*isegBarrel)->measurement(
i));
730 for(
int i=0;
i<(
int)echits.size();++
i){
740 myset.push_back(meas);
751 Amg::Vector3D inputMatchingPos((*isegBarrel)->globalPosition());
753 if((*isegEndcap)->globalPosition().y()>0)
754 inputMatchingPos=(*isegEndcap)->globalPosition();
759 if((*isegBarrel)->localParameters().contains(
Trk::qOverP)){
760 p = ((*isegBarrel)->localParameters()[
Trk::qOverP]!=0.) ? fabs(1./((*isegBarrel)->localParameters()[
Trk::qOverP])) : 10e7;
764 if((*isegBarrel)->localParameters().contains(
Trk::phi)){
774 ATH_MSG_VERBOSE(
"Global position: "<<inputMatchingPos<<
" Globalmomentum: "<<inputMatchingMom);
779 Trk::MeasurementSet::const_iterator mit;
780 Trk::MeasurementSet::const_iterator mitE=myset.end();
783 for(mit=myset.begin();mit!=mitE;++mit){
784 myset2.push_back(*mit);
785 if(count2==firstechit || count2==lastechit){
793 if ((count2==firstechit && firstechit!=0) || (count2==lastechit && firstechit==0)) locz=200;
807 if(fabs(gpos.z())>800){
819 T =
line->transform().rotation();
827 tobedeleted.push_back(pseudo);
831 myset2.push_back(pseudo);
841 if((*isegEndcap)->globalPosition().y()>0){
856 ATH_MSG_VERBOSE(
"Associated surface dynamic_cast into PerigeeSurface failed. "<<(*isegBarrel)->associatedSurface());
857 ATH_MSG_VERBOSE(
"Leaving input matching perigee as nullptr, will not get a fittedTrack");
860 inputMatchPerigee =
new Trk::Perigee(inputMatchingPos,inputMatchingMom, 1., *testPSf);
869 std::unique_ptr<Trk::Track> fittedTrack;
878 }
else if (inputMatchPerigee){
894 }
else if (inputMatchPerigee){
909 outputCombiCollection->push_back(std::move(fittedTrack));
912 delete inputMatchPerigee;
913 delete inputMatchLine;
915 for(
size_t i=0;
i<tobedeleted.size();
i++)
916 delete tobedeleted[
i];
923 if (!outputCombiCollection.isValid()) {
924 ATH_MSG_ERROR(
"Could not write track Barrel+EC collection TRT_Barrel_EC");
◆ 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 InDet::TRT_SegmentsToTrack::execute |
( |
| ) |
|
Definition at line 137 of file TRT_SegmentsToTrack.cxx.
139 int segmentCounter=0;
140 const EventContext& ctx = Gaudi::Hive::currentContext();
154 if (!inputSegments.isValid()) {
156 sc = StatusCode::FAILURE;
164 ATH_CHECK(final_outputTrackCollection.record(std::make_unique<TrackCollection>()));
166 std::vector<std::unique_ptr<Trk::Track> > output_track_collection;
172 if (!truthCollectionTRT.isValid()){
174 return StatusCode::FAILURE;
183 for(iseg=inputSegments->begin(); iseg != isegEnd; ++ iseg) {
188 if((*iseg)->numberOfMeasurementBases()<10)
continue;
191 for(
unsigned int i=0;
i<(*iseg)->numberOfMeasurementBases();++
i){
192 const Amg::VectorX& LocalParameters = (*iseg)->measurement(
i)->localParameters();
193 const Amg::MatrixX& LocalErrorMatrix = (*iseg)->measurement(
i)->localCovariance();
194 double z=(*iseg)->measurement(
i)->globalPosition().z();
195 ATH_MSG_DEBUG(
"Segment "<<segmentCounter<<
" rioOnTrack "<<
i<<
" (z="<<
z<<
") : "<<LocalParameters[0]
197 myset.push_back((*iseg)->measurement(
i));
200 if((*iseg)->numberOfMeasurementBases()>0){
201 ATH_MSG_DEBUG(
"numberOfContainedRots: " << (*iseg)->numberOfMeasurementBases());
212 ATH_MSG_DEBUG(
"No straightLineSurface !! Trying Perigee ...");
216 ATH_MSG_DEBUG(
"Associated surface dynamic_cast into PerigeeSurface failed: "<<(*iseg)->associatedSurface());
217 ATH_MSG_DEBUG(
"Leaving input matching perigee as nullptr, will not get a fittedTrack");
226 int nmeas=(*iseg)->numberOfMeasurementBases();
227 Amg::Vector3D surfpos(.5*((*iseg)->measurement(nmeas/2)->globalPosition()+(*iseg)->measurement(nmeas/2+1)->globalPosition()));
229 std::unique_ptr<const Trk::TrackParameters>
tmp =
230 m_extrapolator->extrapolateDirectly(ctx, *inputMatchLine, persurf);
237 std::unique_ptr<Trk::Track> fittedTrack;
239 if (inputMatchPerigee) inputpar=inputMatchPerigee;
240 else if (inputMatchLine) inputpar=inputMatchLine;
254 for ( ; itSet!=itSetEnd; ++itSet) {
256 mindist=(**itSet).trackParameters()->
position().perp();
257 measpar=(**itSet).trackParameters();
260 std::unique_ptr<Trk::TrackParameters> myper;
268 auto trajectory = std::make_unique<Trk::TrackStates>();
270 for ( ; itSet!=itSetEnd; ++itSet) {
272 auto trackpar=(**itSet).trackParameters() ? (**itSet).trackParameters()->uniqueClone() :
nullptr;
273 auto measurement=(**itSet).measurementOnTrack() ? (**itSet).measurementOnTrack()->uniqueClone() :
nullptr;
274 auto fitQual=(**itSet).fitQualityOnSurface() ;
275 auto mateff=(**itSet).materialEffectsOnTrack() ? (**itSet).materialEffectsOnTrack()->uniqueClone() :
nullptr;
276 std::bitset<Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes> typePattern(0);
281 trajectory->push_back(
283 std::move(measurement),
290 itSet = trajectory->begin()+1;
291 itSetEnd = trajectory->end();
292 std::bitset<Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes> typePattern(0);
294 const auto myPosition {myper->
position()};
303 for ( ; itSet!=itSetEnd; ++itSet) {
304 double inprod1=((**itSet).trackParameters()->position()-myPosition).
dot(
myMomentum);
306 double inprod2=((**itSet).trackParameters()->position()-myPosition).
dot(
myMomentum);
308 if (inprod1>0 && inprod2<0) {
309 trajectory->insert(trajectory->begin()+
index,pertsos);
316 itSet = trajectory->begin();
317 double inprod=((**itSet).trackParameters()->position()-myPosition).
dot(
myMomentum);
318 if (inprod>0) trajectory->insert(trajectory->begin(),pertsos);
319 else trajectory->push_back(pertsos);
321 std::unique_ptr<Trk::Track>
track =
322 std::make_unique<Trk::Track>(fittedTrack->
info(),
323 std::move(trajectory),
325 fittedTrack = std::move(
track);
330 int nHT=
nHTHits(fittedTrack.get());
333 if ((*iseg)->fitQuality())
ATH_MSG_DEBUG(
"Quality of Segment: chi^2 /ndof "<<(*iseg)->fitQuality()->chiSquared()<<
" / "<<(*iseg)->fitQuality()->numberDoF());
342 int nhits=(*iseg)->numberOfMeasurementBases();
344 if(truefraction>0.5){
367 output_track_collection.push_back(std::move(fittedTrack));
376 delete inputMatchLine;
377 delete inputMatchPerigee;
382 std::unique_ptr<Trk::PRDtoTrackMap> prd_to_track_map;
385 prd_to_track_map =
m_assoTool->createPRDtoTrackMap();
388 if (!input_asso_map.isValid()) {
391 *prd_to_track_map = *input_asso_map;
394 for (
const std::unique_ptr<Trk::Track> &
track : output_track_collection) {
399 final_outputTrackCollection->reserve(output_track_collection.size());
401 for (std::unique_ptr<Trk::Track> &
track : output_track_collection) {
403 final_outputTrackCollection->push_back(std::move(
track));
407 for (std::unique_ptr<Trk::Track> &
track : output_track_collection) {
408 final_outputTrackCollection->push_back(std::move(
track));
415 if (!final_outputTrackCollection.isValid()) {
418 return StatusCode::FAILURE;
◆ 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();
◆ finalize()
StatusCode InDet::TRT_SegmentsToTrack::finalize |
( |
| ) |
|
◆ getNoiseProbability()
double InDet::TRT_SegmentsToTrack::getNoiseProbability |
( |
const Trk::Track * |
track | ) |
const |
|
private |
◆ getNumberReal()
Get the number of truth particles associated with this hit.
Definition at line 425 of file TRT_SegmentsToTrack.cxx.
428 using iter = PRD_MultiTruthCollection::const_iterator;
434 if(truthCollectionTRT.isValid()){
435 std::pair<iter,iter>
range = truthCollectionTRT->equal_range(driftcircle->
identify());
◆ getRealFractionTRT()
double InDet::TRT_SegmentsToTrack::getRealFractionTRT |
( |
const Trk::Track * |
track, |
|
|
const EventContext & |
ctx |
|
) |
| const |
|
private |
◆ initialize()
StatusCode InDet::TRT_SegmentsToTrack::initialize |
( |
| ) |
|
◆ 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.
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ nHTHits()
◆ nTRTHits()
◆ 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()
◆ 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_assoMapName
key for the PRDtoTrackMap to filled by the ambiguity score processor.
key to be set to optionally store PRD to track association map
Definition at line 93 of file TRT_SegmentsToTrack.h.
◆ m_assoTool
◆ m_barrelSegments
◆ m_BECCollectionName
◆ m_combineSegments
bool InDet::TRT_SegmentsToTrack::m_combineSegments |
|
private |
◆ m_detStore
◆ m_endcapSegments
◆ m_events
std::atomic<int> InDet::TRT_SegmentsToTrack::m_events |
|
mutableprivate |
◆ m_evtStore
◆ m_extendedExtraObjects
DataObjIDColl AthAlgorithm::m_extendedExtraObjects |
|
privateinherited |
◆ m_extrapolator
◆ m_idHelper
◆ m_inputAssoMapName
key to be set to optionally store PRD to track association map
Definition at line 95 of file TRT_SegmentsToTrack.h.
◆ m_inputSegmentCollectionName
◆ m_MapFake
std::map<int,int> InDet::TRT_SegmentsToTrack::m_MapFake |
|
private |
◆ m_MapReal
std::map<int,int> InDet::TRT_SegmentsToTrack::m_MapReal |
|
private |
◆ m_materialEffects
bool InDet::TRT_SegmentsToTrack::m_materialEffects |
|
private |
◆ m_minTRTHits
int InDet::TRT_SegmentsToTrack::m_minTRTHits |
|
private |
All tracks with less Hits (after the track fit) will be thrown away.
Definition at line 100 of file TRT_SegmentsToTrack.h.
◆ m_multiTruthCollectionTRTName
◆ m_n_combined_fit
std::atomic<int> InDet::TRT_SegmentsToTrack::m_n_combined_fit |
|
mutableprivate |
◆ m_noiseCut
double InDet::TRT_SegmentsToTrack::m_noiseCut |
|
private |
All tracks with a TRT Noise fraction larger than this variable will be thrown away.
Definition at line 99 of file TRT_SegmentsToTrack.h.
◆ m_noiseratio
double InDet::TRT_SegmentsToTrack::m_noiseratio |
|
private |
◆ m_nTracksFake
int InDet::TRT_SegmentsToTrack::m_nTracksFake |
|
private |
◆ m_nTracksReal
int InDet::TRT_SegmentsToTrack::m_nTracksReal |
|
private |
◆ m_outlierRemoval
bool InDet::TRT_SegmentsToTrack::m_outlierRemoval |
|
private |
◆ m_outputTrackCollectionName
◆ m_trackFitter
ToolHandle<Trk::ITrackFitter> InDet::TRT_SegmentsToTrack::m_trackFitter {this,"TrackFitter","Trk::KalmanFitter/TrkKalmanFitter",""} |
|
private |
◆ m_trkSummaryTool
◆ m_trtid
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
def retrieve(aClass, aKey=None)
int m_nTracksFake
Counter for fake reconstructed Track.
int getNumberReal(const InDet::TRT_DriftCircle *, const EventContext &ctx) const
Get the number of truth particles associated with this hit.
@ Perigee
This represents a perigee, and so will contain a Perigee object only.
Const iterator class for DataVector/DataList.
const FitQuality * fitQuality() const
return a pointer to the fit quality const-overload
virtual const TRT_DriftCircle * prepRawData() const override final
returns the PrepRawData - is a TRT_DriftCircle in this scope
Eigen::Matrix< double, Eigen::Dynamic, 1 > VectorX
Dynamic Vector - dynamic allocation.
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Scalar phi() const
phi method
ToolHandle< Trk::IPRDtoTrackMapTool > m_assoTool
int nHTHits(const Trk::Track *track) const
Count number of TRT HT Hits on track.
const Amg::Vector3D & position() const
Access method for the position.
std::map< int, int > m_MapReal
Map of hits and real tracks.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
const Trk::TrackStates * trackStateOnSurfaces() const
return a pointer to a const DataVector of const TrackStateOnSurfaces.
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
const TrackInfo & info() const
Returns a const ref to info of a const tracks.
Scalar theta() const
theta method
double getRealFractionTRT(const Trk::Track *track, const EventContext &ctx) const
Get the fraction of truth TRT hits on this Track.
virtual const Trk::Surface & associatedSurface() const override final
returns the surface for the local to global transformation
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
SG::WriteHandleKey< TrackCollection > m_outputTrackCollectionName
Name of the TrackCollection to write out.
bool highLevel() const
returns true if the high level threshold was passed
bool is_trt(Identifier id) const
#define ATH_MSG_VERBOSE(x)
const std::string & key() const
Return the StoreGate ID for the referenced object.
bool const RAWDATA *ch2 const
bool empty() const
Test if the key is blank.
@ pz
global momentum (cartesian)
ParametersT< TrackParametersDim, Charged, PerigeeSurface > Perigee
SG::ReadHandleKey< Trk::SegmentCollection > m_barrelSegments
Name of Barrel segment collection.
std::pair< double, ParamDefs > DefinedParameter
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual void setOwner(IDataHandleHolder *o)=0
@ Outlier
This TSoS contains an outlier, that is, it contains a MeasurementBase/RIO_OnTrack which was not used ...
bool m_materialEffects
Flag to switch on Material Effects in the Fitter.
ParametersT< TrackParametersDim, Charged, StraightLineSurface > AtaStraightLine
Class to handle pseudo-measurements in fitters and on track objects.
SG::ReadHandleKey< PRD_MultiTruthCollection > m_multiTruthCollectionTRTName
Name of the TRT MultiTruthCollection.
double m_noiseCut
All tracks with a TRT Noise fraction larger than this variable will be thrown away.
SG::ReadHandleKey< Trk::SegmentCollection > m_endcapSegments
Name of Endcap segment collection.
ToolHandle< Trk::ITrackFitter > m_trackFitter
The TrackFitter.
virtual StatusCode sysInitialize() override
Override sysInitialize.
bool isNoise() const
returns true if the hit is caused by noise with a high probability.
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
::StatusCode StatusCode
StatusCode definition for legacy code.
ToolHandle< Trk::IExtrapolator > m_extrapolator
The Extrapolator.
Eigen::Affine3d Transform3D
#define CHECK(...)
Evaluate an expression and check for errors.
int nTRTHits(const Trk::Track *track) const
Count number of TRT Hits on track.
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.
const AtlasDetectorID * m_idHelper
def dot(G, fn, nodesToHighlight=[])
const Amg::MatrixX & localCovariance() const
Interface method to get the localError.
@ BremPoint
This represents a brem point on the track, and so will contain TrackParameters and MaterialEffectsBas...
virtual void renounce()=0
std::vector< const MeasurementBase * > MeasurementSet
vector of fittable measurements
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
bool m_combineSegments
Try to combine segments from Barrel and Endcap.
Identifier identify() const
return the identifier
represents the track state (measurement, material, fit parameters and quality) at a surface.
std::unique_ptr< FitQuality > uniqueClone() const
NVI uniqueClone.
int m_minTRTHits
All tracks with less Hits (after the track fit) will be thrown away.
virtual const Amg::Vector3D & globalPosition() const =0
Interface method to get the global Position.
double getNoiseProbability(const Trk::Track *track) const
Get the fraction of noise TRT hits on this Track.
Eigen::Matrix< double, 3, 1 > Vector3D
double m_noiseratio
average percentage of noise in real tracks
const LocalParameters & localParameters() const
Interface method to get the LocalParameters.
std::atomic< int > m_events
Event counter.
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
std::atomic< int > m_n_combined_fit
const Amg::Vector3D & momentum() const
Access method for the momentum.
DataObjIDColl m_extendedExtraObjects
ToolHandle< Trk::IExtendedTrackSummaryTool > m_trkSummaryTool
#define ATH_MSG_WARNING(x)
Identifier identify() const
return the identifier -extends MeasurementBase
Eigen::Translation< double, 3 > Translation3D
@ Scatterer
This represents a scattering point on the track, and so will contain TrackParameters and MaterialEffe...
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
SG::ReadHandleKey< Trk::PRDtoTrackMap > m_inputAssoMapName
key to be set to optionally store PRD to track association map
@ PseudoMeasurementOnTrack
double chiSquared() const
returns the of the overall track fit
void combineSegments(const EventContext &ctx) const
AthAlgorithm()
Default constructor:
int numberDoF() const
returns the number of degrees of freedom of the overall track or vertex fit as integer
SG::WriteHandleKey< TrackCollection > m_BECCollectionName
Name of the combined (TRT Barrel+EC) TrackCollection to write out.
std::map< int, int > m_MapFake
Map of hits and fake tracks.
SG::WriteHandleKey< Trk::PRDtoTrackMap > m_assoMapName
key for the PRDtoTrackMap to filled by the ambiguity score processor.
SG::ReadHandleKey< Trk::SegmentCollection > m_inputSegmentCollectionName
Name of the TrackSegment Collection to read in.
float distance(const Amg::Vector3D &p1, const Amg::Vector3D &p2)
calculates the distance between two point in 3D space
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
bool m_outlierRemoval
Flag to switch on the outlier removal in the track fitter.
int m_nTracksReal
Counter for real reconstructed Tracks.