10 #include <Math/VectorUtil.h> 11 #include <Math/GenVector/PxPyPzE4D.h> 12 #include <Math/GenVector/PxPyPzM4D.h> 74 jetPtCut_(params.getParameter<double>(
"jetPtCut")),
75 jetEtaCut_(params.getParameter<double>(
"jetEtaCut"))
89 flavours_ = fs->
make<TH1F>(
"flavours",
"jet flavours", 5, 0, 5);
102 flavour =
"light flavour jets";
106 flavour =
"charm jets";
110 flavour =
"bottom jets";
114 flavour =
"unidentified jets";
120 Form(
"number of secondary vertices in %s", flavour),
122 plots.
deltaR = fs->
make<TH1F>(Form(
"deltaR_%s", name),
123 Form(
"\\DeltaR between vertex direction and jet direction in %s", flavour),
125 plots.
mass = fs->
make<TH1F>(Form(
"mass_%s", name),
126 Form(
"vertex mass in %s", flavour),
128 plots.
dist = fs->
make<TH1F>(Form(
"dist_%s", name),
129 Form(
"Transverse distance between PV and SV in %s", flavour),
131 plots.
distErr = fs->
make<TH1F>(Form(
"distErr_%s", name),
132 Form(
"Transverse distance error between PV and SV in %s", flavour),
134 plots.
distSig = fs->
make<TH1F>(Form(
"distSig_%s", name),
135 Form(
"Transverse distance significance between PV and SV in %s", flavour),
137 plots.
nTracks = fs->
make<TH1F>(Form(
"nTracks_%s", name),
138 Form(
"number of tracks at secondary vertex in %s", flavour),
140 plots.
chi2 = fs->
make<TH1F>(Form(
"chi2_%s", name),
141 Form(
"secondary vertex fit \\chi^{2} in %s", flavour),
155 for(pat::JetCollection::const_iterator
jet = jetsHandle->begin();
156 jet != jetsHandle->end(); ++
jet) {
190 *
jet->tagInfoSecondaryVertex();
243 ROOT::Math::LorentzVector<ROOT::Math::PxPyPzM4D<double> > vec;
244 vec.SetPx((*track)->px());
245 vec.SetPy((*track)->py());
246 vec.SetPz((*track)->pz());
248 trackFourVectorSum += vec;
std::vector< Jet > JetCollection
trackRef_iterator tracks_end() const
last iterator over tracks
const VTX & secondaryVertex(unsigned int index) const
#define DEFINE_FWK_MODULE(type)
edm::EDGetTokenT< pat::JetCollection > jetsToken_
void analyze(const edm::Event &event, const edm::EventSetup &es) override
T * make(const Args &...args) const
make new ROOT object
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
~PatBJetVertexAnalyzer() override
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
struct PatBJetVertexAnalyzer::Plots plots_[N_JET_TYPES]
PatBJetVertexAnalyzer(const edm::ParameterSet ¶ms)
constructor and destructor
Abs< T >::type abs(const T &t)
double chi2() const
chi-squares
const GlobalVector & flightDirection(unsigned int index) const
double deltaR(double eta1, double eta2, double phi1, double phi2)
unsigned int nVertices() const
double significance() const
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Measurement1D flightDistance(unsigned int index, int dim=0) const
std::vector< TrackBaseRef >::const_iterator trackRef_iterator
The iteratator for the vector<TrackRef>
trackRef_iterator tracks_begin() const
first iterator over tracks
size_t tracksSize() const
number of tracks