CMS 3D CMS Logo

StripClusterSelectorTopBottom.cc
Go to the documentation of this file.
3 
6  event.getByToken(token_, input);
7 
9  setup.get<TrackerDigiGeometryRecord>().get(geom);
10  const TrackerGeometry& theTracker(*geom);
11 
12  auto output = std::make_unique<edmNew::DetSetVector<SiStripCluster>>();
13 
14  for (edmNew::DetSetVector<SiStripCluster>::const_iterator clustSet = input->begin(); clustSet != input->end();
15  ++clustSet) {
16  edmNew::DetSet<SiStripCluster>::const_iterator clustIt = clustSet->begin();
18 
19  DetId detIdObject(clustSet->detId());
21  const StripGeomDetUnit* theGeomDet = dynamic_cast<const StripGeomDetUnit*>(theTracker.idToDet(detIdObject));
22  const StripTopology* topol = dynamic_cast<const StripTopology*>(&(theGeomDet->specificTopology()));
23 
24  for (; clustIt != end; ++clustIt) {
25  LocalPoint lpclust = topol->localPosition(clustIt->barycenter());
26  GlobalPoint GPclust = theGeomDet->surface().toGlobal(Local3DPoint(lpclust.x(), lpclust.y(), lpclust.z()));
27  double clustY = GPclust.y();
28  if ((clustY * y_) > 0) {
29  spc.push_back(*clustIt);
30  }
31  }
32  }
33  event.put(std::move(output));
34 }
35 
edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > token_
T y() const
Definition: PV3DBase.h:60
void produce(edm::StreamID, edm::Event &event, const edm::EventSetup &setup) const override
data_type const * const_iterator
Definition: DetSetNew.h:31
static std::string const input
Definition: EdmProvDump.cc:48
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
virtual LocalPoint localPosition(float strip) const =0
T z() const
Definition: PV3DBase.h:61
#define end
Definition: vmac.h:39
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
Definition: DetId.h:17
T get() const
Definition: EventSetup.h:73
const TrackerGeomDet * idToDet(DetId) const override
T x() const
Definition: PV3DBase.h:59
def move(src, dest)
Definition: eostools.py:511
Definition: event.py:1
Point3DBase< float, LocalTag > Local3DPoint
Definition: LocalPoint.h:9