|
ATLAS Offline Software
|
Go to the documentation of this file.
26 constexpr
size_t MAX_ROAD_SIZE(399);
28 std::vector<const Trk::Surface*>
29 vectorOfSurfacesFromVectorOfElements(
const std::vector<const InDetDD::TRT_BaseElement*> &
v){
31 std::vector<const Trk::Surface*> surfaces;
32 for(
const auto &pThisElement:
v) {
33 surfaces.emplace_back(&(pThisElement->surface()));
34 if(++roadsize==MAX_ROAD_SIZE)
break;
45 (
const std::string&
t,
const std::string&
n,
const IInterface*
p)
48 declareInterface<ITRT_TrackExtensionTool>(
this);
113 return StatusCode::SUCCESS;
122 return StatusCode::SUCCESS;
142 auto pad = [](
const std::string &
s)->std::string{
143 std::string s1(
s.size(),
' ');
147 const std::array<std::string,9> fieldmode{
"NoField" ,
"ConstantField",
"SolenoidalField",
148 "ToroidalField" ,
"Grid3DField" ,
"RealisticField" ,
149 "UndefinedField",
"AthenaField" ,
"?????" };
151 if(mode<0 || mode>8 )
mode = 8;
152 std::string lineSeparator(90,
'-');
153 lineSeparator =
"|" + lineSeparator +
"|\n";
154 const auto & w12 = std::setw(12);
155 const auto & sp5 = std::setprecision(5);
156 const std::string spaces =
" |\n";
164 out<<
"| Magnetic field mode | "<< pad(fieldmode[
mode]);
166 out<<
"| TRT road half width (mm)| "<< w12 << sp5<<
m_roadwidth << spaces;
171 out<<
"| Max impact parameter | "<< w12 <<
m_impact <<spaces;
189 MsgStream& InDet::operator <<
199 std::ostream& InDet::operator <<
209 std::unique_ptr<InDet::ITRT_TrackExtensionTool::IEventData>
215 std::stringstream
msg;
217 throw std::runtime_error(
msg.str() );
225 if (fieldCondObj ==
nullptr) {
229 fieldCondObj->getInitializedCache (fieldCache);
236 event_data->m_trajectory.set(fieldprop, fieldCondObj);
237 event_data->m_trajectory.set (
m_trtid,
247 event_data->m_measurement.reserve(200);
255 std::vector<const Trk::MeasurementBase*>&
268 if(parb &&
par!=parb) {
280 std::vector<const Trk::MeasurementBase*>&
292 std::vector<const Trk::MeasurementBase*>&
325 if (fieldCondObj ==
nullptr) {
329 fieldCondObj->getInitializedCache (fieldCache);
333 const std::vector<const InDetDD::TRT_BaseElement*>& detectorElements =
337 if(
int(detectorElements.size())< nCut)
return nullptr;
341 auto surfaces =vectorOfSurfacesFromVectorOfElements(detectorElements);
347 std::vector< std::pair<Amg::Vector3D,double> > gpos;
377 if(
nc < nCut || (1000*
nc) < (700*(
nc+nh)) )
return nullptr;
418 if (fieldCondObj ==
nullptr) {
422 fieldCondObj->getInitializedCache (fieldCache);
425 const std::vector<const InDetDD::TRT_BaseElement*>& detectorElements =
431 auto surfaces = vectorOfSurfacesFromVectorOfElements(detectorElements);
437 std::vector< std::pair<Amg::Vector3D,double> > gpos;
479 if(!
pe)
return nullptr;
480 if(!
pe->covariance())
return nullptr;
482 if(!
pb)
return nullptr;
483 if(!
pb->covariance())
return nullptr;
def retrieve(aClass, aKey=None)
const TrackParameters * trackParameters() const
return ptr to trackparameters const overload
Const iterator class for DataVector/DataList.
This file defines the class for a collection of AttributeLists where each one is associated with a ch...
const_pointer_type cptr()
Dereference the pointer.
void convert(std::vector< const Trk::MeasurementBase * > &)
const Amg::Vector3D & position() const
Access method for the position.
const Trk::TrackStates * trackStateOnSurfaces() const
return a pointer to a const DataVector of const TrackStateOnSurfaces.
void trackFindingWithoutDriftTime(double)
const std::string & key() const
Return the StoreGate ID for the referenced object.
void buildTrajectoryForPrecisionSeed(bool)
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
@ FastField
call the fast field access method of the FieldSvc
bool trackParametersEstimationForFirstPointWithVertexConstraint()
void initiateForPrecisionSeed(std::vector< std::pair< Amg::Vector3D, double > > &, const std::vector< const InDetDD::TRT_BaseElement * > &, const TRT_DriftCircleContainer *&, const Trk::PatternTrackParameters &)
void trackFindingWithoutDriftTimeBL(double)
::StatusCode StatusCode
StatusCode definition for legacy code.
bool trackParametersEstimationForFirstPoint()
const T * front() const
Access the first element in the collection as an rvalue.
void trackFindingWithDriftTimeBL(double)
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
const T * back() const
Access the last element in the collection as an rvalue.
bool solenoidOn() const
status of the magnets
@ FullField
Field is set to be realistic, but within a given Volume.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
const int & nclusters() const
void initiateForTRTSeed(std::vector< std::pair< Amg::Vector3D, double > > &, const std::vector< const InDetDD::TRT_BaseElement * > &, const TRT_DriftCircleContainer *&, const Trk::PatternTrackParameters &)
@ NoField
Field is set to 0., 0., 0.,.
void buildTrajectoryForTRTSeed(bool)
void trackFindingWithDriftTime(double)
StatusCode initialize(bool used=true)
Eigen::Matrix< double, 3, 1 > Vector3D
MagneticFieldMode magneticFieldMode() const
Returns the MagneticFieldMode as specified.
virtual const Trk::PrepRawData * prepRawData() const =0
returns the PrepRawData (also known as RIO) object to which this RIO_OnTrack is associated.
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
const int & naElements() const
bool isFirstElementBarrel()
const double mb
1mb to cm2
const int & nholes() const
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h)
bool trackParametersEstimationForPerigeeWithVertexConstraint()
std::array< std::vector< std::vector< Used_t > >, 3 > TRT_DetElemUsedMap
bool production(const TrackParameters *)
SiSpacePointsSeedMakerEventData EventData
static EventData & getPrivateEventData(InDet::ITRT_TrackExtensionTool::IEventData &virt_event_data)
@ 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.