41 int size = clustermap.size();
42 auto hits = std::make_unique<std::vector<unsigned>>(
size, 0);
43 auto strip = std::make_unique<std::vector<float>>(
size, -100);
44 auto localtheta = std::make_unique<std::vector<float>>(
size, -100);
45 auto localphi = std::make_unique<std::vector<float>>(
size, -100);
46 auto localx = std::make_unique<std::vector<float>>(
size, -100);
47 auto localy = std::make_unique<std::vector<float>>(
size, -100);
48 auto localz = std::make_unique<std::vector<float>>(
size, -100);
49 auto momentum = std::make_unique<std::vector<float>>(
size, 0);
50 auto energyloss = std::make_unique<std::vector<float>>(
size, -1);
51 auto time = std::make_unique<std::vector<float>>(
size, -1);
52 auto particle = std::make_unique<std::vector<int>>(
size, -500);
53 auto process = std::make_unique<std::vector<unsigned short>>(
size, 0);
65 const uint32_t
id =
hit.detUnitId();
72 shallow::CLUSTERMAP::const_iterator cluster =
match_cluster(
id, driftedstrip_, clustermap, *
clusters);
73 if (cluster != clustermap.end()) {
74 unsigned i = cluster->second;
76 if (
hits->at(
i) == 1) {
78 localtheta->at(
i) =
hit.thetaAtEntry();
79 localphi->at(
i) =
hit.phiAtEntry();
80 localx->at(
i) =
hit.localPosition().
x();
81 localy->at(
i) =
hit.localPosition().
y();
82 localz->at(
i) =
hit.localPosition().
z();
83 momentum->at(
i) =
hit.pabs();
84 energyloss->at(
i) =
hit.energyLoss();
86 particle->at(
i) =
hit.particleType();
LocalVector drift(const StripGeomDetUnit *, const MagneticField &, const SiStripLorentzAngle &)
shallow::CLUSTERMAP::const_iterator match_cluster(const unsigned &, const float &, const shallow::CLUSTERMAP &, const edmNew::DetSetVector< SiStripCluster > &) const
std::vector< edm::EDGetTokenT< std::vector< PSimHit > > > simhits_tokens_
const edm::ESGetToken< SiStripLorentzAngle, SiStripLorentzAngleRcd > laToken_
virtual float strip(const LocalPoint &) const =0
virtual const StripTopology & specificTopology() const
Returns a reference to the strip proxy topology.
const edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > clusters_token_
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
CLUSTERMAP make_cluster_map(const edm::Event &, const edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > &)
std::map< std::pair< uint32_t, uint16_t >, unsigned int > CLUSTERMAP
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > geomToken_
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magFieldToken_