104 auto number = std::make_unique<std::vector<unsigned>>(7, 0);
105 auto width = std::make_unique<std::vector<unsigned>>();
106 auto variance = std::make_unique<std::vector<float>>();
107 auto barystrip = std::make_unique<std::vector<float>>();
108 auto middlestrip = std::make_unique<std::vector<float>>();
109 auto charge = std::make_unique<std::vector<unsigned>>();
110 auto noise = std::make_unique<std::vector<float>>();
111 auto ston = std::make_unique<std::vector<float>>();
112 auto seedstrip = std::make_unique<std::vector<unsigned>>();
113 auto seedindex = std::make_unique<std::vector<unsigned>>();
114 auto seedcharge = std::make_unique<std::vector<unsigned>>();
115 auto seednoise = std::make_unique<std::vector<float>>();
116 auto seedgain = std::make_unique<std::vector<float>>();
117 auto qualityisbad = std::make_unique<std::vector<unsigned>>();
119 auto rawchargeC = std::make_unique<std::vector<float>>();
120 auto rawchargeL = std::make_unique<std::vector<float>>();
121 auto rawchargeR = std::make_unique<std::vector<float>>();
122 auto rawchargeLL = std::make_unique<std::vector<float>>();
123 auto rawchargeRR = std::make_unique<std::vector<float>>();
124 auto etaX = std::make_unique<std::vector<float>>();
125 auto eta = std::make_unique<std::vector<float>>();
126 auto foldedeta = std::make_unique<std::vector<float>>();
127 auto etaasymm = std::make_unique<std::vector<float>>();
128 auto outsideasymm = std::make_unique<std::vector<float>>();
129 auto neweta = std::make_unique<std::vector<float>>();
130 auto newetaerr = std::make_unique<std::vector<float>>();
132 auto detid = std::make_unique<std::vector<unsigned>>();
133 auto subdetid = std::make_unique<std::vector<int>>();
134 auto side = std::make_unique<std::vector<int>>();
135 auto module = std::make_unique<std::vector<int>>();
136 auto layerwheel = std::make_unique<std::vector<int>>();
137 auto stringringrod = std::make_unique<std::vector<int>>();
138 auto petal = std::make_unique<std::vector<int>>();
139 auto stereo = std::make_unique<std::vector<int>>();
150 for (; itClusters !=
clusters->end(); ++itClusters) {
151 uint32_t
id = itClusters->
id();
152 const moduleVars moduleV(
id, tTopo);
157 const NearDigis digis = rawProcessedDigis.
isValid() ? NearDigis(
info, *rawProcessedDigis) : NearDigis(
info);
160 (
number->at(moduleV.subdetid))++;
161 width->push_back(cluster->amplitudes().size());
162 barystrip->push_back(cluster->barycenter());
163 variance->push_back(
info.variance());
164 middlestrip->push_back(
info.firstStrip() +
info.width() / 2.0);
166 noise->push_back(
info.noiseRescaledByGain());
167 ston->push_back(
info.signalOverNoise());
168 seedstrip->push_back(
info.maxStrip());
169 seedindex->push_back(
info.maxIndex());
170 seedcharge->push_back(
info.maxCharge());
171 seednoise->push_back(
info.stripNoisesRescaledByGain().at(
info.maxIndex()));
172 seedgain->push_back(
info.stripGains().at(
info.maxIndex()));
173 qualityisbad->push_back(
info.IsAnythingBad());
175 rawchargeC->push_back(digis.max);
176 rawchargeL->push_back(digis.left);
177 rawchargeR->push_back(digis.right);
178 rawchargeLL->push_back(digis.Lleft);
179 rawchargeRR->push_back(digis.Rright);
180 etaX->push_back(digis.etaX());
181 eta->push_back(digis.eta());
182 etaasymm->push_back(digis.etaasymm());
183 outsideasymm->push_back(digis.outsideasymm());
184 neweta->push_back((digis.last - digis.first) /
info.charge());
185 newetaerr->push_back((
sqrt(digis.last + digis.first)) /
pow(
info.charge(), 1.5));
187 detid->push_back(
id);
188 subdetid->push_back(moduleV.subdetid);
189 side->push_back(moduleV.side);
190 module->push_back(moduleV.module);
191 layerwheel->push_back(moduleV.layerwheel);
192 stringringrod->push_back(moduleV.stringringrod);
193 petal->push_back(moduleV.petal);
194 stereo->push_back(moduleV.stereo);
void setCluster(const SiStripCluster &cluster, int detId)
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > topoToken_
data_type const * const_iterator
const_iterator end(bool update=false) const
T const * product() const
id_type id(size_t cell) const
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
const_iterator begin(bool update=false) const
edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > theClustersToken_
edm::EDGetTokenT< edm::DetSetVector< SiStripProcessedRawDigi > > theDigisToken_
SiStripClusterInfo siStripClusterInfo_
void initEvent(const edm::EventSetup &iSetup)
Power< A, B >::type pow(const A &a, const B &b)