39 edm::LogInfo(
"EtaPhiRegionSeedFactory") <<
"Enter the EtaPhiRegionSeedFactory";
43 originradius_ = regionPSet.
getParameter<
double>(
"originRadius");
44 halflength_ = regionPSet.
getParameter<
double>(
"originHalfLength");
45 deltaEta_ = regionPSet.
getParameter<
double>(
"deltaEtaRegion");
46 deltaPhi_ = regionPSet.
getParameter<
double>(
"deltaPhiRegion");
47 useZvertex_ = regionPSet.
getParameter<
bool>(
"useZInVertex");
63 if(tmp < -1 || tmp > 1)
64 throw cms::Exception(
"Configuration") <<
"SeedFilter: useOnDemandTracker must be -1, 0, or 1; got " <<
tmp;
84 delete combinatorialSeedGenerator;
90 auto seedColl = std::make_unique<TrajectorySeedCollection>();
110 vertices = *(h_vertices.
product());
112 LogDebug(
"SeedFilter") <<
"SeedFilter::seeds" 113 <<
"No vertex collection found: using beam-spot";
116 if (!vertices.empty() && useZvertex_) {
117 vtxPos =
GlobalPoint(vertices.front().x(), vertices.front().y(), vertices.front().z());
118 deltaZVertex = halflength_;
123 e.
getByToken(beamSpotTag_,recoBeamSpotHandle);
127 double sigmaZ0Error = recoBeamSpotHandle->
sigmaZ0Error();
128 double sq=
sqrt(sigmaZ*sigmaZ+sigmaZ0Error*sigmaZ0Error);
129 vtxPos =
GlobalPoint(BSPosition.x(), BSPosition.y(), BSPosition.z());
134 if(!measurementTrackerToken_.isUninitialized()) {
137 measurementTracker = hmte.
product();
141 float energy = scRef->energy();
143 const GlobalPoint clusterPos(scRef->position().x(), scRef->position().y(), scRef->position().z());
165 combinatorialSeedGenerator->run(*seedColl, etaphiRegionMinus, e, setup);
167 for (
unsigned int i = 0;
i<seedColl->size(); ++
i)
168 output->push_back((*seedColl)[
i]);
193 combinatorialSeedGenerator->run(*seedColl, etaphiRegionPlus, e, setup);
195 for (
unsigned int i = 0; i<seedColl->size(); ++
i){
204 bool isInCollection =
false;
205 for(
unsigned int j=0; j<output->size(); ++j) {
214 isInCollection =
true;
219 output->push_back((*seedColl)[i]);
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
double sigmaZ0Error() const
error on sigma z
static FreeTrajectoryState get(MagneticField const &magField, GlobalPoint const &xmeas, GlobalPoint const &xvert, float momentum, TrackCharge charge)
def create(alignables, pedeDump, additionalData, outputFile, config)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Global3DPoint GlobalPoint
virtual bool sharesInput(const TrackingRecHit *other, SharedInputType what) const
def setup(process, global_tag, zero_tesla=False)
std::vector< Vertex > VertexCollection
collection of Vertex objects
math::XYZPoint Point
point in the space
SeedFilter(const edm::ParameterSet &conf, const Tokens &tokens, edm::ConsumesCollector &iC)
virtual std::vector< const TrackingRecHit * > recHits() const =0
Access to component RecHits (if any)
void seeds(edm::Event &, const edm::EventSetup &, const reco::SuperClusterRef &, TrajectorySeedCollection *)
std::vector< TrajectorySeed > TrajectorySeedCollection
recHitContainer::const_iterator const_iterator
Abs< T >::type abs(const T &t)
std::pair< const_iterator, const_iterator > range
GlobalVector momentum() const
T const * product() const
double sigmaZ() const
sigma z
std::vector< std::vector< double > > tmp
edm::EDGetTokenT< reco::BeamSpot > token_bs
const Point & position() const
position
static UseMeasurementTracker intToUseMeasurementTracker(int value)
TkTrackingRegionsMargin< float > Margin
T get(const Candidate &c)
edm::EDGetTokenT< std::vector< reco::Vertex > > token_vtx