|
|
Go to the documentation of this file.
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()) {
double houghMinPt() const
double maxStubEta() const
bool stubMatchStrict() const
bool tiltedBarrel() const
void setFrontend(const StubKiller *stubKiller)
float pitchOverSep() const
bool stubFailedDegradeWindow_
void degrade(float bend, bool psModule, const DetId &stDetId, float windowFEnew, float °radedBend, unsigned int &numInGroup) const
bool enableDigitize() const
T const * get() const
Returns C++ pointer to the item.
virtual LocalPoint localPosition(const MeasurementPoint &) const =0
unsigned int degradeBendRes() const
float bendInFrontend() const
Sin< T >::type sin(const T &t)
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/SLHCTrackerTriggerSWTo...
const Plane & surface() const
The nominal surface of the GeomDet.
unsigned int max_qOverPt_bin_
Cos< T >::type cos(const T &t)
unsigned int shape() const
Class to store the L1 Track Trigger stubs.
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
void fillTruth(const std::map< edm::Ptr< TrackingParticle >, const TP * > &translateTP, const edm::Handle< TTStubAssMap > &mcTruthTTStubHandle, const edm::Handle< TTClusterAssMap > &mcTruthTTClusterHandle)
std::set< const TP * > assocTPs_
void degradeResolution(float bend, float °radedBend, unsigned int &num) const
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)
void digitize(unsigned int iPhiSec, DigiStage digiStep)
std::unique_ptr< DigitalStub > digitalStub_
std::array< const TP *, 2 > assocTPofCluster_
double bApprox_intercept() const
const DegradeBend * degradeBend_
unsigned int min_qOverPt_bin_
bool outerModuleAtSmallerR() const
std::array< bool, 2 > genuineCluster() const
float qOverPtOverBend() const
const Settings * settings_
nStrips
1.2 is to make the matching window safely the two nearest strips 0.35 is the size of an ME0 chamber i...
std::array< float, 2 > localU_cluster_
bool killLowPtStubs() const
unsigned int houghNbinsPt() const
double bend(double r, double rinv, double stripPitch)
const float rejectedStubBend_
const PixelTopology * specTopol() const
unsigned int numMergedBend_
unsigned int nStrips() const
const PixelGeomDetUnit * specDet() const
Abs< T >::type abs(const T &t)
const DetId & detId() const
std::array< float, 2 > localV_cluster_
double bApprox_gradient() const
=== This is the base class for the linearised chi-squared track fit algorithms.
bool killStub(const TTStub< Ref_Phase2TrackerDigi_ > *stub) const
float bendCutInFrontend() const
unsigned int killScenario() const
const TrackerModule * trackerModule_
float sensorWidth() const