106 if (not rhsoaHandleHost
or not rhsoaHandleDevice) {
108 if (not rhsoaHandleHost) {
109 out <<
"reference (Host) rechits not found; ";
111 if (not rhsoaHandleDevice) {
112 out <<
"target (Device) rechits not found; ";
114 out <<
"the comparison will not run.";
118 auto const& rhsoaHost = *rhsoaHandleHost;
119 auto const& rhsoaDevice = *rhsoaHandleDevice;
121 auto const& soa2dHost = rhsoaHost.const_view();
122 auto const& soa2dDevice = rhsoaDevice.const_view();
124 uint32_t nHitsHost = soa2dHost.nHits();
125 uint32_t nHitsDevice = soa2dDevice.nHits();
129 for (uint32_t
i = 0;
i < nHitsHost;
i++) {
132 uint16_t indHost = soa2dHost[
i].detectorIndex();
133 float xLocalHost = soa2dHost[
i].xLocal();
134 float yLocalHost = soa2dHost[
i].yLocal();
135 for (uint32_t
j = 0;
j < nHitsDevice;
j++) {
136 if (soa2dDevice.detectorIndex(
j) == indHost) {
137 float dx = xLocalHost - soa2dDevice[
j].xLocal();
138 float dy = yLocalHost - soa2dDevice[
j].yLocal();
146 DetId id = detIds[indHost];
147 uint32_t chargeHost = soa2dHost[
i].chargeAndStatus().charge;
150 uint32_t chargeDevice = 0;
151 int16_t sizeXDevice = -99;
152 int16_t sizeYDevice = -99;
153 float xLocalDevice = -999.;
154 float yLocalDevice = -999.;
156 chargeDevice = soa2dDevice[matchedHit].chargeAndStatus().charge;
157 sizeXDevice =
std::ceil(
float(
std::abs(soa2dDevice[matchedHit].clusterSizeX()) / 8.));
158 sizeYDevice =
std::ceil(
float(
std::abs(soa2dDevice[matchedHit].clusterSizeY()) / 8.));
159 xLocalDevice = soa2dDevice[matchedHit].xLocal();
160 yLocalDevice = soa2dDevice[matchedHit].yLocal();
162 switch (
id.subdetId()) {
constexpr int32_t ceil(float num)
static constexpr float micron_
MonitorElement * hBsizexL_[4]
unsigned int pxbLayer(const DetId &id) const
MonitorElement * hBposxL_[4]
MonitorElement * hFsizexD_[2][12]
MonitorElement * hFposYDiff_
const edm::EDGetTokenT< HitsOnHost > tokenSoAHitsHost_
MonitorElement * hFchargeDiff_
static constexpr uint32_t invalidHit_
MonitorElement * hFposXDiff_
MonitorElement * hBsizeXDiff_
MonitorElement * hFsizeYDiff_
const TrackerGeometry * tkGeom_
MonitorElement * hBposYDiff_
MonitorElement * hBsizeyL_[4]
const edm::EDGetTokenT< HitsOnHost > tokenSoAHitsDevice_
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
unsigned int pxfDisk(const DetId &id) const
Abs< T >::type abs(const T &t)
MonitorElement * hFposyD_[2][12]
MonitorElement * hBchargeDiff_
MonitorElement * hBchargeL_[4]
unsigned int pxfSide(const DetId &id) const
MonitorElement * hBposXDiff_
MonitorElement * hFchargeD_[2][12]
const TrackerTopology * tTopo_
MonitorElement * hBsizeYDiff_
MonitorElement * hFsizeyD_[2][12]
MonitorElement * hBposyL_[4]
const DetIdContainer & detUnitIds() const override
Returm a vector of all GeomDetUnit DetIds.
MonitorElement * hFposxD_[2][12]
MonitorElement * hFsizeXDiff_