ATLAS Offline Software
Loading...
Searching...
No Matches
HitToSoNode.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3*/
4
5
6// Update: Riccardo Maria BIANCHI rbianchi@cern.ch Feb 2014 //
7
8#ifndef HITTOSONODE_H
9#define HITTOSONODE_H
10
11// This class is to allow the PRD and track systems to share the same code for drawing DEs.
12
14
15// Eigen Migration
19// new files
22
23
24class SoSeparator;
25class SoTransform;
26
27namespace Trk {
28 class RIO_OnTrack;
30}
31class Identifier;
32
34public:
35
36 HitToSoNode( IVP1System * sys = 0 );//sys for messages
38
39 SoTransform * createTransform(const Trk::RIO_OnTrack& rio, bool useSurfacePositionOnly) const;
40 SoTransform * createTGC_Transform(const Trk::RIO_OnTrack& rio, bool useSurfacePositionOnly) const;
41 void buildStripShapes(const Trk::RIO_OnTrack& rio, SoSeparator*&shape_simple, SoSeparator*&shape_detailed, bool blockGP);
42 void buildTubeShapes(const Trk::RIO_OnTrack& rio, SoSeparator*&shape_simple, SoSeparator*&shape_detailed, bool blockGP, double length, bool doProjection);
43 double getTGCAngle(Identifier id) const;
44
45private:
46
49
50 // Eigen migration
51// void fillValues(Identifier& id, const Trk::TrkDetElementBase* baseDetEl, double& striplength, double& stripWidth, double& stripThickness, Trk::LocalPosition*& localposStrip);
52// void fillRPCValues(Identifier& id, const Trk::TrkDetElementBase* baseDetEl, double& striplength, double& stripWidth, double& stripThickness, Trk::LocalPosition*& localposStrip);
53// void fillTGCValues(Identifier& id, const Trk::TrkDetElementBase* baseDetEl, double& striplength, double& stripWidth, double& stripThickness, Trk::LocalPosition*& localposStrip);
54// void fillCSCValues(Identifier& id, const Trk::TrkDetElementBase* baseDetEl, double& striplength, double& stripWidth, double& stripThickness, Trk::LocalPosition*& localposStrip);
55// void fillSTGCValues(Identifier& id, const Trk::TrkDetElementBase* baseDetEl, double& striplength, double& stripWidth, double& stripThickness, Trk::LocalPosition*& localposStrip);
56// void fillMMValues(Identifier& id, const Trk::TrkDetElementBase* baseDetEl, double& striplength, double& stripWidth, double& stripThickness, Trk::LocalPosition*& localposStrip);
57// void fillSiValues(Identifier& id, const Trk::TrkDetElementBase* baseDetEl, double& striplength, double& stripWidth, double& stripThickness, Trk::LocalPosition*& localposStrip);
58//
59 void fillValues(Identifier& id, const Trk::TrkDetElementBase* baseDetEl, double& striplength, double& stripWidth, double& stripThickness, Amg::Vector2D*& localposStrip);
60 void fillRPCValues(Identifier& id, const Trk::TrkDetElementBase* baseDetEl, double& striplength, double& stripWidth, double& stripThickness, Amg::Vector2D*& localposStrip);
61 void fillTGCValues(Identifier& id, const Trk::TrkDetElementBase* baseDetEl, double& striplength, double& stripWidth, double& stripThickness, Amg::Vector2D*& localposStrip);
62 void fillCSCValues(Identifier& id, const Trk::TrkDetElementBase* baseDetEl, double& striplength, double& stripWidth, double& stripThickness, Amg::Vector2D*& localposStrip);
63 void fillSTGCValues(Identifier& id, const Trk::TrkDetElementBase* baseDetEl, double& striplength, double& stripWidth, double& stripThickness, Amg::Vector2D*& localposStrip);
64 void fillMMValues(Identifier& id, const Trk::TrkDetElementBase* baseDetEl, double& striplength, double& stripWidth, double& stripThickness, Amg::Vector2D*& localposStrip);
65 void fillSiValues(Identifier& id, const Trk::TrkDetElementBase* baseDetEl, double& striplength, double& stripWidth, double& stripThickness, Amg::Vector2D*& localposStrip);
66
67 class Imp;
69};
70
71#endif
double length(const pvec &v)
HitToSoNode & operator=(const HitToSoNode &)
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 fillValues(Identifier &id, const Trk::TrkDetElementBase *baseDetEl, double &striplength, double &stripWidth, double &stripThickness, Amg::Vector2D *&localposStrip)
SoTransform * createTransform(const Trk::RIO_OnTrack &rio, bool useSurfacePositionOnly) const
void buildTubeShapes(const Trk::RIO_OnTrack &rio, SoSeparator *&shape_simple, SoSeparator *&shape_detailed, bool blockGP, double length, bool doProjection)
HitToSoNode(IVP1System *sys=0)
void buildStripShapes(const Trk::RIO_OnTrack &rio, SoSeparator *&shape_simple, SoSeparator *&shape_detailed, bool blockGP)
double getTGCAngle(Identifier id) const
returns the phi angle of the passed phi strip identifier.
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)
HitToSoNode(const HitToSoNode &)
SoTransform * createTGC_Transform(const Trk::RIO_OnTrack &rio, bool useSurfacePositionOnly) const
TGCs are rotated.
void fillSiValues(Identifier &id, const Trk::TrkDetElementBase *baseDetEl, double &striplength, double &stripWidth, double &stripThickness, Amg::Vector2D *&localposStrip)
Class to handle RIO On Tracks ROT) for InDet and Muons, it inherits from the common MeasurementBase.
Definition RIO_OnTrack.h:70
This is the base class for all tracking detector elements with read-out relevant information.
VP1HelperClassBase(IVP1System *sys=0, QString helpername="")
Eigen::Matrix< double, 2, 1 > Vector2D
Ensure that the ATLAS eigen extensions are properly loaded.