11 #include "HepPDT/ParticleID.hh"
52 typedef std::vector<int>
vint;
81 double d,
double a,
double t,
double l,
double i,
double p,
double c, std::size_t
h, std::size_t
x) {
125 hits =
new TH1F(name.c_str(), title.c_str(), 19, -0.5, 18.5);
129 chi2 =
new TH1F(name.c_str(), title.c_str(), 100, 0., 30.);
133 pixelhits =
new TH1F(name.c_str(), title.c_str(), 21, -0.5, 20.5);
137 pt_1gev =
new TH1F(name.c_str(), title.c_str(), 100, 0., 2.);
141 tip =
new TH1F(name.c_str(), title.c_str(), 100, -0.3, 0.3);
145 lip =
new TH1F(name.c_str(), title.c_str(), 100, -1., 1.);
149 ips =
new TH1F(name.c_str(), title.c_str(), 100, -25.0, 25.0);
153 sdl =
new TH1F(name.c_str(), title.c_str(), 100, -5., 5.);
157 dta =
new TH1F(name.c_str(), title.c_str(), 100, 0.0, 0.2);
206 trkToken_(consumes<edm::
View<
reco::Track>>(config.getUntrackedParameter<edm::
InputTag>(
"trackProducer"))),
209 config.getUntrackedParameter<edm::
InputTag>(
"jetTracksAssociation"))),
210 classifier_(config, consumesCollector()) {
223 trackQualityType.begin(), trackQualityType.end(), trackQualityType.begin(), (int (*)(int))std::tolower);
224 if (trackQualityType ==
"any") {
238 event.getByToken(
trkToken_, trackCollection);
241 event.getByToken(
vtxToken_, primaryVertexCollection);
265 for (std::size_t
i = 0;
i < 6;
i++) {
301 if (!primaryVertexProducer_->empty()) {
303 std::vector<reco::Vertex> sortedList = pvs.
sortedList(*(primaryVertexProducer_.
product()));
304 pv = (sortedList.front());
308 e(0, 0) = 0.0015 * 0.0015;
309 e(1, 1) = 0.0015 * 0.0015;
319 for (; it != jetTracksAssociation->end(); it++, i++) {
324 GlobalVector direction(jetTracks->first->px(), jetTracks->first->py(), jetTracks->first->pz());
331 double pt = tracks[
index]->pt();
332 double chi2 = tracks[
index]->normalizedChi2();
333 int hits = tracks[
index]->hitPattern().numberOfValidHits();
334 int pixelHits = tracks[
index]->hitPattern().numberOfValidPixelHits();
345 double dz = tracks[
index]->dz() - pvZ;
T getUntrackedParameter(std::string const &, T const &) const
histogram_element_t(double d, double a, double t, double l, double i, double p, double c, std::size_t h, std::size_t x)
const edm::EventSetup & c
std::vector< std::vector< histogram_element_t > > histogram_data_t
double maximumChiSquared_
transient_vector_type::const_iterator const_iterator
const edm::EDGetTokenT< reco::JetTracksAssociationCollection > jtaToken_
TrackQuality
track quality
#define DEFINE_FWK_MODULE(type)
reco::TrackBase::TrackQuality trackQuality_
JetTracksAssociation::Container JetTracksAssociationCollection
typedefs for backward compatibility
void LoopOverJetTracksAssociation(const edm::ESHandle< TransientTrackBuilder > &, const edm::Handle< reco::VertexCollection > &, const edm::Handle< reco::JetTracksAssociationCollection > &)
reco::TransientTrack build(const reco::Track *p) const
std::vector< reco::Vertex > sortedList(const reco::VertexCollection &primaryVertex) const
math::Error< dimension >::type Error
covariance error matrix (3x3)
auto const & tracks
cannot be loose
TrackClassifier classifier_
const edm::ESGetToken< TransientTrackBuilder, TransientTrackRecord > ttrkToken_
std::vector< Vertex > VertexCollection
histogram_element_t(const histogram_element_t &orig)
TrackClassifier const & evaluate(reco::TrackBaseRef const &)
Classify the RecoTrack in categories.
histogram_t(const std::string &particleType)
int minimumNumberOfPixelHits_
const edm::EDGetTokenT< edm::View< reco::Track > > trkToken_
double z() const
z coordinate
void analyze(const edm::Event &, const edm::EventSetup &) override
math::XYZPoint Point
point in the space
void newEvent(edm::Event const &, edm::EventSetup const &)
Pre-process event information (for accessing reconstraction information)
bool is(Category category) const
Returns track flag for a given category.
std::vector< std::string > vstring
static constexpr float d0
Get track history and classify it in function of their .
static TrackQuality qualityByName(const std::string &name)
T const * product() const
const edm::EDGetTokenT< reco::VertexCollection > vtxToken_
T const * product() const
void Fill(const histogram_element_t &data)
deadvectors[0] push_back({0.0175431, 0.538005, 6.80997, 13.29})
QualityCutsAnalyzer(const edm::ParameterSet &)
tuple config
parse the configuration file
char data[epos_bytes_allocation]
double minimumTransverseMomentum_
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
~QualityCutsAnalyzer() override=default
histogram_data_t histogram_data_