|
ATLAS Offline Software
|
#include <HitToSoNode.h>
|
| HitToSoNode (IVP1System *sys=0) |
|
| ~HitToSoNode () |
|
SoTransform * | createTransform (const Trk::RIO_OnTrack &rio, bool useSurfacePositionOnly) const |
|
SoTransform * | createTGC_Transform (const Trk::RIO_OnTrack &rio, bool useSurfacePositionOnly) const |
| TGCs are rotated. More...
|
|
void | buildStripShapes (const Trk::RIO_OnTrack &rio, SoSeparator *&shape_simple, SoSeparator *&shape_detailed, bool blockGP) |
|
void | buildTubeShapes (const Trk::RIO_OnTrack &rio, SoSeparator *&shape_simple, SoSeparator *&shape_detailed, bool blockGP, double length, bool doProjection) |
|
double | getTGCAngle (Identifier id) const |
| returns the phi angle of the passed phi strip identifier. More...
|
|
void | setSystemBasePointer (IVP1System *sys) |
|
void | message (const QString &) const |
|
void | message (const QStringList &, const QString &addtoend="") const |
|
void | message (const QString &addtostart, const QStringList &, const QString &addtoend="") const |
|
void | messageDebug (const QString &) const |
|
void | messageDebug (const QStringList &, const QString &addtoend="") const |
|
void | messageDebug (const QString &addtostart, const QStringList &, const QString &addtoend="") const |
|
void | messageVerbose (const QString &) const |
|
void | messageVerbose (const QStringList &, const QString &addtoend="") const |
|
void | messageVerbose (const QString &addtostart, const QStringList &, const QString &addtoend="") const |
|
IVP1System * | systemBase () const |
|
QString | helperClassName () const |
|
|
| HitToSoNode (const HitToSoNode &) |
|
HitToSoNode & | operator= (const HitToSoNode &) |
|
void | fillValues (Identifier &id, const Trk::TrkDetElementBase *baseDetEl, double &striplength, double &stripWidth, double &stripThickness, Amg::Vector2D *&localposStrip) |
|
void | fillRPCValues (Identifier &id, const Trk::TrkDetElementBase *baseDetEl, double &striplength, double &stripWidth, double &stripThickness, Amg::Vector2D *&localposStrip) |
|
void | fillTGCValues (Identifier &id, const Trk::TrkDetElementBase *baseDetEl, double &striplength, double &stripWidth, double &stripThickness, Amg::Vector2D *&localposStrip) |
|
void | fillCSCValues (Identifier &id, const Trk::TrkDetElementBase *baseDetEl, double &striplength, double &stripWidth, double &stripThickness, Amg::Vector2D *&localposStrip) |
|
void | fillSTGCValues (Identifier &id, const Trk::TrkDetElementBase *baseDetEl, double &striplength, double &stripWidth, double &stripThickness, Amg::Vector2D *&localposStrip) |
|
void | fillMMValues (Identifier &id, const Trk::TrkDetElementBase *baseDetEl, double &striplength, double &stripWidth, double &stripThickness, Amg::Vector2D *&localposStrip) |
|
void | fillSiValues (Identifier &id, const Trk::TrkDetElementBase *baseDetEl, double &striplength, double &stripWidth, double &stripThickness, Amg::Vector2D *&localposStrip) |
|
Definition at line 33 of file HitToSoNode.h.
◆ HitToSoNode() [1/2]
◆ ~HitToSoNode()
HitToSoNode::~HitToSoNode |
( |
| ) |
|
◆ HitToSoNode() [2/2]
◆ buildStripShapes()
void HitToSoNode::buildStripShapes |
( |
const Trk::RIO_OnTrack & |
rio, |
|
|
SoSeparator *& |
shape_simple, |
|
|
SoSeparator *& |
shape_detailed, |
|
|
bool |
blockGP |
|
) |
| |
Definition at line 225 of file HitToSodeNode.cxx.
230 double stripLength =100.0, stripWidth = 10.0, stripThickness=1.0;
231 std::optional<Amg::Vector2D> localposROT=std::nullopt;
246 localposROT.emplace();
247 localposROT->setZero();
252 SoSeparator * gpSep =
new SoSeparator;
253 SoTranslation * localtransGP =
new SoTranslation;
254 localtransGP->translation.setValue(
static_cast<float>( (*localposROT)[
Trk::locX]),
255 static_cast<float>( (*localposROT)[
Trk::locY]),
258 gpSep->addChild(localtransGP);
260 shape_detailed->addChild(gpSep);
264 SoTranslation * localtrans0 =
new SoTranslation;
265 localtrans0->translation.setValue(
static_cast<float>( (*localposStrip)[
Trk::locX]),
266 static_cast<float>( (*localposStrip)[
Trk::locY]),
270 shape_simple->addChild(localtrans0);
273 shape_detailed->addChild(localtrans0);
276 SoTranslation * localtrans1 =
new SoTranslation;
277 localtrans1->translation.setValue(
static_cast<float>( -(*localposStrip)[
Trk::locX]),
278 static_cast<float>( -(*localposStrip)[
Trk::locY]),
280 shape_simple->addChild(localtrans1);
281 shape_detailed->addChild(localtrans1);
283 delete localposStrip;
◆ buildTubeShapes()
void HitToSoNode::buildTubeShapes |
( |
const Trk::RIO_OnTrack & |
rio, |
|
|
SoSeparator *& |
shape_simple, |
|
|
SoSeparator *& |
shape_detailed, |
|
|
bool |
blockGP, |
|
|
double |
length, |
|
|
bool |
doProjection |
|
) |
| |
- Parameters
-
Definition at line 180 of file HitToSodeNode.cxx.
185 VP1Msg::message(
"HitToSoNode::buildTubeShapes ERROR: Trk::CylinderBounds conversion failed");
197 double strawLength=2.0*halflength;
198 if (strawLength<160.0)
199 strawLength = 2*349.3150-strawLength;
201 SoPointSet * scatPointSet =
new SoPointSet;
202 SoVertexProperty * scatVtxProperty =
new SoVertexProperty;
203 scatVtxProperty->vertex.set1Value(0,0.0
f,0.0
f,strawLength);
204 scatPointSet->numPoints=1;
205 scatPointSet->vertexProperty.setValue(scatVtxProperty);
207 shape_detailed->addChild(scatPointSet);
208 shape_simple->addChild(scatPointSet);
216 shape_simple->addChild(simpleShape);
219 shape_detailed->addChild(simpleShape);
◆ createTGC_Transform()
SoTransform * HitToSoNode::createTGC_Transform |
( |
const Trk::RIO_OnTrack & |
rio, |
|
|
bool |
useSurfacePositionOnly |
|
) |
| const |
TGCs are rotated.
Definition at line 126 of file HitToSodeNode.cxx.
132 if (!idhelper||!detEl) {
133 return new SoTransform;
137 SoTransform * theHitTransform =0;
146 localRot.setIdentity();
158 localRot *= theSurface.
transform().rotation();
173 if (!useSurfacePositionOnly){
175 theHitTransform->translation.setValue((theHitGPos)[0], (theHitGPos)[1], (theHitGPos)[2]);
177 return theHitTransform;
◆ createTransform()
SoTransform * HitToSoNode::createTransform |
( |
const Trk::RIO_OnTrack & |
rio, |
|
|
bool |
useSurfacePositionOnly |
|
) |
| const |
Definition at line 107 of file HitToSodeNode.cxx.
113 if ( useSurfacePositionOnly ) {
115 theHitTransform->translation.setValue(theSurface.
center()[0], theSurface.
center()[1], theSurface.
center()[2]);
123 return theHitTransform;
◆ fillCSCValues()
Definition at line 390 of file HitToSodeNode.cxx.
394 if (!idhelper || !detEl){
405 stripThickness = (measPhi==1) ? 0.9: 0.8;
◆ fillMMValues()
◆ fillRPCValues()
Definition at line 354 of file HitToSodeNode.cxx.
358 if (!idhelper || !detEl){
367 stripThickness = (measPhi==1) ? 0.9: 0.8;
◆ fillSiValues()
◆ fillSTGCValues()
◆ fillTGCValues()
Definition at line 305 of file HitToSodeNode.cxx.
309 if (!idhelper || !detEl){
315 int plane = idhelper->
gasGap(
id );
322 stripThickness = 3*0.8+0.1;
326 stripThickness = 3*0.8;
328 stripWidth=
std::max(10.0,stripWidth);
◆ fillValues()
Definition at line 286 of file HitToSodeNode.cxx.
289 if (!idhelper)
return;
291 if (idhelper->
is_rpc(
id)) {
fillRPCValues(
id, baseDetEl, striplength, stripWidth, stripThickness, localposStrip);
return;}
292 if (idhelper->
is_tgc(
id)) {
fillTGCValues(
id, baseDetEl, striplength, stripWidth, stripThickness, localposStrip);
return;}
293 if (idhelper->
is_csc(
id)) {
fillCSCValues(
id, baseDetEl, striplength, stripWidth, stripThickness, localposStrip);
return;}
294 if (idhelper->
is_stgc(
id)) {
fillSTGCValues(
id, baseDetEl, striplength, stripWidth, stripThickness, localposStrip);
return;}
295 if (idhelper->
is_mm(
id)) {
fillMMValues(
id, baseDetEl, striplength, stripWidth, stripThickness, localposStrip);
return;}
298 fillSiValues(
id, baseDetEl, striplength, stripWidth, stripThickness, localposStrip);
return;
301 VP1Msg::message(
"Warning: HitToSoNode::fillValues(...) unknown technology.");
◆ getTGCAngle()
double HitToSoNode::getTGCAngle |
( |
Identifier |
id | ) |
const |
returns the phi angle of the passed phi strip identifier.
calculate two points along the tgc phi strip in the local tgc reference frame
Definition at line 63 of file HitToSodeNode.cxx.
66 VP1Msg::message(
"HitToSoNode::getTGCAngle WARNING: could not get TGC idhelper!");
70 if ( !idhelper->
isStrip(
id))
return 0.0;
91 int stripNo = idhelper->
channel(
id);
100 + shift * Amg::Vector3D::UnitY();
102 return (lposTGC - lposTgcShifted).phi();
◆ helperClassName()
QString VP1HelperClassBase::helperClassName |
( |
| ) |
const |
|
inlineinherited |
◆ message() [1/3]
void VP1HelperClassBase::message |
( |
const QString & |
str | ) |
const |
|
inherited |
◆ message() [2/3]
void VP1HelperClassBase::message |
( |
const QString & |
addtostart, |
|
|
const QStringList & |
l, |
|
|
const QString & |
addtoend = "" |
|
) |
| const |
|
inherited |
◆ message() [3/3]
void VP1HelperClassBase::message |
( |
const QStringList & |
l, |
|
|
const QString & |
addtoend = "" |
|
) |
| const |
|
inherited |
◆ messageDebug() [1/3]
void VP1HelperClassBase::messageDebug |
( |
const QString & |
str | ) |
const |
|
inherited |
◆ messageDebug() [2/3]
void VP1HelperClassBase::messageDebug |
( |
const QString & |
addtostart, |
|
|
const QStringList & |
l, |
|
|
const QString & |
addtoend = "" |
|
) |
| const |
|
inherited |
◆ messageDebug() [3/3]
void VP1HelperClassBase::messageDebug |
( |
const QStringList & |
l, |
|
|
const QString & |
addtoend = "" |
|
) |
| const |
|
inherited |
◆ messageVerbose() [1/3]
void VP1HelperClassBase::messageVerbose |
( |
const QString & |
str | ) |
const |
|
inherited |
◆ messageVerbose() [2/3]
void VP1HelperClassBase::messageVerbose |
( |
const QString & |
addtostart, |
|
|
const QStringList & |
l, |
|
|
const QString & |
addtoend = "" |
|
) |
| const |
|
inherited |
◆ messageVerbose() [3/3]
void VP1HelperClassBase::messageVerbose |
( |
const QStringList & |
l, |
|
|
const QString & |
addtoend = "" |
|
) |
| const |
|
inherited |
◆ operator=()
◆ setHelperClassName()
void VP1HelperClassBase::setHelperClassName |
( |
const QString & |
n | ) |
|
|
inlineprotectedinherited |
◆ setSystemBasePointer()
void VP1HelperClassBase::setSystemBasePointer |
( |
IVP1System * |
sys | ) |
|
|
inherited |
◆ str() [1/30]
◆ str() [2/30]
static QString VP1String::str |
( |
const bool |
b | ) |
|
|
inlinestaticinherited |
Definition at line 53 of file VP1String.h.
53 {
return b?
"True":
"False"; }
◆ str() [3/30]
static QString VP1String::str |
( |
const char * |
c | ) |
|
|
inlinestaticinherited |
◆ str() [4/30]
static QString VP1String::str |
( |
const double & |
d | ) |
|
|
inlinestaticinherited |
◆ str() [5/30]
static QString VP1String::str |
( |
const float & |
f | ) |
|
|
inlinestaticinherited |
◆ str() [6/30]
◆ str() [7/30]
QString VP1String::str |
( |
const QColor & |
c | ) |
|
|
staticinherited |
Definition at line 30 of file VP1String.cxx.
32 return c.isValid() ?
c.name() :
"Invalid";
◆ str() [8/30]
template<class T >
static QString VP1String::str |
( |
const QFlags< T > & |
f | ) |
|
|
inlinestaticinherited |
◆ str() [9/30]
template<class T >
static QString VP1String::str |
( |
const QList< T > & |
t | ) |
|
|
inlinestaticinherited |
◆ str() [10/30]
static QString VP1String::str |
( |
const QString & |
s | ) |
|
|
inlinestaticinherited |
◆ str() [11/30]
QString VP1String::str |
( |
const SbColor & |
c | ) |
|
|
staticinherited |
◆ str() [12/30]
QString VP1String::str |
( |
const SbVec2d & |
v | ) |
|
|
staticinherited |
◆ str() [13/30]
QString VP1String::str |
( |
const SbVec2f & |
v | ) |
|
|
staticinherited |
◆ str() [14/30]
QString VP1String::str |
( |
const SbVec2s & |
v | ) |
|
|
staticinherited |
◆ str() [15/30]
QString VP1String::str |
( |
const SbVec3d & |
v | ) |
|
|
staticinherited |
◆ str() [16/30]
QString VP1String::str |
( |
const SbVec3f & |
v | ) |
|
|
staticinherited |
◆ str() [17/30]
QString VP1String::str |
( |
const SbVec3s & |
v | ) |
|
|
staticinherited |
◆ str() [18/30]
QString VP1String::str |
( |
const SbVec4d & |
v | ) |
|
|
staticinherited |
◆ str() [19/30]
QString VP1String::str |
( |
const SbVec4f & |
v | ) |
|
|
staticinherited |
◆ str() [20/30]
template<class T >
static QString VP1String::str |
( |
const T * |
t | ) |
|
|
inlinestaticinherited |
Definition at line 87 of file VP1String.h.
87 {
return str(
static_cast<const void*
>(
t)); }
◆ str() [21/30]
QString VP1String::str |
( |
const void * |
p | ) |
|
|
staticinherited |
Definition at line 48 of file VP1String.cxx.
54 return QString (
s.str().c_str());
◆ str() [22/30]
◆ str() [23/30]
static QString VP1String::str |
( |
int |
n | ) |
|
|
inlinestaticinherited |
◆ str() [24/30]
static QString VP1String::str |
( |
long |
n | ) |
|
|
inlinestaticinherited |
◆ str() [25/30]
static QString VP1String::str |
( |
qlonglong |
n | ) |
|
|
inlinestaticinherited |
◆ str() [26/30]
static QString VP1String::str |
( |
qulonglong |
n | ) |
|
|
inlinestaticinherited |
◆ str() [27/30]
static QString VP1String::str |
( |
short int |
n | ) |
|
|
inlinestaticinherited |
◆ str() [28/30]
static QString VP1String::str |
( |
uint |
n | ) |
|
|
inlinestaticinherited |
◆ str() [29/30]
static QString VP1String::str |
( |
ulong |
n | ) |
|
|
inlinestaticinherited |
◆ str() [30/30]
static QString VP1String::str |
( |
unsigned short int |
n | ) |
|
|
inlinestaticinherited |
◆ systemBase()
IVP1System* VP1HelperClassBase::systemBase |
( |
| ) |
const |
|
inlineinherited |
◆ verbose()
static bool VP1HelperClassBase::verbose |
( |
| ) |
|
|
inlinestaticinherited |
◆ warnUndeletedInstances()
void VP1HelperClassBase::warnUndeletedInstances |
( |
| ) |
|
|
staticinherited |
Definition at line 183 of file VP1HelperClassBase.cxx.
185 if (vp1helperclassbase_instanceMap.empty())
187 std::cout <<
"WARNING: Detected "<<vp1helperclassbase_instanceMap.size()<<
" undeleted helper class instances:"<<std::endl;
190 for (
it = vp1helperclassbase_instanceMap.begin();
it!=
itE;++
it) {
191 std::cout <<
" ==> "<<
it->first<<
": "<<
it->first->m_helpername.toStdString()
192 << (
it->second.isEmpty()?QString(
""):
" (in system "+
it->
second+
")").toStdString()<<std::endl;
◆ m_d
◆ m_helpername
QString VP1HelperClassBase::m_helpername |
|
privateinherited |
◆ m_system
◆ s_vp1verbose
The documentation for this class was generated from the following files:
JetConstituentVector::iterator iterator
bool is_pixel(Identifier id) const
double getTGCAngle(Identifier id) const
returns the phi angle of the passed phi strip identifier.
virtual bool globalToLocal(const Amg::Vector3D &glob, const Amg::Vector3D &mom, Amg::Vector2D &loc) const override final
Specified for PlaneSurface: GlobalToLocal method without dynamic memory allocation - boolean checks i...
bool is_rpc(Identifier id) const
static const MmIdHelper * mmIDHelper()
double StripLength(bool measphi) const
returns the strip length for the phi or eta plane
void fillMMValues(Identifier &id, const Trk::TrkDetElementBase *baseDetEl, double &striplength, double &stripWidth, double &stripThickness, Amg::Vector2D *&localposStrip)
bool is_csc(Identifier id) const
int gasGap(const Identifier &id) const override
get the hashes
bool is_sct(Identifier id) const
Eigen::Matrix< double, 2, 1 > Vector2D
void fillTGCValues(Identifier &id, const Trk::TrkDetElementBase *baseDetEl, double &striplength, double &stripWidth, double &stripThickness, Amg::Vector2D *&localposStrip)
void messageVerbose(const QString &) const
virtual const Amg::Vector3D & globalPosition() const override=0
Interface method to get the global Position.
static const bool s_vp1verbose
bool is_mm(Identifier id) const
bool measuresPhi(const Identifier &id) const override
double stripCenterLocX(int gasGap, int strip, double radialPos) const
Returns the local X of the strip center at a given local radial position.
double stripLength() const
Returns the length of each strip which is equal to the height of the chamber.
An RpcReadoutElement corresponds to a single RPC module; therefore typicaly a barrel muon station con...
static const sTgcIdHelper * stgcIDHelper()
static const AtlasDetectorID * atlasIDHelper()
void fillSTGCValues(Identifier &id, const Trk::TrkDetElementBase *baseDetEl, double &striplength, double &stripWidth, double &stripThickness, Amg::Vector2D *&localposStrip)
const Amg::Vector3D & center() const
Returns the center position of the Surface.
static QString str(const QString &s)
double etaPitch() const
Pitch (inline methods)
void messageDebug(const QString &) const
virtual const Trk::PlaneSurface & surface() const override
access to chamber surface (phi orientation), uses the first gas gap
Amg::RotationMatrix3D setPhi(Amg::RotationMatrix3D mat, double angle, int convention=0)
double stripLength(int chamberLayer, int measuresPhi, int stripNumber, double &epsilon) const
Amg::Vector3D channelPos(const Identifier &id) const
Returns the position of the active channel (wireGang or strip)
virtual bool stripPosition(const Identifier &id, Amg::Vector2D &pos) const override final
strip position - should be renamed to channel position If the strip number is outside the range of va...
int channel(const Identifier &id) const override
const TgcReadoutElement * getTgcReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
Amg::Transform3D getTransformFromRotTransl(Amg::RotationMatrix3D rot, Amg::Vector3D transl_vec)
double get(ParamDefs par) const
Retrieve specified parameter (const version).
static const TgcIdHelper * tgcIDHelper()
double phiPitch() const
Pitch (inline methods)
std::string toString(const Translation3D &translation, int precision=4)
GeoPrimitvesToStringConverter.
double stripWidth(int gasGap, int strip) const
Returns the width of a given strip in the gasGap i.
static const char * prefix_msg()
virtual bool stripPosition(const Identifier &id, Amg::Vector2D &pos) const override final
strip position If the strip number is outside the range of valid strips, the function will return fal...
bool is_tgc(Identifier id) const
double angle(const GeoTrf::Vector2D &a, const GeoTrf::Vector2D &b)
double gangShortWidth(int gasGap, int gang) const
Returns the length of the most bottom wire in the gang.
An sTgcReadoutElement corresponds to a single STGC module; therefore typicaly a barrel muon station c...
Eigen::Affine3d Transform3D
A TgcReadoutElement corresponds to a single TGC chamber; therefore typically a TGC station contains s...
SoNode * getShapeNode_Strip(double length, double width=0, double depth=0)
HitsSoNodeManager nodeManager
const QString & name() const
virtual const Surface & surface() const =0
Return surface associated with this detector element.
double gangRadialLength(int gasGap, int gang) const
Returns the length of the wire gang along the radial direction [pitch x N_{wire}^{gang}].
void fillRPCValues(Identifier &id, const Trk::TrkDetElementBase *baseDetEl, double &striplength, double &stripWidth, double &stripThickness, Amg::Vector2D *&localposStrip)
static const RpcIdHelper * rpcIDHelper()
int isStrip(const Identifier &id) const
isStrip corresponds to measuresPhi
static QColor sbcol2qcol(const SbColor &)
void fillSiValues(Identifier &id, const Trk::TrkDetElementBase *baseDetEl, double &striplength, double &stripWidth, double &stripThickness, Amg::Vector2D *&localposStrip)
void fillValues(Identifier &id, const Trk::TrkDetElementBase *baseDetEl, double &striplength, double &stripWidth, double &stripThickness, Amg::Vector2D *&localposStrip)
virtual const SurfaceBounds & bounds() const =0
Surface Bounds method.
Amg::Vector3D stripPos(const Identifier &id) const
bool is_indet(Identifier id) const
static const char * prefix_debug()
Eigen::Matrix< double, 3, 1 > Vector3D
const LocalParameters & localParameters() const
Interface method to get the LocalParameters.
double StripWidth(bool measphi) const
returns the strip width for the phi or eta plane
static const char * prefix_verbose()
Amg::Vector2D rawLocalPositionOfCell(const SiCellId &cellId) const
Returns position (center) of cell.
static const MuonGM::MuonDetectorManager * muonDetMgr()
bool is_muon(Identifier id) const
virtual bool globalToLocal(const Amg::Vector3D &glob, const Amg::Vector3D &mom, Amg::Vector2D &loc) const =0
Specified by each surface type: GlobalToLocal method without dynamic memory allocation - boolean chec...
static void message(const QString &, IVP1System *sys=0)
Eigen::Matrix< double, 3, 3 > RotationMatrix3D
Identifier identify() const
return the identifier -extends MeasurementBase
SoNode * getShapeNode_Cross(double extent)
void message(const QString &) const
bool is_stgc(Identifier id) const
static const CscIdHelper * cscIDHelper()
Amg::Vector3D stripPos(const Identifier &id) const
takes into account internal alignment parameters, hence gives accurate answer
bool measuresPhi(const Identifier &id) const override
virtual const TrkDetElementBase * detectorElement() const =0
returns the detector element, assoicated with the PRD of this class
VP1HelperClassBase(IVP1System *sys=0, QString helpername="")
SoNode * getShapeNode_DriftTube(double halfLength, double radius)
const Amg::Transform3D & transform() const
Returns HepGeom::Transform3D by reference.
static SoTransform * toSoTransform(const HepGeom::Transform3D &, SoTransform *t=0)
void message(const QString &) const
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
int chamberLayer(const Identifier &id) const
int getStationEta() const
double halflengthZ() const
This method returns the halflengthZ.
void fillCSCValues(Identifier &id, const Trk::TrkDetElementBase *baseDetEl, double &striplength, double &stripWidth, double &stripThickness, Amg::Vector2D *&localposStrip)
double cathodeReadoutPitch(int chLayer, int measuresPhi) const