14 #include "boost/foreach.hpp"
17 : Suffix ( iConfig.getParameter<std::
string>(
"Suffix") ),
19 theClustersLabel( iConfig.getParameter<edm::InputTag>(
"Clusters")),
20 inputTags ( iConfig.getParameter<std::vector<edm::InputTag> >(
"InputTags"))
22 produces <std::vector<float> > (
Prefix +
"strip" +
Suffix );
23 produces <std::vector<float> > (
Prefix +
"merr" +
Suffix );
24 produces <std::vector<float> > (
Prefix +
"localx" +
Suffix );
25 produces <std::vector<float> > (
Prefix +
"localy" +
Suffix );
26 produces <std::vector<float> > (
Prefix +
"localxerr" +
Suffix );
27 produces <std::vector<float> > (
Prefix +
"localyerr" +
Suffix );
28 produces <std::vector<float> > (
Prefix +
"globalx" +
Suffix );
29 produces <std::vector<float> > (
Prefix +
"globaly" +
Suffix );
30 produces <std::vector<float> > (
Prefix +
"globalz" +
Suffix );
37 int size = clustermap.size();
38 std::auto_ptr<std::vector<float> > strip (
new std::vector<float>(size, -10000 ));
39 std::auto_ptr<std::vector<float> > merr (
new std::vector<float>(size, -10000 ));
40 std::auto_ptr<std::vector<float> > localx (
new std::vector<float>(size, -10000 ));
41 std::auto_ptr<std::vector<float> > localy (
new std::vector<float>(size, -10000 ));
42 std::auto_ptr<std::vector<float> > localxerr (
new std::vector<float>(size, -1 ));
43 std::auto_ptr<std::vector<float> > localyerr (
new std::vector<float>(size, -1 ));
44 std::auto_ptr<std::vector<float> > globalx (
new std::vector<float>(size, -10000 ));
45 std::auto_ptr<std::vector<float> > globaly (
new std::vector<float>(size, -10000 ));
46 std::auto_ptr<std::vector<float> > globalz (
new std::vector<float>(size, -10000 ));
52 BOOST_FOREACH(
const SiStripRecHit2D&
hit, ds) {
54 shallow::CLUSTERMAP::iterator cluster = clustermap.find( std::make_pair(hit.geographicalId().rawId(), hit.cluster()->firstStrip() ) );
55 if(cluster != clustermap.end() ) {
57 unsigned int i = cluster->second;
60 localx->at(i) = hit.localPosition().x();
61 localy->at(i) = hit.localPosition().y();
62 localxerr->at(i) =
sqrt(hit.localPositionError().xx());
63 localyerr->at(i) =
sqrt(hit.localPositionError().yy());
64 globalx->at(i) = theStripDet->
toGlobal(hit.localPosition()).
x();
65 globaly->at(i) = theStripDet->
toGlobal(hit.localPosition()).
y();
66 globalz->at(i) = theStripDet->
toGlobal(hit.localPosition()).
z();
edm::InputTag theClustersLabel
ShallowRechitClustersProducer(const edm::ParameterSet &)
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
virtual const StripTopology & specificTopology() const
Returns a reference to the strip proxy topology.
virtual float strip(const LocalPoint &) const =0
virtual MeasurementError measurementError(const LocalPoint &, const LocalError &) const =0
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
std::vector< edm::InputTag > inputTags
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
CLUSTERMAP make_cluster_map(const edm::Event &, edm::InputTag &)
void produce(edm::Event &, const edm::EventSetup &)
std::map< std::pair< uint32_t, uint16_t >, unsigned int > CLUSTERMAP
tuple size
Write out results.