Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
Extract the raw hists from info in SG.
More...
#include <FPGATrackSimSGToRawHitsTool.h>
|
StatusCode | readRawSilicon (HitIndexMap &hitIndexMap, const EventContext &eventContext) |
|
StatusCode | readTruthTracks (std::vector< FPGATrackSimTruthTrack > &truth, const EventContext &eventContext) |
|
StatusCode | readOfflineTracks (std::vector< FPGATrackSimOfflineTrack > &Track, const EventContext &eventContext) |
|
StatusCode | readOfflineClusters (std::vector< FPGATrackSimCluster > &Clusters, const EventContext &eventContext) |
|
StatusCode | readPixelSimulation (HitIndexMap &hitIndexMap, unsigned int &hitIndex, const EventContext &eventContext) |
|
StatusCode | readStripSimulation (HitIndexMap &hitIndexMap, unsigned int &hitIndex, const EventContext &eventContext) |
|
StatusCode | dumpPixelClusters (HitIndexMap &pixelClusterIndexMap, const EventContext &eventContext) |
|
const HepMcParticleLink * | getTruthInformation (InDetSimDataCollection::const_iterator &iter, FPGATrackSimInputUtils::ParentBitmask &parentMask) |
|
|
ToolHandle< Trk::ITruthToTrack > | m_truthToTrack {this, "TruthToTrackTool", "Trk::TruthToTrack/InDetTruthToTrack" } |
| tool to create track parameters from a gen particle More...
|
|
ToolHandle< Trk::IExtrapolator > | m_extrapolator {this, "Extrapolator", "Trk::Extrapolator/AtlasExtrapolator"} |
| ToolHandle for Extrapolator. More...
|
|
SG::ReadCondHandleKey< InDet::BeamSpotData > | m_beamSpotKey { this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot" } |
|
SG::ReadHandleKey< xAOD::EventInfo > | m_eventInfoKey { this, "EventInfo", "EventInfo" } |
|
SG::ReadHandleKey< InDet::SiClusterContainer > | m_pixelClusterContainerKey { this, "pixelClustersName", "ITkPixelClusters" } |
|
SG::ReadHandleKey< InDet::SiClusterContainer > | m_sctClusterContainerKey { this, "SCT_ClustersName", "SCT_Clusters" } |
|
SG::ReadHandleKey< xAOD::TrackParticleContainer > | m_offlineTracksKey { this, "OfflineTracks", "InDetTrackParticles"} |
|
SG::ReadHandleKey< McEventCollection > | m_mcCollectionKey { this, "McTruth", "TruthEvent" } |
|
SG::ReadHandleKey< InDetSimDataCollection > | m_pixelSDOKey { this, "PixelSDO", "ITkPixelSDO_Map" } |
|
SG::ReadHandleKey< InDetSimDataCollection > | m_stripSDOKey { this, "StripSDO", "ITkStripSDO_Map" } |
|
SG::ReadHandleKey< PixelRDO_Container > | m_pixelRDOKey { this, "PixelRDO", "ITkPixelRDOs" } |
|
SG::ReadHandleKey< SCT_RDO_Container > | m_stripRDOKey { this, "StripRDO", "ITkStripRDOs" } |
|
Gaudi::Property< std::string > | m_tracksTruthName { this, "OfflineName", "InDetTrackParticles", "name of offline tracks collection" } |
|
Gaudi::Property< bool > | m_dumpHitsOnTracks { this, "dumpHitsOnTracks", false } |
|
Gaudi::Property< bool > | m_dumpTruthIntersections { this, "dumpTruthIntersections", false } |
|
Gaudi::Property< bool > | m_readOfflineClusters { this, "ReadOfflineClusters", true, "flag to enable the offline cluster save" } |
|
Gaudi::Property< bool > | m_readTruthTracks { this, "ReadTruthTracks", true, "flag to enable the truth tracking save" } |
|
Gaudi::Property< bool > | m_readOfflineTracks { this, "ReadOfflineTracks", true, "flag to enable the offline tracking save" } |
|
Gaudi::Property< bool > | m_UseNominalOrigin { this, "UseNominalOrigin", false, "if true truth values are always with respect to (0,0,0)" } |
|
Gaudi::Property< double > | m_maxEta { this, "maxEta", 5.0 } |
|
Gaudi::Property< double > | m_minPt { this, "minPt", .8*CLHEP::GeV } |
|
const PixelID * | m_pixelId = nullptr |
|
const SCT_ID * | m_sctId = nullptr |
|
const InDetDD::SiDetectorManager * | m_PIX_mgr = nullptr |
|
const InDetDD::SiDetectorManager * | m_SCT_mgr = nullptr |
|
const HepPDT::ParticleDataTable * | m_particleDataTable = nullptr |
|
FPGATrackSimEventInputHeader * | m_eventHeader = nullptr |
|
Extract the raw hists from info in SG.
Definition at line 45 of file FPGATrackSimSGToRawHitsTool.h.
◆ HitIndexMap
◆ FPGATrackSimSGToRawHitsTool()
FPGATrackSimSGToRawHitsTool::FPGATrackSimSGToRawHitsTool |
( |
const std::string & |
algname, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
ifc |
|
) |
| |
◆ ~FPGATrackSimSGToRawHitsTool()
virtual FPGATrackSimSGToRawHitsTool::~FPGATrackSimSGToRawHitsTool |
( |
| ) |
|
|
inlinevirtual |
◆ dumpPixelClusters()
StatusCode FPGATrackSimSGToRawHitsTool::dumpPixelClusters |
( |
HitIndexMap & |
pixelClusterIndexMap, |
|
|
const EventContext & |
eventContext |
|
) |
| |
|
private |
Definition at line 502 of file FPGATrackSimSGToRawHitsTool.cxx.
503 unsigned int pixelClusterIndex = 0;
508 if (pixelClusterCollection ==
nullptr) {
524 InDetSimDataCollection::const_iterator iter(pixelSDOHandle->find(rdoId));
526 if (
nCells > 1 && iter == pixelSDOHandle->end()) {
528 for (
int ii = 0; ii <
nCells && iter == pixelSDOHandle->end(); ++ii) {
536 pixelClusterIndexMap[theId] = pixelClusterIndex;
541 return StatusCode::SUCCESS;
◆ finalize()
StatusCode FPGATrackSimSGToRawHitsTool::finalize |
( |
| ) |
|
|
overridevirtual |
◆ getTruthInformation()
Definition at line 835 of file FPGATrackSimSGToRawHitsTool.cxx.
839 const std::vector<InDetSimData::Deposit>& deposits(sdo.getdeposits());
840 float bestPt{-999.f};
845 if (!particleLink.
isValid()) {
continue; }
846 const float genEta = particleLink->momentum().pseudoRapidity();
847 const float genPt = particleLink->momentum().perp();
853 if (std::fabs(genEta) >
m_maxEta) {
continue; }
855 if (bestPt < genPt) {
857 bestTruthLink = &particleLink;
866 return bestTruthLink;
◆ initialize()
StatusCode FPGATrackSimSGToRawHitsTool::initialize |
( |
| ) |
|
|
overridevirtual |
◆ readData()
This function get from the SG the inner detector raw hits and prepares them for FPGATrackSim simulation.
Definition at line 95 of file FPGATrackSimSGToRawHitsTool.cxx.
119 std::vector <FPGATrackSimCluster>
clusters;
126 std::vector <FPGATrackSimTruthTrack> truth;
131 std::vector <FPGATrackSimOfflineTrack>
offline;
140 return StatusCode::SUCCESS;
◆ readOfflineClusters()
StatusCode FPGATrackSimSGToRawHitsTool::readOfflineClusters |
( |
std::vector< FPGATrackSimCluster > & |
Clusters, |
|
|
const EventContext & |
eventContext |
|
) |
| |
|
private |
Definition at line 545 of file FPGATrackSimSGToRawHitsTool.cxx.
554 if (pixelClusterCollection ==
nullptr) {
558 const int size = pixelClusterCollection->size();
571 InDetSimDataCollection::const_iterator iter(pixelSDOHandle->find(rdoId));
573 if (
nCells > 1 && iter == pixelSDOHandle->end()) {
575 for (
int ii = 0; ii <
nCells && iter == pixelSDOHandle->end(); ++ii) {
580 if (iter != pixelSDOHandle->end()) { bestTruthLink =
getTruthInformation(iter, parentMask); }
596 clusterEquiv.
setX(globalPos.x());
597 clusterEquiv.
setY(globalPos.y());
598 clusterEquiv.
setZ(globalPos.z());
606 else if (barrel_ec == 2)
608 else if (barrel_ec == -2)
624 clusterEquiv.
setBarcode(bestTruthLink->barcode());
633 clusterEquiv.
setBarcodePt(
static_cast<unsigned long>(std::ceil(bestParent ? bestParent->momentum().perp() : 0.)));
648 if (SCT_Collection ==
nullptr) {
continue; }
650 const Identifier rdoId = sctRawData->identify();
661 InDetSimDataCollection::const_iterator iter(stripSDOHandle->find(rdoId));
663 if (iter != stripSDOHandle->end()) { bestTruthLink =
getTruthInformation(iter, parentMask); }
681 else if (barrel_ec == 2)
683 else if (barrel_ec == -2)
695 clusterEquiv.
setPhiWidth(sctRawData->getGroupSize());
699 clusterEquiv.
setBarcode(bestTruthLink->barcode());
708 clusterEquiv.
setBarcodePt(
static_cast<unsigned long>(std::ceil(bestParent ? bestParent->momentum().perp() : 0.)));
716 return StatusCode::SUCCESS;
◆ readOfflineTracks()
Definition at line 144 of file FPGATrackSimSGToRawHitsTool.cxx.
147 ATH_MSG_DEBUG(
"read Offline tracks, size= " << offlineTracksHandle->size());
153 tmpOfflineTrack.
setQOverPt(trackParticle->pt() > 0 ? trackParticle->charge() / trackParticle->pt() : 0);
154 tmpOfflineTrack.
setEta(trackParticle->eta());
155 tmpOfflineTrack.
setPhi(trackParticle->phi());
156 tmpOfflineTrack.
setD0(trackParticle->d0());
157 tmpOfflineTrack.
setZ0(trackParticle->z0());
159 const Trk::TrackStates* trackStates = trackParticle->track()->trackStateOnSurfaces();
160 if (trackStates ==
nullptr) {
162 return StatusCode::FAILURE;
165 if (tsos ==
nullptr)
continue;
168 if (tsos->trackParameters() !=
nullptr &&
169 tsos->trackParameters()->associatedSurface().associatedDetectorElement() !=
nullptr &&
170 tsos->trackParameters()->associatedSurface().associatedDetectorElement()->identify() != 0
194 tmpOfflineHit.
setLocY(-99999.9);
196 tmpOfflineTrack.
addHit(tmpOfflineHit);
200 offline.push_back(tmpOfflineTrack);
204 return StatusCode::SUCCESS;
◆ readPixelSimulation()
StatusCode FPGATrackSimSGToRawHitsTool::readPixelSimulation |
( |
HitIndexMap & |
hitIndexMap, |
|
|
unsigned int & |
hitIndex, |
|
|
const EventContext & |
eventContext |
|
) |
| |
|
private |
Definition at line 224 of file FPGATrackSimSGToRawHitsTool.cxx.
232 if (pixel_rdoCollection ==
nullptr) {
continue; }
245 hitIndexMap[rdoId] = hitIndex;
250 hitIndexMap[tmpId] = hitIndex;
256 InDetSimDataCollection::const_iterator iter(pixelSDOHandle->find(rdoId));
257 if (
nCells > 1 && iter == pixelSDOHandle->end()) {
259 for (
int ii = 0; ii <
nCells && iter == pixelSDOHandle->end(); ++ii) {
264 if (iter != pixelSDOHandle->end()) { bestTruthLink =
getTruthInformation(iter, parentMask); }
279 else if (barrel_ec == 2)
281 else if (barrel_ec == -2)
296 tmpSGhit.
setToT(pixelRawData->getToT());
300 tmpSGhit.
setBarcode(bestTruthLink->barcode());
309 tmpSGhit.
setBarcodePt(
static_cast<unsigned long>(std::ceil(bestParent ? bestParent->momentum().perp() : 0.)));
322 return StatusCode::SUCCESS;
◆ readRawSilicon()
StatusCode FPGATrackSimSGToRawHitsTool::readRawSilicon |
( |
HitIndexMap & |
hitIndexMap, |
|
|
const EventContext & |
eventContext |
|
) |
| |
|
private |
◆ readStripSimulation()
StatusCode FPGATrackSimSGToRawHitsTool::readStripSimulation |
( |
HitIndexMap & |
hitIndexMap, |
|
|
unsigned int & |
hitIndex, |
|
|
const EventContext & |
eventContext |
|
) |
| |
|
private |
Definition at line 326 of file FPGATrackSimSGToRawHitsTool.cxx.
328 constexpr
int MaxChannelinStripRow = 128;
334 if (SCT_Collection ==
nullptr) {
continue; }
336 std::map<int, bool> firedStrips;
337 std::map<int, const SCT_RDORawData*> firedStripsToRDO;
343 const Identifier rdoId = sctRawData->identify();
345 for(
int i = 0;
i < sctRawData->getGroupSize();
i++) {
346 firedStrips[baseLineStrip+
i] =
true;
347 firedStripsToRDO[baseLineStrip +
i] = sctRawData;
353 std::map<int, int> stripEncodingForITK;
354 std::map<int, const SCT_RDORawData* > stripEncodingForITKToRDO;
355 for(
const auto& [stripID, fired]: firedStrips)
363 std::bitset<3> hitMap;
367 int currChipID = stripID / MaxChannelinStripRow;
369 int maxStripIDForCurrChip = (currChipID + 1) * MaxChannelinStripRow;
371 for(
int i = 0;
i < 3;
i++)
374 if((stripID + 1 +
i) >= maxStripIDForCurrChip)
continue;
376 if(firedStrips.find(stripID + 1 +
i) != firedStrips.end())
378 if(firedStrips.at(stripID + 1 +
i))
381 firedStrips[stripID + 1 +
i] =
false;
391 stripEncodingForITK[stripID] = (
int)(hitMap.to_ulong());
392 stripEncodingForITKToRDO[stripID] = firedStripsToRDO[stripID];
396 for(
const auto& [stripID, fired]: firedStrips)
406 std::pair<Amg::Vector3D, Amg::Vector3D> endsOfStrip = sielement->
endsOfStrip(localPos);
408 hitIndexMap[rdoId] = hitIndex;
415 InDetSimDataCollection::const_iterator iter(stripSDOHandle->find(rdoId));
417 if (iter != stripSDOHandle->end()) { bestTruthLink =
getTruthInformation(iter, parentMask); }
431 else if (barrel_ec == 2)
433 else if (barrel_ec == -2)
448 tmpSGhit.
setBarcode(bestTruthLink->barcode());
458 if(stripEncodingForITK.find(stripID) != stripEncodingForITK.end())
462 int chipID = stripID / MaxChannelinStripRow;
463 int ITkStripID = stripID % MaxChannelinStripRow;
472 ITkStripID +=
offset * MaxChannelinStripRow;
480 tmpSGhit.
setBarcodePt(
static_cast<unsigned long>(std::ceil(bestParent ? bestParent->momentum().perp() : 0.)));
482 tmpSGhit.
setX(0.5 * (endsOfStrip.first.x() + endsOfStrip.second.x()));
483 tmpSGhit.
setY(0.5 * (endsOfStrip.first.y() + endsOfStrip.second.y()));
484 tmpSGhit.
setZ(0.5 * (endsOfStrip.first.z() + endsOfStrip.second.z()));
497 return StatusCode::SUCCESS;
◆ readTruthTracks()
StatusCode FPGATrackSimSGToRawHitsTool::readTruthTracks |
( |
std::vector< FPGATrackSimTruthTrack > & |
truth, |
|
|
const EventContext & |
eventContext |
|
) |
| |
|
private |
Definition at line 720 of file FPGATrackSimSGToRawHitsTool.cxx.
723 ATH_MSG_DEBUG(
"Dump truth tracks, size " << simTracksHandle->size());
726 for (
unsigned int ievt = 0; ievt < simTracksHandle->size(); ++ievt) {
727 const HepMC::GenEvent* genEvent = simTracksHandle->at(ievt);
729 HepGeom::Point3D<double> primaryVtx(0., 0., 0.);
734 primaryVtx.set(spv->position().x(),
736 spv->position().z());
737 ATH_MSG_DEBUG(
"using signal process vertex for eventIndex " << ievt <<
":"
738 << primaryVtx.x() <<
"\t" << primaryVtx.y() <<
"\t" << primaryVtx.z());
740 for (
const auto&
particle: *genEvent) {
741 const int pdgcode =
particle->pdg_id();
743 if (
particle->production_vertex() ==
nullptr) {
752 if (pdgcode < 0)
charge *= -1.;
753 if (std::abs(
charge) < 0.5) {
773 const double track_truth_d0 = tP ? tP->parameters()[
Trk::d0] : 999.;
774 const double track_truth_phi = tP ? tP->parameters()[
Trk::phi] : 999.;
775 const double track_truth_p = (tP && fabs(tP->parameters()[
Trk::qOverP]) > 1.e-8) ?
777 const double track_truth_x0 = tP ? tP->
position().x() : 999.;
778 const double track_truth_y0 = tP ? tP->
position().y() : 999.;
779 const double track_truth_z0 = tP ? tP->parameters()[
Trk::z0] : 999.;
780 const double track_truth_q = tP ? tP->
charge() : 0.;
781 const double track_truth_sinphi = tP ?
std::sin(tP->parameters()[
Trk::phi]) : -1.;
782 const double track_truth_cosphi = tP ?
std::cos(tP->parameters()[
Trk::phi]) : -1.;
783 const double track_truth_sintheta = tP ?
std::sin(tP->parameters()[
Trk::theta]) : -1.;
784 const double track_truth_costheta = tP ?
std::cos(tP->parameters()[
Trk::theta]) : -1.;
785 double truth_d0corr = track_truth_d0 - (primaryVtx.y() *
cos(track_truth_phi) - primaryVtx.x() *
sin(track_truth_phi));
786 double truth_zvertex = 0.;
787 const HepGeom::Point3D<double> startVertex(
particle->production_vertex()->position().x(),
particle->production_vertex()->position().y(),
particle->production_vertex()->position().z());
790 if (std::abs(truth_d0corr) > 2.) {
isPrimary =
false; }
795 const HepGeom::Point3D<double> startVertex(
particle->production_vertex()->position().x(),
particle->production_vertex()->position().y(),
particle->production_vertex()->position().z());
796 if (std::abs(startVertex.z() - truth_zvertex) > 100.) {
isPrimary =
false; }
798 HepGeom::Point3D<double> endVertex(
particle->end_vertex()->position().x(),
particle->end_vertex()->position().y(),
particle->end_vertex()->position().z());
799 if (endVertex.perp() < FPGATrackSim_PT_TRUTHMIN && std::abs(endVertex.z()) < FPGATrackSim_Z_TRUTHMIN) {
isPrimary =
false; }
809 tmpSGTrack.
setVtxX(track_truth_x0);
810 tmpSGTrack.
setVtxY(track_truth_y0);
811 tmpSGTrack.
setVtxZ(track_truth_z0);
812 tmpSGTrack.
setD0(track_truth_d0);
813 tmpSGTrack.
setZ0(track_truth_z0);
814 tmpSGTrack.
setVtxZ(primaryVtx.z());
815 tmpSGTrack.
setQ(track_truth_q);
816 tmpSGTrack.
setPX(track_truth_p * (track_truth_cosphi * track_truth_sintheta));
817 tmpSGTrack.
setPY(track_truth_p * (track_truth_sinphi * track_truth_sintheta));
818 tmpSGTrack.
setPZ(track_truth_p * track_truth_costheta);
826 truth.push_back(tmpSGTrack);
831 return StatusCode::SUCCESS;
◆ m_beamSpotKey
◆ m_dumpHitsOnTracks
Gaudi::Property<bool> FPGATrackSimSGToRawHitsTool::m_dumpHitsOnTracks { this, "dumpHitsOnTracks", false } |
|
private |
◆ m_dumpTruthIntersections
Gaudi::Property<bool> FPGATrackSimSGToRawHitsTool::m_dumpTruthIntersections { this, "dumpTruthIntersections", false } |
|
private |
◆ m_eventHeader
◆ m_eventInfoKey
◆ m_extrapolator
◆ m_maxEta
Gaudi::Property<double> FPGATrackSimSGToRawHitsTool::m_maxEta { this, "maxEta", 5.0 } |
|
private |
◆ m_mcCollectionKey
◆ m_minPt
Gaudi::Property<double> FPGATrackSimSGToRawHitsTool::m_minPt { this, "minPt", .8*CLHEP::GeV } |
|
private |
◆ m_offlineTracksKey
◆ m_particleDataTable
const HepPDT::ParticleDataTable* FPGATrackSimSGToRawHitsTool::m_particleDataTable = nullptr |
|
private |
◆ m_PIX_mgr
◆ m_pixelClusterContainerKey
◆ m_pixelId
const PixelID* FPGATrackSimSGToRawHitsTool::m_pixelId = nullptr |
|
private |
◆ m_pixelRDOKey
◆ m_pixelSDOKey
◆ m_readOfflineClusters
Gaudi::Property<bool> FPGATrackSimSGToRawHitsTool::m_readOfflineClusters { this, "ReadOfflineClusters", true, "flag to enable the offline cluster save" } |
|
private |
◆ m_readOfflineTracks
Gaudi::Property<bool> FPGATrackSimSGToRawHitsTool::m_readOfflineTracks { this, "ReadOfflineTracks", true, "flag to enable the offline tracking save" } |
|
private |
◆ m_readTruthTracks
Gaudi::Property<bool> FPGATrackSimSGToRawHitsTool::m_readTruthTracks { this, "ReadTruthTracks", true, "flag to enable the truth tracking save" } |
|
private |
◆ m_SCT_mgr
◆ m_sctClusterContainerKey
◆ m_sctId
const SCT_ID* FPGATrackSimSGToRawHitsTool::m_sctId = nullptr |
|
private |
◆ m_stripRDOKey
◆ m_stripSDOKey
◆ m_tracksTruthName
Gaudi::Property<std::string> FPGATrackSimSGToRawHitsTool::m_tracksTruthName { this, "OfflineName", "InDetTrackParticles", "name of offline tracks collection" } |
|
private |
◆ m_truthToTrack
◆ m_UseNominalOrigin
Gaudi::Property<bool> FPGATrackSimSGToRawHitsTool::m_UseNominalOrigin { this, "UseNominalOrigin", false, "if true truth values are always with respect to (0,0,0)" } |
|
private |
The documentation for this class was generated from the following files:
def retrieve(aClass, aKey=None)
bool is_pixel(Identifier id) const
long getEventIndex() const
void addHit(const FPGATrackSimOfflineHit &s)
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
int phi_index(const Identifier &id) const
SiCellId connectedCell(const SiCellId cellId, int number) const
Get the cell ids sharing the readout for this cell.
virtual SiDetectorElement * getDetectorElement(const Identifier &id) const =0
access to individual elements using Identifier or IdentiferHash
void setStripRowIDForITk(int v)
double charge() const
Returns the charge.
void setBCID(const int &val)
void setEtaIndex(unsigned v)
bool is_sct(Identifier id) const
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
const Amg::Vector3D & position() const
Access method for the position.
Eigen::Matrix< double, 2, 1 > Vector2D
void setisValidForITkHit(bool v)
void setPhiCoord(float v)
void setIdentifierHash(unsigned v)
float getBarcodePt() const
virtual SiLocalPosition localPositionOfCell(const SiCellId &cellId) const =0
readout or diode id -> position.
void setClusterID(int clus)
void setRunNumber(const unsigned long &val)
Identifier32 get_identifier32() const
Get the 32-bit version Identifier, will be invalid if >32 bits needed.
void setEtaWidth(unsigned v)
void setTrackNumber(int track)
virtual SiCellId connectedCell(const SiReadoutCellId &readoutId, int number) const =0
readout id -> id of connected diodes.
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
int phi_module(const Identifier &id) const
int barcode() const
Return the barcode of the target particle.
bool empty() const
Test if the key is blank.
void setClusterEquiv(const FPGATrackSimHit &input)
void setDetectorZone(DetectorZone detZone)
value_type get_compact() const
Get the compact id.
@ u
Enums for curvilinear frames.
virtual IdentifierHash identifyHash() const override final
identifier hash (inline)
void setextendedLevel1ID(const unsigned int &val)
size_t nTruthTracks() const
Trk::PrepRawDataCollection< InDet::SiCluster > SiClusterCollection
size_t nOfflineClusters() const
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
double xPhi() const
position along phi direction:
void setUniqueID(const HepMcParticleLink::barcode_type &v)
HepMC::ConstGenParticlePtr cptr() const
Dereference.
void setDetType(SiliconTech detType)
a link optimized in size for a GenParticle in a McEventCollection
void setEventNumber(const unsigned long &val)
bool is_barrel(const Identifier &id) const
Test for barrel - WARNING: id MUST be pixel id, otherwise answer is not accurate. Use SiliconID for g...
virtual SiCellId cellIdFromIdentifier(const Identifier &identifier) const override final
SiCellId from Identifier.
int numberOfConnectedCells(const SiCellId cellId) const
Test if readout cell has more than one diode associated with it.
void setPhiIndex(unsigned v)
bool is_simulation_particle(const T &p)
Method to establish if a particle (or barcode) was created during the simulation (TODO update to be s...
setRawEt setRawPhi nCells
double xEta() const
position along eta direction:
int row(const Identifier &id) const
void setStripHitMapForITk(int v)
virtual Identifier identifierFromCellId(const SiCellId &cellId) const override final
Identifier <-> SiCellId (ie strip number or pixel eta_index,phi_index) Identifier from SiCellId (ie s...
void setEtaCoord(float v)
std::pair< unsigned long, unsigned long > Barcode
void addOfflineTrack(const FPGATrackSimOfflineTrack &t)
void setEventIndex(int v)
int eta_index(const Identifier &id) const
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
void setBarcode(const HepMcParticleLink::barcode_type &v)
bool isValid() const
Validity check.
void setPhiModule(unsigned v)
size_t nOfflineTracks() const
int layer_disk(const Identifier &id) const
std::pair< Amg::Vector3D, Amg::Vector3D > endsOfStrip(const Amg::Vector2D &position) const
Special method for SCT to retrieve the two ends of a "strip" Returned coordinates are in global frame...
void setLayerDisk(unsigned v)
const GenParticle * ConstGenParticlePtr
int eta_module(const Identifier &id) const
void maximize(const FPGATrackSimMultiTruth::Barcode &code, const FPGATrackSimMultiTruth::Weight &weight)
represents the track state (measurement, material, fit parameters and quality) at a surface.
double charge(const T &p)
int layer_disk(const Identifier &id) const
void setPhiWidth(unsigned v)
StatusCode initialize(bool used=true)
void setUniqueID(const HepMcParticleLink::barcode_type &v)
Eigen::Matrix< double, 3, 1 > Vector3D
void setEventIndex(long v)
const LocalParameters & localParameters() const
Interface method to get the LocalParameters.
void addTruthTrack(const FPGATrackSimTruthTrack &t)
void setaverageInteractionsPerCrossing(const int &val)
Amg::Vector2D rawLocalPositionOfCell(const SiCellId &cellId) const
Returns position (center) of cell.
bool isStable(const T &p)
Identify if the particle is stable, i.e. has not decayed.
void setlevel1TriggerType(const unsigned int &val)
int strip(const Identifier &id) const
HepGeom::Point3D< double > globalPosition(const HepGeom::Point3D< double > &localPos) const
transform a reconstruction local position into a global position (inline):
Identifier identify() const
return the identifier -extends MeasurementBase
int eta_module(const Identifier &id) const
void addOfflineCluster(const FPGATrackSimCluster &c)
void setQOverPt(double v)
void setIsBarrel(bool is)
int side(const Identifier &id) const
void setStripChipIDForITk(int v)
void setactualInteractionsPerCrossing(const int &val)
virtual Identifier identify() const override final
const HepMC::GenVertex * ConstGenVertexPtr
Class describing a TrackParticle.
void setIdentifier(unsigned int v)
void setTruth(const FPGATrackSimMultiTruth &v)
void setParentageMask(unsigned long v)
std::pair< HepMcParticleLink, float > Deposit
void setBarcode(const HepMcParticleLink::barcode_type &v)
virtual const SiDetectorDesign & design() const override final
access to the local description (inline):
int phi_module(const Identifier &id) const
void setBarcodePt(float v)
virtual Identifier identify() const override final
identifier of this detector element (inline)
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.
void setLB(const int &val)
HepMcParticleLink::barcode_type getBarcode() const
@ isPrimary
true if matched track has a hit in first or second pixel layer
bool is_barrel(const Identifier &id) const
Test for barrel - WARNING: id MUST be sct id, otherwise answer is not accurate. Use SiliconID for gen...
void setHitType(HitType type)
GenVertex * signal_process_vertex(const GenEvent *e)