 |
ATLAS Offline Software
|
#include <PatternVisualizationTool.h>
|
| virtual StatusCode | initialize () override final |
| |
| virtual void | visualizeBucket (const EventContext &ctx, const MuonR4::SpacePointBucket &bucket, const std::string &extraLabel) const override final |
| |
| virtual void | visualizeBucket (const EventContext &ctx, const MuonR4::SpacePointBucket &bucket, const std::string &extraLabel, PrimitiveVec &&extraPaints) const override final |
| |
| virtual void | visualizeSeed (const EventContext &ctx, const MuonR4::SegmentSeed &seed, const std::string &extraLabel) const override final |
| |
| virtual void | visualizeSeed (const EventContext &ctx, const MuonR4::SegmentSeed &seed, const std::string &extraLabel, PrimitiveVec &&extraPaints) const override final |
| |
| virtual void | visualizeAccumulator (const EventContext &ctx, const MuonR4::HoughPlane &accumulator, const Acts::HoughTransformUtils::HoughAxisRanges &axisRanges, const MaximumVec &maxima, const std::string &extraLabel) const override final |
| |
| virtual void | visualizeAccumulator (const EventContext &ctx, const MuonR4::HoughPlane &accumulator, const Acts::HoughTransformUtils::HoughAxisRanges &axisRanges, const MaximumVec &maxima, const std::string &extraLabel, PrimitiveVec &&extraPaints) const override final |
| |
| virtual void | visualizeSegment (const EventContext &ctx, const MuonR4::Segment &segment, const std::string &extraLabel) const override final |
| |
| virtual void | visualizeSegment (const EventContext &ctx, const MuonR4::Segment &segment, const std::string &extraLabel, PrimitiveVec &&extraPaints) const override final |
| |
| virtual LabeledSegmentSet | getLabeledSegments (const std::vector< const MuonR4::SpacePoint * > &hits) const override final |
| | Returns whether the hit has been used on the labeled segments we refer to (e.g. More...
|
| |
| virtual LabeledSegmentSet | getLabeledSegments (const std::vector< const xAOD::UncalibratedMeasurement * > &hits) const override final |
| |
| virtual bool | isLabeled (const MuonR4::SpacePoint &hit) const override final |
| | Fetches all labeled (e.g. More...
|
| |
| virtual bool | isLabeled (const xAOD::UncalibratedMeasurement &hit) const override final |
| |
| template<class SpacePointType > |
| const SpacePoint * | drawHit (const SpacePointType &hit, Canvas_t &canvas, const unsigned int view, unsigned int fillStyle) const |
| |
|
| template<class SpacePointType > |
| bool | drawHits (const MuonR4::SpacePointBucket &bucket, const std::vector< SpacePointType > &hitsToDraw, Canvas_t &canvasDim, unsigned int view) const |
| | Translates the Spacepoint information into TObjects that are dawn on the canvas & evaluates the size of the box surrounding the event. More...
|
| |
| template<class SpacePointType > |
| const MuonR4::SpacePoint * | drawHit (const SpacePointType &hit, Canvas_t &canvas, const unsigned int view, unsigned int fillStyle) const |
| | Converts a Hit into a particular TBox/ TEllipse for drawing. More...
|
| |
| template<class SpacePointType > |
| void | writeChi2 (const MuonR4::SegmentFit::Parameters &pars, const std::vector< SpacePointType > &hits, Canvas_t &canvas, const double legX=0.2, double startLegY=0.8, const double endLegY=0.3) const |
| | Writes the chi2 of the hits onto the Canvas. More...
|
| |
| void | paintSimHits (const EventContext &ctx, const xAOD::MuonSegment &truthSeg, Canvas_t &canvas, const int view) const |
| | Paints the truth sim hits associated with the segment. More...
|
| |
|
| ServiceHandle< IRootVisualizationService > | m_visualSvc {this, "VisualSvc", "MuonValR4::RootVisualizationService"} |
| | Service handle of the visualization service. More...
|
| |
| IRootVisualizationService::ClientToken | m_clientToken {} |
| | Token to present to the visualization service such that the display froms this tool are grouped together. More...
|
| |
| Gaudi::Property< unsigned int > | m_canvasLimit {this, "CanvasLimits", 5000} |
| | Maximum canvases to draw. More...
|
| |
| Gaudi::Property< bool > | m_saveSinglePDFs {this, "saveSinglePDFs", false} |
| | If set to true each canvas is saved into a dedicated pdf file. More...
|
| |
| Gaudi::Property< bool > | m_saveSummaryPDF {this, "saveSummaryPDF", false} |
| | If set to true a summary Canvas is created. More...
|
| |
| Gaudi::Property< std::string > | m_canvasPrefix {this, "CanvasPreFix", ""} |
| | Prefix of the individual canvas file names <MANDATORY>
More...
|
| |
| Gaudi::Property< std::string > | m_subDir {this, "outSubDir", ""} |
| | Define the subdirectory in which the plots shall be saved. More...
|
| |
| Gaudi::Property< bool > | m_displayBucket {this, "displayBucket", true} |
| | Display the surrounding hits from the bucket not part of the seed. More...
|
| |
| Gaudi::Property< bool > | m_accumlIsEta {this, "AccumulatorsInEtaPlane", true} |
| | Swtich toggling whether the accumulator view are in the eta or phi plane. More...
|
| |
| Gaudi::Property< bool > | m_doEtaBucketViews {this,"doEtaBucketViews", true} |
| | Switch to visualize the eta view of the bucket event. More...
|
| |
| Gaudi::Property< bool > | m_doPhiBucketViews {this,"doPhiBucketViews", false} |
| | Switch to visualize the phi view of the bucket event. More...
|
| |
| Gaudi::Property< bool > | m_paintTruthHits {this, "paintTruthHits", false} |
| | Switch to visualize the truth hits
More...
|
| |
| SG::ReadHandleKeyArray< xAOD::UncalibratedMeasurementContainer > | m_prepContainerKeys {this, "PrdContainer", {}} |
| | Declare dependency on the prep data containers. More...
|
| |
| Gaudi::Property< std::set< std::string > > | m_truthSegLinks {this, "TruthSegDecors", {}} |
| | List of truth segment links to fetch. More...
|
| |
| SG::ReadDecorHandleKeyArray< xAOD::UncalibratedMeasurementContainer > | m_truthLinkDecorKeys {this, "LinkDecorKeys", {}} |
| | Declaration of the dependency on the decorations. More...
|
| |
| std::vector< SegLinkDecor_t > | m_truthLinkDecors {} |
| |
| Gaudi::Property< bool > | m_displayOnlyTruth {this, "displayTruthOnly", false} |
| |
| const MuonGMR4::MuonDetectorManager * | m_detMgr {nullptr} |
| | pointer to the Detector manager More...
|
| |
| SG::ReadHandleKey< ActsTrk::GeometryContext > | m_geoCtxKey {this, "AlignmentKey", "ActsAlignment", "cond handle key"} |
| | Geometry context key to retrieve the alignment. More...
|
| |
| ServiceHandle< Muon::IMuonIdHelperSvc > | m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"} |
| | Service Handle to the IMuonIdHelperSvc. More...
|
| |
| std::atomic< bool > | m_plotsDone {false} |
| | Flag toggling whether all Canvases have been exhausted. More...
|
| |
Definition at line 28 of file PatternVisualizationTool.h.
◆ Canvas_t
◆ Edges
◆ LabeledSegmentSet
◆ SegLink_t
◆ SegLinkDecor_t
◆ SegLinkVec_t
◆ drawHit() [1/2]
template<class SpacePointType >
Converts a Hit into a particular TBox/ TEllipse for drawing.
If the hit provides information that's requested for that view. The underlying space pointer is returned and the dimensions of the canvas are updated, if the drawing was succesful
- Parameters
-
| hit | Reference to the hit to draw |
| canvas | Reference to the Canvas object to which the drawn hits are appended. The drawn hits also expand the drawn range |
| view | Draw the hit either in the eta or phi view, |
| fillStyle | Standard fill style for the box e.g. full. |
◆ drawHit() [2/2]
template<class SpacePointType >
| const SpacePoint* MuonValR4::PatternVisualizationTool::drawHit |
( |
const SpacePointType & |
hit, |
|
|
Canvas_t & |
canvas, |
|
|
const unsigned int |
view, |
|
|
unsigned int |
fillStyle |
|
) |
| const |
Don't draw any hit which is not participating in the view
Update the fill style accrodingly
Definition at line 407 of file PatternVisualizationTool.cxx.
417 canvas.expandPad(hit.localPosition()[
view] - hit.driftRadius(),
418 hit.localPosition().z() - hit.driftRadius());
419 canvas.expandPad(hit.localPosition()[
view] + hit.driftRadius(),
420 hit.localPosition().z() + hit.driftRadius());
425 constexpr
int invalidCalibFill = 3305;
426 if constexpr (std::is_same_v<SpacePointType, SpacePoint>) {
431 fillStyle = invalidCalibFill;
434 }
else if constexpr(std::is_same_v<SpacePointType, CalibratedSpacePoint>) {
435 underlyingSp = hit.spacePoint();
436 if (hit.fitState() == CalibratedSpacePoint::State::Valid) {
438 }
else if (hit.fitState() == CalibratedSpacePoint::State::FailedCalib) {
439 fillStyle = invalidCalibFill;
450 const int circColor =
isLabeled(*dc) ? truthColor : kBlue;
455 const int boxColor =
isLabeled(*meas) ? truthColor : kGreen +2;
456 const double boxWidth = 0.5*std::sqrt(12)*std::sqrt(underlyingSp->covariance()[
view]);
457 canvas.add(
drawBox(hit.localPosition(), boxWidth, 0.5*meas->readoutElement()->gasGapPitch(),
458 boxColor, fillStyle));
461 const auto* meas{
static_cast<const xAOD::TgcStrip*
>(underlyingSp->primaryMeasurement())};
462 const int boxColor =
isLabeled(*meas) ? truthColor : kCyan + 2;
463 const double boxWidth = 0.5*std::sqrt(12)*std::sqrt(underlyingSp->covariance()[
view]);
464 canvas.add(
drawBox(hit.localPosition(), boxWidth, 0.5*meas->readoutElement()->gasGapPitch(),
465 boxColor, fillStyle));
468 const int boxColor =
isLabeled(*underlyingSp->primaryMeasurement()) ? truthColor : kAquamarine;
475 const int boxColor =
isLabeled(*underlyingSp->primaryMeasurement()) ? truthColor : kTeal;
480 ATH_MSG_WARNING(
"Please implement proper drawings of the new small wheel.. "<<__FILE__<<
":"<<__LINE__);
◆ drawHits()
template<class SpacePointType >
Translates the Spacepoint information into TObjects that are dawn on the canvas & evaluates the size of the box surrounding the event.
Returns true if at least 2 objects were created.
- Parameters
-
| bucket | SpacePoint bucket from which the hits are taken. If the <DisplayBucket> is set true, the hits that were not in the subset are also painted with hollow filling |
| hitsToDraw | Primary hit collection to draw which are drawn with fullFillStyle |
| canvas | Reference to the Canvas object to which the drawn hits are appended. The drawn hits also expand the drawn range |
| view | Either the eta or the phi view? |
Definition at line 488 of file PatternVisualizationTool.cxx.
494 for (
const SpacePointType& hit : hitsToDraw) {
498 for (
const SpacePointBucket::value_type& hit : bucket) {
500 if (drawnPoints.count(hit.get())) {
506 return drawnPoints.size() - drawnPoints.count(
nullptr) > 1;
◆ getLabeledSegments() [1/2]
Returns whether the hit has been used on the labeled segments we refer to (e.g.
truth or data Zµµ)
- Parameters
-
| hits | Vector of hits to search |
Definition at line 87 of file PatternVisualizationTool.cxx.
88 std::vector<const xAOD::UncalibratedMeasurement*> measurements{};
89 measurements.reserve(2*
hits.size());
91 measurements.push_back(hit->primaryMeasurement());
92 if(hit->secondaryMeasurement()) {
93 measurements.push_back(hit->secondaryMeasurement());
◆ getLabeledSegments() [2/2]
◆ initialize()
| StatusCode MuonValR4::PatternVisualizationTool::initialize |
( |
| ) |
|
|
finaloverridevirtual |
Definition at line 42 of file PatternVisualizationTool.cxx.
56 ATH_MSG_INFO(
"Hits linked to the following segment decorations are considered as truth");
59 if (decorName.empty()) {
61 return StatusCode::FAILURE;
74 return StatusCode::SUCCESS;
◆ isLabeled() [1/2]
Fetches all labeled (e.g.
by truth or Zµµ reco) segments containing at least one measurement in the list passed as arg
- Parameters
-
| hit | Reference to the hit to check |
Definition at line 76 of file PatternVisualizationTool.cxx.
◆ isLabeled() [2/2]
◆ paintSimHits()
Paints the truth sim hits associated with the segment.
Hits are drawn as orange arrows
- Parameters
-
| ctx | EventContext to fetch the alignment constants |
| truthSeg | Segment made from truth sim hits |
| canvas | Reference to the Canvas object to which the drawn hits are appended |
| view | Draw the hit either in the eta or phi view |
Definition at line 200 of file PatternVisualizationTool.cxx.
215 re->measurementHash(simHit->identify()) :
216 re->layerHash(simHit->identify());
218 re->localToGlobalTrans(*geoCtx,
hash);
◆ visualizeAccumulator() [1/2]
| void MuonValR4::PatternVisualizationTool::visualizeAccumulator |
( |
const EventContext & |
ctx, |
|
|
const MuonR4::HoughPlane & |
accumulator, |
|
|
const Acts::HoughTransformUtils::HoughAxisRanges & |
axisRanges, |
|
|
const MaximumVec & |
maxima, |
|
|
const std::string & |
extraLabel |
|
) |
| const |
|
finaloverridevirtual |
◆ visualizeAccumulator() [2/2]
| void MuonValR4::PatternVisualizationTool::visualizeAccumulator |
( |
const EventContext & |
ctx, |
|
|
const MuonR4::HoughPlane & |
accumulator, |
|
|
const Acts::HoughTransformUtils::HoughAxisRanges & |
axisRanges, |
|
|
const MaximumVec & |
maxima, |
|
|
const std::string & |
extraLabel, |
|
|
PrimitiveVec && |
extraPaints |
|
) |
| const |
|
finaloverridevirtual |
Check whether the canvas limit has been reached
Definition at line 137 of file PatternVisualizationTool.cxx.
148 if (accumulator.getNonEmptyBins().empty()) {
153 auto accHisto = std::make_unique<TH2F>(
"AccumulatorHisto",
"histo",
154 accumulator.nBinsX(), axisRanges.xMin, axisRanges.xMax,
155 accumulator.nBinsY(), axisRanges.yMin, axisRanges.yMax);
156 accHisto->SetDirectory(
nullptr);
158 std::vector<const SpacePoint*> spacePointsInAcc{};
159 for (
const std::size_t
bin : accumulator.getNonEmptyBins()) {
160 const auto [xBin, yBin] = accumulator.axisBins(
bin);
161 auto hitIds = accumulator.hitIds(xBin, yBin);
162 spacePointsInAcc.insert(spacePointsInAcc.end(),hitIds.begin(), hitIds.end());
163 accHisto->SetBinContent(xBin+1, yBin+1, accumulator.nHits(
bin));
175 canvas->expandPad(axisRanges.xMin, axisRanges.yMin);
176 canvas->expandPad(axisRanges.xMax, axisRanges.yMax);
179 canvas->add(std::move(accHisto),
"HIST SAME");
185 auto truthMarker = std::make_unique<TMarker>(
tan, icept, kFullCrossX);
186 truthMarker->SetMarkerColor(truthColor);
187 truthMarker->SetMarkerSize(8);
188 canvas->add(std::move(truthMarker));
192 for (
const auto& maximum : maxima) {
193 auto maxMarker = std::make_unique<TMarker>(maximum.x, maximum.y, kFullTriangleUp);
194 maxMarker->SetMarkerColor(parLineColor);
195 maxMarker->SetMarkerSize(8);
196 canvas->add(std::move(maxMarker));
198 canvas->add(std::move(primitives));
◆ visualizeBucket() [1/2]
◆ visualizeBucket() [2/2]
Check whether the canvas limit has been reached
reset the primitives
Definition at line 289 of file PatternVisualizationTool.cxx.
307 canvas->add(std::move(primitives));
319 bool drawnTrueLabel{
false};
323 truthColor, kDotted,
view));
324 if (!drawnTrueLabel) {
326 drawnTrueLabel =
true;
331 std::string legendLabel =
std::format(
"Event: {:}, chamber : {:}, #{:}-view ({:})",
332 ctx.eventID().event_number(),
◆ visualizeSeed() [1/2]
◆ visualizeSeed() [2/2]
Check whether the canvas limit has been reached
Definition at line 230 of file PatternVisualizationTool.cxx.
249 canvas->add(std::move(primitives));
265 truthColor, kDotted,
view));
273 std::string legendLabel =
std::format(
"Event: {:}, chamber : {:}, #{:}-view ({:})",
274 ctx.eventID().event_number(),
◆ visualizeSegment() [1/2]
| void MuonValR4::PatternVisualizationTool::visualizeSegment |
( |
const EventContext & |
ctx, |
|
|
const MuonR4::Segment & |
segment, |
|
|
const std::string & |
extraLabel |
|
) |
| const |
|
finaloverridevirtual |
◆ visualizeSegment() [2/2]
Check whether the canvas limit has been reached
Definition at line 347 of file PatternVisualizationTool.cxx.
369 canvas->add(std::move(primitives));
386 truthColor, kDotted,
view));
392 parLineColor, kDashed,
view));
395 std::string legendLabel=
std::format(
"Event: {:}, chamber: {:}, #chi^{{2}} / nDoF: {:.2f} ({:d}), #{:}-view (:)",
396 ctx.eventID().event_number(),
m_idHelperSvc->toStringChamber(canvasId),
◆ writeChi2()
template<class SpacePointType >
Writes the chi2 of the hits onto the Canvas.
- Parameters
-
| pars | Parameter for which the chi2 is evaluated, |
| hits | Vector of hits to consider |
| canvas | Reference to the Canvas object to which the drawn hits are appended |
| legX | x-position of the list |
| statLegY | y-position of the first entry. The next one is 0.05 apart |
| endLeg | y-position of the last shown entry. The routine aborts if there're more hits in the event. |
Definition at line 509 of file PatternVisualizationTool.cxx.
516 for (
const SpacePointType& hit :
hits) {
518 bool displayChi2{
true};
519 if constexpr(std::is_same_v<SpacePointType, Segment::MeasType>) {
520 underlyingSp = hit->spacePoint();
521 displayChi2 = (hit->fitState() == CalibratedSpacePoint::State::Valid);
526 std::string legendstream{};
527 switch(hit->type()) {
529 const int driftSign{SeedingAux::strawSign(
pos,
dir, *hit)};
531 legendstream =
std::format(
"ML: {:1d}, TL: {:1d}, T: {:3d}, {:}",
532 idHelper.multilayer(hitId), idHelper.tubeLayer(hitId),
533 idHelper.tube(hitId), driftSign == -1 ?
"L" :
"R");
537 legendstream=
std::format(
"DR: {:1d}, DZ: {:1d}, GAP: {:1d}, #eta/#phi: {:}/{:}",
538 idHelper.doubletR(hitId), idHelper.doubletZ(hitId), idHelper.gasGap(hitId),
539 hit->measuresEta() ?
"si" :
"nay", hit->measuresPhi() ?
"si" :
"nay");
543 legendstream =
std::format(
"ST: {:}, GAP: {:1d}, #eta/#phi: {:}/{:}",
544 m_idHelperSvc->stationNameString(hitId), idHelper.gasGap(hitId),
545 hit->measuresEta() ?
"si" :
"nay", hit->measuresPhi() ?
"si" :
"nay");
549 const auto* clus =
static_cast<const xAOD::MMCluster*
>(underlyingSp->primaryMeasurement());
550 const MuonGMR4::StripDesign& design = clus->readoutElement()->stripLayer(clus->layerHash()).design();
551 legendstream =
std::format(
"ML: {:1d}, GAP: {:1d}, {:}", idHelper.multilayer(hitId), idHelper.gasGap(hitId),
556 legendstream =
std::format(
"ML: {:1d}, GAP: {:1d}, #eta/#phi: {:}/{:}",
557 idHelper.multilayer(hitId), idHelper.gasGap(hitId),
558 hit->measuresEta() ?
"si" :
"nay", hit->measuresPhi() ?
"si" :
"nay");
561 legendstream =
"Ext. constaint";
567 const double chi2 = SeedingAux::chi2Term(
pos,
dir,*hit);
570 legendstream+=
", #chi^{2}: ---";
574 if (startLegY<= endLegY) {
◆ m_accumlIsEta
| Gaudi::Property<bool> MuonValR4::PatternVisualizationTool::m_accumlIsEta {this, "AccumulatorsInEtaPlane", true} |
|
private |
Swtich toggling whether the accumulator view are in the eta or phi plane.
Just affects the axis labels
Definition at line 165 of file PatternVisualizationTool.h.
◆ m_canvasLimit
| Gaudi::Property<unsigned int> MuonValR4::PatternVisualizationTool::m_canvasLimit {this, "CanvasLimits", 5000} |
|
private |
◆ m_canvasPrefix
| Gaudi::Property<std::string> MuonValR4::PatternVisualizationTool::m_canvasPrefix {this, "CanvasPreFix", ""} |
|
private |
◆ m_clientToken
◆ m_detMgr
◆ m_displayBucket
| Gaudi::Property<bool> MuonValR4::PatternVisualizationTool::m_displayBucket {this, "displayBucket", true} |
|
private |
◆ m_displayOnlyTruth
| Gaudi::Property<bool> MuonValR4::PatternVisualizationTool::m_displayOnlyTruth {this, "displayTruthOnly", false} |
|
private |
◆ m_doEtaBucketViews
| Gaudi::Property<bool> MuonValR4::PatternVisualizationTool::m_doEtaBucketViews {this,"doEtaBucketViews", true} |
|
private |
◆ m_doPhiBucketViews
| Gaudi::Property<bool> MuonValR4::PatternVisualizationTool::m_doPhiBucketViews {this,"doPhiBucketViews", false} |
|
private |
◆ m_geoCtxKey
◆ m_idHelperSvc
◆ m_paintTruthHits
| Gaudi::Property<bool> MuonValR4::PatternVisualizationTool::m_paintTruthHits {this, "paintTruthHits", false} |
|
private |
◆ m_plotsDone
| std::atomic<bool> MuonValR4::PatternVisualizationTool::m_plotsDone {false} |
|
mutableprivate |
◆ m_prepContainerKeys
◆ m_saveSinglePDFs
| Gaudi::Property<bool> MuonValR4::PatternVisualizationTool::m_saveSinglePDFs {this, "saveSinglePDFs", false} |
|
private |
◆ m_saveSummaryPDF
| Gaudi::Property<bool> MuonValR4::PatternVisualizationTool::m_saveSummaryPDF {this, "saveSummaryPDF", false} |
|
private |
◆ m_subDir
| Gaudi::Property<std::string> MuonValR4::PatternVisualizationTool::m_subDir {this, "outSubDir", ""} |
|
private |
◆ m_truthLinkDecorKeys
◆ m_truthLinkDecors
| std::vector<SegLinkDecor_t> MuonValR4::PatternVisualizationTool::m_truthLinkDecors {} |
|
private |
◆ m_truthSegLinks
| Gaudi::Property<std::set<std::string> > MuonValR4::PatternVisualizationTool::m_truthSegLinks {this, "TruthSegDecors", {}} |
|
private |
◆ m_visualSvc
The documentation for this class was generated from the following files:
def retrieve(aClass, aKey=None)
constexpr int fullFilling
std::string preFixName
Prefix name of the saved Canvas.
MuonValR4::IPatternVisualizationTool::PrimitiveVec PrimitiveVec
std::string subDirectory
Subdirectory in which the plots are written.
std::unique_ptr< TLine > drawLine(const MuonR4::SegmentFit::Parameters &pars, const double lowEnd, const double highEnd, const int color=kRed+1, const int lineStyle=kDashed, const int view=objViewEta)
Draws a line from the segment fit parameters.
const SpacePointBucket * parentBucket() const
Returns the bucket out of which the seed was formed.
double stereoAngle() const
Returns the value of the stereo angle.
RpcMeasurement_v1: Class storing the geneic.
const MuonGMR4::SpectrometerSector * msSector() const
returns th associated muonChamber
bool saveSinglePlots
Save single plots.
const MeasVec & measurements() const
Returns the associated measurements.
The MuonReadoutElement is an abstract class representing the geometry representing the muon detector.
std::unique_ptr< TBox > drawBox(const Amg::Vector3D &boxCenter, const double boxWidth, const double boxHeight, const int color=kGreen+2, const int fillStyle=hollowFilling, const int view=objViewEta)
Creates a box for drawing, e.g strip measurements.
Class describing a MuonSegment.
const xAOD::UncalibratedMeasurement * secondaryMeasurement() const
double chi2() const
Returns the chi2 of the segment fit.
Property holding a SG store/key/clid from which a ReadHandle is made.
std::pair< Amg::Vector3D, Amg::Vector3D > makeLine(const Parameters &pars)
Returns the parsed parameters into an Eigen line parametrization.
std::string identString() const
Returns a string encoding the chamber index & the sector of the MS sector.
std::unique_ptr< TLatex > drawLabel(const std::string &text, const double xPos, const double yPos, const unsigned int fontSize=18)
Create a TLatex label,.
unsigned int nDoF() const
Returns the number of degrees of freedom.
@ u
Enums for curvilinear frames.
@ MdtStatusDriftTime
The tube produced a vaild measurement.
std::size_t canvasLimit
How many canvases are drawn at maximum in a job.
const xAOD::UncalibratedMeasurement * primaryMeasurement() const
double houghTanBeta(const Amg::Vector3D &v)
Returns the hough tanBeta [y] / [z].
const T * get(const ReadCondHandleKey< T > &key, const EventContext &ctx)
Convenience function to retrieve an object given a ReadCondHandleKey.
const SegmentSeed * parent() const
Returns the seed out of which the segment was built.
Eigen::Affine3d Transform3D
double chi2(TH1 *h0, TH1 *h1)
const std::vector< HitType > & getHitsInMax() const
Returns the list of assigned hits.
Acts::Experimental::CompositeSpacePointLineFitter::ParamVec_t Parameters
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
The muon space point is the combination of two uncalibrated measurements one of them measures the eta...
ElementLink implementation for ROOT usage.
constexpr int objViewEta
ObjectView.
Eigen::Matrix< double, 3, 1 > Vector3D
bool saveSummaryPlot
Save a summary pdf.
std::unique_ptr< TArrow > drawArrow(const Amg::Vector3D &start, const Amg::Vector3D &dir, const int color=kRed+1, const int lineStyle=kDashed, const int view=objViewEta)
#define ATH_MSG_WARNING(x)
std::vector< const SpacePoint * > SpacePointSet
vector of space points
const boost::regex re(r_e)
constexpr int hollowFilling
Filling codes for hollow / fullFilling / hatched filling.
std::string makeLabel(const Parameters &pars)
Dumps the parameters into a string in the form of TLatex.
Parameters localSegmentPars(const xAOD::MuonSegment &seg)
Returns the localSegPars decoration from a xAODMuon::Segment.
bool hasStereoAngle() const
Returns whether a stereo angle is defined.
std::unique_ptr< TEllipse > drawDriftCircle(const Amg::Vector3D ¢er, const double radius, const int color=kViolet, const int fillStyle=hollowFilling)
Create a TEllipse for drawing a drift circle.
https://gitlab.cern.ch/atlas/athena/-/blob/master/MuonSpectrometer/MuonReconstruction/MuonRecEvent/Mu...
double houghTanAlpha(const Amg::Vector3D &v)
: Returns the hough tanAlpha [x] / [z]
std::unordered_set< const xAOD::MuonSimHit * > getMatchingSimHits(const xAOD::MuonSegment &segment)
: Returns all sim hits matched to a xAOD::MuonSegment
constexpr int hatchedFilling
const MuonReadoutElement * getReadoutElement(const Identifier &id) const
Returns a generic Muon readout element.