21 conf_(fullconf_.getParameter<edm::
ParameterSet>(
"dEdxParameters")),
22 doAllPlots_(conf_.getParameter<bool>(
"doAllPlots")),
23 doDeDxPlots_(conf_.getParameter<bool>(
"doDeDxPlots")),
25 conf_.getParameter<edm::
ParameterSet>(
"genericTriggerEventPSet"), consumesCollector(), *this)) {
30 for (
auto const&
tag : dEdxInputList_) {
95 dEdxMEsVector[
i].ME_MipDeDx->setAxisTitle(
"dEdx of each MIP Track (MeV/cm)");
98 histname =
"MIP_NumberOfdEdxHitsPerTrack_";
100 dEdxMEsVector[
i].ME_MipDeDxNHits->setAxisTitle(
"Number of dEdxHits of each MIP Track");
101 dEdxMEsVector[
i].ME_MipDeDxNHits->setAxisTitle(
"Number of Tracks", 2);
103 histname =
"MIP_FractionOfSaturateddEdxHitsPerTrack_";
105 dEdxMEsVector[
i].ME_MipDeDxNSatHits->setAxisTitle(
"Fraction of Saturated dEdxHits of each MIP Track");
106 dEdxMEsVector[
i].ME_MipDeDxNSatHits->setAxisTitle(
"Number of Tracks", 2);
111 dEdxMEsVector[
i].ME_MipDeDxMass->setAxisTitle(
"dEdx Mass of each MIP Track (GeV/c^{2})");
112 dEdxMEsVector[
i].ME_MipDeDxMass->setAxisTitle(
"Number of Tracks", 2);
117 dEdxMEsVector[
i].ME_HipDeDxMass->setAxisTitle(
"dEdx Mass of each HIP Track (GeV/c^{2})");
118 dEdxMEsVector[
i].ME_HipDeDxMass->setAxisTitle(
"Number of Tracks", 2);
120 histname =
"MIPOfHighPt_dEdxPerTrack_";
122 dEdxMEsVector[
i].ME_MipHighPtDeDx->setAxisTitle(
"dEdx of each MIP (of High pT) Track (MeV/cm)");
123 dEdxMEsVector[
i].ME_MipHighPtDeDx->setAxisTitle(
"Number of Tracks", 2);
125 histname =
"MIPOfHighPt_NumberOfdEdxHitsPerTrack_";
128 dEdxMEsVector[
i].ME_MipHighPtDeDxNHits->setAxisTitle(
"Number of dEdxHits of each MIP (of High pT) Track");
129 dEdxMEsVector[
i].ME_MipHighPtDeDxNHits->setAxisTitle(
"Number of Tracks", 2);
149 if (!trackCollectionHandle.
isValid())
154 if (!dEdxObjectHandle.
isValid())
158 for (
unsigned int t = 0;
t < trackCollectionHandle->size();
t++) {
163 if (track->pt() >= 5.0 && track->numberOfValidHits() >
TrackHitMin) {
165 dEdxMEsVector[
i].ME_MipDeDxNHits->Fill(dEdxColl[track].numberOfMeasurements());
166 if (dEdxColl[track].numberOfMeasurements() != 0)
167 dEdxMEsVector[
i].ME_MipDeDxNSatHits->Fill((1.0 * dEdxColl[track].numberOfSaturatedMeasurements()) /
168 dEdxColl[track].numberOfMeasurements());
173 dEdxMEsVector[
i].ME_MipHighPtDeDxNHits->Fill(dEdxColl[track].numberOfMeasurements());
virtual void setCurrentFolder(std::string const &fullpath)
edm::EDGetTokenT< reco::TrackCollection > trackToken_
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
#define DEFINE_FWK_MODULE(type)
Provides a code based selection for trigger and DCS information in order to have no failing filters i...
dEdxAnalyzer(const edm::ParameterSet &)
Handle< PROD > getHandle(EDGetTokenT< PROD > token) const
void addDefault(ParameterSetDescription const &psetDescription)
std::vector< std::string > dEdxInputList_
bool accept(const edm::Event &event, const edm::EventSetup &setup)
To be called from analyze/filter() methods.
GenericTriggerEventFlag * genTriggerEventFlag_
const std::complex< double > I
edm::InputTag trackInputTag_
double mass(double P, double I)
T const * product() const
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
T getParameter(std::string const &) const
std::pair< OmniClusterRef, TrackingParticleRef > P
std::vector< edm::EDGetTokenT< reco::DeDxDataValueMap > > dEdxTokenList_
std::vector< dEdxMEs > dEdxMEsVector
void initRun(const edm::Run &run, const edm::EventSetup &setup)
To be called from beginRun() methods.
void analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup) override
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())