|
|
Go to the documentation of this file.
10 #include <Math/VectorUtil.h>
77 jetPtCut_(
params.getParameter<double>(
"jetPtCut")),
78 jetEtaCut_(
params.getParameter<double>(
"jetEtaCut")),
79 maxDeltaR_(
params.getParameter<double>(
"maxDeltaR")),
80 minPt_(
params.getParameter<double>(
"minPt")),
81 minPixelHits_(
params.getParameter<unsigned
int>(
"minPixelHits")),
82 minTotalHits_(
params.getParameter<unsigned
int>(
"minTotalHits")),
83 nThTrack_(
params.getParameter<unsigned
int>(
"nThTrack")) {}
92 flavours_ = fs->
make<TH1F>(
"flavours",
"jet flavours", 5, 0, 5);
105 flavour =
"light flavour jets";
123 fs->
make<TH1F>(Form(
"allIP_%s",
name), Form(
"signed IP for all tracks in %s",
flavour), 100, -0.1, 0.2);
125 Form(
"allIPErr_%s",
name), Form(
"error of signed IP for all tracks in %s",
flavour), 100, 0, 0.05);
127 Form(
"allIPSig_%s",
name), Form(
"signed IP significance for all tracks in %s",
flavour), 100, -10, 20);
130 Form(
"trackIP_%s",
name), Form(
"signed IP for selected positive track in %s",
flavour), 100, -0.1, 0.2);
131 plots.trackIPErr = fs->
make<TH1F>(Form(
"trackIPErr_%s",
name),
132 Form(
"error of signed IP for selected positive track in %s",
flavour),
136 plots.trackIPSig = fs->
make<TH1F>(Form(
"trackIPSig_%s",
name),
137 Form(
"signed IP significance for selected positive track in %s",
flavour),
143 Form(
"negativeIP_%s",
name), Form(
"signed IP for selected negative track in %s",
flavour), 100, -0.2, 0.1);
144 plots.negativeIPErr = fs->
make<TH1F>(Form(
"negativeIPErr_%s",
name),
145 Form(
"error of signed IP for selected negative track in %s",
flavour),
149 plots.negativeIPSig = fs->
make<TH1F>(Form(
"negativeIPSig_%s",
name),
150 Form(
"signed IP significance for selected negative track in %s",
flavour),
155 plots.nTracks = fs->
make<TH1F>(Form(
"nTracks_%s",
name), Form(
"number of usable tracks in %s",
flavour), 30, 0, 30);
157 fs->
make<TH1F>(Form(
"allDeltaR_%s",
name), Form(
"\\DeltaR between track and %s",
flavour), 100, 0, 1);
185 if (pvHandle->empty())
192 for (pat::JetCollection::const_iterator
jet = jetsHandle->begin();
jet != jetsHandle->end(); ++
jet) {
221 std::vector<Measurement1D> ipValErr;
231 for (reco::TrackCollection::const_iterator
track = tracksHandle->begin();
track != tracksHandle->end(); ++
track) {
266 double ipError =
track->dxyError();
278 closestPoint.SetZ(0.);
279 double sign = closestPoint.Dot(
jet->momentum());
295 for (std::vector<Measurement1D>::const_iterator iter = ipValErr.begin(); iter != ipValErr.end(); ++iter) {
330 trk = &ipValErr[ipValErr.size() -
nThTrack_];
void analyze(const edm::Event &event, const edm::EventSetup &es) override
unsigned int minPixelHits_
PatBJetTrackAnalyzer(const edm::ParameterSet ¶ms)
constructor and destructor
edm::EDGetTokenT< reco::TrackCollection > tracksToken_
#define DEFINE_FWK_MODULE(type)
std::vector< Jet > JetCollection
double significance() const
XYZPointD XYZPoint
point in space with cartesian internal representation
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
static bool significanceHigher(const Measurement1D &meas1, const Measurement1D &meas2)
XYZVectorD XYZVector
spatial vector with cartesian internal representation
unsigned int minTotalHits_
edm::EDGetTokenT< reco::VertexCollection > primaryVerticesToken_
T * make(const Args &...args) const
make new ROOT object
~PatBJetTrackAnalyzer() override
std::vector< Vertex > VertexCollection
Abs< T >::type abs(const T &t)
struct PatBJetTrackAnalyzer::Plots plots_[N_JET_TYPES]
std::vector< Track > TrackCollection
collection of Tracks
edm::EDGetTokenT< pat::JetCollection > jetsToken_