62 auto number = std::make_unique<std::vector<unsigned>>(7, 0);
63 auto width = std::make_unique<std::vector<unsigned>>();
64 auto variance = std::make_unique<std::vector<float>>();
65 auto barystrip = std::make_unique<std::vector<float>>();
66 auto middlestrip = std::make_unique<std::vector<float>>();
67 auto charge = std::make_unique<std::vector<unsigned>>();
68 auto noise = std::make_unique<std::vector<float>>();
69 auto ston = std::make_unique<std::vector<float>>();
70 auto seedstrip = std::make_unique<std::vector<unsigned>>();
71 auto seedindex = std::make_unique<std::vector<unsigned>>();
72 auto seedcharge = std::make_unique<std::vector<unsigned>>();
73 auto seednoise = std::make_unique<std::vector<float>>();
74 auto seedgain = std::make_unique<std::vector<float>>();
75 auto qualityisbad = std::make_unique<std::vector<unsigned>>();
77 auto rawchargeC = std::make_unique<std::vector<float>>();
78 auto rawchargeL = std::make_unique<std::vector<float>>();
79 auto rawchargeR = std::make_unique<std::vector<float>>();
80 auto rawchargeLL = std::make_unique<std::vector<float>>();
81 auto rawchargeRR = std::make_unique<std::vector<float>>();
82 auto etaX = std::make_unique<std::vector<float>>();
83 auto eta = std::make_unique<std::vector<float>>();
84 auto foldedeta = std::make_unique<std::vector<float>>();
85 auto etaasymm = std::make_unique<std::vector<float>>();
86 auto outsideasymm = std::make_unique<std::vector<float>>();
87 auto neweta = std::make_unique<std::vector<float>>();
88 auto newetaerr = std::make_unique<std::vector<float>>();
90 auto detid = std::make_unique<std::vector<unsigned>>();
91 auto subdetid = std::make_unique<std::vector<int>>();
92 auto side = std::make_unique<std::vector<int>>();
93 auto module = std::make_unique<std::vector<int>>();
94 auto layerwheel = std::make_unique<std::vector<int>>();
95 auto stringringrod = std::make_unique<std::vector<int>>();
96 auto petal = std::make_unique<std::vector<int>>();
97 auto stereo = std::make_unique<std::vector<int>>();
108 for (; itClusters != clusters->
end(); ++itClusters) {
109 uint32_t
id = itClusters->
id();
110 const moduleVars moduleV(
id, tTopo);
114 const NearDigis digis = rawProcessedDigis.
isValid() ? NearDigis(
info, *rawProcessedDigis) : NearDigis(
info);
117 (
number->at(moduleV.subdetid))++;
118 width->push_back(cluster->amplitudes().size());
119 barystrip->push_back(cluster->barycenter());
120 variance->push_back(
info.variance());
121 middlestrip->push_back(
info.firstStrip() +
info.width() / 2.0);
122 charge->push_back(
info.charge());
123 noise->push_back(
info.noiseRescaledByGain());
124 ston->push_back(
info.signalOverNoise());
125 seedstrip->push_back(
info.maxStrip());
126 seedindex->push_back(
info.maxIndex());
127 seedcharge->push_back(
info.maxCharge());
128 seednoise->push_back(
info.stripNoisesRescaledByGain().at(
info.maxIndex()));
129 seedgain->push_back(
info.stripGains().at(
info.maxIndex()));
130 qualityisbad->push_back(
info.IsAnythingBad());
132 rawchargeC->push_back(digis.max);
133 rawchargeL->push_back(digis.left);
134 rawchargeR->push_back(digis.right);
135 rawchargeLL->push_back(digis.Lleft);
136 rawchargeRR->push_back(digis.Rright);
137 etaX->push_back(digis.etaX());
138 eta->push_back(digis.eta());
139 etaasymm->push_back(digis.etaasymm());
140 outsideasymm->push_back(digis.outsideasymm());
141 neweta->push_back((digis.last - digis.first) /
info.charge());
142 newetaerr->push_back((
sqrt(digis.last + digis.first)) /
pow(
info.charge(), 1.5));
144 detid->push_back(
id);
145 subdetid->push_back(moduleV.subdetid);
146 side->push_back(moduleV.side);
147 module->push_back(moduleV.module);
148 layerwheel->push_back(moduleV.layerwheel);
149 stringringrod->push_back(moduleV.stringringrod);
150 petal->push_back(moduleV.petal);
151 stereo->push_back(moduleV.stereo);
const_iterator end(bool update=false) const
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
bool getByToken(EDGetToken token, Handle< PROD > &result) const
data_type const * const_iterator
id_type id(size_t cell) const
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > theClustersToken_
edm::EDGetTokenT< edm::DetSetVector< SiStripProcessedRawDigi > > theDigisToken_
T const * product() const
Power< A, B >::type pow(const A &a, const B &b)
const_iterator begin(bool update=false) const