66 bool usePhase2_ =
false;
73 int stripQualityFlags = 0;
74 int stripQualityDebugFlags = 0;
76 if (
pset.getParameter<
bool>(
"UseStripModuleQualityDB")) {
78 if (
pset.getUntrackedParameter<
bool>(
"DebugStripModuleQualityDB",
false)) {
82 if (
pset.getParameter<
bool>(
"UseStripAPVFiberQualityDB")) {
84 if (
pset.getUntrackedParameter<
bool>(
"DebugStripAPVFiberQualityDB",
false)) {
87 if (
pset.getParameter<
bool>(
"MaskBadAPVFibers")) {
91 if (
pset.getParameter<
bool>(
"UseStripStripQualityDB")) {
93 if (
pset.getUntrackedParameter<
bool>(
"DebugStripStripQualityDB",
false)) {
97 return std::make_pair(stripQualityFlags, stripQualityDebugFlags);
101 int pixelQualityFlags = 0;
102 int pixelQualityDebugFlags = 0;
104 if (
pset.getParameter<
bool>(
"UsePixelModuleQualityDB")) {
106 if (
pset.getUntrackedParameter<
bool>(
"DebugPixelModuleQualityDB",
false)) {
110 if (
pset.getParameter<
bool>(
"UsePixelROCQualityDB")) {
112 if (
pset.getUntrackedParameter<
bool>(
"DebugPixelROCQualityDB",
false)) {
117 return std::make_pair(pixelQualityFlags, pixelQualityDebugFlags);
124 auto c = setWhatProduced(
this, myname);
126 std::tie(pixelQualityFlags_, pixelQualityDebugFlags_) = pixelFlags(
p);
127 if (pixelQualityFlags_ != 0) {
128 pixelQualityToken_ =
c.consumes();
131 std::tie(stripQualityFlags_, stripQualityDebugFlags_) = stripFlags(
p);
132 if (stripQualityFlags_ != 0) {
137 pset.getParameter<uint32_t>(
"maxConsecutiveBad"));
141 badStripCuts_.tib = makeBadStripCuts(cutPset.getParameter<
edm::ParameterSet>(
"TIB"));
142 badStripCuts_.tob = makeBadStripCuts(cutPset.getParameter<
edm::ParameterSet>(
"TOB"));
143 badStripCuts_.tid = makeBadStripCuts(cutPset.getParameter<
edm::ParameterSet>(
"TID"));
144 badStripCuts_.tec = makeBadStripCuts(cutPset.getParameter<
edm::ParameterSet>(
"TEC"));
150 trackerTopologyToken_ =
c.consumes();
151 trackerGeomToken_ =
c.consumes();
152 geometricSearchTrackerToken_ =
c.consumes();
155 auto phase2 =
p.getParameter<
std::string>(
"Phase2StripCPE");
156 if (not phase2.empty()) {
161 if (pixelQualityFlags_ != 0) {
162 pixelCablingToken_ =
c.consumes();
174 if (pixelQualityFlags_ != 0) {
175 ptr_pixelQuality = &iRecord.
get(pixelQualityToken_);
177 ptr_pixelCabling = &iRecord.
get(pixelCablingToken_);
183 if (stripQualityFlags_ != 0) {
184 ptr_stripQuality = &iRecord.
get(stripQualityToken_);
190 ptr_phase2TrackerCPE = &iRecord.
get(phase2TrackerCPEToken_);
192 ptr_SiStripTrackerCPE = &iRecord.
get(stripCPEToken_);
194 return std::make_unique<MeasurementTrackerImpl>(badStripCuts_,
195 &iRecord.
get(pixelCPEToken_),
196 ptr_SiStripTrackerCPE,
197 &iRecord.
get(hitMatcherToken_),
198 &iRecord.
get(trackerTopologyToken_),
199 &iRecord.
get(trackerGeomToken_),
200 &iRecord.
get(geometricSearchTrackerToken_),
203 stripQualityDebugFlags_,
207 pixelQualityDebugFlags_,
208 ptr_phase2TrackerCPE);
220 desc.add<
std::string>(
"Phase2StripCPE",
"")->setComment(
"empty string used to turn off Phase 2");
223 desc.add<
bool>(
"UseStripModuleQualityDB",
true);
224 desc.addUntracked<
bool>(
"DebugStripModuleQualityDB",
false)->setComment(
"Dump out info on module status");
225 desc.add<
bool>(
"UseStripAPVFiberQualityDB",
true)->setComment(
"Read APV and Fiber status from SiStripQuality");
226 desc.addUntracked<
bool>(
"DebugStripAPVFiberQualityDB",
false)->setComment(
"Dump out info on module status");
227 desc.add<
bool>(
"MaskBadAPVFibers",
true)
229 "if set to true, clusters with barycenter on bad APV and Fibers are ignored. (UseStripAPVFiberQualityDB must " 230 "also be true for this to work)");
232 desc.add<
bool>(
"UseStripStripQualityDB",
true)->setComment(
"read Strip status from SiStripQuality");
233 desc.addUntracked<
bool>(
"DebugStripStripQualityDB",
false)->setComment(
"dump out info on module status");
238 badStripCutsDesc.
add<uint32_t>(
"maxBad", 4);
239 badStripCutsDesc.
add<uint32_t>(
"maxConsecutiveBad", 2);
250 desc.add<
bool>(
"UsePixelModuleQualityDB",
true)->setComment(
"Use DB info at the module level (that is, detid level)");
251 desc.addUntracked<
bool>(
"DebugPixelModuleQualityDB",
false)->setComment(
"dump out info on module status");
252 desc.add<
bool>(
"UsePixelROCQualityDB",
true)->setComment(
"Use DB info at the ROC level");
253 desc.addUntracked<
bool>(
"DebugPixelROCQualityDB",
false)->setComment(
"dump out info om module status ");
255 descriptions.
add(
"_MeasurementTrackerESProducer_default",
desc);
edm::ESGetToken< StripClusterParameterEstimator, TkStripCPERecord > stripCPEToken_
int pixelQualityDebugFlags_
~MeasurementTrackerESProducer() override
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > trackerGeomToken_
edm::ESGetToken< SiPixelFedCablingMap, SiPixelFedCablingMapRcd > pixelCablingToken_
edm::ESGetToken< GeometricSearchTracker, TrackerRecoGeometryRecord > geometricSearchTrackerToken_
edm::ESGetToken< SiStripQuality, SiStripQualityRcd > stripQualityToken_
edm::ESGetToken< SiStripRecHitMatcher, TkStripCPERecord > hitMatcherToken_
ParameterDescriptionBase * add(U const &iLabel, T const &value)
#define DEFINE_FWK_EVENTSETUP_MODULE(type)
std::unique_ptr< MeasurementTracker > produce(const CkfComponentsRecord &)
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > trackerTopologyToken_
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
MeasurementTrackerImpl::BadStripCutsDet badStripCuts_
ProductT const & get(ESGetToken< ProductT, DepRecordT > const &iToken) const
edm::ESGetToken< ClusterParameterEstimator< Phase2TrackerCluster1D >, TkPhase2OTCPERecord > phase2TrackerCPEToken_
edm::ESGetToken< SiPixelQuality, SiPixelQualityRcd > pixelQualityToken_
edm::ESGetToken< PixelClusterParameterEstimator, TkPixelCPERecord > pixelCPEToken_
MeasurementTrackerESProducer
MeasurementTrackerESProducer(const edm::ParameterSet &p)
int stripQualityDebugFlags_