1 |
bbetchar |
1.1 |
#include "UserCode/ShallowTools/interface/ShallowTracksProducer.h"
|
2 |
|
|
|
3 |
bbetchar |
1.4 |
#include "FWCore/Framework/interface/Event.h"
|
4 |
bbetchar |
1.1 |
#include "DataFormats/TrackReco/interface/Track.h"
|
5 |
|
|
#include "DataFormats/TrackReco/interface/TrackFwd.h"
|
6 |
|
|
#include "TrackingTools/PatternTools/interface/Trajectory.h"
|
7 |
|
|
#include "boost/foreach.hpp"
|
8 |
|
|
|
9 |
|
|
ShallowTracksProducer::ShallowTracksProducer(const edm::ParameterSet& iConfig)
|
10 |
|
|
: theTracksLabel( iConfig.getParameter<edm::InputTag>("Tracks") ),
|
11 |
|
|
Prefix ( iConfig.getParameter<std::string>("Prefix") ),
|
12 |
|
|
Suffix ( iConfig.getParameter<std::string>("Suffix") )
|
13 |
|
|
{
|
14 |
|
|
produces <unsigned int> ( Prefix + "number" + Suffix );
|
15 |
|
|
produces <std::vector<double> > ( Prefix + "chi2" + Suffix );
|
16 |
|
|
produces <std::vector<double> > ( Prefix + "ndof" + Suffix );
|
17 |
|
|
produces <std::vector<double> > ( Prefix + "chi2ndof" + Suffix );
|
18 |
|
|
produces <std::vector<float> > ( Prefix + "charge" + Suffix );
|
19 |
|
|
produces <std::vector<float> > ( Prefix + "momentum" + Suffix );
|
20 |
|
|
produces <std::vector<float> > ( Prefix + "pt" + Suffix );
|
21 |
|
|
produces <std::vector<float> > ( Prefix + "pterr" + Suffix );
|
22 |
|
|
produces <std::vector<unsigned int> > ( Prefix + "hitsvalid" + Suffix );
|
23 |
|
|
produces <std::vector<unsigned int> > ( Prefix + "hitslost" + Suffix );
|
24 |
|
|
produces <std::vector<double> > ( Prefix + "theta" + Suffix );
|
25 |
bbetchar |
1.3 |
produces <std::vector<double> > ( Prefix + "thetaerr" + Suffix );
|
26 |
bbetchar |
1.1 |
produces <std::vector<double> > ( Prefix + "phi" + Suffix );
|
27 |
bbetchar |
1.3 |
produces <std::vector<double> > ( Prefix + "phierr" + Suffix );
|
28 |
bbetchar |
1.1 |
produces <std::vector<double> > ( Prefix + "eta" + Suffix );
|
29 |
bbetchar |
1.3 |
produces <std::vector<double> > ( Prefix + "etaerr" + Suffix );
|
30 |
bbetchar |
1.1 |
produces <std::vector<double> > ( Prefix + "dxy" + Suffix );
|
31 |
bbetchar |
1.3 |
produces <std::vector<double> > ( Prefix + "dxyerr" + Suffix );
|
32 |
bbetchar |
1.1 |
produces <std::vector<double> > ( Prefix + "dsz" + Suffix );
|
33 |
bbetchar |
1.3 |
produces <std::vector<double> > ( Prefix + "dszerr" + Suffix );
|
34 |
|
|
produces <std::vector<double> > ( Prefix + "qoverp" + Suffix );
|
35 |
|
|
produces <std::vector<double> > ( Prefix + "qoverperr" + Suffix );
|
36 |
bbetchar |
1.1 |
produces <std::vector<double> > ( Prefix + "vx" + Suffix );
|
37 |
|
|
produces <std::vector<double> > ( Prefix + "vy" + Suffix );
|
38 |
|
|
produces <std::vector<double> > ( Prefix + "vz" + Suffix );
|
39 |
|
|
}
|
40 |
|
|
|
41 |
|
|
void ShallowTracksProducer::
|
42 |
|
|
produce(edm::Event& iEvent, const edm::EventSetup& iSetup) {
|
43 |
|
|
std::auto_ptr<unsigned int> number ( new unsigned int(0) );
|
44 |
|
|
std::auto_ptr<std::vector<double> > chi2 ( new std::vector<double>() );
|
45 |
|
|
std::auto_ptr<std::vector<double> > ndof ( new std::vector<double>() );
|
46 |
|
|
std::auto_ptr<std::vector<double> > chi2ndof ( new std::vector<double>() );
|
47 |
|
|
std::auto_ptr<std::vector<float> > charge ( new std::vector<float>() );
|
48 |
|
|
std::auto_ptr<std::vector<float> > momentum ( new std::vector<float>() );
|
49 |
|
|
std::auto_ptr<std::vector<float> > pt ( new std::vector<float>() );
|
50 |
|
|
std::auto_ptr<std::vector<float> > pterr ( new std::vector<float>() );
|
51 |
|
|
std::auto_ptr<std::vector<unsigned int> > hitsvalid ( new std::vector<unsigned int>() );
|
52 |
|
|
std::auto_ptr<std::vector<unsigned int> > hitslost ( new std::vector<unsigned int>() );
|
53 |
|
|
std::auto_ptr<std::vector<double> > theta ( new std::vector<double>() );
|
54 |
|
|
std::auto_ptr<std::vector<double> > thetaerr ( new std::vector<double>() );
|
55 |
|
|
std::auto_ptr<std::vector<double> > phi ( new std::vector<double>() );
|
56 |
|
|
std::auto_ptr<std::vector<double> > phierr ( new std::vector<double>() );
|
57 |
|
|
std::auto_ptr<std::vector<double> > eta ( new std::vector<double>() );
|
58 |
|
|
std::auto_ptr<std::vector<double> > etaerr ( new std::vector<double>() );
|
59 |
|
|
std::auto_ptr<std::vector<double> > dxy ( new std::vector<double>() );
|
60 |
|
|
std::auto_ptr<std::vector<double> > dxyerr ( new std::vector<double>() );
|
61 |
|
|
std::auto_ptr<std::vector<double> > dsz ( new std::vector<double>() );
|
62 |
|
|
std::auto_ptr<std::vector<double> > dszerr ( new std::vector<double>() );
|
63 |
bbetchar |
1.3 |
std::auto_ptr<std::vector<double> > qoverp ( new std::vector<double>() );
|
64 |
|
|
std::auto_ptr<std::vector<double> > qoverperr ( new std::vector<double>() );
|
65 |
bbetchar |
1.1 |
std::auto_ptr<std::vector<double> > vx ( new std::vector<double>() );
|
66 |
|
|
std::auto_ptr<std::vector<double> > vy ( new std::vector<double>() );
|
67 |
|
|
std::auto_ptr<std::vector<double> > vz ( new std::vector<double>() );
|
68 |
|
|
|
69 |
bbetchar |
1.2 |
edm::Handle<edm::View<reco::Track> > tracks; iEvent.getByLabel(theTracksLabel, tracks);
|
70 |
bbetchar |
1.1 |
|
71 |
|
|
*number = tracks->size();
|
72 |
|
|
BOOST_FOREACH( const reco::Track track, *tracks) {
|
73 |
|
|
chi2->push_back( track.chi2() );
|
74 |
|
|
ndof->push_back( track.ndof() );
|
75 |
|
|
chi2ndof->push_back( track.chi2()/track.ndof() );
|
76 |
|
|
charge->push_back( track.charge() );
|
77 |
|
|
momentum->push_back( track.p() );
|
78 |
|
|
pt->push_back( track.pt() );
|
79 |
|
|
pterr->push_back( track.ptError() );
|
80 |
|
|
hitsvalid->push_back( track.numberOfValidHits() );
|
81 |
|
|
hitslost->push_back( track.numberOfLostHits() );
|
82 |
|
|
theta->push_back( track.theta() );
|
83 |
|
|
thetaerr->push_back( track.thetaError() );
|
84 |
|
|
phi->push_back( track.phi() );
|
85 |
|
|
phierr->push_back( track.phiError() );
|
86 |
|
|
eta->push_back( track.eta() );
|
87 |
|
|
etaerr->push_back( track.etaError() );
|
88 |
|
|
dxy->push_back( track.dxy() );
|
89 |
|
|
dxyerr->push_back( track.dxyError() );
|
90 |
|
|
dsz->push_back( track.dsz() );
|
91 |
|
|
dszerr->push_back( track.dszError() );
|
92 |
bbetchar |
1.3 |
qoverp->push_back( track.qoverp() );
|
93 |
|
|
qoverperr->push_back( track.qoverpError() );
|
94 |
bbetchar |
1.1 |
vx->push_back( track.vx() );
|
95 |
|
|
vy->push_back( track.vy() );
|
96 |
|
|
vz->push_back( track.vz() );
|
97 |
|
|
}
|
98 |
|
|
|
99 |
|
|
iEvent.put(number, Prefix + "number" + Suffix );
|
100 |
|
|
iEvent.put(chi2, Prefix + "chi2" + Suffix );
|
101 |
|
|
iEvent.put(ndof, Prefix + "ndof" + Suffix );
|
102 |
|
|
iEvent.put(chi2ndof, Prefix + "chi2ndof" + Suffix );
|
103 |
|
|
iEvent.put(charge, Prefix + "charge" + Suffix );
|
104 |
|
|
iEvent.put(momentum, Prefix + "momentum" + Suffix );
|
105 |
|
|
iEvent.put(pt, Prefix + "pt" + Suffix );
|
106 |
|
|
iEvent.put(pterr, Prefix + "pterr" + Suffix );
|
107 |
|
|
iEvent.put(hitsvalid, Prefix + "hitsvalid" + Suffix );
|
108 |
|
|
iEvent.put(hitslost, Prefix + "hitslost" + Suffix );
|
109 |
|
|
iEvent.put(theta, Prefix + "theta" + Suffix );
|
110 |
|
|
iEvent.put(thetaerr, Prefix + "thetaerr" + Suffix );
|
111 |
|
|
iEvent.put(phi, Prefix + "phi" + Suffix );
|
112 |
|
|
iEvent.put(phierr, Prefix + "phierr" + Suffix );
|
113 |
|
|
iEvent.put(eta, Prefix + "eta" + Suffix );
|
114 |
|
|
iEvent.put(etaerr, Prefix + "etaerr" + Suffix );
|
115 |
|
|
iEvent.put(dxy, Prefix + "dxy" + Suffix );
|
116 |
|
|
iEvent.put(dxyerr, Prefix + "dxyerr" + Suffix );
|
117 |
|
|
iEvent.put(dsz, Prefix + "dsz" + Suffix );
|
118 |
|
|
iEvent.put(dszerr, Prefix + "dszerr" + Suffix );
|
119 |
bbetchar |
1.3 |
iEvent.put(qoverp, Prefix + "qoverp" + Suffix );
|
120 |
|
|
iEvent.put(qoverperr, Prefix + "qoverperr" + Suffix );
|
121 |
bbetchar |
1.1 |
iEvent.put(vx, Prefix + "vx" + Suffix );
|
122 |
|
|
iEvent.put(vy, Prefix + "vy" + Suffix );
|
123 |
|
|
iEvent.put(vz, Prefix + "vz" + Suffix );
|
124 |
|
|
|
125 |
|
|
}
|
126 |
|
|
|