![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
#include <TRT_SeededTrackFinder.h>
|
struct | Stat_t |
| Global Counters for final algorithm statistics. More...
|
|
|
| TRT_SeededTrackFinder (const std::string &name, ISvcLocator *pSvcLocator) |
| Standard Algorithm methods
More...
|
|
virtual | ~TRT_SeededTrackFinder () |
|
StatusCode | initialize () override |
|
StatusCode | execute (const EventContext &ctx) const override |
|
StatusCode | finalize () override |
|
MsgStream & | dump (MsgStream &out) const |
| Print internal tool parameters and status
More...
|
|
std::ostream & | dump (std::ostream &out) const |
|
virtual StatusCode | sysInitialize () override |
| Override sysInitialize. More...
|
|
virtual bool | isClonable () const override |
| Specify if the algorithm is clonable. More...
|
|
virtual unsigned int | cardinality () const override |
| Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant. More...
|
|
virtual StatusCode | sysExecute (const EventContext &ctx) override |
| Execute an algorithm. More...
|
|
virtual const DataObjIDColl & | extraOutputDeps () const override |
| Return the list of extra output dependencies. More...
|
|
virtual bool | filterPassed (const EventContext &ctx) const |
|
virtual void | setFilterPassed (bool state, const EventContext &ctx) const |
|
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 |
|
InDet::TRT_SeededTrackFinde is an algorithm which produces tracks moving outside-in in the Inner Detector.
Definition at line 54 of file TRT_SeededTrackFinder.h.
◆ StoreGateSvc_t
◆ TRT_SeededTrackFinder()
InDet::TRT_SeededTrackFinder::TRT_SeededTrackFinder |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ ~TRT_SeededTrackFinder()
virtual InDet::TRT_SeededTrackFinder::~TRT_SeededTrackFinder |
( |
| ) |
|
|
inlinevirtual |
◆ Analyze()
Do some statistics analysis at the end of each event.
Loop over tracks in track collection
Concentrate on the Si component of the track
Definition at line 701 of file TRT_SeededTrackFinder.cxx.
705 int nsct1{}, nsct2{}, nsct3{}, nsct4{};
706 int nsctTot1{}, nsctTot2{}, nsctTot3{}, nsctTot4{};
707 int npix1{}, npix2{}, npix3{};
708 int npixTot1{}, npixTot2{}, npixTot3{};
712 for (;
r !=
re ; ++
r){
713 nsct1=nsct2=nsct3=nsct4=0; npix1=npix2=npix3=0;
715 if(!newtsos)
continue;
722 if((40.<=rc)&&(
rc<80.)){npix1++;}
723 if((80.<=rc)&&(
rc<100.)){npix2++;}
724 if((100.<=rc)&&(
rc<150.)){npix3++;}
725 if((280.<=rc)&&(
rc<340.)){nsct1++;}
726 if((340.<=rc)&&(
rc<390.)){nsct2++;}
727 if((390.<=rc)&&(
rc<460.)){nsct3++;}
728 if((460.<=rc)&&(
rc<550.)){nsct4++;}
731 nsctTot1+=nsct1; nsctTot2+=nsct2; nsctTot3+=nsct3; nsctTot4+=nsct4;
732 npixTot1+=npix1; npixTot2+=npix2; npixTot3+=npix3;
734 ATH_MSG_DEBUG(
"Total hits on 1st SCT: "<<nsctTot1<<
" 2nd SCT: "<<nsctTot2<<
" 3rd SCT: "<<nsctTot3<<
" 4th SCT: "<<nsctTot4);
735 ATH_MSG_DEBUG(
"Total hits on 1st Pixel: "<<npixTot1<<
" 2nd Pixel: "<<npixTot2<<
" 3rd Pixel: "<<npixTot3);
◆ cardinality()
unsigned int AthReentrantAlgorithm::cardinality |
( |
| ) |
const |
|
overridevirtualinherited |
Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant.
Override this to return 0 for reentrant algorithms.
Override this to return 0 for reentrant algorithms.
Definition at line 55 of file AthReentrantAlgorithm.cxx.
◆ 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);
◆ 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.
◆ 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.
◆ 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()
◆ dump() [1/2]
MsgStream& InDet::TRT_SeededTrackFinder::dump |
( |
MsgStream & |
out | ) |
const |
Print internal tool parameters and status
◆ dump() [2/2]
std::ostream& InDet::TRT_SeededTrackFinder::dump |
( |
std::ostream & |
out | ) |
const |
◆ dumpevent()
Definition at line 494 of file TRT_SeededTrackFinder.cxx.
496 out<<
"|-------------------------------------------------------------------"<<std::endl;
497 out<<
"| Investigated :"<<std::endl
500 <<
"| "<<std::setw(7)<<
stat.m_counter[Stat_t::Stat_t::kNTrtSegGood] <<
" TRT Segments after selection"<<std::endl;
502 out<<
"|-------------------------------------------------------------------"<<std::endl;
503 out<<
"| "<<std::setw(7)<<
stat.m_counter[
Stat_t::kNTrtLimit] <<
" TRT segments lost because of processing limit"<<std::endl;
505 out<<
"|-------------------------------------------------------------------"<<std::endl;
510 if (
stat.m_counter[Stat_t::Stat_t::kNBckTrkTrt]>0) {
511 out<<
"| "<<std::setw(7)<<
stat.m_counter[Stat_t::Stat_t::kNBckTrkTrt] <<
" number ot TRT only tracks created"<<std::endl;
514 out<<
"|-------------------------------------------------------------------"<<std::endl;
515 out<<
"| "<<std::setw(7)<<
stat.m_counter[Stat_t::Stat_t::kNTrtExtCalls]<<
" number of times TRT extension is called"<<std::endl
516 <<
"| "<<std::setw(7)<<
stat.m_counter[
Stat_t::kNTrtExt] <<
" number of good TRT extension"<<std::endl;
518 out<<
"| "<<std::setw(7)<<
stat.m_counter[Stat_t::Stat_t::kNTrtExtBad]<<
" number of bad TRT extension"<<std::endl;
520 out<<
"| "<<std::setw(7)<<
stat.m_counter[Stat_t::Stat_t::kNTrtExtFail]<<
" number of failed TRT extension and fallback"<<std::endl;
522 out<<
"|-------------------------------------------------------------------"<<std::endl;
523 out<<
"| "<<std::setw(7)<<
stat.m_counter[Stat_t::Stat_t::kNBckTrkSi] <<
" TRT+Si tracks created of output"<<std::endl;
527 out<<
"|-------------------------------------------------------------------";
◆ dumptools()
MsgStream & InDet::TRT_SeededTrackFinder::dumptools |
( |
MsgStream & |
out | ) |
const |
|
protected |
Definition at line 463 of file TRT_SeededTrackFinder.cxx.
466 std::string
s1;
for(
int i=0;
i<
n; ++
i)
s1.append(
" ");
s1.append(
"|");
468 std::string
s2;
for(
int i=0;
i<
n; ++
i)
s2.append(
" ");
s2.append(
"|");
470 std::string
s3;
for(
int i=0;
i<
n; ++
i)
s3.append(
" ");
s3.append(
"|");
472 std::string
s4;
for(
int i=0;
i<
n; ++
i)
s4.append(
" ");
s4.append(
"|");
474 std::string s5;
for(
int i=0;
i<
n; ++
i) s5.append(
" "); s5.append(
"|");
476 out<<
"|----------------------------------------------------------------------"
477 <<
"-------------------|"
479 out<<
"| Tool for TRT seeded track finding | "<<
m_trackmaker.type() <<
s1<<std::endl;
484 out<<
"|----------------------------------------------------------------------"
485 <<
"-------------------|"
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
StatusCode InDet::TRT_SeededTrackFinder::execute |
( |
const EventContext & |
ctx | ) |
const |
|
override |
Transform the original TRT segment into a track
Definition at line 153 of file TRT_SeededTrackFinder.cxx.
159 if(!segments.isValid()){
160 ATH_MSG_FATAL (
"No segment with name " << segments.name() <<
" found in StoreGate!");
161 return StatusCode::FAILURE;
163 ATH_MSG_DEBUG (
"Found segments collection " << segments.name() <<
" in StoreGate!");
169 ATH_MSG_DEBUG (
"TRT track container size huge; will process event partially if number of max segments reached !!!");
173 std::unique_ptr<InDet::ITRT_SeededTrackFinder::IEventData> event_data_p;
176 std::unique_ptr<RoiDescriptor> roiComp = std::make_unique<RoiDescriptor>(
true);
177 if (calo_rois.isValid()) {
180 double beamZ = beamSpotHandle->beamVtx().position().z();
183 for (
const ROIPhiRZ &the_roi : *calo_rois) {
184 double eta = the_roi.eta();
185 double phi = the_roi.phi();
192 roi =
new RoiDescriptor(
eta, roiEtaMin, roiEtaMax,
phi, roiPhiMin ,roiPhiMax, beamZ, roiZMin,roiZMax);
197 std::vector<IdentifierHash> listOfSCTIds;
198 std::vector<IdentifierHash> listOfPixIds;
200 event_data_p =
m_trackmaker->newRegion(ctx, combinatorialData, listOfPixIds, listOfSCTIds);
202 event_data_p =
m_trackmaker->newEvent(ctx, combinatorialData);
205 std::unique_ptr<InDet::ITRT_TrackExtensionTool::IEventData> ext_event_data_p(
m_trtExtension->newEvent(ctx) );
206 std::unique_ptr<TrackCollection> outTracks = std::make_unique<TrackCollection>();
207 std::vector<Trk::Track*> tempTracks;
208 tempTracks.reserve(128);
210 ATH_MSG_DEBUG (
"Begin looping over all TRT segments in the event");
214 for(; iseg != isegEnd; ++ iseg) {
231 ATH_MSG_DEBUG (
"====> Reached maximal number of segments in event, stop !!!");
239 ev_stat.m_counter[Stat_t::Stat_t::kNTrtSegGood]++;
241 std::list<Trk::Track*> trackSi =
m_trackmaker->getTrack(ctx, *event_data_p, *trackTRT);
242 if (trackSi.empty()) {
243 ATH_MSG_DEBUG (
"No Si track candidates associated to the TRT track ");
251 ATH_MSG_DEBUG (
"Failed to make a track out of the TRT segment!");
255 ev_stat.m_counter[
Stat_t::kNBckTrk]++; ev_stat.m_counter[Stat_t::Stat_t::kNBckTrkTrt]++;
257 outTracks->push_back(trtSeg);
262 ATH_MSG_DEBUG (
"Found " << (trackSi.size()) <<
" Si tracks associated to the TRT track ");
264 std::list<Trk::Track*>::const_iterator itt = trackSi.begin();
265 std::list<Trk::Track*>::const_iterator ittEnd = trackSi.end();
266 for (; itt != ittEnd ; ++itt){
267 tempTracks.push_back(*itt);
279 auto input = (*itt)->trackParameters()->front()->uniqueClone();
297 beamSpotPosition = beamSpotHandle->beamVtx().position();
303 std::unique_ptr<const Trk::TrackParameters> parm =
305 ctx, *
input, perigeeSurface);
306 std::unique_ptr<const Trk::Perigee> extrapolatedPerigee =
nullptr;
308 extrapolatedPerigee.reset(
static_cast<const Trk::Perigee*
>(parm.release()));
310 if (!extrapolatedPerigee) {
311 ATH_MSG_WARNING(
"Extrapolation of perigee failed, this should never happen" );
337 ATH_MSG_DEBUG (
"Try to improve TRT calling extension tool.");
339 ev_stat.m_counter[Stat_t::Stat_t::kNTrtExtCalls]++;
341 std::vector<const Trk::MeasurementBase*>& tn =
342 m_trtExtension->extendTrack(ctx, *(*itt), *ext_event_data_p, map);
345 ATH_MSG_DEBUG (
"No new segment found, use input segment as fallback.");
347 ev_stat.m_counter[Stat_t::Stat_t::kNTrtExtFail]++;
361 std::vector<const Trk::MeasurementBase*>::const_iterator iv, ive=tn.end();
362 for(iv=tn.begin(); iv!=ive; ++iv)
delete (*iv);
371 ev_stat.m_counter[Stat_t::Stat_t::kNTrtExtBad]++;
373 std::vector<const Trk::MeasurementBase*>::const_iterator iv, ive=tn.end();
374 for(iv=tn.begin(); iv!=ive; ++iv)
delete (*iv);
378 ATH_MSG_DEBUG (
"Do not try to extend Si track, merging it with input TRT.");
388 ATH_MSG_DEBUG (
"Failed to make a track out of the TRT segment!");
393 ev_stat.m_counter[
Stat_t::kNBckTrk]++; ev_stat.m_counter[Stat_t::Stat_t::kNBckTrkTrt]++;
399 outTracks->push_back(trtSeg);
404 ev_stat.m_counter[
Stat_t::kNBckTrk]++; ev_stat.m_counter[Stat_t::Stat_t::kNBckTrkSi]++;
410 outTracks->push_back(globalTrackNew);
423 return StatusCode::FAILURE;
427 std::lock_guard<std::mutex> lock(m_statMutex);
428 m_totalStat += ev_stat;
431 for (
auto *
p : tempTracks){
441 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 & AthReentrantAlgorithm::extraOutputDeps |
( |
| ) |
const |
|
overridevirtualinherited |
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 79 of file AthReentrantAlgorithm.cxx.
86 return Algorithm::extraOutputDeps();
◆ filterPassed()
virtual bool AthReentrantAlgorithm::filterPassed |
( |
const EventContext & |
ctx | ) |
const |
|
inlinevirtualinherited |
◆ finalize()
StatusCode InDet::TRT_SeededTrackFinder::finalize |
( |
| ) |
|
|
override |
◆ initialize()
StatusCode InDet::TRT_SeededTrackFinder::initialize |
( |
| ) |
|
|
override |
◆ 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.
◆ isClonable()
bool AthReentrantAlgorithm::isClonable |
( |
| ) |
const |
|
overridevirtualinherited |
Specify if the algorithm is clonable.
Reentrant algorithms are clonable.
Reimplemented in Simulation::BeamEffectsAlg, InDet::SiTrackerSpacePointFinder, InDet::SCT_Clusterization, InDet::SiSPSeededTrackFinder, SCTRawDataProvider, InDet::GNNSeedingTrackMaker, SCT_PrepDataToxAOD, RoIBResultToxAOD, SCT_CablingCondAlgFromCoraCool, SCT_ReadCalibDataTestAlg, SCT_CablingCondAlgFromText, InDet::SiSPGNNTrackMaker, SCT_ReadCalibChipDataTestAlg, SCT_TestCablingAlg, SCT_ConfigurationConditionsTestAlg, ITkPixelCablingAlg, SCTEventFlagWriter, SCT_ConditionsSummaryTestAlg, SCT_ModuleVetoTestAlg, SCT_MonitorConditionsTestAlg, SCT_LinkMaskingTestAlg, SCT_MajorityConditionsTestAlg, SCT_RODVetoTestAlg, SCT_SensorsTestAlg, SCT_TdaqEnabledTestAlg, SCT_SiliconConditionsTestAlg, SCTSiLorentzAngleTestAlg, SCT_ByteStreamErrorsTestAlg, SCT_ConditionsParameterTestAlg, SCT_FlaggedConditionTestAlg, SCT_StripVetoTestAlg, SCT_RawDataToxAOD, and SCTSiPropertiesTestAlg.
Definition at line 44 of file AthReentrantAlgorithm.cxx.
◆ mergeExtension()
Merge a TRT track extension and a Si track component into one global ID track.
Construct the new track
Definition at line 652 of file TRT_SeededTrackFinder.cxx.
659 auto ntsos = std::make_unique<Trk::TrackStates>();
662 for (p_stsos = stsos->
begin(); p_stsos != stsos->
end(); ++p_stsos) {
663 ntsos->push_back((*p_stsos)->clone());
666 for (
auto &
it : tS) {
667 std::bitset<Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes> typePattern;
670 ntsos->push_back(seg_tsos);
675 std::unique_ptr<Trk::Track> newTrack( std::make_unique<Trk::Track>(
info, std::move(ntsos), std::move(fq)) );
684 const Trk::Perigee* perTrack=newTrack->perigeeParameters();
687 if (!CM || std::sqrt((*CM)(1,1)) == 0. || std::sqrt((*CM)(3,3)) == 0.) {
693 return newTrack.release();
◆ mergeSegments()
Protected methods
Merge a TRT track segment and a Si track component into one global ID track
Construct the new track
Definition at line 536 of file TRT_SeededTrackFinder.cxx.
542 auto ntsos = std::make_unique<Trk::TrackStates>();
546 for (p_stsos=stsos->
begin(); p_stsos != stsos->
end(); ++p_stsos) {
547 ntsos->push_back( (*p_stsos)->clone() );
555 ATH_MSG_DEBUG (
"Too few Si hits.Will keep pseudomeasurement...");
557 ntsos->push_back(seg_tsos);
560 std::bitset<Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes> typePattern;
563 ntsos->push_back(seg_tsos);
570 std::unique_ptr<Trk::Track> newTrack(std::make_unique<Trk::Track>(
info, std::move(ntsos), std::move(fq)));
579 const Trk::Perigee* perTrack=newTrack->perigeeParameters();
582 if (!CM || std::sqrt((*CM)(1,1)) == 0. || std::sqrt((*CM)(3,3)) == 0.) {
587 return newTrack.release();
◆ 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()
◆ segToTrack()
Transform a TRT track segment into a track
Definition at line 594 of file TRT_SeededTrackFinder.cxx.
595 ATH_MSG_DEBUG (
"Transforming the TRT segment into a track...");
600 throw std::logic_error(
"Unhandled surface.");
606 surf->createUniqueParameters<5,
Trk::
Charged>(
607 p(0),
p(1),
p(2),
p(3),
p(4), std::move(ep));
609 ATH_MSG_DEBUG(
"Initial TRT Segment Parameters for refitting " << (*segPar) );
611 ATH_MSG_DEBUG(
"Could not get initial TRT segment parameters! " );
617 std::bitset<Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes> typePattern;
624 ntsos->push_back(seg_tsos);
628 std::unique_ptr<Trk::Track> newTrack = std::make_unique<Trk::Track>(
info, std::move(ntsos),
nullptr);
640 if (!CM || std::sqrt((*CM)(1,1)) == 0. || std::sqrt((*CM)(3,3)) == 0.) {
645 return newTrack.release();
◆ setFilterPassed()
virtual void AthReentrantAlgorithm::setFilterPassed |
( |
bool |
state, |
|
|
const EventContext & |
ctx |
|
) |
| const |
|
inlinevirtualinherited |
◆ sysExecute()
StatusCode AthReentrantAlgorithm::sysExecute |
( |
const EventContext & |
ctx | ) |
|
|
overridevirtualinherited |
Execute an algorithm.
We override this in order to work around an issue with the Algorithm base class storing the event context in a member variable that can cause crashes in MT jobs.
Definition at line 67 of file AthReentrantAlgorithm.cxx.
69 return Gaudi::Algorithm::sysExecute (ctx);
◆ sysInitialize()
StatusCode AthReentrantAlgorithm::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< Gaudi::Algorithm > >.
Reimplemented in InputMakerBase, and HypoBase.
Definition at line 96 of file AthReentrantAlgorithm.cxx.
107 if ( cs.retrieve().isFailure() ) {
109 return StatusCode::SUCCESS;
111 if (cs->regHandle(
this,*
h).isFailure()) {
112 sc = StatusCode::FAILURE;
113 ATH_MSG_ERROR(
"unable to register WriteCondHandle " <<
h->fullKey()
◆ 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()
◆ ATLAS_THREAD_SAFE [1/2]
std::mutex m_statMutex InDet::TRT_SeededTrackFinder::ATLAS_THREAD_SAFE |
|
mutableprotected |
◆ ATLAS_THREAD_SAFE [2/2]
Stat_t m_totalStat InDet::TRT_SeededTrackFinder::ATLAS_THREAD_SAFE |
|
mutableprotected |
◆ m_beamSpotKey
Initial value:{
this,
"BeamSpotKey",
"BeamSpotData",
"SG key for beam spot"
}
Definition at line 116 of file TRT_SeededTrackFinder.h.
◆ m_caloClusterROIKey
Initial value:{
this,
"EMROIPhiRZContainer",
"",
"Name of the calo cluster ROIs in Phi,R,Z parameterization"
}
Definition at line 129 of file TRT_SeededTrackFinder.h.
◆ m_caloSeededRoI
bool InDet::TRT_SeededTrackFinder::m_caloSeededRoI |
|
protected |
◆ m_deltaEta
float InDet::TRT_SeededTrackFinder::m_deltaEta |
|
protected |
◆ m_deltaPhi
float InDet::TRT_SeededTrackFinder::m_deltaPhi |
|
protected |
◆ m_deltaZ
float InDet::TRT_SeededTrackFinder::m_deltaZ |
|
protected |
◆ m_detStore
◆ m_doExtension
bool InDet::TRT_SeededTrackFinder::m_doExtension |
|
protected |
◆ m_doRefit
bool InDet::TRT_SeededTrackFinder::m_doRefit |
|
protected |
◆ m_doStat
bool InDet::TRT_SeededTrackFinder::m_doStat |
|
protected |
◆ m_evtStore
◆ m_extendedExtraObjects
DataObjIDColl AthReentrantAlgorithm::m_extendedExtraObjects |
|
privateinherited |
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Empty if no symlinks were found.
Definition at line 153 of file AthReentrantAlgorithm.h.
◆ m_extrapolator
◆ m_fitterTool
◆ m_maxEta
double InDet::TRT_SeededTrackFinder::m_maxEta |
|
protected |
◆ m_maxRPhiImp
double InDet::TRT_SeededTrackFinder::m_maxRPhiImp |
|
protected |
◆ m_MaxSegNum
int InDet::TRT_SeededTrackFinder::m_MaxSegNum |
|
protected |
◆ m_maxZImp
double InDet::TRT_SeededTrackFinder::m_maxZImp |
|
protected |
◆ m_minPt
double InDet::TRT_SeededTrackFinder::m_minPt |
|
protected |
◆ m_minTRTonly
unsigned int InDet::TRT_SeededTrackFinder::m_minTRTonly |
|
protected |
◆ m_minTRTonSegment
unsigned int InDet::TRT_SeededTrackFinder::m_minTRTonSegment |
|
protected |
◆ m_outTracksKey
◆ m_prdToTrackMap
◆ m_regionSelector
ToolHandle<IRegSelTool> InDet::TRT_SeededTrackFinder::m_regionSelector |
|
protected |
Initial value:{
this,
"RegSelTool",
"RegSelTool/RegSel_SCT",
"Region selector service instance"
}
Definition at line 136 of file TRT_SeededTrackFinder.h.
◆ m_rejectShortExten
bool InDet::TRT_SeededTrackFinder::m_rejectShortExten |
|
protected |
◆ m_saveTRT
bool InDet::TRT_SeededTrackFinder::m_saveTRT |
|
protected |
◆ m_SegmentsKey
◆ m_SiExtensionCuts
bool InDet::TRT_SeededTrackFinder::m_SiExtensionCuts |
|
protected |
◆ m_trackmaker
◆ m_trackSummaryTool
Initial value:{
this,
"TrackSummaryTool",
"InDetTrackSummaryToolNoHoleSearch"
}
Definition at line 109 of file TRT_SeededTrackFinder.h.
◆ m_trtExtension
Initial value:{
this,
"TrackExtensionTool",
"InDet::TRT_TrackExtensionTool_xk",
"TRT track extension tool "
}
Refitting tool.
Definition at line 95 of file TRT_SeededTrackFinder.h.
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
unsigned int m_minTRTonly
Minimum number of TRT hits on segment.
double m_maxEta
maximal Eta cut
@ kNTrtNoSiExt
Number of TRT segments lost in busy events.
Trk::Track * mergeExtension(const Trk::Track &, std::vector< const Trk::MeasurementBase * > &) const
Merge a TRT track extension and a Si track component into one global ID track.
SG::ReadHandleKey< Trk::SegmentCollection > m_SegmentsKey
Contains information about the 'fitter' of this track.
float m_deltaZ
delta Z used for RoI creation
bool m_doStat
use extension only if better than original track
Const iterator class for DataVector/DataList.
const FitQuality * fitQuality() const
return a pointer to the fit quality const-overload
SG::WriteHandleKey< TrackCollection > m_outTracksKey
TRT segments to use.
Scalar phi() const
phi method
Scalar eta() const
pseudorapidity method
virtual const Surface & associatedSurface() const override=0
Access to the Surface associated to the Parameters.
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.
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)
ToolHandle< Trk::IExtendedTrackSummaryTool > m_trackSummaryTool
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
@ kNTrtLimit
Number of TRT segments that will be investigated per event
ToolHandle< Trk::IExtrapolator > m_extrapolator
the extrapoator
bool msgLvl(const MSG::Level lvl) const
bool m_SiExtensionCuts
enable cuts after Si segment finding
@ kNExtCut
Number of TRT segments not extended in Si.
#define ATH_MSG_VERBOSE(x)
const std::string & key() const
Return the StoreGate ID for the referenced object.
#define AmgSymMatrix(dim)
double m_minPt
minimal Pt cut
int m_MaxSegNum
Output stand-alone TRT segments.
double m_maxZImp
maximal z impact parameter cut
unsigned int numberOfMeasurementBases() const
Return the number of contained Trk::MeasurementBase (s)
TrackParameters_v1 TrackParameters
virtual void setOwner(IDataHandleHolder *o)=0
Class to handle pseudo-measurements in fitters and on track objects.
double m_maxRPhiImp
maximal RPhi impact parameter cut
virtual const Amg::Vector3D & globalPosition() const override
returns global position (gathered through Surface constraint)
void Analyze(TrackCollection *) const
Do some statistics analysis at the end of each event.
AthReentrantAlgorithm()
Default constructor:
void push_back(const IRoiDescriptor *roi)
add a RoiDescriptor
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
DataVector< const Trk::TrackStateOnSurface > TrackStates
@ kNBckTrk
Number of back tracks found with Si extension per event.
std::unique_ptr< MeasurementBase > uniqueClone() const
NVI Clone giving up unique pointer.
::StatusCode StatusCode
StatusCode definition for legacy code.
Trk::Track * mergeSegments(const Trk::Track &, const Trk::TrackSegment &) const
Protected methods
ToolHandle< Trk::ITrackFitter > m_fitterTool
Track maker tool.
ToolHandle< IRegSelTool > m_regionSelector
bool m_doExtension
Do final careful refit of tracks.
ToolHandle< ITRT_TrackExtensionTool > m_trtExtension
Refitting tool.
const MeasurementBase * measurement(unsigned int) const
returns the Trk::MeasurementBase objects depending on the integer
void clear()
clear the vector
Describes the Region of Ineterest geometry It has basically 9 parameters.
float m_deltaEta
delta Eta used for RoI creation
@ kNTrtExt
Number of times the TRT extension is called.
const Surface & associatedSurface() const override final
returns the surface for the local to global transformation
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.
@ kNTrtFailSel
Number of TRT segments to be investigated per event
unsigned int m_minTRTonSegment
Maximum number of segments to be handled.
DataObjIDColl m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
@ kNBckTrkSi
Number of failed TRT extensions.
const Perigee * perigeeParameters() const
return Perigee.
Ensure that the ATLAS eigen extensions are properly loaded.
represents the track state (measurement, material, fit parameters and quality) at a surface.
MsgStream & dumpevent(MsgStream &out, const InDet::TRT_SeededTrackFinder::Stat_t &stat) const
std::unique_ptr< FitQuality > uniqueClone() const
NVI uniqueClone.
ToolHandle< ITRT_SeededTrackFinder > m_trackmaker
Minimum number of TRT hits on TRT only.
virtual StatusCode sysInitialize() override
Override sysInitialize.
@ TRTSeededTrackFinder
Tracks from TRT Seeded Track finder.
StatusCode initialize(bool used=true)
Eigen::Matrix< double, 3, 1 > Vector3D
SG::ReadHandleKey< Trk::PRDtoTrackMap > m_prdToTrackMap
Trk::Track * segToTrack(const EventContext &, const Trk::TrackSegment &) const
Transform a TRT track segment into a track
const LocalParameters & localParameters() const
Interface method to get the LocalParameters.
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
bool m_saveTRT
Statistics of final tracks.
MsgStream & dumptools(MsgStream &out) const
#define ATH_MSG_WARNING(x)
float m_deltaPhi
delta Phi used for RoI creation
const boost::regex re(r_e)
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
void setComposite(bool b=true)
std::array< std::vector< std::vector< Used_t > >, 3 > TRT_DetElemUsedMap
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
SG::ReadHandleKey< ROIPhiRZContainer > m_caloClusterROIKey
size_type size() const noexcept
Returns the number of elements in the collection.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
constexpr virtual SurfaceType type() const =0
Returns the Surface type to avoid dynamic casts.
@ 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_rejectShortExten
Find the TRT extension of the Si track segment.