37 : index_in_vStubs_(idStub),
44 digitalStub_(
std::make_unique<
DigitalStub>(settings,
r, phi, z, iPhiSec)),
47 stripPitch_(stripPitch),
48 stripLength_(stripLength),
52 tiltedBarrel_(tiltedBarrel) {}
57 unsigned int index_in_vStubs,
63 : ttStubRef_(ttStubRef),
65 index_in_vStubs_(index_in_vStubs),
68 digitizeWarningsOn_(
true),
69 trackerModule_(trackerModule),
70 degradeBend_(degradeBend),
72 layerId_(trackerModule->layerId()),
73 layerIdReduced_(trackerModule->layerIdReduced()),
74 tiltAngle_(trackerModule->tiltAngle()),
75 stripPitch_(trackerModule->stripPitch()),
76 stripLength_(trackerModule->stripLength()),
77 nStrips_(trackerModule->
nStrips()),
78 psModule_(trackerModule->psModule()),
79 barrel_(trackerModule->
barrel()),
80 tiltedBarrel_(trackerModule->tiltedBarrel()) {
96 for (
unsigned int iClus = 0; iClus <= 1; iClus++) {
113 phiRelToModule *= -1;
115 phiRelToModule *= -1;
138 bend_ = degradedBend;
156 for (
unsigned int iClus = 0; iClus <= 1; iClus++) {
167 const int min_array_bin = 0;
168 const int max_array_bin =
nbinsPt - 1;
174 float qOverPtBinSize = (2. * houghMaxInvPt) / houghNbinsPt;
176 qOverPtBinSize = 2. * houghMaxInvPt / (houghNbinsPt - 1);
184 int min_bin = std::floor(-
tmp + (qOverPtMin + houghMaxInvPt) / qOverPtBinSize);
185 int max_bin = std::floor(
tmp + (qOverPtMax + houghMaxInvPt) / qOverPtBinSize);
188 min_bin =
max(min_bin, min_array_bin);
189 max_bin =
min(max_bin, max_array_bin);
192 if (min_bin > max_bin) {
193 min_bin = max_array_bin;
194 max_bin = min_array_bin;
283 "BadConfig: FE stub bend window sizes provided in cfg ES source are tighter than those to make the stubs. " 317 float dphiOverBendCorrection_approx_ =
approxB();
339 if (translateTP.find(tpPtr) != translateTP.end()) {
355 for (
unsigned int iClus = 0; iClus <= 1; iClus++) {
359 vector<edm::Ptr<TrackingParticle> > vecTpPtr = mcTruthTTClusterHandle->findTrackingParticlePtrs(ttClusterRef);
362 if (translateTP.find(tpPtr) != translateTP.end()) {
372 for (
unsigned int iClus = 0; iClus <= 1; iClus++) {
375 bool genuineCluster = mcTruthTTClusterHandle->isGenuine(ttClusterRef);
382 if (translateTP.find(tpPtr) != translateTP.end()) {
const edm::Ref< edmNew::DetSetVector< TTCluster< T > >, TTCluster< T > > & clusterRef(unsigned int hitStackMember) const
Clusters composing the Stub – see https://twiki.cern.ch/twiki/bin/viewauth/CMS/SLHCTrackerTriggerSWT...
Stub(const Settings *settings, unsigned int idStub, double phi, double r, double z, double bend, unsigned int iphi, double alpha, unsigned int layerId, unsigned int iPhiSec, bool psModule, bool barrel, bool tiltedBarrel, float stripPitch, float stripLength, unsigned int nStrips)
float bendInFrontend() const
bool killStub(const TTStub< Ref_Phase2TrackerDigi_ > *stub) const
bool enableDigitize() const
unsigned int min_qOverPt_bin_
unsigned int shape() const
virtual LocalPoint localPosition(const MeasurementPoint &) const =0
bool killLowPtStubs() const
std::array< bool, 2 > genuineCluster() const
unsigned int nStrips() const
std::unique_ptr< DigitalStub > digitalStub_
const Settings * settings_
bool outerModuleAtSmallerR() const
double bApprox_intercept() const
const DetId & detId() const
Sin< T >::type sin(const T &t)
unsigned int killScenario() const
float qOverPtOverBend() const
void degrade(float bend, bool psModule, const DetId &stDetId, float windowFEnew, float °radedBend, unsigned int &numInGroup) const
std::array< const TP *, 2 > assocTPofCluster_
nStrips
1.2 is to make the matching window safely the two nearest strips 0.35 is the size of an ME0 chamber i...
bool stubMatchStrict() const
unsigned int houghNbinsPt() const
const DegradeBend * degradeBend_
unsigned int numMergedBend_
std::array< float, 2 > localV_cluster_
void fillTruth(const std::map< edm::Ptr< TrackingParticle >, const TP *> &translateTP, const edm::Handle< TTStubAssMap > &mcTruthTTStubHandle, const edm::Handle< TTClusterAssMap > &mcTruthTTClusterHandle)
unsigned int max_qOverPt_bin_
Cos< T >::type cos(const T &t)
Abs< T >::type abs(const T &t)
Class to store the L1 Track Trigger stubs.
double bApprox_gradient() const
std::set< const TP * > assocTPs_
const PixelTopology * specTopol() const
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
void setFrontend(const StubKiller *stubKiller)
std::array< float, 2 > localU_cluster_
bool tiltedBarrel() const
const float rejectedStubBend_
const Plane & surface() const
The nominal surface of the GeomDet.
double maxStubEta() const
=== This is the base class for the linearised chi-squared track fit algorithms.
float pitchOverSep() const
double houghMinPt() const
float bendCutInFrontend() const
T const * get() const
Returns C++ pointer to the item.
const TrackerModule * trackerModule_
void digitize(unsigned int iPhiSec, DigiStage digiStep)
bool stubFailedDegradeWindow_
const PixelGeomDetUnit * specDet() const
float sensorWidth() const
unsigned int degradeBendRes() const
void degradeResolution(float bend, float °radedBend, unsigned int &num) const