 |
ATLAS Offline Software
|
#include <StripClusteringTool.h>
|
std::optional< std::pair< typename IStripClusteringTool::CellCollection, bool > > | unpackRDOs (const EventContext &ctx, const RawDataCollection &RDOs, const InDet::SiDetectorElementStatus &stripDetElStatus, const InDetDD::SiDetectorElement &element) const |
|
bool | passTiming (const std::bitset< 3 > &timePattern) const |
|
StatusCode | decodeTimeBins () |
|
bool | isBadStrip (const EventContext &ctx, const InDet::SiDetectorElementStatus *sctDetElStatus, const StripID &idHelper, IdentifierHash waferHash, Identifier stripId) const |
|
StatusCode | makeCluster (StripClusteringTool::Cluster &cluster, double LorentzShift, Eigen::Matrix< float, 1, 1 > &localCov, const StripID &stripID, const InDetDD::SiDetectorElement &element, const InDetDD::SiDetectorDesign &design, xAOD::StripCluster &container) const |
|
Definition at line 26 of file StripClusteringTool.h.
◆ StripID
◆ StripRDORawData
◆ StripClusteringTool()
ActsTrk::StripClusteringTool::StripClusteringTool |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
parent |
|
) |
| |
◆ clusterize()
Definition at line 88 of file StripClusteringTool.cxx.
97 collection.emplace_back();
98 bool goodModule =
true;
100 goodModule = stripDetElStatus.
isGood(idHash);
109 return StatusCode::SUCCESS;
115 unsigned int nFiredStrips = 0
u;
117 nFiredStrips += rdo->getGroupSize();
120 return StatusCode::SUCCESS;
123 std::optional<std::pair<typename IStripClusteringTool::CellCollection,bool>> unpckd
124 =
unpackRDOs(ctx, RDOs, stripDetElStatus, element);
126 if (not unpckd.has_value()) {
127 ATH_MSG_FATAL(
"Error encountered while unpacking strip RDOs!");
128 return StatusCode::FAILURE;
131 auto& [
cells, badStripOnModule] = *unpckd;
137 Acts::Ccl::createClusters<CellCollection, typename IStripClusteringTool::ClusterCollection, 1>(
cells);
138 collection.back() = std::move(
clusters);
140 return StatusCode::SUCCESS;
◆ decodeTimeBins()
StatusCode ActsTrk::StripClusteringTool::decodeTimeBins |
( |
| ) |
|
|
private |
◆ initialize()
StatusCode ActsTrk::StripClusteringTool::initialize |
( |
| ) |
|
|
overridevirtual |
◆ isBadStrip()
Definition at line 267 of file StripClusteringTool.cxx.
273 if (stripDetElStatus) {
274 const int strip_i{stripID.strip(stripId)};
277 stripDetElStatus->isCellGood(waferHash.
value(), strip_i),
279 return not stripDetElStatus->isCellGood(waferHash.
value(), strip_i) ;
◆ makeCluster()
Definition at line 226 of file StripClusteringTool.cxx.
234 std::size_t
size = cluster.ids.size();
236 auto [localPos, globalPos]
237 = computePosition(cluster,
size, lorentzShift, stripID, element, design);
244 cl.setIdentifier( cluster.ids.front() );
247 cl.globalPosition() = globalPos;
249 cl.setChannelsInPhi(
size);
250 cl.setRDOlist(std::move(cluster.ids));
252 return StatusCode::SUCCESS;
◆ makeClusters()
Definition at line 145 of file StripClusteringTool.cxx.
158 Eigen::Matrix<float,1,1> localCov(pitch * pitch *
ONE_TWELFTH);
160 for (
typename IStripClusteringTool::Cluster&
cl :
clusters) {
172 ATH_MSG_FATAL(
"Exception thrown while creating xAOD::StripCluster:"
176 for (
const auto&
id :
cl.ids)
178 return StatusCode::FAILURE;
182 return StatusCode::SUCCESS;
◆ passTiming()
bool ActsTrk::StripClusteringTool::passTiming |
( |
const std::bitset< 3 > & |
timePattern | ) |
const |
|
private |
◆ unpackRDOs()
Definition at line 286 of file StripClusteringTool.cxx.
293 CellCollection
cells;
296 bool badStripOnModule{
false};
303 bool cache_valid =
false;
312 std::bitset<3> timePattern(raw3->
getTimeBin());
325 if (!cache_valid || waferId_compact != waferId_compact_cache) {
326 waferId_compact_cache = waferId_compact;
331 std::size_t iFirstStrip =
static_cast<size_t>(
m_stripID->
strip(firstStripId));
334 iFirstStrip + raw->getGroupSize(),
338 for (
size_t i = iFirstStrip;
i < iMaxStrip;
i++) {
343 <<
", wafer is: " << waferId);
344 badStripOnModule =
true;
347 cells.emplace_back(
i, stripIdent, std::move(timePattern));
352 return std::make_pair(std::move(
cells), badStripOnModule);
◆ m_checkBadModules
Gaudi::Property<bool> ActsTrk::StripClusteringTool::m_checkBadModules |
|
private |
Initial value:{this, "checkBadModules", true,
"Check bad modules using the conditions summary tool"}
Definition at line 89 of file StripClusteringTool.h.
◆ m_conditionsTool
Initial value:{this, "conditionsTool", "",
"Conditions summary tool"}
Definition at line 86 of file StripClusteringTool.h.
◆ m_lorentzAngleTool
Initial value:{this, "LorentzAngleTool", "",
"Tool to retreive Lorentz angle of Si detector module"
}
Definition at line 78 of file StripClusteringTool.h.
◆ m_maxFiredStrips
Gaudi::Property<unsigned int> ActsTrk::StripClusteringTool::m_maxFiredStrips |
|
private |
Initial value:{
this,
"maxFiredStrips", 384
u,
"Threshold of number of fired strips per wafer. 0 disables the per-wafer cut."}
Definition at line 92 of file StripClusteringTool.h.
◆ m_stripDetEleCollKey
Initial value:{this, "StripDetEleCollKey", "ITkStripDetectorElementCollection",
"SiDetectorElementCollection key for strip"}
Definition at line 95 of file StripClusteringTool.h.
◆ m_stripDetElStatus
Initial value:{this, "StripDetElStatus", "",
"SiDetectorElementStatus for strip"}
Definition at line 83 of file StripClusteringTool.h.
◆ m_stripID
const StripID* ActsTrk::StripClusteringTool::m_stripID {nullptr} |
|
private |
◆ m_timeBinBits
int ActsTrk::StripClusteringTool::m_timeBinBits[3] {-1, -1, -1} |
|
private |
◆ m_timeBinStr
StringProperty ActsTrk::StripClusteringTool::m_timeBinStr {this, "timeBins", ""} |
|
private |
The documentation for this class was generated from the following files:
def retrieve(aClass, aKey=None)
value_type get_compact() const
Get the compact id.
bool empty() const
Test if the key is blank.
@ u
Enums for curvilinear frames.
virtual IdentifierHash identifyHash() const override final
identifier hash (inline)
virtual IdentifierHash identifyHash() const override final
#define VALIDATE_STATUS_ARRAY(use_info, info_val, summary_val)
IdentifierHash wafer_hash(const Identifier &wafer_id) const
wafer hash from id - optimized
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
bool isGood(IdentifierHash hash) const
StatusCode initialize(bool used=true)
#define ATH_MSG_WARNING(x)
int strip(const Identifier &id) const
unsigned long long value_type
constexpr double ONE_TWELFTH
Identifier wafer_id(int barrel_ec, int layer_disk, int phi_module, int eta_module, int side) const
For a single side of module.
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
virtual const SiDetectorDesign & design() const override final
access to the local description (inline):
cl
print [x.__class__ for x in toList(dqregion.getSubRegions()) ]
virtual double phiPitch() const =0
Pitch in phi direction.
virtual Identifier identify() const override final
identifier of this detector element (inline)
Identifier strip_id(int barrel_ec, int layer_disk, int phi_module, int eta_module, int side, int strip) const
For an individual strip.