47 maxChi2_(iConfig.getParameter<double>(
"maxChi2")),
70 int id1=-1,
int id2=-1,
int id3=-1,
int id4=-1,
int id5=-1,
int id6=-1) ;
89 int id1,
int id2,
int id3,
int id4,
int id5,
int id6)
91 if (iConfig.
exists(name)) {
98 if (id3 != -1)
pblocks_[id3] = pblock;
99 if (id4 != -1)
pblocks_[id4] = pblock;
100 if (id5 != -1)
pblocks_[id5] = pblock;
101 if (id6 != -1)
pblocks_[id6] = pblock;
109 mergeOld_(iConfig.exists(
"oldClusterRemovalInfo"))
120 readPSet(iConfig,
"Strip" ,2,3,4,5);
121 readPSet(iConfig,
"StripInner" ,2,3);
122 readPSet(iConfig,
"StripOuter" ,4,5);
129 bool usingCharge =
false;
131 if (!
pblocks_[
i].isSet_)
throw cms::Exception(
"Configuration Error") <<
"SeedClusterRemover: Missing configuration for detector with subDetID = " << (
i+1);
132 if (
pblocks_[
i].usesCharge_ && !usingCharge) {
133 throw cms::Exception(
"Configuration Error") <<
"SeedClusterRemover: Configuration for subDetID = " << (
i+1) <<
" uses cluster charge, which is not enabled.";
146 produces<edm::ContainerMask<edmNew::DetSetVector<SiPixelCluster> > >();
147 produces<edm::ContainerMask<edmNew::DetSetVector<SiStripCluster> > >();
154 "SeedClusterRemover: strip cluster ref from Product ID = " << cluster.
id() <<
155 " does not match with source cluster collection (ID = " <<
stripSourceProdID <<
")\n.";
173 if (chi2 >
pblocks_[subdet-1].maxChi2_)
return;
183 "SeedClusterRemover: pixel cluster ref from Product ID = " << cluster.
id() <<
184 " does not match with source cluster collection (ID = " <<
pixelSourceProdID <<
")\n.";
200 const type_info &hitType =
typeid(*hit);
217 }
else throw cms::Exception(
"NOT IMPLEMENTED") <<
"Don't know how to handle " << hitType.name() <<
" on detid " << detid.
rawId() <<
"\n";
255 LogDebug(
"SeedClusterRemover")<<
"to merge in, "<<oldStrMask->
size()<<
" strp and "<<oldPxlMask->
size()<<
" pxl";
269 for (
auto const &
seed : (*seeds) ){
273 if (!
hit->isValid())
continue;
T getParameter(std::string const &) const
const GeomDetEnumerators::SubDetector geomDetSubDetector(int subdet) const
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
static const unsigned int NumberOfParamBlocks
bool getByToken(EDGetToken token, Handle< PROD > &result) const
#define DEFINE_FWK_MODULE(type)
OmniClusterRef const & stereoClusterRef() const
SeedClusterRemover(const edm::ParameterSet &iConfig)
bool exists(std::string const ¶meterName) const
checks if a parameter exists
key_type key() const
Accessor for product key.
void produce(edm::Event &iEvent, const edm::EventSetup &iSetup) override
void copyMaskTo(std::vector< bool > &) const
ProductID id() const
Accessor for product ID.
uint32_t rawId() const
get the raw id
std::vector< bool > collectedStrips_
edm::ProductID pixelSourceProdID
void readPSet(const edm::ParameterSet &iConfig, const std::string &name, int id1=-1, int id2=-1, int id3=-1, int id4=-1, int id5=-1, int id6=-1)
ClusterStripRef cluster_strip() const
ParamBlock pblocks_[NumberOfParamBlocks]
edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > stripClusters_
edm::ContainerMask< edmNew::DetSetVector< SiStripCluster > > StripMaskContainer
edm::ContainerMask< edmNew::DetSetVector< SiPixelCluster > > PixelMaskContainer
OmniClusterRef const & monoClusterRef() const
int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
edm::EDGetTokenT< TrajectorySeedCollection > trajectories_
edm::ProductID stripSourceProdID
SiStripRecHit2D originalHit() const
OmniClusterRef const & omniClusterRef() const
ParamBlock(const edm::ParameterSet &iConfig)
ClusterRef cluster() const
void process(const TrackingRecHit *hit, float chi2, const TrackerGeometry *tg)
std::vector< uint8_t > strips
edm::EDGetTokenT< StripMaskContainer > oldStrMaskToken_
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > pixelClusters_
edm::EDGetTokenT< PixelMaskContainer > oldPxlMaskToken_
std::vector< bool > collectedPixels_
std::vector< uint8_t > pixels
DetId geographicalId() const
T const * product() const
bool isTrackerPixel(GeomDetEnumerators::SubDetector m)