131 : _buildername(iConfig.getParameter<
std::
string>(
"TTRHBuilder")),
136 _multiplicityMapTokens(),
148 std::vector<edm::ParameterSet> seedCollectionConfigs =
149 iConfig.
getParameter<std::vector<edm::ParameterSet>>(
"seedCollections");
151 for (std::vector<edm::ParameterSet>::const_iterator scps = seedCollectionConfigs.begin();
152 scps != seedCollectionConfigs.end();
155 _seedbins.push_back(scps->getUntrackedParameter<
unsigned int>(
"nBins", 1000));
156 _seedmax.push_back(scps->getUntrackedParameter<
double>(
"maxValue", 100000.));
158 if (scps->exists(
"trackFilter")) {
166 std::vector<edm::ParameterSet> correlationConfigs =
167 iConfig.
getParameter<std::vector<edm::ParameterSet>>(
"multiplicityCorrelations");
169 for (std::vector<edm::ParameterSet>::const_iterator ps = correlationConfigs.begin(); ps != correlationConfigs.end();
174 _selections.push_back(ps->getParameter<
unsigned int>(
"detSelection"));
175 _binsmult.push_back(ps->getParameter<
unsigned int>(
"nBins"));
176 _binseta.push_back(ps->getParameter<
unsigned int>(
"nBinsEta"));
177 _maxs.push_back(ps->getParameter<
double>(
"maxValue"));
182 std::vector<unsigned int>::const_iterator nseedbins =
_seedbins.begin();
183 std::vector<double>::const_iterator seedmax =
_seedmax.begin();
186 for (std::vector<edm::ParameterSet>::const_iterator scps = seedCollectionConfigs.begin();
187 scps != seedCollectionConfigs.end();
188 ++scps, ++nseedbins, ++seedmax, ++
filter) {
194 hname.c_str(), htitle.c_str(), *nseedbins + 1, 0.5 - *seedmax / (*nseedbins), *seedmax + 0.5));
199 htitle = extendedlabel +
std::string(
" seed pseudorapidity");
200 _hseedeta.push_back(tfserv->
make<TH1F>(hname.c_str(), htitle.c_str(), 80, -4., 4.));
205 htitle = extendedlabel +
std::string(
" seed phi vs pseudorapidity");
214 htitle = extendedlabel +
std::string(
" seed SiPixelRecHit multiplicity");
215 _hpixelrhmult.push_back(tfserv->
make<TH1F>(hname.c_str(), htitle.c_str(), 5, -.5, 4.5));
219 hname = extendedlabel +
std::string(
"_bpixleneta");
220 htitle = extendedlabel +
std::string(
" seed BPIX cluster length vs pseudorapidity");
221 _hbpixclusleneta.push_back(tfserv->
make<TH2F>(hname.c_str(), htitle.c_str(), 80, -4., 4., 40, -0.5, 39.5));
225 hname = extendedlabel +
std::string(
"_fpixleneta");
226 htitle = extendedlabel +
std::string(
" seed FPIX cluster length vs pseudorapidity");
227 _hfpixclusleneta.push_back(tfserv->
make<TH2F>(hname.c_str(), htitle.c_str(), 80, -4., 4., 40, -0.5, 39.5));
231 hname = extendedlabel +
std::string(
"_bpixlenangle");
232 htitle = extendedlabel +
std::string(
" seed BPIX cluster length vs track projection");
233 _hbpixcluslenangle.push_back(tfserv->
make<TH2F>(hname.c_str(), htitle.c_str(), 200, -1., 1., 40, -0.5, 39.5));
237 hname = extendedlabel +
std::string(
"_fpixlenangle");
238 htitle = extendedlabel +
std::string(
" seed FPIX cluster length vs track projection");
239 _hfpixcluslenangle.push_back(tfserv->
make<TH2F>(hname.c_str(), htitle.c_str(), 200, -1., 1., 40, -0.5, 39.5));
246 std::string htitle2D = extendedlabel +
" seeds multiplicity";
256 0.5 - *seedmax / (*nseedbins),
263 hname2D = extendedlabel +
_labels[
i];
265 htitle2D = extendedlabel +
" seeds pseudorapidity";
270 tfserv->
make<TH2F>(hname2D.c_str(), htitle2D.c_str(),
_binseta[
i], 0.,
_maxs[
i], 80, -4., 4.));
299 std::map<unsigned int, int>::const_iterator
mult = mults->find(
_selections[
i]);
301 if (
mult != mults->end()) {
302 tmpmult[
i] =
mult->second;
322 std::vector<TH1F*>::iterator histomult =
_hseedmult.begin();
323 std::vector<std::vector<TH2F*>>::iterator histomult2D =
_hseedmult2D.begin();
324 std::vector<TH1F*>::iterator histoeta =
_hseedeta.begin();
325 std::vector<TH2F*>::iterator histophieta =
_hseedphieta.begin();
326 std::vector<std::vector<TH2F*>>::iterator histoeta2D =
_hseedeta2D.begin();
327 std::vector<TH1F*>::iterator hpixelrhmult =
_hpixelrhmult.begin();
369 unsigned int nseeds = 0;
370 unsigned int iseed = 0;
383 (*histoeta)->Fill(
eta);
384 (*histophieta)->Fill(
eta,
phi);
388 (*histoeta2D)[
i]->Fill(tmpmult[
i],
eta);
407 (*histobpixleneta)->Fill(
eta, sphit->
cluster()->sizeY());
412 (*histobpixlenangle)->Fill(normdx, sphit->
cluster()->sizeY());
416 (*histofpixleneta)->Fill(
eta, sphit->
cluster()->sizeX());
421 (*histofpixlenangle)->Fill(normdy, sphit->
cluster()->sizeX());
429 (*hpixelrhmult)->Fill(npixelrh);
432 (*histomult)->Fill(nseeds);
436 (*histomult2D)[
i]->Fill(tmpmult[
i], nseeds);
442 : m_suffix(
""), m_passthrough(
true), m_trackcollToken(), m_seltrackrefcollToken(), m_tracks(), m_seltrackrefs() {}
446 : m_suffix(iConfig.getParameter<
std::
string>(
"suffix")),
447 m_passthrough(
false),
449 m_seltrackrefcollToken(
457 if (!m_passthrough) {
458 iEvent.getByToken(m_trackcollToken, m_tracks);
459 iEvent.getByToken(m_seltrackrefcollToken, m_seltrackrefs);
475 if (trkref == *seltrkref)