6 using namespace ctfseeding;
10 edm::LogInfo(
"CtfSpecialSeedGenerator|BeamHaloPairGenerator") <<
"Constructing BeamHaloPairGenerator";
29 SeedingLayerSets::const_iterator iLss;
30 for (iLss = lss.begin(); iLss != lss.end(); iLss++){
33 throw cms::Exception(
"CtfSpecialSeedGenerator") <<
"You are using " << ls.size() <<
" layers in set instead of 2 ";
35 std::vector<SeedingHit> innerHits = region.
hits(e, es, &ls[0]);
36 std::vector<SeedingHit> outerHits = region.
hits(e, es, &ls[1]);
37 std::vector<SeedingHit>::const_iterator iOuterHit;
38 for (iOuterHit = outerHits.begin(); iOuterHit != outerHits.end(); iOuterHit++){
39 std::vector<SeedingHit>::const_iterator iInnerHit;
40 for (iInnerHit = innerHits.begin(); iInnerHit != innerHits.end(); iInnerHit++){
44 GlobalVector d=crhpo->globalPosition() - crhpi->globalPosition();
45 double ABSsinDtheta = fabs(
sin(d.
theta()));
46 LogDebug(
"BeamHaloPairGenerator")<<
"position1: "<<crhpo->globalPosition()
47 <<
" position2: "<<crhpi->globalPosition()
48 <<
" |sin(Dtheta)|: "<< ABSsinDtheta <<((ABSsinDtheta>
theMaxTheta)?
" skip":
" keep");
T getParameter(std::string const &) const
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)
BeamHaloPairGenerator(const edm::ParameterSet &conf)
ctfseeding::SeedingLayerSets init(const edm::EventSetup &es)
Geom::Theta< T > theta() const
TransientTrackingRecHit::ConstRecHitPointer SeedingHit
std::vector< SeedingLayer > SeedingLayers
std::vector< std::vector< SeedingLayer > > SeedingLayerSets