12 Suffix(iConfig.getParameter<
std::
string>(
"Suffix")) {
16 produces<std::vector<double>>(
Prefix +
"chi2ndof" +
Suffix);
17 produces<std::vector<float>>(
Prefix +
"charge" +
Suffix);
18 produces<std::vector<float>>(
Prefix +
"momentum" +
Suffix);
21 produces<std::vector<unsigned int>>(
Prefix +
"hitsvalid" +
Suffix);
22 produces<std::vector<unsigned int>>(
Prefix +
"hitslost" +
Suffix);
23 produces<std::vector<double>>(
Prefix +
"theta" +
Suffix);
24 produces<std::vector<double>>(
Prefix +
"thetaerr" +
Suffix);
26 produces<std::vector<double>>(
Prefix +
"phierr" +
Suffix);
28 produces<std::vector<double>>(
Prefix +
"etaerr" +
Suffix);
30 produces<std::vector<double>>(
Prefix +
"dxyerr" +
Suffix);
32 produces<std::vector<double>>(
Prefix +
"dszerr" +
Suffix);
33 produces<std::vector<double>>(
Prefix +
"qoverp" +
Suffix);
34 produces<std::vector<double>>(
Prefix +
"qoverperr" +
Suffix);
42 auto number = std::make_unique<unsigned int>(0);
43 auto chi2 = std::make_unique<std::vector<double>>();
44 auto ndof = std::make_unique<std::vector<double>>();
45 auto chi2ndof = std::make_unique<std::vector<double>>();
46 auto charge = std::make_unique<std::vector<float>>();
47 auto momentum = std::make_unique<std::vector<float>>();
48 auto pt = std::make_unique<std::vector<float>>();
49 auto pterr = std::make_unique<std::vector<float>>();
50 auto hitsvalid = std::make_unique<std::vector<unsigned int>>();
51 auto hitslost = std::make_unique<std::vector<unsigned int>>();
52 auto theta = std::make_unique<std::vector<double>>();
53 auto thetaerr = std::make_unique<std::vector<double>>();
54 auto phi = std::make_unique<std::vector<double>>();
55 auto phierr = std::make_unique<std::vector<double>>();
56 auto eta = std::make_unique<std::vector<double>>();
57 auto etaerr = std::make_unique<std::vector<double>>();
58 auto dxy = std::make_unique<std::vector<double>>();
59 auto dxyerr = std::make_unique<std::vector<double>>();
60 auto dsz = std::make_unique<std::vector<double>>();
61 auto dszerr = std::make_unique<std::vector<double>>();
62 auto qoverp = std::make_unique<std::vector<double>>();
63 auto qoverperr = std::make_unique<std::vector<double>>();
64 auto vx = std::make_unique<std::vector<double>>();
65 auto vy = std::make_unique<std::vector<double>>();
66 auto vz = std::make_unique<std::vector<double>>();
67 auto algo = std::make_unique<std::vector<int>>();
73 for (
auto const&
track : *tracks) {
74 chi2->push_back(
track.chi2());
75 ndof->push_back(
track.ndof());
76 chi2ndof->push_back(
track.chi2() /
track.ndof());
77 charge->push_back(
track.charge());
78 momentum->push_back(
track.p());
79 pt->push_back(
track.pt());
80 pterr->push_back(
track.ptError());
81 hitsvalid->push_back(
track.numberOfValidHits());
82 hitslost->push_back(
track.numberOfLostHits());
83 theta->push_back(
track.theta());
84 thetaerr->push_back(
track.thetaError());
85 phi->push_back(
track.phi());
86 phierr->push_back(
track.phiError());
87 eta->push_back(
track.eta());
88 etaerr->push_back(
track.etaError());
89 dxy->push_back(
track.dxy());
90 dxyerr->push_back(
track.dxyError());
91 dsz->push_back(
track.dsz());
92 dszerr->push_back(
track.dszError());
93 qoverp->push_back(
track.qoverp());
94 qoverperr->push_back(
track.qoverpError());
95 vx->push_back(
track.vx());
96 vy->push_back(
track.vy());
97 vz->push_back(
track.vz());
98 algo->push_back((
int)
track.algo());
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
void produce(edm::Event &, const edm::EventSetup &) override
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Geom::Theta< T > theta() const
const edm::EDGetTokenT< edm::View< reco::Track > > tracks_token_
ShallowTracksProducer(const edm::ParameterSet &)