|
ATLAS Offline Software
|
#include <StripClusteringTool.h>
|
bool | passTiming (const std::bitset< 3 > &timePattern) const |
|
StatusCode | decodeTimeBins () |
|
std::optional< std::pair< std::vector< Cell >, bool > > | unpackRDOs (const InDetRawDataCollection< StripRDORawData > &RDOs, const StripID &idHelper, const InDet::SiDetectorElementStatus *sctDetElStatus, const EventContext &ctx) const |
|
bool | isBadStrip (const EventContext &ctx, const InDet::SiDetectorElementStatus *sctDetElStatus, const StripID &idHelper, IdentifierHash waferHash, Identifier stripId) const |
|
StatusCode | makeCluster (const StripClusteringTool::Cluster &cluster, double LorentzShift, const StripID &stripID, const InDetDD::SiDetectorElement *element, xAOD::StripCluster &container) const |
|
Definition at line 26 of file StripClusteringTool.h.
◆ CellCollection
◆ ClusterCollection
◆ StripID
◆ StripRDORawData
◆ StripClusteringTool()
ActsTrk::StripClusteringTool::StripClusteringTool |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
parent |
|
) |
| |
◆ clusterize()
Definition at line 83 of file StripClusteringTool.cxx.
95 return StatusCode::FAILURE;
99 bool goodModule =
true;
102 goodModule =
status->isGood(idHash);
113 return StatusCode::SUCCESS;
119 unsigned int nFiredStrips = 0
u;
121 nFiredStrips += rdo->getGroupSize();
124 return StatusCode::SUCCESS;
129 ATH_CHECK( stripDetEleHandle.isValid() );
131 if (stripDetEle ==
nullptr) {
133 return StatusCode::FAILURE;
137 stripDetEle->getDetectorElement(idHash);
142 std::optional<std::pair<CellCollection,bool>> unpckd
143 =
unpackRDOs(RDOs, stripID, stripDetElStatus, ctx);
144 if (not unpckd.has_value()) {
145 ATH_MSG_FATAL(
"Error encountered while unpacking strip RDOs!");
146 return StatusCode::FAILURE;
149 auto& [
cells, badStripOnModule] = *unpckd;
152 Acts::Ccl::createClusters<CellCollection, ClusterCollection, 1>(
cells);
154 std::size_t previousSizeContainer = container.
size();
156 std::vector<xAOD::StripCluster*> toAddCollection;
157 toAddCollection.reserve(
clusters.size());
160 container.
insert(container.
end(), toAddCollection.begin(), toAddCollection.end());
169 if (badStripOnModule) {
170 cl.hitsInThirdTimeBin = 0;
175 ATH_MSG_FATAL(
"Exception thrown while creating xAOD::StripCluster:"
181 return StatusCode::FAILURE;
185 return StatusCode::SUCCESS;
◆ decodeTimeBins()
StatusCode ActsTrk::StripClusteringTool::decodeTimeBins |
( |
| ) |
|
|
private |
◆ initialize()
StatusCode ActsTrk::StripClusteringTool::initialize |
( |
| ) |
|
|
overridevirtual |
◆ isBadStrip()
Definition at line 268 of file StripClusteringTool.cxx.
274 if (stripDetElStatus) {
275 const int strip_i{stripID.strip(stripId)};
278 stripDetElStatus->isCellGood(waferHash.
value(), strip_i),
280 return not stripDetElStatus->isCellGood(waferHash.
value(), strip_i) ;
◆ makeCluster()
Definition at line 232 of file StripClusteringTool.cxx.
240 auto [
pos, localPos, localCov, globalPos]
241 = computePosition(cluster, lorentzShift, stripID, element);
247 cl.setMeasurement<1>(idHash, localPos, localCov);
248 cl.setIdentifier( cluster.ids.front().get_compact() );
249 cl.globalPosition() = globalPos;
250 cl.setRDOlist(cluster.ids);
251 cl.setChannelsInPhi(cluster.ids.size());
253 return StatusCode::SUCCESS;
◆ passTiming()
bool ActsTrk::StripClusteringTool::passTiming |
( |
const std::bitset< 3 > & |
timePattern | ) |
const |
|
private |
◆ unpackRDOs()
Definition at line 287 of file StripClusteringTool.cxx.
293 bool badStripOnModule{
false};
302 std::bitset<3> timePattern(raw3->
getTimeBin());
309 Identifier waferId = stripID.wafer_id(firstStripId);
311 size_t iFirstStrip =
static_cast<size_t>(stripID.strip(firstStripId));
313 iFirstStrip + raw->getGroupSize(),
314 static_cast<size_t>(stripID.strip_max(waferId)) + 1
317 for (
size_t i = iFirstStrip;
i < iMaxStrip;
i++) {
318 Identifier stripIdent = stripID.strip_id(waferId,
i);
319 if (
isBadStrip(ctx, stripDetElStatus, stripID, waferHash, stripIdent)) {
322 <<
", wafer is: " << waferId);
323 badStripOnModule =
true;
326 cells.emplace_back(
i, stripIdent, std::move(timePattern));
330 return std::make_pair(
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 100 of file StripClusteringTool.h.
◆ m_conditionsTool
Initial value:{this, "conditionsTool", "",
"Conditions summary tool"}
Definition at line 97 of file StripClusteringTool.h.
◆ m_lorentzAngleTool
Initial value:{this, "LorentzAngleTool", "",
"Tool to retreive Lorentz angle of Si detector module"
}
Definition at line 89 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 103 of file StripClusteringTool.h.
◆ m_stripDetEleCollKey
Initial value:{this, "StripDetEleCollKey", "ITkStripDetectorElementCollection",
"SiDetectorElementCollection key for strip"}
Definition at line 106 of file StripClusteringTool.h.
◆ m_stripDetElStatus
Initial value:{this, "StripDetElStatus", "",
"SiDetectorElementStatus for strip"}
Definition at line 94 of file StripClusteringTool.h.
◆ 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:
unsigned int value() const
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
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
#define VALIDATE_STATUS_ARRAY(use_info, info_val, summary_val)
iterator insert(iterator position, value_type pElem)
Add a new element to the collection.
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
StatusCode initialize(bool used=true)
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
#define ATH_MSG_WARNING(x)
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
cl
print [x.__class__ for x in toList(dqregion.getSubRegions()) ]
size_type size() const noexcept
Returns the number of elements in the collection.
virtual Identifier identify() const override final
identifier of this detector element (inline)