24 , fullconf_( iConfig )
25 , conf_ (fullconf_.getParameter<edm::
ParameterSet>(
"dEdxParameters") )
26 , doAllPlots_ ( conf_.getParameter<bool>(
"doAllPlots") )
27 , doDeDxPlots_ ( conf_.getParameter<bool>(
"doDeDxPlots") )
35 for (
auto const&
tag : dEdxInputList_) {
52 if(outputMEsInRootFile)
118 dEdxMEsVector[
i].ME_MipDeDx->setAxisTitle(
"dEdx of each MIP Track (MeV/cm)");
121 histname =
"MIP_NumberOfdEdxHitsPerTrack_";
123 dEdxMEsVector[
i].ME_MipDeDxNHits->setAxisTitle(
"Number of dEdxHits of each MIP Track");
124 dEdxMEsVector[
i].ME_MipDeDxNHits->setAxisTitle(
"Number of Tracks", 2);
126 histname =
"MIP_FractionOfSaturateddEdxHitsPerTrack_";
128 dEdxMEsVector[
i].ME_MipDeDxNSatHits->setAxisTitle(
"Fraction of Saturated dEdxHits of each MIP Track");
129 dEdxMEsVector[
i].ME_MipDeDxNSatHits->setAxisTitle(
"Number of Tracks", 2);
133 dEdxMEsVector[
i].ME_MipDeDxMass->setAxisTitle(
"dEdx Mass of each MIP Track (GeV/c^{2})");
134 dEdxMEsVector[
i].ME_MipDeDxMass->setAxisTitle(
"Number of Tracks", 2);
138 dEdxMEsVector[
i].ME_HipDeDxMass->setAxisTitle(
"dEdx Mass of each HIP Track (GeV/c^{2})");
139 dEdxMEsVector[
i].ME_HipDeDxMass->setAxisTitle(
"Number of Tracks", 2);
152 if(I-
dEdxC<0)
return -1;
168 if(!trackCollectionHandle.
isValid())
return;
173 if(!dEdxObjectHandle.
isValid())
continue;
177 for(
unsigned int t=0;
t<trackCollectionHandle->size();
t++){
183 if( track->pt() >= 5.0 && track->numberOfValidHits()>
TrackHitMin){
185 dEdxMEsVector[
i].ME_MipDeDxNHits ->Fill(dEdxColl[track].numberOfMeasurements());
186 if (dEdxColl[track].numberOfMeasurements()!=0)
187 dEdxMEsVector[
i].ME_MipDeDxNSatHits->Fill((1.0*dEdxColl[track].numberOfSaturatedMeasurements())/dEdxColl[track].numberOfMeasurements());
191 }
else if(track->pt()<2 && dEdxColl[track].dEdx()>
HIPdEdxMin){
T getParameter(std::string const &) const
edm::EDGetTokenT< reco::TrackCollection > trackToken_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
#define DEFINE_FWK_MODULE(type)
virtual void endLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &)
Provides a code based selection for trigger and DCS information in order to have no failing filters i...
dEdxAnalyzer(const edm::ParameterSet &)
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.
MonitorElement * book1D(Args &&...args)
GenericTriggerEventFlag * genTriggerEventFlag_
const std::complex< double > I
edm::InputTag trackInputTag_
std::vector< dEdxMEs > dEdxMEsVector
double mass(double P, double I)
void setCurrentFolder(const std::string &fullpath)
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
T const * product() const
virtual void analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup)
std::vector< edm::EDGetTokenT< reco::DeDxDataValueMap > > dEdxTokenList_
void save(const std::string &filename, const std::string &path="", const std::string &pattern="", const std::string &rewrite="", const uint32_t run=0, const uint32_t lumi=0, SaveReferenceTag ref=SaveWithReference, int minStatus=dqm::qstatus::STATUS_OK, const std::string &fileupdate="RECREATE", const bool resetMEsAfterWriting=false)
void showDirStructure(void) const
void initRun(const edm::Run &run, const edm::EventSetup &setup)
To be called from beginRun() methods.
virtual void beginLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &)