11 #include "HepPDT/ParticleID.hh"
48 virtual void endJob()
override;
52 typedef std::vector<int>
vint;
137 title =
std::string(
"Hit distribution for ") + particleType;
138 hits =
new TH1F(name.c_str(), title.c_str(), 19, -0.5, 18.5);
141 title =
std::string(
"Chi2 distribution for ") + particleType;
142 chi2 =
new TH1F(name.c_str(), title.c_str(), 100, 0., 30.);
145 title =
std::string(
"Pixel hits distribution for ") + particleType;
146 pixelhits =
new TH1F(name.c_str(), title.c_str(), 21, -0.5, 20.5);
149 title =
std::string(
"Pt distribution close 1Gev for ") + particleType;
150 pt_1gev =
new TH1F(name.c_str(), title.c_str(), 100, 0., 2.);
153 title =
std::string(
"Transverse impact parameter distribution for ") + particleType;
154 tip =
new TH1F(name.c_str(), title.c_str(), 100, -0.3, 0.3);
157 title =
std::string(
"Longitudinal impact parameter distribution for ") + particleType;
158 lip =
new TH1F(name.c_str(), title.c_str(), 100, -1., 1.);
161 title =
std::string(
"IPS distribution for ") + particleType;
162 ips =
new TH1F(name.c_str(), title.c_str(), 100, -25.0, 25.0);
165 title =
std::string(
"Decay length distribution for ") + particleType;
166 sdl =
new TH1F(name.c_str(), title.c_str(), 100, -5., 5.);
169 title =
std::string(
"Distance to jet distribution for ") + particleType;
170 dta =
new TH1F(name.c_str(), title.c_str(), 100, 0.0, 0.2);
239 std::transform(trackQualityType.begin(), trackQualityType.end(), trackQualityType.begin(), (int(*)(int)) std::tolower);
240 if (trackQualityType ==
"any")
275 primaryVertexCollection,
297 for (std::size_t
i=0;
i<6;
i++)
338 if (primaryVertexProducer_->size() != 0)
341 std::vector<reco::Vertex> sortedList = pvs.
sortedList(*(primaryVertexProducer_.
product()));
342 pv = (sortedList.front());
348 e(0,0)=0.0015*0.0015;
349 e(1,1)=0.0015*0.0015;
359 for (; it != jetTracksAssociation->end(); it++, i++)
365 GlobalVector direction(jetTracks->first->px(), jetTracks->first->py(), jetTracks->first->pz());
373 double pt = tracks[
index]->pt();
374 double chi2 = tracks[
index]->normalizedChi2();
375 int hits = tracks[
index]->hitPattern().numberOfValidHits();
376 int pixelHits = tracks[
index]->hitPattern().numberOfValidPixelHits();
391 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)
std::vector< reco::Vertex > sortedList(const reco::VertexCollection &primaryVertex) const
std::vector< std::vector< histogram_element_t > > histogram_data_t
double maximumChiSquared_
transient_vector_type::const_iterator const_iterator
TrackQuality
track quality
#define DEFINE_FWK_MODULE(type)
reco::TrackBase::TrackQuality trackQuality_
void LoopOverJetTracksAssociation(const edm::ESHandle< TransientTrackBuilder > &, const edm::Handle< reco::VertexCollection > &, const edm::Handle< reco::JetTracksAssociationCollection > &)
reco::TransientTrack build(const reco::Track *p) const
virtual void endJob() override
math::Error< dimension >::type Error
covariance error matrix (3x3)
TrackClassifier classifier_
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_
double z() const
y coordinate
virtual void analyze(const edm::Event &, const edm::EventSetup &) override
math::XYZPoint Point
point in the space
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
void newEvent(edm::Event const &, edm::EventSetup const &)
Pre-process event information (for accessing reconstraction information)
edm::InputTag trackProducer_
bool is(Category category) const
Returns track flag for a given category.
std::vector< std::string > vstring
Get track history and classify it in function of their .
static TrackQuality qualityByName(const std::string &name)
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
T const * product() const
T const * product() const
void Fill(const histogram_element_t &data)
virtual void beginJob() override
QualityCutsAnalyzer(const edm::ParameterSet &)
char data[epos_bytes_allocation]
double minimumTransverseMomentum_
edm::InputTag primaryVertexProducer_
void setup(std::vector< TH2F > &depth, std::string name, std::string units="")
histogram_data_t histogram_data_
edm::InputTag jetTracksAssociation_