|
ATLAS Offline Software
|
#include <SingleTrackConversionTool.h>
|
| SingleTrackConversionTool (const std::string &type, const std::string &name, const IInterface *parent) |
|
virtual | ~SingleTrackConversionTool ()=default |
|
virtual StatusCode | initialize () override |
|
virtual StatusCode | finalize () override |
|
xAOD::Vertex * | buildSingleTrackParticleConversion (const xAOD::TrackParticle *, xAOD::VertexContainer *container) const |
| Build single track conversion candidate. More...
|
|
bool | selectSingleTrackParticleConversion (const xAOD::TrackParticle *) const |
| Select single track conversion candidates. 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 | sysInitialize () override |
| Perform system initialization for an algorithm. 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 |
|
Helper tools to reconstruct single track conversions
- Author
- Tatjana Lenz , Thomas Koffas
Definition at line 29 of file SingleTrackConversionTool.h.
◆ StoreGateSvc_t
◆ SingleTrackConversionTool()
InDet::SingleTrackConversionTool::SingleTrackConversionTool |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
parent |
|
) |
| |
◆ ~SingleTrackConversionTool()
virtual InDet::SingleTrackConversionTool::~SingleTrackConversionTool |
( |
| ) |
|
|
virtualdefault |
◆ buildSingleTrackParticleConversion()
Build single track conversion candidate.
xAOD::TrackParticle interface.
Create a RecVertex at the first measurement of the track.
Need to compute a global position covariance matrix as J.C.JT
The local position parameters covariance matrix C (2x2)
The Jacobian matrix J (3x2)
The A = J.C (3x2)
The A.JT = J.C.JT (3x3)
Construct the new covariance matrix (3x3)
The local position parameters covariance matrix C (2x2)
The straight line surface (wire) global directions
The particle global direction
The Jacobian matrix J (3x2)
The A = J.C (3x2)
The A.JT = J.C.JT (3x3)
Construct the new covariance matrix (3x3)
Definition at line 76 of file SingleTrackConversionTool.cxx.
82 unsigned int index(0);
114 double Ax[3] = {
T(0, 0),
T(1, 0),
T(2, 0) };
115 double Ay[3] = {
T(0, 1),
T(1, 1),
T(2, 1) };
124 double A11 = a11 * p11 + a12 * p21;
125 double A12 = a11 * p12 + a12 * p22;
126 double A21 = a21 * p11 + a22 * p21;
127 double A22 = a21 * p12 + a22 * p22;
128 double A31 = a31 * p11 + a32 * p21;
129 double A32 = a31 * p12 + a32 * p22;
132 double P11 = a11 * A11 + A12 * a12;
133 double P12 = A11 * a21 + A12 * a22;
134 double P13 = A11 * a31 + A12 * a32;
135 double P21 = A21 * a11 + A22 * a12;
136 double P22 = A21 * a21 + A22 * a22;
137 double P23 = A21 * a31 + A22 * a32;
138 double P31 = A31 * a11 + A32 * a12;
139 double P32 = A31 * a21 + A32 * a22;
140 double P33 = A31 * a31 + A32 * a32;
162 double A[3] = {
T(0,2),
T(1,2),
T(2,2)};
170 double Bx =
A[1]*Pz-
A[2]*Py;
171 double By =
A[2]*Px-
A[0]*Pz;
172 double Bz =
A[0]*Py-
A[1]*Px;
173 double Bn = 1./sqrt(Bx*Bx+By*By+Bz*Bz); Bx*=Bn; By*=Bn; Bz*=Bn;
174 double a11 = Bx;
double a12 =
A[0];
175 double a21 = By;
double a22 =
A[1];
176 double a31 = Bz;
double a32 =
A[2];
179 double A11 = a11*p11 + a12*p21;
double A12 = a11*p12 + a12*p22;
180 double A21 = a21*p11 + a22*p21;
double A22 = a21*p12 + a22*p22;
181 double A31 = a31*p11 + a32*p21;
double A32 = a31*p12 + a32*p22;
184 double P11 = a11*A11 + A12*a12;
double P12 = A11*a21 + A12*a22;
double P13 = A11*a31 + A12*a32;
185 double P21 = A21*a11 + A22*a12;
double P22 = A21*a21 + A22*a22;
double P23 = A21*a31 + A22*a32;
186 double P31 = A31*a11 + A32*a12;
double P32 = A31*a21 + A32*a22;
double P33 = A31*a31 + A32*a32;
189 nCovVtx(0,0) = P11; nCovVtx(0,1) = P12; nCovVtx(0,2) = P13;
190 nCovVtx(1,0) = P21; nCovVtx(1,1) = P22; nCovVtx(1,2) = P23;
191 nCovVtx(2,0) = P31; nCovVtx(2,1) = P32; nCovVtx(2,2) = P33;
201 vertex->setCovariancePosition(nCovVtx);
203 vertex->setFitQuality( 0, 0);
◆ 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]
◆ 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
◆ finalize()
StatusCode InDet::SingleTrackConversionTool::finalize |
( |
| ) |
|
|
overridevirtual |
◆ initialize()
StatusCode InDet::SingleTrackConversionTool::initialize |
( |
| ) |
|
|
overridevirtual |
◆ 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.
◆ interfaceID()
const InterfaceID & InDet::SingleTrackConversionTool::interfaceID |
( |
| ) |
|
|
static |
◆ 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()
◆ selectSingleTrackParticleConversion()
◆ sysInitialize()
◆ 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_detStore
◆ m_evtStore
◆ m_maxBLhits
IntegerProperty InDet::SingleTrackConversionTool::m_maxBLhits {this, "MaxBLayerHits", 0, "Maximum number of blayer hits"} |
|
protected |
◆ m_minInitR
DoubleProperty InDet::SingleTrackConversionTool::m_minInitR |
|
protected |
Initial value:{this, "MinInitialHitRadius", 70.,
"Minimum initial hit radius in order to consider track as coming from photon conversion"}
Definition at line 50 of file SingleTrackConversionTool.h.
◆ m_minInitR_noBLay
DoubleProperty InDet::SingleTrackConversionTool::m_minInitR_noBLay |
|
protected |
Initial value:{this, "MinInitialHitRadius_noBlay", 120.,
"Minimum initial hit radius in order to consider track as coming from photon conversion"}
Definition at line 53 of file SingleTrackConversionTool.h.
◆ m_PIDonlyForXe
BooleanProperty InDet::SingleTrackConversionTool::m_PIDonlyForXe {this, "PIDonlyForXe", false, "Only check TRT PID if all hits are Xe hits"} |
|
protected |
◆ m_singleThreshold
DoubleProperty InDet::SingleTrackConversionTool::m_singleThreshold |
|
protected |
Initial value:{this, "MinRatioOfHLhits", 0.1,
"Minimum ratio of HL hits for a track to be labeled as electron"}
Definition at line 56 of file SingleTrackConversionTool.h.
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
Vertex_v1 Vertex
Define the latest version of the vertex class.
const Amg::Vector3D & position() const
Access method for the position.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
@ numberOfTRTXenonHits
number of TRT hits on track in straws with xenon [unit8_t].
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
@ expectInnermostPixelLayerHit
Do we expect a 0th-layer barrel hit for this track?
@ numberOfTRTHits
number of TRT hits [unit8_t].
bool const RAWDATA *ch2 const
#define AmgSymMatrix(dim)
virtual void setOwner(IDataHandleHolder *o)=0
@ numberOfInnermostPixelLayerOutliers
number of 0th layer barrel outliers
@ FirstMeasurement
Parameter defined at the position of the 1st measurement.
Eigen::Affine3d Transform3D
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Ensure that the ATLAS eigen extensions are properly loaded.
virtual const S & associatedSurface() const override final
Access to the Surface method.
Definition of ATLAS Math & Geometry primitives (Amg)
value_type push_back(value_type pElem)
Add an element to the end of the collection.
Eigen::Matrix< double, 3, 1 > Vector3D
@ numberOfTRTOutliers
number of TRT outliers [unit8_t].
const Amg::Vector3D & momentum() const
Access method for the momentum.
Class describing a Vertex.
#define ATH_MSG_WARNING(x)
@ eProbabilityHT
Electron probability from High Threshold (HT) information [float].
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
@ ConvVtx
Conversion vertex.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
@ numberOfInnermostPixelLayerHits
these are the hits in the 0th pixel barrel layer