32 _analysisname(analysisname),
34 _hltProcessName(pset.getParameter<
std::
string>(
"hltProcessName")),
35 _genParticleLabel(pset.getParameter<
std::
string>(
"genParticleLabel")),
36 _trigResultsLabel(
"TriggerResults",
"", _hltProcessName),
37 _beamSpotLabel(pset.getParameter<
std::
string>(
"beamSpotLabel")),
38 _parametersEta(pset.getParameter<
std::vector<double>>(
"parametersEta")),
39 _parametersPhi(pset.getParameter<
std::vector<double>>(
"parametersPhi")),
40 _parametersTurnOn(pset.getParameter<
std::vector<double>>(
"parametersTurnOn")),
41 _parametersTurnOnSumEt(pset.getParameter<
std::vector<double>>(
"parametersTurnOnSumEt")),
42 _parametersDxy(pset.getParameter<
std::vector<double>>(
"parametersDxy")),
60 LogDebug(
"ExoticaValidation") <<
"In HLTExoticaSubAnalysis::constructor()";
69 if (anpset.
exists(
"parametersTurnOn")) {
73 if (anpset.
exists(
"parametersEta")) {
77 if (anpset.
exists(
"parametersPhi")) {
81 if (anpset.
exists(
"parametersDxy")) {
85 if (anpset.
exists(
"parametersTurnOnSumEt")) {
89 if (anpset.
exists(
"dropPt2")) {
93 if (anpset.
exists(
"dropPt3")) {
107 for (std::map<unsigned int, edm::InputTag>::const_iterator it =
_recLabels.begin(); it !=
_recLabels.end(); ++it) {
111 auto const genCutParam = objStr +
"_genCut_leading";
112 if (pset.
exists(genCutParam)) {
117 auto const recCutParam = objStr +
"_recCut_leading";
118 if (pset.
exists(recCutParam)) {
127 for (std::map<unsigned int, edm::InputTag>::const_iterator it =
_recLabels.begin(); it !=
_recLabels.end(); ++it) {
130 auto const genCutParam = objStr +
"_genCut";
135 auto const recCutParam = objStr +
"_recCut";
153 it->second =
nullptr;
198 LogDebug(
"ExoticaValidation") <<
"In HLTExoticaSubAnalysis::subAnalysisBookHistos()";
205 for (std::map<unsigned int, edm::InputTag>::const_iterator it =
_recLabels.begin(); it !=
_recLabels.end(); ++it) {
207 std::vector<std::string> sources(2);
211 for (
size_t i = 0;
i < sources.size();
i++) {
214 if (source ==
"gen") {
215 if (TString(objStr).Contains(
"MET") || TString(objStr).Contains(
"MHT") || TString(objStr).Contains(
"Jet")) {
218 bookHist(iBooker, source, objStr,
"MaxPt1");
220 bookHist(iBooker, source, objStr,
"MaxPt2");
222 bookHist(iBooker, source, objStr,
"MaxPt3");
223 bookHist(iBooker, source, objStr,
"Eta");
224 bookHist(iBooker, source, objStr,
"Phi");
230 bookHist(iBooker, source, objStr,
"Dxy");
234 if (TString(objStr).Contains(
"MET") || TString(objStr).Contains(
"MHT")) {
235 bookHist(iBooker, source, objStr,
"MaxPt1");
236 bookHist(iBooker, source, objStr,
"SumEt");
238 bookHist(iBooker, source, objStr,
"MaxPt1");
240 bookHist(iBooker, source, objStr,
"MaxPt2");
242 bookHist(iBooker, source, objStr,
"MaxPt3");
243 bookHist(iBooker, source, objStr,
"Eta");
244 bookHist(iBooker, source, objStr,
"Phi");
250 bookHist(iBooker, source, objStr,
"Dxy");
260 for (std::vector<HLTExoticaPlotter>::iterator it =
_plotters.begin(); it !=
_plotters.end(); ++it) {
261 it->plotterBookHistos(iBooker, iRun, iSetup);
266 LogDebug(
"ExoticaValidation") <<
"In HLTExoticaSubAnalysis::beginRun()";
272 bool changedConfig(
true);
274 edm::LogError(
"ExoticaValidation") <<
"HLTExoticaSubAnalysis::constructor(): " 275 <<
"Initialization of HLTConfigProvider failed!";
288 if (TString(thetriggername).Contains(pattern)) {
293 LogDebug(
"ExoticaValidation") <<
"--- TRIGGER PATH : " << thetriggername;
305 LogTrace(
"ExoticaValidation") <<
"SubAnalysis: " <<
_analysisname <<
"\nHLT Trigger Paths found >>>";
306 for (std::set<std::string>::const_iterator iter =
_hltPaths.begin(); iter !=
_hltPaths.end(); ++iter) {
307 LogTrace(
"ExoticaValidation") << (*iter) <<
"\n";
312 for (std::set<std::string>::iterator iPath =
_hltPaths.begin(); iPath !=
_hltPaths.end(); ++iPath) {
316 if (path.rfind(
"_v") < path.length()) {
317 shortpath = path.substr(0, path.rfind(
"_v"));
326 std::vector<unsigned int> objsNeedHLT;
327 for (std::map<unsigned int, edm::InputTag>::iterator it =
_recLabels.begin(); it !=
_recLabels.end(); ++it) {
328 objsNeedHLT.push_back(it->first);
359 LogTrace(
"ExoticaValidation") <<
" --- " << shortpath;
371 LogDebug(
"ExoticaValidation") <<
"In HLTExoticaSubAnalysis::analyze()";
394 std::vector<reco::LeafCandidate> matchesGen;
396 std::vector<reco::LeafCandidate> matchesReco;
398 std::map<int, double> theSumEt;
399 std::map<int, std::vector<const reco::Track *>> trkObjs;
406 for (std::map<unsigned int, edm::InputTag>::iterator it =
_recLabels.begin(); it !=
_recLabels.end(); ++it) {
420 if (TString(objTypeStr).Contains(
"MET") || TString(objTypeStr).Contains(
"MHT") ||
421 TString(objTypeStr).Contains(
"Jet"))
439 matchesGen.push_back(
v);
456 LogDebug(
"ExoticaValidation") <<
"-- enter loop over recLabels";
457 for (std::map<unsigned int, edm::InputTag>::iterator it =
_recLabels.begin(); it !=
_recLabels.end(); ++it) {
469 <<
" sumEt=" << theSumEt[it->first];
480 for (std::vector<HLTExoticaPlotter>::iterator an =
_plotters.begin(); an !=
_plotters.end(); ++an) {
514 std::map<unsigned int, int> countobjects;
515 for (std::map<unsigned int, edm::InputTag>::iterator co =
_recLabels.begin(); co !=
_recLabels.end(); ++co) {
517 countobjects.insert(std::pair<unsigned int, int>(co->first, 0));
523 int totalobjectssize = 1;
528 totalobjectssize *= countobjects.size();
530 bool isPassedLeadingCut =
true;
532 for (
size_t j = 0; j != matchesGen.size(); ++j) {
533 const unsigned int objType = matchesGen[j].pdgId();
536 if (!
select(matchesGen[j])) {
537 isPassedLeadingCut =
false;
543 std::vector<float> dxys;
546 for (
size_t j = 0; (j != matchesGen.size()) && isPassedLeadingCut; ++j) {
547 const unsigned int objType = matchesGen[j].pdgId();
551 float pt = matchesGen[j].pt();
553 if (countobjects[objType] == 0) {
554 this->
fillHist(
"gen", objTypeStr,
"MaxPt1", pt);
557 }
else if (countobjects[objType] == 1 && !
_drop_pt2) {
558 this->
fillHist(
"gen", objTypeStr,
"MaxPt2", pt);
561 }
else if (countobjects[objType] == 2 && !
_drop_pt3) {
562 this->
fillHist(
"gen", objTypeStr,
"MaxPt3", pt);
567 if (counttotal == totalobjectssize) {
568 size_t max_size = matchesGen.size();
569 for (
size_t jj = j;
jj < max_size;
jj++) {
570 matchesGen.erase(matchesGen.end());
576 float eta = matchesGen[j].eta();
577 float phi = matchesGen[j].phi();
579 this->
fillHist(
"gen", objTypeStr,
"Eta", eta);
580 this->
fillHist(
"gen", objTypeStr,
"Phi", phi);
586 float momphi = matchesGen[j].momentum().phi();
587 float dxyGen = (-(vtx.x() - cols->
bs->
x0()) *
sin(momphi) + (vtx.y() - cols->
bs->
y0()) *
cos(momphi));
588 dxys.push_back(dxyGen);
589 this->
fillHist(
"gen", objTypeStr,
"Dxy", dxyGen);
597 for (std::vector<HLTExoticaPlotter>::iterator an =
_plotters.begin(); an !=
_plotters.end(); ++an) {
600 LogDebug(
"ExoticaValidation") <<
" preparing to call the plotters analysis";
601 an->analyze(ispassTrigger,
"gen", matchesGen, theSumEt, dxys);
602 LogDebug(
"ExoticaValidation") <<
" called the plotter";
627 std::map<unsigned int, int> countobjects;
628 for (std::map<unsigned int, edm::InputTag>::iterator co =
_recLabels.begin(); co !=
_recLabels.end(); ++co) {
629 countobjects.insert(std::pair<unsigned int, int>(co->first, 0));
635 int totalobjectssize = 1;
640 totalobjectssize *= countobjects.size();
646 std::vector<float> dxys;
649 bool isPassedLeadingCut =
true;
651 for (
size_t j = 0; j != matchesReco.size(); ++j) {
652 const unsigned int objType = matchesReco[j].pdgId();
655 if (!
select(matchesReco[j])) {
656 isPassedLeadingCut =
false;
662 for (
size_t j = 0; (j != matchesReco.size()) && isPassedLeadingCut; ++j) {
663 const unsigned int objType = matchesReco[j].pdgId();
667 float pt = matchesReco[j].pt();
669 if (countobjects[objType] == 0) {
670 this->
fillHist(
"rec", objTypeStr,
"MaxPt1", pt);
673 }
else if (countobjects[objType] == 1 && !
_drop_pt2) {
674 if (!(TString(objTypeStr).Contains(
"MET") || TString(objTypeStr).Contains(
"MHT"))) {
675 this->
fillHist(
"rec", objTypeStr,
"MaxPt2", pt);
679 }
else if (countobjects[objType] == 2 && !
_drop_pt3) {
680 if (!(TString(objTypeStr).Contains(
"MET") || TString(objTypeStr).Contains(
"MHT"))) {
681 this->
fillHist(
"rec", objTypeStr,
"MaxPt3", pt);
687 if (counttotal == totalobjectssize) {
688 size_t max_size = matchesReco.size();
689 for (
size_t jj = j;
jj < max_size;
jj++) {
690 matchesReco.erase(matchesReco.end());
696 float eta = matchesReco[j].eta();
697 float phi = matchesReco[j].phi();
699 if (!(TString(objTypeStr).Contains(
"MET") || TString(objTypeStr).Contains(
"MHT"))) {
700 this->
fillHist(
"rec", objTypeStr,
"Eta", eta);
701 this->
fillHist(
"rec", objTypeStr,
"Phi", phi);
703 this->
fillHist(
"rec", objTypeStr,
"SumEt", theSumEt[objType]);
706 if (trkObjs[objType].
size() >= j + 1) {
708 this->
fillHist(
"rec", objTypeStr,
"Dxy", dxyRec);
709 dxys.push_back(dxyRec);
720 for (std::vector<HLTExoticaPlotter>::iterator an =
_plotters.begin(); an !=
_plotters.end(); ++an) {
723 LogDebug(
"ExoticaValidation") <<
" preparing to call the plotters analysis";
724 an->analyze(ispassTrigger,
"rec", matchesReco, theSumEt, dxys);
725 LogDebug(
"ExoticaValidation") <<
" called the plotter";
733 LogDebug(
"ExoticaValidation") <<
"In HLTExoticaSubAnalysis::getObjectsType()";
735 static const unsigned int objSize = 15;
752 std::set<unsigned int> objsType;
754 for (
unsigned int i = 0;
i < objSize; ++
i) {
758 if (!TString(hltPath).Contains(objTypeStr)) {
762 objsType.insert(objtriggernames[i]);
765 return std::vector<unsigned int>(objsType.begin(), objsType.end());
770 LogDebug(
"ExoticaValidation") <<
"In HLTExoticaSubAnalysis::getNamesOfObjects()";
772 if (anpset.
exists(
"recMuonLabel")) {
776 if (anpset.
exists(
"recMuonTrkLabel")) {
780 if (anpset.
exists(
"recTrackLabel")) {
784 if (anpset.
exists(
"recElecLabel")) {
788 if (anpset.
exists(
"recPhotonLabel")) {
792 if (anpset.
exists(
"recMETLabel")) {
796 if (anpset.
exists(
"recPFMETLabel")) {
800 if (anpset.
exists(
"recPFMHTLabel")) {
804 if (anpset.
exists(
"genMETLabel")) {
808 if (anpset.
exists(
"recCaloMETLabel")) {
812 if (anpset.
exists(
"recCaloMHTLabel")) {
816 if (anpset.
exists(
"hltMETLabel")) {
820 if (anpset.
exists(
"l1METLabel")) {
824 if (anpset.
exists(
"recPFTauLabel")) {
828 if (anpset.
exists(
"recPFJetLabel")) {
832 if (anpset.
exists(
"recCaloJetLabel")) {
838 edm::LogError(
"ExoticaValidation") <<
"HLTExoticaSubAnalysis::getNamesOfObjects, " 839 <<
"Not included any object (recMuonLabel, recElecLabel, ...) " 862 for (std::map<unsigned int, edm::InputTag>::iterator it =
_recLabels.begin(); it !=
_recLabels.end(); ++it) {
926 edm::LogError(
"ExoticaValidation") <<
"HLTExoticaSubAnalysis::registerConsumes" 927 <<
" NOT IMPLEMENTED (yet) ERROR: '" << it->second.label() <<
"'";
934 LogDebug(
"ExoticaValidation") <<
"In HLTExoticaSubAnalysis::getHandlesToObjects()";
942 LogDebug(
"ExoticaValidation") <<
"Added handle to triggerResults";
950 LogDebug(
"ExoticaValidation") <<
"Added handle to genParticles";
962 LogDebug(
"ExoticaValidation") <<
"We have got " <<
_tokens.size() <<
"tokens";
963 for (std::map<unsigned int, edm::EDGetToken>::iterator it =
_tokens.begin(); it !=
_tokens.end(); ++it) {
1040 edm::LogError(
"ExoticaValidation") <<
"HLTExoticaSubAnalysis::getHandlesToObjects " 1041 <<
" NOT IMPLEMENTED (yet) ERROR: '" << it->first <<
"'";
1051 LogDebug(
"ExoticaValidation") <<
"In HLTExoticaSubAnalysis::bookHist()";
1053 sourceUpper[0] = std::toupper(sourceUpper[0]);
1057 if (variable.find(
"SumEt") != std::string::npos) {
1060 float *edges =
new float[nBins + 1];
1061 for (
size_t i = 0;
i < nBins + 1;
i++) {
1064 h =
new TH1F(name.c_str(), title.c_str(), nBins, edges);
1068 else if (variable.find(
"Dxy") != std::string::npos) {
1073 h =
new TH1F(name.c_str(), title.c_str(), nBins,
min,
max);
1076 else if (variable.find(
"MaxPt") != std::string::npos) {
1077 std::string desc = (variable ==
"MaxPt1") ?
"Leading" :
"Next-to-Leading";
1080 float *edges =
new float[nBins + 1];
1081 for (
size_t i = 0;
i < nBins + 1;
i++) {
1084 h =
new TH1F(name.c_str(), title.c_str(), nBins, edges);
1089 std::string symbol = (variable ==
"Eta") ?
"#eta" :
"#phi";
1092 int nBins = (
int)params[0];
1093 double min = params[1];
1094 double max = params[2];
1095 h =
new TH1F(name.c_str(), title.c_str(), nBins,
min,
max);
1110 const float &
value) {
1112 sourceUpper[0] = toupper(sourceUpper[0]);
1115 LogDebug(
"ExoticaValidation") <<
"In HLTExoticaSubAnalysis::fillHist() " << name <<
" " <<
value;
1117 LogDebug(
"ExoticaValidation") <<
"In HLTExoticaSubAnalysis::fillHist() " << name <<
" worked";
1122 LogDebug(
"ExoticaValidation") <<
"In HLTExoticaSubAnalysis::initSelector()";
1164 std::vector<reco::LeafCandidate> *
matches,
1165 std::map<int, double> &theSumEt,
1166 std::map<
int, std::vector<const reco::Track *>> &trkObjs) {
1167 LogDebug(
"ExoticaValidation") <<
"In HLTExoticaSubAnalysis::insertCandidates()";
1172 for (
size_t i = 0;
i < cols->
muons->size();
i++) {
1173 LogDebug(
"ExoticaValidation") <<
"Inserting muon " <<
i;
1176 matches->push_back(
m);
1183 for (
size_t i = 0;
i < cols->
tracks->size();
i++) {
1184 LogDebug(
"ExoticaValidation") <<
"Inserting muonTrack " <<
i;
1186 ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double>> mom4;
1188 mom4.SetXYZT(mom3.x(), mom3.y(), mom3.z(), mom3.r());
1190 matches->push_back(
m);
1197 for (
size_t i = 0;
i < cols->
tracks->size();
i++) {
1198 LogDebug(
"ExoticaValidation") <<
"Inserting Track " <<
i;
1200 ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double>> mom4;
1202 mom4.SetXYZT(mom3.x(), mom3.y(), mom3.z(), mom3.r());
1204 matches->push_back(
m);
1209 LogDebug(
"ExoticaValidation") <<
"Inserting electron " <<
i;
1212 matches->push_back(
m);
1219 for (
size_t i = 0;
i < cols->
photons->size();
i++) {
1220 LogDebug(
"ExoticaValidation") <<
"Inserting photon " <<
i;
1223 matches->push_back(
m);
1230 for (
size_t i = 0;
i < cols->
pfMETs->size();
i++) {
1231 LogDebug(
"ExoticaValidation") <<
"Inserting PFMET " <<
i;
1234 matches->push_back(
m);
1240 for (
size_t i = 0;
i < cols->
pfMHTs->size();
i++) {
1241 LogDebug(
"ExoticaValidation") <<
"Inserting PFMHT " <<
i;
1244 matches->push_back(
m);
1250 for (
size_t i = 0;
i < cols->
genMETs->size();
i++) {
1251 LogDebug(
"ExoticaValidation") <<
"Inserting GENMET " <<
i;
1254 matches->push_back(
m);
1260 for (
size_t i = 0;
i < cols->
caloMETs->size();
i++) {
1261 LogDebug(
"ExoticaValidation") <<
"Inserting CALOMET " <<
i;
1264 matches->push_back(
m);
1270 for (
size_t i = 0;
i < cols->
caloMHTs->size();
i++) {
1271 LogDebug(
"ExoticaValidation") <<
"Inserting CaloMHT " <<
i;
1274 matches->push_back(
m);
1280 for (
size_t i = 0;
i < cols->
l1METs->size();
i++) {
1281 LogDebug(
"ExoticaValidation") <<
"Inserting L1MET " <<
i;
1284 matches->push_back(
m);
1290 for (
size_t i = 0;
i < cols->
pfTaus->size();
i++) {
1291 LogDebug(
"ExoticaValidation") <<
"Inserting PFtau " <<
i;
1294 matches->push_back(
m);
1298 for (
size_t i = 0;
i < cols->
pfJets->size();
i++) {
1299 LogDebug(
"ExoticaValidation") <<
"Inserting jet " <<
i;
1302 matches->push_back(
m);
1306 for (
size_t i = 0;
i < cols->
caloJets->size();
i++) {
1307 LogDebug(
"ExoticaValidation") <<
"Inserting jet " <<
i;
1310 matches->push_back(
m);
1323 std::stringstream
log;
1325 log <<
"=====================================================================" 1328 log <<
" Trigger Results ( " <<
_analysisname <<
" ) " << std::endl;
1329 log <<
"=====================================================================" 1332 log << std::setw(18) <<
"# of passed events : HLT path names" << std::endl;
1333 log <<
"-------------------:-------------------------------------------------" 1337 log << std::setw(18) << it->second <<
" : " << it->first << std::endl;
1339 log <<
"=====================================================================" 1342 LogDebug(
"ExoticaValidation") << log.str().data();
const std::vector< reco::Muon > * muons
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
StringCutObjectSelector< reco::Track > * _recMuonTrkSelector
std::vector< GenParticle > GenParticleCollection
collection of GenParticles
T getParameter(std::string const &) const
unsigned int _minCandidates
The minimum number of reco/gen candidates needed by the analysis.
Entry const & retrieve(char const *) const
T getUntrackedParameter(std::string const &, T const &) const
void getNamesOfObjects(const edm::ParameterSet &anpset)
Creates the maps that map which collection should come from which label.
std::vector< PFTau > PFTauCollection
collection of PFTau objects
bool existsAs(std::string const ¶meterName, bool trackiness=true) const
checks if a parameter exists as a given type
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
const std::vector< reco::CaloMET > * caloMETs
bool getByToken(EDGetToken token, Handle< PROD > &result) const
std::vector< reco::GenMET > GenMETCollection
collection of GenMET objects
std::map< unsigned int, std::string > _genCut
gen/rec objects cuts
Sin< T >::type sin(const T &t)
bool accept() const
Has at least one path accepted the event?
const std::vector< std::string > & triggerNames() const
names of trigger paths
std::vector< Track > TrackCollection
collection of Tracks
std::vector< HLTExoticaPlotter > _plotters
The plotters: managers of each hlt path where the plots are done.
bool exists(std::string const ¶meterName) const
checks if a parameter exists
StringCutObjectSelector< reco::CaloJet > * _recCaloJetSelector
StringCutObjectSelector< reco::GenMET > * _genMETSelector
std::vector< double > _parametersPhi
const std::vector< reco::CaloJet > * caloJets
void insert(bool ok_to_replace, char const *, Entry const &)
void fillHist(const std::string &source, const std::string &objType, const std::string &variable, const float &value)
const reco::GenParticleCollection * genParticles
container with all the objects needed
void analyze(const edm::Event &iEvent, const edm::EventSetup &iEventSetup, EVTColContainer *cols)
edm::InputTag _trigResultsLabel
StringCutObjectSelector< reco::MET > * _recMETSelector
edm::EDGetTokenT< edm::TriggerResults > _trigResultsToken
std::vector< reco::MET > METCollection
collection of MET objects
std::vector< GsfElectron > GsfElectronCollection
collection of GsfElectron objects
const std::vector< reco::PFTau > * pfTaus
std::vector< Muon > MuonCollection
collection of Muon objects
std::map< unsigned int, std::string > _genCut_leading
gen/rec pt-leading objects cuts
StringCutObjectSelector< reco::PFJet > * _recPFJetSelector
void setPFMHT(const reco::PFMETCollection *v)
U second(std::pair< T, U > const &p)
std::map< std::string, int > _triggerCounter
counting HLT passed events
std::map< unsigned int, edm::InputTag > _recLabels
StringCutObjectSelector< reco::GsfElectron > * _recElecSelector
void set(const reco::MuonCollection *v)
Setter: multiple overloaded function.
std::map< unsigned int, std::string > _recCut_leading
const std::vector< reco::PFMET > * pfMHTs
Container::value_type value_type
StringCutObjectSelector< reco::Muon > * _recMuonSelector
void setCurrentFolder(std::string const &fullpath)
unsigned int triggerIndex(std::string const &name) const
const std::vector< reco::GenMET > * genMETs
edm::ParameterSet _pset
Internal, working copy of the PSet passed from above.
const reco::BeamSpot * bs
void subAnalysisBookHistos(DQMStore::IBooker &iBooker, const edm::Run &iRun, const edm::EventSetup &iSetup)
virtual const LorentzVector & p4() const =0
four-momentum Lorentz vector
std::vector< double > _parametersEta
Some kinematical parameters.
std::map< unsigned int, std::string > _recCut
std::vector< double > _parametersDxy
Cos< T >::type cos(const T &t)
const std::vector< unsigned int > getObjectsType(const std::string &hltpath) const
closes analyze method
StringCutObjectSelector< reco::Track > * _recTrackSelector
MonitorElement * book1D(Args &&...args)
const std::vector< reco::PFJet > * pfJets
HLTConfigProvider _hltConfig
Interface to the HLT information.
const std::vector< reco::Track > * tracks
const std::vector< reco::Photon > * photons
~HLTExoticaSubAnalysis()
End Constructor.
std::vector< std::string > _hltPathsToCheck
The hlt paths to check for.
StringCutObjectSelector< reco::CaloMET > * _recCaloMHTSelector
std::string _hltProcessName
The labels of the object collections to be used in this analysis.
static const char *const trigNames[]
Transform3DPJ::Vector XYZVector
const std::vector< l1extra::L1EtMissParticle > * l1METs
void insertCandidates(const unsigned int &objtype, const EVTColContainer *col, std::vector< reco::LeafCandidate > *matches, std::map< int, double > &theSumEt, std::map< int, std::vector< const reco::Track * >> &trkObjs)
std::vector< reco::CaloMET > CaloMETCollection
collection of CaloMET objects
void registerConsumes(edm::ConsumesCollector &consCollector)
Registers consumption of objects.
T const * product() const
void getHandlesToObjects(const edm::Event &iEvent, EVTColContainer *col)
Gets the collections themselves.
XYZPointD XYZPoint
point in space with cartesian internal representation
StringCutObjectSelector< reco::PFMET > * _recPFMETSelector
std::string _analysisname
The name of this sub-analysis.
StringCutObjectSelector< reco::Photon > * _recPhotonSelector
std::vector< Photon > PhotonCollection
collectin of Photon objects
std::map< unsigned int, StringCutObjectSelector< reco::GenParticle > * > _genSelectorMap
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d'tor
void beginRun(const edm::Run &iRun, const edm::EventSetup &iEventSetup)
StringCutObjectSelector< l1extra::L1EtMissParticle > * _l1METSelector
const std::vector< reco::GsfElectron > * electrons
std::vector< double > _parametersTurnOn
std::map< unsigned int, edm::EDGetToken > _tokens
std::map< std::string, MonitorElement * > _elements
Structure of the MonitorElements.
StringCutObjectSelector< reco::CaloMET > * _recCaloMETSelector
std::vector< PFJet > PFJetCollection
collection of PFJet objects
HLTExoticaSubAnalysis(const edm::ParameterSet &pset, const std::string &analysisname, edm::ConsumesCollector &&consCollector)
Constructor.
std::vector< reco::PFMET > PFMETCollection
collection of PFMET objects
double y0() const
y coordinate
const std::vector< reco::CaloMET > * caloMHTs
edm::EDGetTokenT< reco::GenParticleCollection > _genParticleToken
And also the tokens to get the object collections.
virtual const Point & vertex() const =0
vertex position
const Point & position() const
position
void initSelector(const unsigned int &objtype)
Initializes the selectors of the objects based on which object it is.
std::vector< double > _parametersTurnOnSumEt
edm::InputTag _genParticleLabel
const std::vector< reco::PFMET > * pfMETs
std::set< std::string > _hltPaths
The hlt paths found in the hltConfig.
static const std::string getTypeString(const unsigned int &objtype)
Tranform types into strings.
edm::InputTag _beamSpotLabel
const edm::TriggerResults * triggerResults
StringCutObjectSelector< reco::PFMET > * _recPFMHTSelector
static std::string const source
edm::EDGetTokenT< reco::BeamSpot > _bsToken
StringCutObjectSelector< reco::PFTau > * _recPFTauSelector
edm::TriggerNames const & triggerNames(edm::TriggerResults const &triggerResults) const override
void setCaloMHT(const reco::CaloMETCollection *v)
void bookHist(DQMStore::IBooker &iBooker, const std::string &source, const std::string &objType, const std::string &variable)
The internal functions to book and fill histograms.
std::vector< CaloJet > CaloJetCollection
collection of CaloJet objects
std::map< std::string, std::string > _shortpath2long
Relation between the short and long versions of the path.
double x0() const
x coordinate