5 using namespace ctfseeding;
9 theLayerBuilder(conf.getParameter<edm::
ParameterSet>(
"LayerPSet"), iC)
11 edm::LogInfo(
"CtfSpecialSeedGenerator|BeamHaloPairGenerator") <<
"Constructing BeamHaloPairGenerator";
24 SeedingLayerSets::const_iterator iLss;
25 for (iLss =
theLss.begin(); iLss !=
theLss.end(); iLss++){
28 throw cms::Exception(
"CtfSpecialSeedGenerator") <<
"You are using " << ls.size() <<
" layers in set instead of 2 ";
30 std::vector<SeedingHit> innerHits = region.
hits(e, es, &ls[0]);
31 std::vector<SeedingHit> outerHits = region.
hits(e, es, &ls[1]);
32 std::vector<SeedingHit>::const_iterator iOuterHit;
33 for (iOuterHit = outerHits.begin(); iOuterHit != outerHits.end(); iOuterHit++){
34 std::vector<SeedingHit>::const_iterator iInnerHit;
35 for (iInnerHit = innerHits.begin(); iInnerHit != innerHits.end(); iInnerHit++){
39 GlobalVector d=crhpo->globalPosition() - crhpi->globalPosition();
40 double ABSsinDtheta = fabs(
sin(d.
theta()));
41 LogDebug(
"BeamHaloPairGenerator")<<
"position1: "<<crhpo->globalPosition()
42 <<
" position2: "<<crhpi->globalPosition()
43 <<
" |sin(Dtheta)|: "<< ABSsinDtheta <<((ABSsinDtheta>
theMaxTheta)?
" skip":
" keep");
T getParameter(std::string const &) const
ctfseeding::SeedingLayerSets layers(const edm::EventSetup &es)
SeedingLayerSetsBuilder theLayerBuilder
virtual Hits hits(const edm::Event &ev, const edm::EventSetup &es, const ctfseeding::SeedingLayer *layer) const =0
get hits from layer compatible with region constraints
virtual const OrderedSeedingHits & run(const TrackingRegion ®ion, const edm::Event &ev, const edm::EventSetup &es)
Sin< T >::type sin(const T &t)
bool check(const edm::EventSetup &es)
BeamHaloPairGenerator(const edm::ParameterSet &conf, edm::ConsumesCollector &iC)
Geom::Theta< T > theta() const
TransientTrackingRecHit::ConstRecHitPointer SeedingHit
ctfseeding::SeedingLayerSets theLss
std::vector< SeedingLayer > SeedingLayers