Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-04-24 01:30:21

0001 // -*- C++ -*-
0002 //
0003 // Package:    HLTriggerOffline/Scouting
0004 // Class:      ScoutingCollectionMonitor
0005 //
0006 /**\class ScoutingCollectionMonitor ScoutingCollectionMonitor.cc 
0007 HLTriggerOffline/Scouting/plugins/ScoutingCollectionMonitor.cc
0008 
0009 Description: ScoutingCollectionMonitor is developed to enable monitoring of several scouting objects and comparisons for the NGT demonstrator
0010 
0011 It is based on the preexisting work of the scouting group and can be found at git@github.com:CMS-Run3ScoutingTools/Run3ScoutingAnalysisTools.git
0012 
0013 */
0014 //
0015 // Original Author:  Jessica Prendi
0016 //         Created:  Thu, 17 Apr 2025 14:15:08 GMT
0017 //
0018 //
0019 
0020 // system include files
0021 #include <memory>
0022 #include <TLorentzVector.h>
0023 
0024 // user include files
0025 #include "DQMServices/Core/interface/DQMEDAnalyzer.h"
0026 
0027 #include "FWCore/Framework/interface/Frameworkfwd.h"
0028 
0029 #include "FWCore/Framework/interface/Event.h"
0030 #include "FWCore/Framework/interface/MakerMacros.h"
0031 
0032 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0033 #include "FWCore/Utilities/interface/InputTag.h"
0034 
0035 #include "FWCore/Common/interface/TriggerNames.h"
0036 #include "DataFormats/Common/interface/TriggerResults.h"
0037 #include "DataFormats/HLTReco/interface/TriggerEvent.h"
0038 
0039 #include "DataFormats/Scouting/interface/Run3ScoutingElectron.h"
0040 #include "DataFormats/Scouting/interface/Run3ScoutingPhoton.h"
0041 #include "DataFormats/Scouting/interface/Run3ScoutingPFJet.h"
0042 #include "DataFormats/Scouting/interface/Run3ScoutingVertex.h"
0043 #include "DataFormats/Scouting/interface/Run3ScoutingTrack.h"
0044 #include "DataFormats/Scouting/interface/Run3ScoutingMuon.h"
0045 #include "DataFormats/Scouting/interface/Run3ScoutingParticle.h"
0046 
0047 #include "DataFormats/PatCandidates/interface/TriggerObjectStandAlone.h"
0048 #include "DataFormats/PatCandidates/interface/PackedTriggerPrescales.h"
0049 #include "L1Trigger/L1TGlobal/interface/L1TGlobalUtil.h"
0050 #include "DataFormats/L1TGlobal/interface/GlobalAlgBlk.h"
0051 #include "HLTrigger/HLTcore/interface/TriggerExpressionData.h"
0052 #include "HLTrigger/HLTcore/interface/TriggerExpressionEvaluator.h"
0053 #include "HLTrigger/HLTcore/interface/TriggerExpressionParser.h"
0054 
0055 #include "HLTrigger/HLTcore/interface/HLTConfigProvider.h"
0056 
0057 #include "FWCore/ServiceRegistry/interface/Service.h"
0058 #include "CommonTools/UtilAlgos/interface/TFileService.h"
0059 
0060 //
0061 // class declaration
0062 //
0063 
0064 class ScoutingCollectionMonitor : public DQMEDAnalyzer {
0065 public:
0066   explicit ScoutingCollectionMonitor(const edm::ParameterSet&);
0067   ~ScoutingCollectionMonitor() override;
0068 
0069   static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0070 
0071 private:
0072   // void beginJob() override;
0073   void analyze(const edm::Event&, const edm::EventSetup&) override;
0074   void bookHistograms(DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&) override;
0075 
0076   const std::string outputInternalPath_ = "HLT/ScoutingOffline/Miscellaneous";
0077 
0078   const edm::InputTag triggerResultsTag;
0079   const edm::EDGetTokenT<edm::TriggerResults> triggerResultsToken;
0080   const edm::EDGetTokenT<std::vector<Run3ScoutingMuon>> muonsToken;
0081   const edm::EDGetTokenT<std::vector<Run3ScoutingElectron>> electronsToken;
0082   const edm::EDGetTokenT<std::vector<Run3ScoutingVertex>> primaryVerticesToken;
0083   const edm::EDGetTokenT<std::vector<Run3ScoutingVertex>> verticesToken;
0084   const edm::EDGetTokenT<std::vector<Run3ScoutingPhoton>> photonsToken;
0085   const edm::EDGetTokenT<double> rhoToken;
0086   const edm::EDGetTokenT<double> pfMetPhiToken;
0087   const edm::EDGetTokenT<double> pfMetPtToken;
0088   const edm::EDGetTokenT<std::vector<Run3ScoutingParticle>> pfcandsToken;
0089   const edm::EDGetTokenT<std::vector<Run3ScoutingPFJet>> pfjetsToken;
0090   const edm::EDGetTokenT<std::vector<Run3ScoutingTrack>> tracksToken;
0091 
0092   std::vector<std::string> triggerPathsVector;
0093   std::map<std::string, int> triggerPathsMap;
0094 
0095   bool doL1;
0096   triggerExpression::Data triggerCache_;
0097 
0098   edm::InputTag algInputTag_;
0099   edm::InputTag extInputTag_;
0100   edm::EDGetToken algToken_;
0101 
0102   // rho + pfMetphi + pfMetPt
0103   dqm::reco::MonitorElement* rho_hist;
0104   dqm::reco::MonitorElement* pfMetPhi_hist;
0105   dqm::reco::MonitorElement* pfMetPt_hist;
0106 
0107   // PF candidates histograms
0108   dqm::reco::MonitorElement* PF_pT_211_hist;
0109   dqm::reco::MonitorElement* PF_pT_n211_hist;
0110   dqm::reco::MonitorElement* PF_pT_130_hist;
0111   dqm::reco::MonitorElement* PF_pT_22_hist;
0112   dqm::reco::MonitorElement* PF_pT_13_hist;
0113   dqm::reco::MonitorElement* PF_pT_n13_hist;
0114   dqm::reco::MonitorElement* PF_pT_1_hist;
0115   dqm::reco::MonitorElement* PF_pT_2_hist;
0116 
0117   dqm::reco::MonitorElement* PF_eta_211_hist;
0118   dqm::reco::MonitorElement* PF_eta_n211_hist;
0119   dqm::reco::MonitorElement* PF_eta_130_hist;
0120   dqm::reco::MonitorElement* PF_eta_22_hist;
0121   dqm::reco::MonitorElement* PF_eta_13_hist;
0122   dqm::reco::MonitorElement* PF_eta_n13_hist;
0123   dqm::reco::MonitorElement* PF_eta_1_hist;
0124   dqm::reco::MonitorElement* PF_eta_2_hist;
0125 
0126   dqm::reco::MonitorElement* PF_phi_211_hist;
0127   dqm::reco::MonitorElement* PF_phi_n211_hist;
0128   dqm::reco::MonitorElement* PF_phi_130_hist;
0129   dqm::reco::MonitorElement* PF_phi_22_hist;
0130   dqm::reco::MonitorElement* PF_phi_13_hist;
0131   dqm::reco::MonitorElement* PF_phi_n13_hist;
0132   dqm::reco::MonitorElement* PF_phi_1_hist;
0133   dqm::reco::MonitorElement* PF_phi_2_hist;
0134 
0135   dqm::reco::MonitorElement* PF_vertex_211_hist;
0136   dqm::reco::MonitorElement* PF_vertex_n211_hist;
0137   dqm::reco::MonitorElement* PF_vertex_130_hist;
0138   dqm::reco::MonitorElement* PF_vertex_22_hist;
0139   dqm::reco::MonitorElement* PF_vertex_13_hist;
0140   dqm::reco::MonitorElement* PF_vertex_n13_hist;
0141   dqm::reco::MonitorElement* PF_vertex_1_hist;
0142   dqm::reco::MonitorElement* PF_vertex_2_hist;
0143   dqm::reco::MonitorElement* PF_normchi2_211_hist;
0144   dqm::reco::MonitorElement* PF_normchi2_n211_hist;
0145   dqm::reco::MonitorElement* PF_normchi2_130_hist;
0146   dqm::reco::MonitorElement* PF_normchi2_22_hist;
0147   dqm::reco::MonitorElement* PF_normchi2_13_hist;
0148   dqm::reco::MonitorElement* PF_normchi2_n13_hist;
0149   dqm::reco::MonitorElement* PF_normchi2_1_hist;
0150   dqm::reco::MonitorElement* PF_normchi2_2_hist;
0151 
0152   dqm::reco::MonitorElement* PF_dz_211_hist;
0153   dqm::reco::MonitorElement* PF_dz_n211_hist;
0154   dqm::reco::MonitorElement* PF_dz_13_hist;
0155   dqm::reco::MonitorElement* PF_dz_n13_hist;
0156 
0157   dqm::reco::MonitorElement* PF_dxy_211_hist;
0158   dqm::reco::MonitorElement* PF_dxy_n211_hist;
0159   dqm::reco::MonitorElement* PF_dxy_13_hist;
0160   dqm::reco::MonitorElement* PF_dxy_n13_hist;
0161 
0162   dqm::reco::MonitorElement* PF_dzsig_211_hist;
0163   dqm::reco::MonitorElement* PF_dzsig_n211_hist;
0164   dqm::reco::MonitorElement* PF_dzsig_13_hist;
0165   dqm::reco::MonitorElement* PF_dzsig_n13_hist;
0166 
0167   dqm::reco::MonitorElement* PF_dxysig_211_hist;
0168   dqm::reco::MonitorElement* PF_dxysig_n211_hist;
0169   dqm::reco::MonitorElement* PF_dxysig_13_hist;
0170   dqm::reco::MonitorElement* PF_dxysig_n13_hist;
0171 
0172   dqm::reco::MonitorElement* PF_trk_pt_211_hist;
0173   dqm::reco::MonitorElement* PF_trk_pt_n211_hist;
0174   dqm::reco::MonitorElement* PF_trk_pt_13_hist;
0175   dqm::reco::MonitorElement* PF_trk_pt_n13_hist;
0176 
0177   dqm::reco::MonitorElement* PF_trk_eta_211_hist;
0178   dqm::reco::MonitorElement* PF_trk_eta_n211_hist;
0179   dqm::reco::MonitorElement* PF_trk_eta_13_hist;
0180   dqm::reco::MonitorElement* PF_trk_eta_n13_hist;
0181 
0182   dqm::reco::MonitorElement* PF_trk_phi_211_hist;
0183   dqm::reco::MonitorElement* PF_trk_phi_n211_hist;
0184   dqm::reco::MonitorElement* PF_trk_phi_13_hist;
0185   dqm::reco::MonitorElement* PF_trk_phi_n13_hist;
0186 
0187   // photon histograms
0188   dqm::reco::MonitorElement* pt_pho_hist;
0189   dqm::reco::MonitorElement* eta_pho_hist;
0190   dqm::reco::MonitorElement* phi_pho_hist;
0191   dqm::reco::MonitorElement* rawEnergy_pho_hist;
0192   dqm::reco::MonitorElement* preshowerEnergy_pho_hist;
0193   dqm::reco::MonitorElement* corrEcalEnergyError_pho_hist;
0194   dqm::reco::MonitorElement* sigmaIetaIeta_pho_hist;
0195   dqm::reco::MonitorElement* hOverE_pho_hist;
0196   dqm::reco::MonitorElement* ecalIso_pho_hist;
0197   dqm::reco::MonitorElement* hcalIso_pho_hist;
0198   dqm::reco::MonitorElement* trackIso_pho_hist;
0199   dqm::reco::MonitorElement* r9_pho_hist;
0200   dqm::reco::MonitorElement* sMin_pho_hist;
0201   dqm::reco::MonitorElement* sMaj_pho_hist;
0202 
0203   // electron histograms
0204   dqm::reco::MonitorElement* pt_ele_hist;
0205   dqm::reco::MonitorElement* eta_ele_hist;
0206   dqm::reco::MonitorElement* phi_ele_hist;
0207   dqm::reco::MonitorElement* rawEnergy_ele_hist;
0208   dqm::reco::MonitorElement* preshowerEnergy_ele_hist;
0209   dqm::reco::MonitorElement* corrEcalEnergyError_ele_hist;
0210   dqm::reco::MonitorElement* dEtaIn_ele_hist;
0211   dqm::reco::MonitorElement* dPhiIn_ele_hist;
0212   dqm::reco::MonitorElement* sigmaIetaIeta_ele_hist;
0213   dqm::reco::MonitorElement* hOverE_ele_hist;
0214   dqm::reco::MonitorElement* ooEMOop_ele_hist;
0215   dqm::reco::MonitorElement* missingHits_ele_hist;
0216   dqm::reco::MonitorElement* trackfbrem_ele_hist;
0217   dqm::reco::MonitorElement* ecalIso_ele_hist;
0218   dqm::reco::MonitorElement* hcalIso_ele_hist;
0219   dqm::reco::MonitorElement* trackIso_ele_hist;
0220   dqm::reco::MonitorElement* r9_ele_hist;
0221   dqm::reco::MonitorElement* sMin_ele_hist;
0222   dqm::reco::MonitorElement* sMaj_ele_hist;
0223 
0224   // muon histograms
0225 
0226   dqm::reco::MonitorElement* pt_mu_hist;
0227   dqm::reco::MonitorElement* eta_mu_hist;
0228   dqm::reco::MonitorElement* phi_mu_hist;
0229   dqm::reco::MonitorElement* type_mu_hist;
0230   dqm::reco::MonitorElement* charge_mu_hist;
0231   dqm::reco::MonitorElement* normalizedChi2_mu_hist;
0232   dqm::reco::MonitorElement* ecalIso_mu_hist;
0233   dqm::reco::MonitorElement* hcalIso_mu_hist;
0234   dqm::reco::MonitorElement* trackIso_mu_hist;
0235   dqm::reco::MonitorElement* nValidStandAloneMuonHits_mu_hist;
0236   dqm::reco::MonitorElement* nStandAloneMuonMatchedStations_mu_hist;
0237   dqm::reco::MonitorElement* nValidRecoMuonHits_mu_hist;
0238   dqm::reco::MonitorElement* nRecoMuonChambers_mu_hist;
0239   dqm::reco::MonitorElement* nRecoMuonChambersCSCorDT_mu_hist;
0240   dqm::reco::MonitorElement* nRecoMuonMatches_mu_hist;
0241   dqm::reco::MonitorElement* nRecoMuonMatchedStations_mu_hist;
0242   dqm::reco::MonitorElement* nRecoMuonExpectedMatchedStations_mu_hist;
0243   dqm::reco::MonitorElement* recoMuonStationMask_mu_hist;
0244   dqm::reco::MonitorElement* nRecoMuonMatchedRPCLayers_mu_hist;
0245   dqm::reco::MonitorElement* recoMuonRPClayerMask_mu_hist;
0246   dqm::reco::MonitorElement* nValidPixelHits_mu_hist;
0247   dqm::reco::MonitorElement* nValidStripHits_mu_hist;
0248   dqm::reco::MonitorElement* nPixelLayersWithMeasurement_mu_hist;
0249   dqm::reco::MonitorElement* nTrackerLayersWithMeasurement_mu_hist;
0250   dqm::reco::MonitorElement* trk_chi2_mu_hist;
0251   dqm::reco::MonitorElement* trk_ndof_mu_hist;
0252   dqm::reco::MonitorElement* trk_dxy_mu_hist;
0253   dqm::reco::MonitorElement* trk_dz_mu_hist;
0254   dqm::reco::MonitorElement* trk_qoverp_mu_hist;
0255   dqm::reco::MonitorElement* trk_lambda_mu_hist;
0256   dqm::reco::MonitorElement* trk_pt_mu_hist;
0257   dqm::reco::MonitorElement* trk_phi_mu_hist;
0258   dqm::reco::MonitorElement* trk_eta_mu_hist;
0259   dqm::reco::MonitorElement* trk_dxyError_mu_hist;
0260   dqm::reco::MonitorElement* trk_dzError_mu_hist;
0261   dqm::reco::MonitorElement* trk_qoverpError_mu_hist;
0262   dqm::reco::MonitorElement* trk_lambdaError_mu_hist;
0263   dqm::reco::MonitorElement* trk_phiError_mu_hist;
0264   dqm::reco::MonitorElement* trk_dsz_mu_hist;
0265   dqm::reco::MonitorElement* trk_dszError_mu_hist;
0266   dqm::reco::MonitorElement* trk_qoverp_lambda_cov_mu_hist;
0267   dqm::reco::MonitorElement* trk_qoverp_phi_cov_mu_hist;
0268   dqm::reco::MonitorElement* trk_qoverp_dxy_cov_mu_hist;
0269   dqm::reco::MonitorElement* trk_qoverp_dsz_cov_mu_hist;
0270   dqm::reco::MonitorElement* trk_lambda_phi_cov_mu_hist;
0271   dqm::reco::MonitorElement* trk_lambda_dxy_cov_mu_hist;
0272   dqm::reco::MonitorElement* trk_lambda_dsz_cov_mu_hist;
0273   dqm::reco::MonitorElement* trk_phi_dxy_cov_mu_hist;
0274   dqm::reco::MonitorElement* trk_phi_dsz_cov_mu_hist;
0275   dqm::reco::MonitorElement* trk_dxy_dsz_cov_mu_hist;
0276   dqm::reco::MonitorElement* trk_vx_mu_hist;
0277   dqm::reco::MonitorElement* trk_vy_mu_hist;
0278   dqm::reco::MonitorElement* trk_vz_mu_hist;
0279 
0280   // PF Jet histograms
0281   dqm::reco::MonitorElement* pt_pfj_hist;
0282   dqm::reco::MonitorElement* eta_pfj_hist;
0283   dqm::reco::MonitorElement* phi_pfj_hist;
0284   dqm::reco::MonitorElement* m_pfj_hist;
0285   dqm::reco::MonitorElement* jetArea_pfj_hist;
0286   dqm::reco::MonitorElement* chargedHadronEnergy_pfj_hist;
0287   dqm::reco::MonitorElement* neutralHadronEnergy_pfj_hist;
0288   dqm::reco::MonitorElement* photonEnergy_pfj_hist;
0289   dqm::reco::MonitorElement* electronEnergy_pfj_hist;
0290   dqm::reco::MonitorElement* muonEnergy_pfj_hist;
0291   dqm::reco::MonitorElement* HFHadronEnergy_pfj_hist;
0292   dqm::reco::MonitorElement* HFEMEnergy_pfj_hist;
0293   dqm::reco::MonitorElement* chargedHadronMultiplicity_pfj_hist;
0294   dqm::reco::MonitorElement* neutralHadronMultiplicity_pfj_hist;
0295   dqm::reco::MonitorElement* photonMultiplicity_pfj_hist;
0296   dqm::reco::MonitorElement* electronMultiplicity_pfj_hist;
0297   dqm::reco::MonitorElement* muonMultiplicity_pfj_hist;
0298   dqm::reco::MonitorElement* HFHadronMultiplicity_pfj_hist;
0299   dqm::reco::MonitorElement* HFEMMultiplicity_pfj_hist;
0300   dqm::reco::MonitorElement* HOEnergy_pfj_hist;
0301   dqm::reco::MonitorElement* csv_pfj_hist;
0302   dqm::reco::MonitorElement* mvaDiscriminator_pfj_hist;
0303 
0304   // primary vertex histograms
0305   dqm::reco::MonitorElement* x_pv_hist;
0306   dqm::reco::MonitorElement* y_pv_hist;
0307   dqm::reco::MonitorElement* z_pv_hist;
0308   dqm::reco::MonitorElement* zError_pv_hist;
0309   dqm::reco::MonitorElement* xError_pv_hist;
0310   dqm::reco::MonitorElement* yError_pv_hist;
0311   dqm::reco::MonitorElement* tracksSize_pv_hist;
0312   dqm::reco::MonitorElement* chi2_pv_hist;
0313   dqm::reco::MonitorElement* ndof_pv_hist;
0314   dqm::reco::MonitorElement* isValidVtx_pv_hist;
0315   dqm::reco::MonitorElement* xyCov_pv_hist;
0316   dqm::reco::MonitorElement* xzCov_pv_hist;
0317   dqm::reco::MonitorElement* yzCov_pv_hist;
0318 
0319   // displaced vertex histograms
0320   dqm::reco::MonitorElement* x_vtx_hist;
0321   dqm::reco::MonitorElement* y_vtx_hist;
0322   dqm::reco::MonitorElement* z_vtx_hist;
0323   dqm::reco::MonitorElement* zError_vtx_hist;
0324   dqm::reco::MonitorElement* xError_vtx_hist;
0325   dqm::reco::MonitorElement* yError_vtx_hist;
0326   dqm::reco::MonitorElement* tracksSize_vtx_hist;
0327   dqm::reco::MonitorElement* chi2_vtx_hist;
0328   dqm::reco::MonitorElement* ndof_vtx_hist;
0329   dqm::reco::MonitorElement* isValidVtx_vtx_hist;
0330   dqm::reco::MonitorElement* xyCov_vtx_hist;
0331   dqm::reco::MonitorElement* xzCov_vtx_hist;
0332   dqm::reco::MonitorElement* yzCov_vtx_hist;
0333 
0334   // tracker histograms
0335   dqm::reco::MonitorElement* tk_pt_tk_hist;
0336   dqm::reco::MonitorElement* tk_eta_tk_hist;
0337   dqm::reco::MonitorElement* tk_phi_tk_hist;
0338   dqm::reco::MonitorElement* tk_chi2_tk_hist;
0339   dqm::reco::MonitorElement* tk_ndof_tk_hist;
0340   dqm::reco::MonitorElement* tk_charge_tk_hist;
0341   dqm::reco::MonitorElement* tk_dxy_tk_hist;
0342   dqm::reco::MonitorElement* tk_dz_tk_hist;
0343   dqm::reco::MonitorElement* tk_nValidPixelHits_tk_hist;
0344   dqm::reco::MonitorElement* tk_nTrackerLayersWithMeasurement_tk_hist;
0345   dqm::reco::MonitorElement* tk_nValidStripHits_tk_hist;
0346   dqm::reco::MonitorElement* tk_qoverp_tk_hist;
0347   dqm::reco::MonitorElement* tk_lambda_tk_hist;
0348   dqm::reco::MonitorElement* tk_dxy_Error_tk_hist;
0349   dqm::reco::MonitorElement* tk_dz_Error_tk_hist;
0350   dqm::reco::MonitorElement* tk_qoverp_Error_tk_hist;
0351   dqm::reco::MonitorElement* tk_lambda_Error_tk_hist;
0352   dqm::reco::MonitorElement* tk_phi_Error_tk_hist;
0353   dqm::reco::MonitorElement* tk_dsz_tk_hist;
0354   dqm::reco::MonitorElement* tk_dsz_Error_tk_hist;
0355   dqm::reco::MonitorElement* tk_qoverp_lambda_cov_tk_hist;
0356   dqm::reco::MonitorElement* tk_qoverp_phi_cov_tk_hist;
0357   dqm::reco::MonitorElement* tk_qoverp_dxy_cov_tk_hist;
0358   dqm::reco::MonitorElement* tk_qoverp_dsz_cov_tk_hist;
0359   dqm::reco::MonitorElement* tk_lambda_phi_cov_tk_hist;
0360   dqm::reco::MonitorElement* tk_lambda_dxy_cov_tk_hist;
0361   dqm::reco::MonitorElement* tk_lambda_dsz_cov_tk_hist;
0362   dqm::reco::MonitorElement* tk_phi_dxy_cov_tk_hist;
0363   dqm::reco::MonitorElement* tk_phi_dsz_cov_tk_hist;
0364   dqm::reco::MonitorElement* tk_dxy_dsz_cov_tk_hist;
0365   dqm::reco::MonitorElement* tk_vtxInd_tk_hist;
0366   dqm::reco::MonitorElement* tk_vx_tk_hist;
0367   dqm::reco::MonitorElement* tk_vy_tk_hist;
0368   dqm::reco::MonitorElement* tk_vz_tk_hist;
0369 };
0370 
0371 //
0372 // constants, enums and typedefs
0373 //
0374 
0375 //
0376 // static data member definitions
0377 //
0378 
0379 //
0380 // constructors and destructor
0381 //
0382 ScoutingCollectionMonitor::ScoutingCollectionMonitor(const edm::ParameterSet& iConfig)
0383     : triggerResultsTag(iConfig.getParameter<edm::InputTag>("triggerresults")),
0384       triggerResultsToken(consumes<edm::TriggerResults>(triggerResultsTag)),
0385       muonsToken(consumes<std::vector<Run3ScoutingMuon>>(iConfig.getParameter<edm::InputTag>("muons"))),
0386       electronsToken(consumes<std::vector<Run3ScoutingElectron>>(iConfig.getParameter<edm::InputTag>("electrons"))),
0387       primaryVerticesToken(
0388           consumes<std::vector<Run3ScoutingVertex>>(iConfig.getParameter<edm::InputTag>("primaryVertices"))),
0389       verticesToken(
0390           consumes<std::vector<Run3ScoutingVertex>>(iConfig.getParameter<edm::InputTag>("displacedVertices"))),
0391       photonsToken(consumes<std::vector<Run3ScoutingPhoton>>(iConfig.getParameter<edm::InputTag>("photons"))),
0392       rhoToken(consumes<double>(iConfig.getParameter<edm::InputTag>("rho"))),
0393       pfMetPhiToken(consumes<double>(iConfig.getParameter<edm::InputTag>("pfMetPhi"))),
0394       pfMetPtToken(consumes<double>(iConfig.getParameter<edm::InputTag>("pfMetPt"))),
0395       pfcandsToken(consumes<std::vector<Run3ScoutingParticle>>(iConfig.getParameter<edm::InputTag>("pfcands"))),
0396       pfjetsToken(consumes<std::vector<Run3ScoutingPFJet>>(iConfig.getParameter<edm::InputTag>("pfjets"))),
0397       tracksToken(consumes<std::vector<Run3ScoutingTrack>>(iConfig.getParameter<edm::InputTag>("tracks"))) {}
0398 
0399 ScoutingCollectionMonitor::~ScoutingCollectionMonitor() {
0400   // do anything here that needs to be done at desctruction time
0401   // (e.g. close files, deallocate resources etc.)
0402   //
0403   // please remove this method altogether if it would be left empty
0404 }
0405 
0406 //
0407 // member functions
0408 //
0409 
0410 // ------------ method called for each event  ------------
0411 void ScoutingCollectionMonitor::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) {
0412   using namespace edm;
0413   using namespace std;
0414   using namespace reco;
0415 
0416   // all the handles needed
0417   Handle<double> rhoH;
0418   iEvent.getByToken(rhoToken, rhoH);
0419   if (!rhoH.isValid()) {
0420     edm::LogWarning("ScoutingAnalyzer") << "Invalid handle for rho";
0421     return;
0422   }
0423 
0424   Handle<double> pfMetPhiH;
0425   iEvent.getByToken(pfMetPhiToken, pfMetPhiH);
0426   if (!pfMetPhiH.isValid()) {
0427     edm::LogWarning("ScoutingAnalyzer") << "Invalid handle for MET phi";
0428     return;
0429   }
0430 
0431   Handle<double> pfMetPtH;
0432   iEvent.getByToken(pfMetPtToken, pfMetPtH);
0433   if (!pfMetPtH.isValid()) {
0434     edm::LogWarning("ScoutingAnalyzer") << "Invalid handle for MET pT";
0435     return;
0436   }
0437 
0438   Handle<vector<Run3ScoutingParticle>> pfcandsH;
0439   iEvent.getByToken(pfcandsToken, pfcandsH);
0440   if (!pfcandsH.isValid()) {
0441     edm::LogWarning("ScoutingAnalyzer") << "Invalid handle for PF candidates";
0442     return;
0443   }
0444 
0445   Handle<vector<Run3ScoutingPhoton>> photonsH;
0446   iEvent.getByToken(photonsToken, photonsH);
0447   if (!photonsH.isValid()) {
0448     edm::LogWarning("ScoutingAnalyzer") << "Invalid handle for photons";
0449     return;
0450   }
0451 
0452   Handle<vector<Run3ScoutingElectron>> electronsH;
0453   iEvent.getByToken(electronsToken, electronsH);
0454   if (!electronsH.isValid()) {
0455     edm::LogWarning("ScoutingAnalyzer") << "Invalid handle for electrons";
0456     return;
0457   }
0458 
0459   Handle<vector<Run3ScoutingMuon>> muonsH;
0460   iEvent.getByToken(muonsToken, muonsH);
0461   if (!muonsH.isValid()) {
0462     edm::LogWarning("ScoutingAnalyzer") << "Invalid handle for muons";
0463     return;
0464   }
0465 
0466   Handle<vector<Run3ScoutingPFJet>> PFjetsH;
0467   iEvent.getByToken(pfjetsToken, PFjetsH);
0468   if (!PFjetsH.isValid()) {
0469     edm::LogWarning("ScoutingAnalyzer") << "Invalid handle for PF jets";
0470     return;
0471   }
0472 
0473   Handle<vector<Run3ScoutingVertex>> primaryVerticesH;
0474   iEvent.getByToken(primaryVerticesToken, primaryVerticesH);
0475   if (!primaryVerticesH.isValid()) {
0476     edm::LogWarning("ScoutingAnalyzer") << "Invalid handle for primary vertices";
0477     return;
0478   }
0479 
0480   Handle<vector<Run3ScoutingVertex>> verticesH;
0481   iEvent.getByToken(verticesToken, verticesH);
0482   if (!verticesH.isValid()) {
0483     edm::LogWarning("ScoutingAnalyzer") << "Invalid handle for displaced vertices";
0484     return;
0485   }
0486 
0487   Handle<vector<Run3ScoutingTrack>> tracksH;
0488   iEvent.getByToken(tracksToken, tracksH);
0489   if (!tracksH.isValid()) {
0490     edm::LogWarning("ScoutingAnalyzer") << "Invalid handle for tracks";
0491     return;
0492   }
0493 
0494   // put stuff in histogram
0495   rho_hist->Fill(*rhoH);
0496   pfMetPhi_hist->Fill(*pfMetPhiH);
0497   pfMetPt_hist->Fill(*pfMetPtH);
0498 
0499   // fill the PF candidate histograms (no electrons!)
0500 
0501   for (const auto& cand : *pfcandsH) {
0502     switch (cand.pdgId()) {
0503       case 211:
0504         PF_pT_211_hist->Fill(cand.pt());
0505         PF_eta_211_hist->Fill(cand.eta());
0506         PF_phi_211_hist->Fill(cand.phi());
0507         PF_vertex_211_hist->Fill(cand.vertex());
0508         PF_normchi2_211_hist->Fill(cand.normchi2());
0509         PF_dz_211_hist->Fill(cand.dz());
0510         PF_dxy_211_hist->Fill(cand.dxy());
0511         PF_dzsig_211_hist->Fill(cand.dzsig());
0512         PF_dxysig_211_hist->Fill(cand.dxysig());
0513         PF_trk_pt_211_hist->Fill(cand.trk_pt());
0514         PF_trk_eta_211_hist->Fill(cand.trk_eta());
0515         PF_trk_phi_211_hist->Fill(cand.trk_phi());
0516         break;
0517 
0518       case -211:
0519         PF_pT_n211_hist->Fill(cand.pt());
0520         PF_eta_n211_hist->Fill(cand.eta());
0521         PF_phi_n211_hist->Fill(cand.phi());
0522         PF_vertex_n211_hist->Fill(cand.vertex());
0523         PF_normchi2_n211_hist->Fill(cand.normchi2());
0524         PF_dz_n211_hist->Fill(cand.dz());
0525         PF_dxy_n211_hist->Fill(cand.dxy());
0526         PF_dzsig_n211_hist->Fill(cand.dzsig());
0527         PF_dxysig_n211_hist->Fill(cand.dxysig());
0528         PF_trk_pt_n211_hist->Fill(cand.trk_pt());
0529         PF_trk_eta_n211_hist->Fill(cand.trk_eta());
0530         PF_trk_phi_n211_hist->Fill(cand.trk_phi());
0531         break;
0532 
0533       case 130:
0534         PF_pT_130_hist->Fill(cand.pt());
0535         PF_eta_130_hist->Fill(cand.eta());
0536         PF_phi_130_hist->Fill(cand.phi());
0537         PF_vertex_130_hist->Fill(cand.vertex());
0538         PF_normchi2_130_hist->Fill(cand.normchi2());
0539         break;
0540 
0541       case 22:
0542         PF_pT_22_hist->Fill(cand.pt());
0543         PF_eta_22_hist->Fill(cand.eta());
0544         PF_phi_22_hist->Fill(cand.phi());
0545         PF_vertex_22_hist->Fill(cand.vertex());
0546         PF_normchi2_22_hist->Fill(cand.normchi2());
0547         break;
0548 
0549       case 13:
0550         PF_pT_13_hist->Fill(cand.pt());
0551         PF_eta_13_hist->Fill(cand.eta());
0552         PF_phi_13_hist->Fill(cand.phi());
0553         PF_vertex_13_hist->Fill(cand.vertex());
0554         PF_normchi2_13_hist->Fill(cand.normchi2());
0555         PF_dz_13_hist->Fill(cand.dz());
0556         PF_dxy_13_hist->Fill(cand.dxy());
0557         PF_dzsig_13_hist->Fill(cand.dzsig());
0558         PF_dxysig_13_hist->Fill(cand.dxysig());
0559         PF_trk_pt_13_hist->Fill(cand.trk_pt());
0560         PF_trk_eta_13_hist->Fill(cand.trk_eta());
0561         PF_trk_phi_13_hist->Fill(cand.trk_phi());
0562         break;
0563 
0564       case -13:
0565         PF_pT_n13_hist->Fill(cand.pt());
0566         PF_eta_n13_hist->Fill(cand.eta());
0567         PF_phi_n13_hist->Fill(cand.phi());
0568         PF_vertex_n13_hist->Fill(cand.vertex());
0569         PF_normchi2_n13_hist->Fill(cand.normchi2());
0570         PF_dz_n13_hist->Fill(cand.dz());
0571         PF_dxy_n13_hist->Fill(cand.dxy());
0572         PF_dzsig_n13_hist->Fill(cand.dzsig());
0573         PF_dxysig_n13_hist->Fill(cand.dxysig());
0574         PF_trk_pt_n13_hist->Fill(cand.trk_pt());
0575         PF_trk_eta_n13_hist->Fill(cand.trk_eta());
0576         PF_trk_phi_n13_hist->Fill(cand.trk_phi());
0577         break;
0578 
0579       case 1:
0580         PF_pT_1_hist->Fill(cand.pt());
0581         PF_eta_1_hist->Fill(cand.eta());
0582         PF_phi_1_hist->Fill(cand.phi());
0583         PF_vertex_1_hist->Fill(cand.vertex());
0584         PF_normchi2_1_hist->Fill(cand.normchi2());
0585         break;
0586 
0587       case 2:
0588         PF_pT_2_hist->Fill(cand.pt());
0589         PF_eta_2_hist->Fill(cand.eta());
0590         PF_phi_2_hist->Fill(cand.phi());
0591         PF_vertex_2_hist->Fill(cand.vertex());
0592         PF_normchi2_2_hist->Fill(cand.normchi2());
0593         break;
0594     }
0595   }
0596 
0597   // fill all the photon histograms
0598 
0599   for (const auto& pho : *photonsH) {
0600     pt_pho_hist->Fill(pho.pt());
0601     eta_pho_hist->Fill(pho.eta());
0602     phi_pho_hist->Fill(pho.phi());
0603     rawEnergy_pho_hist->Fill(pho.rawEnergy());
0604     preshowerEnergy_pho_hist->Fill(pho.preshowerEnergy());
0605     corrEcalEnergyError_pho_hist->Fill(pho.corrEcalEnergyError());
0606     sigmaIetaIeta_pho_hist->Fill(pho.sigmaIetaIeta());
0607     hOverE_pho_hist->Fill(pho.hOverE());
0608     ecalIso_pho_hist->Fill(pho.ecalIso());
0609     hcalIso_pho_hist->Fill(pho.hcalIso());
0610     trackIso_pho_hist->Fill(pho.trkIso());
0611     r9_pho_hist->Fill(pho.r9());
0612     sMin_pho_hist->Fill(pho.sMin());
0613     sMaj_pho_hist->Fill(pho.sMaj());
0614   }
0615 
0616   // fill all the electron histograms
0617 
0618   for (const auto& ele : *electronsH) {
0619     pt_ele_hist->Fill(ele.pt());
0620     eta_ele_hist->Fill(ele.eta());
0621     phi_ele_hist->Fill(ele.phi());
0622     rawEnergy_ele_hist->Fill(ele.rawEnergy());
0623     preshowerEnergy_ele_hist->Fill(ele.preshowerEnergy());
0624     corrEcalEnergyError_ele_hist->Fill(ele.corrEcalEnergyError());
0625     dEtaIn_ele_hist->Fill(ele.dEtaIn());
0626     dPhiIn_ele_hist->Fill(ele.dPhiIn());
0627     sigmaIetaIeta_ele_hist->Fill(ele.sigmaIetaIeta());
0628     hOverE_ele_hist->Fill(ele.hOverE());
0629     ooEMOop_ele_hist->Fill(ele.ooEMOop());
0630     missingHits_ele_hist->Fill(ele.missingHits());
0631     trackfbrem_ele_hist->Fill(ele.trackfbrem());
0632     ecalIso_ele_hist->Fill(ele.ecalIso());
0633     hcalIso_ele_hist->Fill(ele.hcalIso());
0634     trackIso_ele_hist->Fill(ele.trackIso());
0635     r9_ele_hist->Fill(ele.r9());
0636     sMin_ele_hist->Fill(ele.sMin());
0637     sMaj_ele_hist->Fill(ele.sMaj());
0638   }
0639 
0640   // fill all the muon histograms
0641 
0642   for (const auto& mu : *muonsH) {
0643     pt_mu_hist->Fill(mu.pt());
0644     eta_mu_hist->Fill(mu.eta());
0645     phi_mu_hist->Fill(mu.phi());
0646     type_mu_hist->Fill(mu.type());
0647     charge_mu_hist->Fill(mu.charge());
0648     normalizedChi2_mu_hist->Fill(mu.normalizedChi2());
0649     ecalIso_mu_hist->Fill(mu.ecalIso());
0650     hcalIso_mu_hist->Fill(mu.hcalIso());
0651     trackIso_mu_hist->Fill(mu.trackIso());
0652     nValidStandAloneMuonHits_mu_hist->Fill(mu.nValidStandAloneMuonHits());
0653     nStandAloneMuonMatchedStations_mu_hist->Fill(mu.nStandAloneMuonMatchedStations());
0654     nValidRecoMuonHits_mu_hist->Fill(mu.nValidRecoMuonHits());
0655     nRecoMuonChambers_mu_hist->Fill(mu.nRecoMuonChambers());
0656     nRecoMuonChambersCSCorDT_mu_hist->Fill(mu.nRecoMuonChambersCSCorDT());
0657     nRecoMuonMatches_mu_hist->Fill(mu.nRecoMuonMatches());
0658     nRecoMuonMatchedStations_mu_hist->Fill(mu.nRecoMuonMatchedStations());
0659     nRecoMuonExpectedMatchedStations_mu_hist->Fill(mu.nRecoMuonExpectedMatchedStations());
0660     recoMuonStationMask_mu_hist->Fill(mu.recoMuonStationMask());
0661     nRecoMuonMatchedRPCLayers_mu_hist->Fill(mu.nRecoMuonMatchedRPCLayers());
0662     recoMuonRPClayerMask_mu_hist->Fill(mu.recoMuonRPClayerMask());
0663     nValidPixelHits_mu_hist->Fill(mu.nValidPixelHits());
0664     nValidStripHits_mu_hist->Fill(mu.nValidStripHits());
0665     nPixelLayersWithMeasurement_mu_hist->Fill(mu.nPixelLayersWithMeasurement());
0666     nTrackerLayersWithMeasurement_mu_hist->Fill(mu.nTrackerLayersWithMeasurement());
0667     trk_chi2_mu_hist->Fill(mu.trk_chi2());
0668     trk_ndof_mu_hist->Fill(mu.trk_ndof());
0669     trk_dxy_mu_hist->Fill(mu.trk_dxy());
0670     trk_dz_mu_hist->Fill(mu.trk_dz());
0671     trk_qoverp_mu_hist->Fill(mu.trk_qoverp());
0672     trk_lambda_mu_hist->Fill(mu.trk_lambda());
0673     trk_pt_mu_hist->Fill(mu.trk_pt());
0674     trk_phi_mu_hist->Fill(mu.trk_phi());
0675     trk_eta_mu_hist->Fill(mu.trk_eta());
0676     trk_dxyError_mu_hist->Fill(mu.trk_dxyError());
0677     trk_dzError_mu_hist->Fill(mu.trk_dzError());
0678     trk_qoverpError_mu_hist->Fill(mu.trk_qoverpError());
0679     trk_lambdaError_mu_hist->Fill(mu.trk_lambdaError());
0680     trk_phiError_mu_hist->Fill(mu.trk_phiError());
0681     trk_dsz_mu_hist->Fill(mu.trk_dsz());
0682     trk_dszError_mu_hist->Fill(mu.trk_dszError());
0683     trk_qoverp_lambda_cov_mu_hist->Fill(mu.trk_qoverp_lambda_cov());
0684     trk_qoverp_phi_cov_mu_hist->Fill(mu.trk_qoverp_phi_cov());
0685     trk_qoverp_dxy_cov_mu_hist->Fill(mu.trk_qoverp_dxy_cov());
0686     trk_qoverp_dsz_cov_mu_hist->Fill(mu.trk_qoverp_dsz_cov());
0687     trk_lambda_phi_cov_mu_hist->Fill(mu.trk_lambda_phi_cov());
0688     trk_lambda_dxy_cov_mu_hist->Fill(mu.trk_lambda_dxy_cov());
0689     trk_lambda_dsz_cov_mu_hist->Fill(mu.trk_lambda_dsz_cov());
0690     trk_phi_dxy_cov_mu_hist->Fill(mu.trk_phi_dxy_cov());
0691     trk_phi_dsz_cov_mu_hist->Fill(mu.trk_phi_dsz_cov());
0692     trk_dxy_dsz_cov_mu_hist->Fill(mu.trk_dxy_dsz_cov());
0693     trk_vx_mu_hist->Fill(mu.trk_vx());
0694     trk_vy_mu_hist->Fill(mu.trk_vy());
0695     trk_vz_mu_hist->Fill(mu.trk_vz());
0696   }
0697 
0698   // fill all the PF Jet histograms
0699   for (const auto& jet : *PFjetsH) {
0700     pt_pfj_hist->Fill(jet.pt());
0701     eta_pfj_hist->Fill(jet.eta());
0702     phi_pfj_hist->Fill(jet.phi());
0703     m_pfj_hist->Fill(jet.m());
0704     jetArea_pfj_hist->Fill(jet.jetArea());
0705     chargedHadronEnergy_pfj_hist->Fill(jet.chargedHadronEnergy());
0706     neutralHadronEnergy_pfj_hist->Fill(jet.neutralHadronEnergy());
0707     photonEnergy_pfj_hist->Fill(jet.photonEnergy());
0708     electronEnergy_pfj_hist->Fill(jet.electronEnergy());
0709     muonEnergy_pfj_hist->Fill(jet.muonEnergy());
0710     HFHadronEnergy_pfj_hist->Fill(jet.HFHadronEnergy());
0711     HFEMEnergy_pfj_hist->Fill(jet.HFEMEnergy());
0712     chargedHadronMultiplicity_pfj_hist->Fill(jet.chargedHadronMultiplicity());
0713     neutralHadronMultiplicity_pfj_hist->Fill(jet.neutralHadronMultiplicity());
0714     photonMultiplicity_pfj_hist->Fill(jet.photonMultiplicity());
0715     electronMultiplicity_pfj_hist->Fill(jet.electronMultiplicity());
0716     muonMultiplicity_pfj_hist->Fill(jet.muonMultiplicity());
0717     HFHadronMultiplicity_pfj_hist->Fill(jet.HFHadronMultiplicity());
0718     HFEMMultiplicity_pfj_hist->Fill(jet.HFEMMultiplicity());
0719     HOEnergy_pfj_hist->Fill(jet.HOEnergy());
0720     csv_pfj_hist->Fill(jet.csv());
0721     mvaDiscriminator_pfj_hist->Fill(jet.mvaDiscriminator());
0722   }
0723 
0724   // fill all the primary vertices histograms
0725   for (const auto& vtx : *primaryVerticesH) {
0726     x_pv_hist->Fill(vtx.x());
0727     y_pv_hist->Fill(vtx.y());
0728     z_pv_hist->Fill(vtx.z());
0729     zError_pv_hist->Fill(vtx.zError());
0730     xError_pv_hist->Fill(vtx.xError());
0731     yError_pv_hist->Fill(vtx.yError());
0732     tracksSize_pv_hist->Fill(vtx.tracksSize());
0733     chi2_pv_hist->Fill(vtx.chi2());
0734     ndof_pv_hist->Fill(vtx.ndof());
0735     isValidVtx_pv_hist->Fill(vtx.isValidVtx());
0736     xyCov_pv_hist->Fill(vtx.xyCov());
0737     xzCov_pv_hist->Fill(vtx.xzCov());
0738     yzCov_pv_hist->Fill(vtx.yzCov());
0739   }
0740 
0741   // fill all the displaced vertices histograms
0742   for (const auto& vtx : *verticesH) {
0743     x_vtx_hist->Fill(vtx.x());
0744     y_vtx_hist->Fill(vtx.y());
0745     z_vtx_hist->Fill(vtx.z());
0746     zError_vtx_hist->Fill(vtx.zError());
0747     xError_vtx_hist->Fill(vtx.xError());
0748     yError_vtx_hist->Fill(vtx.yError());
0749     tracksSize_vtx_hist->Fill(vtx.tracksSize());
0750     chi2_vtx_hist->Fill(vtx.chi2());
0751     ndof_vtx_hist->Fill(vtx.ndof());
0752     isValidVtx_vtx_hist->Fill(vtx.isValidVtx());
0753     xyCov_vtx_hist->Fill(vtx.xyCov());
0754     xzCov_vtx_hist->Fill(vtx.xzCov());
0755     yzCov_vtx_hist->Fill(vtx.yzCov());
0756   }
0757 
0758   // fill tracks histograms
0759   for (const auto& tk : *tracksH) {
0760     tk_pt_tk_hist->Fill(tk.tk_pt());
0761     tk_eta_tk_hist->Fill(tk.tk_eta());
0762     tk_phi_tk_hist->Fill(tk.tk_phi());
0763     tk_chi2_tk_hist->Fill(tk.tk_chi2());
0764     tk_ndof_tk_hist->Fill(tk.tk_ndof());
0765     tk_charge_tk_hist->Fill(tk.tk_charge());
0766     tk_dxy_tk_hist->Fill(tk.tk_dxy());
0767     tk_dz_tk_hist->Fill(tk.tk_dz());
0768     tk_nValidPixelHits_tk_hist->Fill(tk.tk_nValidPixelHits());
0769     tk_nTrackerLayersWithMeasurement_tk_hist->Fill(tk.tk_nTrackerLayersWithMeasurement());
0770     tk_nValidStripHits_tk_hist->Fill(tk.tk_nValidStripHits());
0771     tk_qoverp_tk_hist->Fill(tk.tk_qoverp());
0772     tk_lambda_tk_hist->Fill(tk.tk_lambda());
0773     tk_dxy_Error_tk_hist->Fill(tk.tk_dxy_Error());
0774     tk_dz_Error_tk_hist->Fill(tk.tk_dz_Error());
0775     tk_qoverp_Error_tk_hist->Fill(tk.tk_qoverp_Error());
0776     tk_lambda_Error_tk_hist->Fill(tk.tk_lambda_Error());
0777     tk_phi_Error_tk_hist->Fill(tk.tk_phi_Error());
0778     tk_vtxInd_tk_hist->Fill(tk.tk_vtxInd());
0779     tk_vx_tk_hist->Fill(tk.tk_vx());
0780     tk_vy_tk_hist->Fill(tk.tk_vy());
0781     tk_vz_tk_hist->Fill(tk.tk_vz());
0782   }
0783 }
0784 
0785 // ------------ method called once each job just before starting event loop  ------------
0786 void ScoutingCollectionMonitor::bookHistograms(DQMStore::IBooker& ibook,
0787                                                edm::Run const& run,
0788                                                edm::EventSetup const& iSetup) {
0789   ibook.setCurrentFolder(outputInternalPath_);
0790   rho_hist = ibook.book1D("rho", "#rho; #rho; Entries", 100, 0.0, 60.0);
0791   pfMetPhi_hist = ibook.book1D("pfMetPhi", "pf MET #phi; #phi ;Entries", 100, -3.14, 3.14);
0792   pfMetPt_hist = ibook.book1D("pfMetPt", "pf MET pT;p_{T} [GeV];Entries", 100, 0.0, 250.0);
0793 
0794   ibook.setCurrentFolder(outputInternalPath_ + "/PFcand");
0795   PF_pT_211_hist = ibook.book1DD("pT_211", "PF h^{+}  pT (GeV);p_{T} [GeV];Entries", 100, 0.0, 13.0);
0796   PF_pT_n211_hist = ibook.book1DD("pT_n211", "PF h^{-} pT (GeV);p_{T} [GeV];Entries", 100, 0.0, 14.0);
0797   PF_pT_130_hist = ibook.book1DD("pT_130", "PF h^{0} pT (GeV);p_{T} [GeV];Entries", 100, 0.0, 20.0);
0798   PF_pT_22_hist = ibook.book1DD("pT_22", "PF #gamma pT (GeV);p_{T} [GeV];Entries", 100, 0.0, 18.0);
0799   PF_pT_13_hist = ibook.book1DD("pT_13", "PF #mu^{+} pT (GeV);p_{T} [GeV];Entries", 100, 0.0, 80.0);
0800   PF_pT_n13_hist = ibook.book1DD("pT_n13", "PF #mu^{-} pT (GeV);p_{T} [GeV];Entries", 100, 0.0, 80.0);
0801   PF_pT_2_hist = ibook.book1DD("pT_2", "PF HF h (GeV);pT [GeV];Entries", 100, 0.0, 4.5);
0802   PF_pT_1_hist = ibook.book1DD("pT_1", "PF HF e/#gamma pT (GeV);p_{T} [GeV];Entries", 100, 0.0, 6.0);
0803 
0804   PF_eta_211_hist = ibook.book1DD("eta_211", "PF h^{+} #eta;#eta;Entries", 100, -5.0, 5.0);
0805   PF_eta_n211_hist = ibook.book1DD("eta_n211", "PF h^{-} #eta;#eta;Entries", 100, -5.0, 5.0);
0806   PF_eta_130_hist = ibook.book1DD("eta_130", "PF h^{0} #eta;#eta;Entries", 100, -5.0, 5.0);
0807   PF_eta_22_hist = ibook.book1DD("eta_22", "PF #gamma #eta;#eta;Entries", 100, -5.0, 5.0);
0808   PF_eta_13_hist = ibook.book1DD("eta_13", "PF #mu^{+} #eta;#eta;Entries", 100, -5.0, 5.0);
0809   PF_eta_n13_hist = ibook.book1DD("eta_n13", "PF #mu^{-} #eta;#eta;Entries", 100, -5.0, 5.0);
0810   PF_eta_1_hist = ibook.book1DD("eta_2", "PF HF h #eta;#eta;Entries", 100, -5.0, 5.0);
0811   PF_eta_2_hist = ibook.book1DD("eta_1", "PF HF e/#gamma #eta;#eta;Entries", 100, -5.0, 5.0);
0812 
0813   PF_phi_211_hist = ibook.book1DD("phi_211", "PF h^{+} #phi;#phi;Entries", 100, -3.2, 3.2);
0814   PF_phi_n211_hist = ibook.book1DD("phi_n211", "PF h^{-} #phi;#phi;Entries", 100, -3.2, 3.2);
0815   PF_phi_130_hist = ibook.book1DD("phi_130", "PF h^{0} #phi;#phi;Entries", 100, -3.2, 3.2);
0816   PF_phi_22_hist = ibook.book1DD("phi_22", "PF #gamma #phi;#phi;Entries", 100, -3.2, 3.2);
0817   PF_phi_13_hist = ibook.book1DD("phi_13", "PF #mu^{+} #phi;#phi;Entries", 100, -3.2, 3.2);
0818   PF_phi_n13_hist = ibook.book1DD("phi_n13", "PF #mu^{-} #phi;#phi;Entries", 100, -3.2, 3.2);
0819   PF_phi_1_hist = ibook.book1DD("phi_2", "PF HF h #phi;#phi;Entries", 100, -3.2, 3.2);
0820   PF_phi_2_hist = ibook.book1DD("phi_1", "PF HF e/#gamma #phi;#phi;Entries", 100, -3.2, 3.2);
0821 
0822   PF_vertex_211_hist = ibook.book1DD("vertex_211", "PF h^{+} Vertex;Vertex;Entries", 100, -10.0, 15.0);
0823   PF_vertex_n211_hist = ibook.book1DD("vertex_n211", "PF h^{-} Vertex;Vertex;Entries", 100, -10.0, 15.0);
0824   PF_vertex_130_hist = ibook.book1DD("vertex_130", "PF h^{0} Vertex;Vertex;Entries", 100, -10.0, 10.0);
0825   PF_vertex_22_hist = ibook.book1DD("vertex_22", "PF #gamma Vertex;Vertex;Entries", 100, -10.0, 10.0);
0826   PF_vertex_13_hist = ibook.book1DD("vertex_13", "PF #mu^{+} Vertex;Vertex;Entries", 100, -10.0, 15.0);
0827   PF_vertex_n13_hist = ibook.book1DD("vertex_n13", "PF #mu^{-} Vertex;Vertex;Entries", 100, -10.0, 15.0);
0828   PF_vertex_1_hist = ibook.book1DD("vertex_1", "PF HF h Vertex;Vertex;Entries", 100, -10.0, 10.0);
0829   PF_vertex_2_hist = ibook.book1DD("vertex_2", "PF HF e/#gamma Vertex;Vertex;Entries", 100, -10.0, 10.0);
0830 
0831   PF_normchi2_211_hist = ibook.book1DD("normchi2_211", "PF h^{+} Norm #chi^2;Norm #chi^2;Entries", 100, 0.0, 10.0);
0832   PF_normchi2_n211_hist = ibook.book1DD("normchi2_n211", "PF h^{-} Norm #chi^2;Norm #chi^2;Entries", 100, 0.0, 10.0);
0833   PF_normchi2_130_hist = ibook.book1DD("normchi2_130", "PF h^{0} Norm #chi^2;Norm #chi^2;Entries", 100, 0.0, 100.0);
0834   PF_normchi2_22_hist = ibook.book1DD("normchi2_22", "PF #gamma Norm #chi^2;Norm #chi^2;Entries", 100, 0.0, 100.0);
0835   PF_normchi2_13_hist = ibook.book1DD("normchi2_13", "PF #mu^{+} Norm #chi^2;Norm #chi^2;Entries", 100, 0.0, 10.0);
0836   PF_normchi2_n13_hist = ibook.book1DD("normchi2_n13", "PF #mu^{-} Norm #chi^2;Norm #chi^2;Entries", 100, 0.0, 10.0);
0837   PF_normchi2_1_hist = ibook.book1DD("normchi2_1", "PF HF h Norm #chi^2;Norm #chi^2;Entries", 100, 0.0, 100.0);
0838   PF_normchi2_2_hist = ibook.book1DD("normchi2_2", "PF HF e/#gamma Norm #chi^2;Norm #chi^2;Entries", 100, 0.0, 100.0);
0839 
0840   PF_dz_211_hist = ibook.book1DD("dz_211", "PF h^{+} dz (cm);dz (cm);Entries", 100, -1.0, 1.0);
0841   PF_dz_n211_hist = ibook.book1DD("dz_n211", "PF h^{-} dz (cm);dz (cm);Entries", 100, -1.0, 1.0);
0842   PF_dz_13_hist = ibook.book1DD("dz_13", "PF #mu^{+} dz (cm);dz (cm);Entries", 100, -1.0, 1.0);
0843   PF_dz_n13_hist = ibook.book1DD("dz_n13", "PF #mu^{-} dz (cm);dz (cm);Entries", 100, -1.0, 1.0);
0844 
0845   PF_dxy_211_hist = ibook.book1DD("dxy_211", "PF h^{+} dxy (cm);dxy (cm);Entries", 100, -0.5, 0.5);
0846   PF_dxy_n211_hist = ibook.book1DD("dxy_n211", "PF h^{-} dxy (cm);dxy (cm);Entries", 100, -0.5, 0.5);
0847   PF_dxy_13_hist = ibook.book1DD("dxy_13", "PF #mu^{+} dxy (cm);dxy (cm);Entries", 100, -0.5, 0.5);
0848   PF_dxy_n13_hist = ibook.book1DD("dxy_n13", "PF #mu^{-} dxy (cm);dxy (cm);Entries", 100, -0.5, 0.5);
0849 
0850   PF_dzsig_211_hist = ibook.book1DD("dzsig_211", "PF h^{+} dzsig;dzsig;Entries", 100, 0.0, 10.0);
0851   PF_dzsig_n211_hist = ibook.book1DD("dzsig_n211", "PF h^{-} dzsig;dzsig;Entries", 100, 0.0, 10.0);
0852   PF_dzsig_13_hist = ibook.book1DD("dzsig_13", "PF #mu^{+} dzsig;dzsig;Entries", 100, 0.0, 10.0);
0853   PF_dzsig_n13_hist = ibook.book1DD("dzsig_n13", "PF #mu^{-} dzsig;dzsig;Entries", 100, 0.0, 10.0);
0854 
0855   PF_dxysig_211_hist = ibook.book1DD("dxysig_211", "PF h^{+} dxysig;dxysig;Entries", 100, 0.0, 10.0);
0856   PF_dxysig_n211_hist = ibook.book1DD("dxysig_n211", "PF h^{-} dxysig;dxysig;Entries", 100, 0.0, 10.0);
0857   PF_dxysig_13_hist = ibook.book1DD("dxysig_13", "PF #mu^{+} dxysig;dxysig;Entries", 100, 0.0, 10.0);
0858   PF_dxysig_n13_hist = ibook.book1DD("dxysig_n13", "PF #mu^{-} dxysig;dxysig;Entries", 100, 0.0, 10.0);
0859 
0860   PF_trk_pt_211_hist = ibook.book1DD("trk_pt_211", "PF h^{+} Track pT (GeV);Track p_{T} (GeV);Entries", 100, 0.0, 10.0);
0861   PF_trk_pt_n211_hist =
0862       ibook.book1DD("trk_pt_n211", "PF h^{-} Track pT (GeV);Track p_{T} (GeV);Entries", 100, 0.0, 10.0);
0863   PF_trk_pt_13_hist = ibook.book1DD("trk_pt_13", "PF #mu^{+} Track pT (GeV);Track p_{T} (GeV);Entries", 100, 0.0, 10.0);
0864   PF_trk_pt_n13_hist =
0865       ibook.book1DD("trk_pt_n13", "PF #mu^{-} Track pT (GeV);Track p_{T} (GeV);Entries", 100, 0.0, 10.0);
0866 
0867   PF_trk_eta_211_hist = ibook.book1DD("trk_eta_211", "PF h^{+} Track #eta;Track #eta;Entries", 100, -3.0, 3.0);
0868   PF_trk_eta_n211_hist = ibook.book1DD("trk_eta_n211", "PF h^{-} Track #eta;Track #eta;Entries", 100, -3.0, 3.0);
0869   PF_trk_eta_13_hist = ibook.book1DD("trk_eta_13", "PF #mu^{+} Track #eta;Track #eta;Entries", 100, -3.0, 3.0);
0870   PF_trk_eta_n13_hist = ibook.book1DD("trk_eta_n13", "PF #mu^{-} Track #eta;Track #eta;Entries", 100, -3.0, 3.0);
0871 
0872   PF_trk_phi_211_hist = ibook.book1DD("trk_phi_211", "PF h^{+} Track #phi;Track #phi;Entries", 100, -3.2, 3.2);
0873   PF_trk_phi_n211_hist = ibook.book1DD("trk_phi_n211", "PF h^{-} Track #phi;Track #phi;Entries", 100, -3.2, 3.2);
0874   PF_trk_phi_13_hist = ibook.book1DD("trk_phi_13", "PF #mu^{+} Track #phi;Track #phi;Entries", 100, -3.2, 3.2);
0875   PF_trk_phi_n13_hist = ibook.book1DD("trk_phi_n13", "PF #mu^{-} Track #phi;Track #phi;Entries", 100, -3.2, 3.2);
0876 
0877   ibook.setCurrentFolder(outputInternalPath_ + "/Photon");
0878   pt_pho_hist = ibook.book1D("pt_pho", "Photon pT; p_{T} (GeV); Entries", 100, 0.0, 100.0);
0879   eta_pho_hist = ibook.book1D("eta_pho", "photon #eta; #eta; Entries", 100, -2.7, 2.7);
0880   phi_pho_hist = ibook.book1D("phi_pho", "Photon #phi; #phi (rad); Entries", 100, -3.14, 3.14);
0881   rawEnergy_pho_hist = ibook.book1D("rawEnergy_pho", "Raw Energy Photon; Energy (GeV); Entries", 100, 0.0, 250.0);
0882   preshowerEnergy_pho_hist =
0883       ibook.book1D("preshowerEnergy_pho", "Preshower Energy Photon; Energy (GeV); Entries", 100, 0.0, 8.0);
0884   corrEcalEnergyError_pho_hist = ibook.book1D(
0885       "corrEcalEnergyError_pho", "Corrected ECAL Energy Error Photon; Energy Error (GeV); Entries", 100, 0.0, 20.0);
0886   sigmaIetaIeta_pho_hist =
0887       ibook.book1D("sigmaIetaIeta_pho", "Sigma iEta iEta Photon; #sigma_{i#eta i#eta}; Entries", 100, 0.0, 0.5);
0888   hOverE_pho_hist = ibook.book1D("hOverE_pho", "H/E Photon; H/E; Entries", 100, 0.0, 1.5);
0889   ecalIso_pho_hist = ibook.book1D("ecalIso_pho", "ECAL Isolation Photon; Isolation (GeV); Entries", 100, 0.0, 100.0);
0890   hcalIso_pho_hist = ibook.book1D("hcalIso_pho", "HCAL Isolation Photon; Isolation (GeV); Entries", 100, 0.0, 100.0);
0891   trackIso_pho_hist = ibook.book1D("trackIso_pho", "Track Isolation Photon; Isolation (GeV); Entries", 100, 0.0, 0.05);
0892   r9_pho_hist = ibook.book1D("r9_pho", "R9; R9; Entries", 100, 0.0, 5);
0893   sMin_pho_hist = ibook.book1D("sMin_pho", "sMin Photon; sMin; Entries", 100, 0.0, 3);
0894   sMaj_pho_hist = ibook.book1D("sMaj_pho", "sMaj Photon; sMaj; Entries", 100, 0.0, 3);
0895 
0896   ibook.setCurrentFolder(outputInternalPath_ + "/Electron");
0897   pt_ele_hist = ibook.book1D("pt_ele", "Electron pT; p_{T} (GeV); Entries", 100, 0.0, 100.0);
0898   eta_ele_hist = ibook.book1D("eta_ele", "Electron #eta; #eta; Entries", 100, -2.7, 2.7);
0899   phi_ele_hist = ibook.book1D("phi_ele", "Electron #phi; #phi (rad); Entries", 100, -3.14, 3.14);
0900   rawEnergy_ele_hist = ibook.book1D("rawEnergy_ele", "Raw Energy Electron; Energy (GeV); Entries", 100, 0.0, 250.0);
0901   preshowerEnergy_ele_hist =
0902       ibook.book1D("preshowerEnergy_ele", "Preshower Energy Electron; Energy (GeV); Entries", 100, 0.0, 10.0);
0903   corrEcalEnergyError_ele_hist = ibook.book1D(
0904       "corrEcalEnergyError_ele", "Corrected ECAL Energy Error Electron; Energy Error (GeV); Entries", 100, 0.0, 20.0);
0905   dEtaIn_ele_hist = ibook.book1D("dEtaIn_ele", "dEtaIn Electron; dEtaIn; Entries", 100, -0.05, 0.05);
0906   dPhiIn_ele_hist = ibook.book1D("dPhiIn_ele", "dPhiIn Electron; dPhiIn; Entries", 100, -0.5, 0.5);
0907   sigmaIetaIeta_ele_hist =
0908       ibook.book1D("sigmaIetaIeta_ele", "Sigma iEta iEta Electron; #sigma_{i#eta i#eta}; Entries", 100, 0.0, 0.05);
0909   hOverE_ele_hist = ibook.book1D("hOverE_ele", "H/E Electron; H/E; Entries", 100, 0.0, 0.3);
0910   ooEMOop_ele_hist = ibook.book1D("ooEMOop_ele", "1/E - 1/p Electron; 1/E - 1/p; Entries", 100, -0.3, 0.3);
0911   missingHits_ele_hist = ibook.book1D("missingHits_ele", "Missing Hits Electron; Count; Entries", 10, 0, 5);
0912   trackfbrem_ele_hist = ibook.book1D("trackfbrem_ele", "Track fbrem Electron; fbrem; Entries", 100, -1.5, 1.0);
0913   ecalIso_ele_hist = ibook.book1D("ecalIso_ele", "ECAL Isolation Electron; Isolation (GeV); Entries", 100, 0.0, 70.0);
0914   hcalIso_ele_hist = ibook.book1D("hcalIso_ele", "HCAL Isolation Electron; Isolation (GeV); Entries", 100, 0.0, 60.0);
0915   trackIso_ele_hist =
0916       ibook.book1D("trackIso_ele", "Track Isolation Electron; Isolation (GeV); Entries", 100, 0.0, 0.05);
0917   r9_ele_hist = ibook.book1D("r9_ele", "R9 Electron; R9; Entries", 100, 0.0, 5);
0918   sMin_ele_hist = ibook.book1D("sMin_ele", "sMin Electron; sMin; Entries", 100, 0.0, 3);
0919   sMaj_ele_hist = ibook.book1D("sMaj_ele", "sMaj Electron; sMaj; Entries", 100, 0.0, 3);
0920 
0921   ibook.setCurrentFolder(outputInternalPath_ + "/Muon");
0922   pt_mu_hist = ibook.book1D("pt_mu", "Muon pT; p_{T} (GeV); Entries", 100, 0.0, 200.0);
0923   eta_mu_hist = ibook.book1D("eta_mu", "Muon #eta; #eta; Entries", 100, -2.7, 2.7);
0924   phi_mu_hist = ibook.book1D("phi_mu", "Muon #phi; #phi (rad); Entries", 100, -3.14, 3.14);
0925   type_mu_hist = ibook.book1D("type_mu", "Muon Type; Type; Entries", 10, 0, 10);
0926   charge_mu_hist = ibook.book1D("charge_mu", "Muon Charge; Charge; Entries", 3, -1, 2);
0927   normalizedChi2_mu_hist = ibook.book1D("normalizedChi2_mu", "Normalized chi2; chi2; Entries", 100, 0.0, 10.0);
0928   ecalIso_mu_hist = ibook.book1D("ecalIso_mu", "ECAL Isolation Muon; Isolation (GeV); Entries", 100, 0.0, 100.0);
0929   hcalIso_mu_hist = ibook.book1D("hcalIso_mu", "HCAL Isolation Muon; Isolation (GeV); Entries", 100, 0.0, 100.0);
0930   trackIso_mu_hist = ibook.book1D("trackIso_mu", "Track Isolation Muon; Isolation (GeV); Entries", 100, 0.0, 10.0);
0931   nValidStandAloneMuonHits_mu_hist =
0932       ibook.book1D("nValidStandAloneMuonHits_mu", "Valid Standalone Muon Hits; Hits; Entries", 50, 0, 50);
0933   nStandAloneMuonMatchedStations_mu_hist = ibook.book1D(
0934       "nStandAloneMuonMatchedStations_mu", "Standalone Muon Matched Stations; Stations; Entries", 10, 0, 10);
0935   nValidRecoMuonHits_mu_hist = ibook.book1D("nValidRecoMuonHits_mu", "Valid Reco Muon Hits; Hits; Entries", 50, 0, 50);
0936   nRecoMuonChambers_mu_hist = ibook.book1D("nRecoMuonChambers_mu", "Reco Muon Chambers; Chambers; Entries", 10, 0, 20);
0937   nRecoMuonChambersCSCorDT_mu_hist =
0938       ibook.book1D("nRecoMuonChambersCSCorDT_mu", "Reco Muon Chambers (CSC or DT); Chambers; Entries", 10, 0, 14);
0939   nRecoMuonMatches_mu_hist = ibook.book1D("nRecoMuonMatches_mu", "Reco Muon Matches; Matches; Entries", 10, 0, 10);
0940   nRecoMuonMatchedStations_mu_hist =
0941       ibook.book1D("nRecoMuonMatchedStations_mu", "Reco Muon Matched Stations; Stations; Entries", 10, 0, 10);
0942   nRecoMuonExpectedMatchedStations_mu_hist = ibook.book1D(
0943       "nRecoMuonExpectedMatchedStations_mu", "Reco Muon Expected Matched Stations; Stations; Entries", 10, 0, 10);
0944   recoMuonStationMask_mu_hist =
0945       ibook.book1D("recoMuonStationMask_mu", "Reco Muon Station Mask; Mask; Entries", 20, 0, 20);
0946   nRecoMuonMatchedRPCLayers_mu_hist =
0947       ibook.book1D("nRecoMuonMatchedRPCLayers_mu", "Reco Muon Matched RPC Layers; Layers; Entries", 10, 0, 2);
0948   recoMuonRPClayerMask_mu_hist =
0949       ibook.book1D("recoMuonRPClayerMask_mu", "Reco Muon RPC Layer Mask; Mask; Entries", 20, 0, 5);
0950   nValidPixelHits_mu_hist = ibook.book1D("nValidPixelHits_mu", "Valid Pixel Hits; Hits; Entries", 20, 0, 20);
0951   nValidStripHits_mu_hist = ibook.book1D("nValidStripHits_mu", "Valid Strip Hits; Hits; Entries", 50, 0, 50);
0952   nPixelLayersWithMeasurement_mu_hist =
0953       ibook.book1D("nPixelLayersWithMeasurement_mu", "Pixel Layers with Measurement; Layers; Entries", 10, 0, 10);
0954   nTrackerLayersWithMeasurement_mu_hist =
0955       ibook.book1D("nTrackerLayersWithMeasurement_mu", "Tracker Layers with Measurement; Layers; Entries", 20, 0, 20);
0956   trk_chi2_mu_hist = ibook.book1D("trk_chi2_mu", "Muon Tracker chi2; #chi^{2}; Entries", 100, 0.0, 100.0);
0957   trk_ndof_mu_hist = ibook.book1D("trk_ndof_mu", "Muon Tracker Ndof; Ndof; Entries", 100, 0, 100);
0958   trk_dxy_mu_hist = ibook.book1D("trk_dxy_mu", "Muon Tracker dxy; dxy (cm); Entries", 100, -0.5, 0.5);
0959   trk_dz_mu_hist = ibook.book1D("trk_dz_mu", "Muon Tracker dz; dz (cm); Entries", 100, -20.0, 20.0);
0960   trk_qoverp_mu_hist = ibook.book1D("trk_qoverp_mu", "Muon q/p; q/p; Entries", 100, -1, 1);
0961   trk_lambda_mu_hist = ibook.book1D("trk_lambda_mu", "Muon Lambda; #lambda; Entries", 100, -2, 2);
0962   trk_pt_mu_hist = ibook.book1D("trk_pt_mu", "Muon Tracker pT; p_{T} (GeV); Entries", 100, 0.0, 200.0);
0963   trk_phi_mu_hist = ibook.book1D("trk_phi_mu", "Muon Tracker #phi; #phi (rad); Entries", 100, -3.14, 3.14);
0964   trk_eta_mu_hist = ibook.book1D("trk_eta_mu", "Muon Tracker #eta; #eta; Entries", 100, -2.7, 2.7);
0965   trk_dxyError_mu_hist = ibook.book1D("trk_dxyError_mu", "Muon dxy Error; dxy Error (cm); Entries", 100, 0.0, 0.05);
0966   trk_dzError_mu_hist = ibook.book1D("trk_dzError_mu", "Muon dz Error; dz Error (cm); Entries", 100, 0.0, 0.05);
0967   trk_qoverpError_mu_hist = ibook.book1D("trk_qoverpError_mu", "Muon q/p Error; q/p Error; Entries", 100, 0.0, 0.01);
0968   trk_lambdaError_mu_hist =
0969       ibook.book1D("trk_lambdaError_mu", "Muon Lambda Error; #lambda Error; Entries", 100, 0.0, 0.1);
0970   trk_phiError_mu_hist = ibook.book1D("trk_phiError_mu", "Muon Phi Error; #phi Error (rad); Entries", 100, 0.0, 0.01);
0971   trk_dsz_mu_hist = ibook.book1D("trk_dsz_mu", "Muon dsz; dsz (cm); Entries", 100, -2, 2);
0972   trk_dszError_mu_hist = ibook.book1D("trk_dszError_mu", "Muon dsz Error; dsz Error (cm); Entries", 100, 0.0, 0.05);
0973   trk_qoverp_lambda_cov_mu_hist =
0974       ibook.book1D("trk_qoverp_lambda_cov_mu", "Muon q/p-#lambda Covariance; Covariance; Entries", 100, -0.001, 0.001);
0975   trk_qoverp_phi_cov_mu_hist =
0976       ibook.book1D("trk_qoverp_phi_cov_mu", "Muon q/p-#phi Covariance; Covariance; Entries", 100, -0.001, 0.001);
0977   trk_qoverp_dxy_cov_mu_hist =
0978       ibook.book1D("trk_qoverp_dxy_cov_mu", "Muon q/p-dxy Covariance; Covariance; Entries", 100, -0.001, 0.001);
0979   trk_qoverp_dsz_cov_mu_hist =
0980       ibook.book1D("trk_qoverp_dsz_cov_mu", "Muon q/p-dsz Covariance; Covariance; Entries", 100, -0.001, 0.001);
0981   trk_lambda_phi_cov_mu_hist =
0982       ibook.book1D("trk_lambda_phi_cov_mu", "Muon Lambda-#phi Covariance; Covariance; Entries", 100, -0.001, 0.001);
0983   trk_lambda_dxy_cov_mu_hist =
0984       ibook.book1D("trk_lambda_dxy_cov_mu", "Muon Lambda-dxy Covariance; Covariance; Entries", 100, -0.001, 0.001);
0985   trk_lambda_dsz_cov_mu_hist =
0986       ibook.book1D("trk_lambda_dsz_cov_mu", "Muon Lambda-dsz Covariance; Covariance; Entries", 100, -0.001, 0.001);
0987   trk_phi_dxy_cov_mu_hist =
0988       ibook.book1D("trk_phi_dxy_cov_mu", "Muon Phi-dxy Covariance; Covariance; Entries", 100, -0.001, 0.001);
0989   trk_phi_dsz_cov_mu_hist =
0990       ibook.book1D("trk_phi_dsz_cov_mu", "Muon Phi-dsz Covariance; Covariance; Entries", 100, -0.001, 0.001);
0991   trk_dxy_dsz_cov_mu_hist =
0992       ibook.book1D("trk_dxy_dsz_cov_mu", "Muon dxy-dsz Covariance; Covariance; Entries", 100, -0.001, 0.001);
0993   trk_vx_mu_hist = ibook.book1D("trk_vx_mu", "Muon Tracker Vertex X; x (cm); Entries", 100, -0.5, 0.5);
0994   trk_vy_mu_hist = ibook.book1D("trk_vy_mu", "Muon Tracker Vertex Y; y (cm); Entries", 100, -0.5, 0.5);
0995   trk_vz_mu_hist = ibook.book1D("trk_vz_mu", "Muon Tracker Vertex Z; z (cm); Entries", 100, -20.0, 20.0);
0996 
0997   ibook.setCurrentFolder(outputInternalPath_ + "/PFJet");
0998   pt_pfj_hist = ibook.book1D("pt_pfj", "PF Jet pT; p_{T} (GeV); Entries", 100, 0.0, 150.0);
0999   eta_pfj_hist = ibook.book1D("eta_pfj", "PF Jet #eta; #eta; Entries", 100, -5.0, 5.0);
1000   phi_pfj_hist = ibook.book1D("phi_pfj", "PF Jet #phi; #phi (rad); Entries", 100, -3.14, 3.14);
1001   m_pfj_hist = ibook.book1D("m_pfj", "PF Jet Mass; Mass (GeV); Entries", 100, 0.0, 40.0);
1002   jetArea_pfj_hist = ibook.book1D("jetArea_pfj", "PF Jet Area; Area; Entries", 100, 0.0, 0.8);
1003   chargedHadronEnergy_pfj_hist =
1004       ibook.book1D("chargedHadronEnergy_pfj", "Charged Hadron Energy; Energy (GeV); Entries", 100, 0.0, 150.0);
1005   neutralHadronEnergy_pfj_hist =
1006       ibook.book1D("neutralHadronEnergy_pfj", "Neutral Hadron Energy; Energy (GeV); Entries", 100, 0.0, 600.0);
1007   photonEnergy_pfj_hist = ibook.book1D("photonEnergy_pfj", "Photon Energy; Energy (GeV); Entries", 100, 0.0, 90.0);
1008   electronEnergy_pfj_hist = ibook.book1D("electronEnergy_pfj", "Electron Energy; Energy (GeV); Entries", 100, 0.0, 3.0);
1009   muonEnergy_pfj_hist = ibook.book1D("muonEnergy_pfj", "Muon Energy; Energy (GeV); Entries", 100, 0.0, 3.0);
1010   HFHadronEnergy_pfj_hist =
1011       ibook.book1D("HFHadronEnergy_pfj", "HF Hadron Energy; Energy (GeV); Entries", 100, 0.0, 300.0);
1012   HFEMEnergy_pfj_hist = ibook.book1D("HFEMEnergy_pfj", "HF EM Energy; Energy (GeV); Entries", 100, 0.0, 300.0);
1013   chargedHadronMultiplicity_pfj_hist =
1014       ibook.book1D("chargedHadronMultiplicity_pfj", "Charged Hadron Multiplicity; Multiplicity; Entries", 50, 0, 25);
1015   neutralHadronMultiplicity_pfj_hist =
1016       ibook.book1D("neutralHadronMultiplicity_pfj", "Neutral Hadron Multiplicity; Multiplicity; Entries", 50, 0, 10);
1017   photonMultiplicity_pfj_hist =
1018       ibook.book1D("photonMultiplicity_pfj", "Photon Multiplicity; Multiplicity; Entries", 50, 0, 22);
1019   electronMultiplicity_pfj_hist =
1020       ibook.book1D("electronMultiplicity_pfj", "Electron Multiplicity; Multiplicity; Entries", 20, 0, 5);
1021   muonMultiplicity_pfj_hist =
1022       ibook.book1D("muonMultiplicity_pfj", "Muon Multiplicity; Multiplicity; Entries", 20, 0, 5);
1023   HFHadronMultiplicity_pfj_hist =
1024       ibook.book1D("HFHadronMultiplicity_pfj", "HF Hadron Multiplicity; Multiplicity; Entries", 20, 0, 20);
1025   HFEMMultiplicity_pfj_hist =
1026       ibook.book1D("HFEMMultiplicity_pfj", "HF EM Multiplicity; Multiplicity; Entries", 20, 0, 20);
1027   HOEnergy_pfj_hist = ibook.book1D("HOEnergy_pfj", "HO Energy; Energy (GeV); Entries", 100, 0.0, 5.0);
1028   csv_pfj_hist = ibook.book1D("csv_pfj", "Combined Secondary Vertex (CSV); CSV Score; Entries", 100, -0.5, 0.5);
1029   mvaDiscriminator_pfj_hist = ibook.book1D("mvaDiscriminator_pfj", "MVA Discriminator; Score; Entries", 100, -1.0, 1.0);
1030 
1031   ibook.setCurrentFolder(outputInternalPath_ + "/PrimaryVertex");
1032   x_pv_hist = ibook.book1D("x_pv", "Primary Vertex X Position; x (cm); Entries", 100, -0.5, 0.5);
1033   y_pv_hist = ibook.book1D("y_pv", "Primary Vertex Y Position; y (cm); Entries", 100, -0.5, 0.5);
1034   z_pv_hist = ibook.book1D("z_pv", "Primary Vertex Z Position; z (cm); Entries", 100, -20.0, 20.0);
1035   zError_pv_hist = ibook.book1D("zError_pv", "Primary Vertex Z Error; z Error (cm); Entries", 100, 0.0, 0.05);
1036   xError_pv_hist = ibook.book1D("xError_pv", "Primary Vertex X Error; x Error (cm); Entries", 100, 0.0, 0.05);
1037   yError_pv_hist = ibook.book1D("yError_pv", "Primary Vertex Y Error; y Error (cm); Entries", 100, 0.0, 0.05);
1038   tracksSize_pv_hist =
1039       ibook.book1D("tracksSize_pv", "Number of Tracks at Primary Vertex; Tracks; Entries", 100, 0, 100);
1040   chi2_pv_hist = ibook.book1D("chi2_pv", "Primary Vertex chi2; #chi^{2}; Entries", 100, 0.0, 50.0);
1041   ndof_pv_hist = ibook.book1D("ndof_pv", "Primary Vertex Ndof; Ndof; Entries", 100, 0, 100);
1042   isValidVtx_pv_hist = ibook.book1D("isValidVtx_pv", "Is Valid Primary Vertex?; 0 = False, 1 = True; Entries", 2, 0, 2);
1043   xyCov_pv_hist = ibook.book1D("xyCov_pv", "Primary Vertex XY Covariance; Cov(x,y); Entries", 100, -0.01, 0.01);
1044   xzCov_pv_hist = ibook.book1D("xzCov_pv", "Primary Vertex XZ Covariance; Cov(x,z); Entries", 100, -0.01, 0.01);
1045   yzCov_pv_hist = ibook.book1D("yzCov_pv", "Primary Vertex YZ Covariance; Cov(y,z); Entries", 100, -0.01, 0.01);
1046 
1047   ibook.setCurrentFolder(outputInternalPath_ + "/DisplacedVertex");
1048   x_vtx_hist = ibook.book1D("x_vtx", "Vertex X Position; x (cm); Entries", 100, -0.5, 0.5);
1049   y_vtx_hist = ibook.book1D("y_vtx", "Vertex Y Position; y (cm); Entries", 100, -0.5, 0.5);
1050   z_vtx_hist = ibook.book1D("z_vtx", "Vertex Z Position; z (cm); Entries", 100, -20.0, 20.0);
1051   zError_vtx_hist = ibook.book1D("zError_vtx", "Vertex Z Error; z Error (cm); Entries", 100, 0.0, 0.2);
1052   xError_vtx_hist = ibook.book1D("xError_vtx", "Vertex X Error; x Error (cm); Entries", 100, 0.0, 0.2);
1053   yError_vtx_hist = ibook.book1D("yError_vtx", "Vertex Y Error; y Error (cm); Entries", 100, 0.0, 0.2);
1054   tracksSize_vtx_hist = ibook.book1D("tracksSize_vtx", "Number of Tracks at Vertex; Tracks; Entries", 100, 0, 100);
1055   chi2_vtx_hist = ibook.book1D("chi2_vtx", "Vertex chi2; #chi^{2}; Entries", 100, 0.0, 5.0);
1056   ndof_vtx_hist = ibook.book1D("ndof_vtx", "Vertex Ndof; Ndof; Entries", 100, 0, 5);
1057   isValidVtx_vtx_hist = ibook.book1D("isValidVtx_vtx", "Is Valid Vertex?; 0 = False, 1 = True; Entries", 2, 0, 2);
1058   xyCov_vtx_hist = ibook.book1D("xyCov_vtx", "Vertex XY Covariance; Cov(x,y); Entries", 100, -0.01, 0.01);
1059   xzCov_vtx_hist = ibook.book1D("xzCov_vtx", "Vertex XZ Covariance; Cov(x,z); Entries", 100, -0.01, 0.01);
1060   yzCov_vtx_hist = ibook.book1D("yzCov_vtx", "Vertex YZ Covariance; Cov(y,z); Entries", 100, -0.01, 0.01);
1061 
1062   ibook.setCurrentFolder(outputInternalPath_ + "/Tracker");
1063   tk_pt_tk_hist = ibook.book1D("tk_pt_tk", "Tracker pT; p_{T} (GeV); Entries", 100, 0.0, 30.0);
1064   tk_eta_tk_hist = ibook.book1D("tk_eta_tk", "Tracker #eta; #eta; Entries", 100, -2.7, 2.7);
1065   tk_phi_tk_hist = ibook.book1D("tk_phi_tk", "Tracker #phi; #phi (rad); Entries", 100, -3.14, 3.14);
1066   tk_chi2_tk_hist = ibook.book1D("tk_chi2_tk", "Tracker chi2; #chi^{2}; Entries", 100, 0.0, 50.0);
1067   tk_ndof_tk_hist = ibook.book1D("tk_ndof_tk", "Tracker Ndof; Ndof; Entries", 100, 0, 50);
1068   tk_charge_tk_hist = ibook.book1D("tk_charge_tk", "Tracker Charge; Charge; Entries", 3, -1, 2);
1069   tk_dxy_tk_hist = ibook.book1D("tk_dxy_tk", "Tracker dxy; dxy (cm); Entries", 100, -0.5, 0.5);
1070   tk_dz_tk_hist = ibook.book1D("tk_dz_tk", "Tracker dz; dz (cm); Entries", 100, -20.0, 20.0);
1071   tk_nValidPixelHits_tk_hist = ibook.book1D("tk_nValidPixelHits_tk", "Valid Pixel Hits; Hits; Entries", 20, 0, 20);
1072   tk_nTrackerLayersWithMeasurement_tk_hist = ibook.book1D(
1073       "tk_nTrackerLayersWithMeasurement_tk", "Tracker Layers with Measurement; Layers; Entries", 20, 0, 20);
1074   tk_nValidStripHits_tk_hist = ibook.book1D("tk_nValidStripHits_tk", "Valid Strip Hits; Hits; Entries", 50, 0, 50);
1075   tk_qoverp_tk_hist = ibook.book1D("tk_qoverp_tk", "q/p; q/p; Entries", 100, -1.0, 1.0);
1076   tk_lambda_tk_hist = ibook.book1D("tk_lambda_tk", "Lambda; #lambda; Entries", 100, -2, 2);
1077   tk_dxy_Error_tk_hist = ibook.book1D("tk_dxy_Error_tk", "dxy Error; dxy Error (cm); Entries", 100, 0.0, 0.05);
1078   tk_dz_Error_tk_hist = ibook.book1D("tk_dz_Error_tk", "dz Error; dz Error (cm); Entries", 100, 0.0, 0.05);
1079   tk_qoverp_Error_tk_hist = ibook.book1D("tk_qoverp_Error_tk", "q/p Error; q/p Error; Entries", 100, 0.0, 0.05);
1080   tk_lambda_Error_tk_hist = ibook.book1D("tk_lambda_Error_tk", "Lambda Error; #lambda Error; Entries", 100, 0.0, 0.1);
1081   tk_phi_Error_tk_hist = ibook.book1D("tk_phi_Error_tk", "Phi Error; #phi Error (rad); Entries", 100, 0.0, 0.01);
1082   tk_dsz_tk_hist = ibook.book1D("tk_dsz_tk", "dsz; dsz (cm); Entries", 100, -2, 2);
1083   tk_dsz_Error_tk_hist = ibook.book1D("tk_dsz_Error_tk", "dsz Error; dsz Error (cm); Entries", 100, 0.0, 0.05);
1084   tk_vtxInd_tk_hist = ibook.book1D("tk_vtxInd_tk", "Vertex Index; Index; Entries", 50, 0, 50);
1085   tk_vx_tk_hist = ibook.book1D("tk_vx_tk", "Tracker Vertex X; x (cm); Entries", 100, -0.5, 0.5);
1086   tk_vy_tk_hist = ibook.book1D("tk_vy_tk", "Tracker Vertex Y; y (cm); Entries", 100, -0.5, 0.5);
1087   tk_vz_tk_hist = ibook.book1D("tk_vz_tk", "Tracker Vertex Z; z (cm); Entries", 100, -20.0, 20.0);
1088 }
1089 // ------------ method fills 'descriptions' with the allowed parameters for the module  ------------
1090 
1091 void ScoutingCollectionMonitor::fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
1092   edm::ParameterSetDescription desc;
1093   desc.add<std::string>("OutputInternalPath", "MY_FOLDER");
1094   desc.add<edm::InputTag>("triggerresults", edm::InputTag("TriggerResults", "", "HLT"));
1095   desc.add<edm::InputTag>("electrons", edm::InputTag("hltScoutingEgammaPacker"));
1096   desc.add<edm::InputTag>("muons", edm::InputTag("hltScoutingMuonPackerNoVtx"));
1097   desc.add<edm::InputTag>("pfcands", edm::InputTag("hltScoutingPFPacker"));
1098   desc.add<edm::InputTag>("photons", edm::InputTag("hltScoutingEgammaPacker"));
1099   desc.add<edm::InputTag>("pfjets", edm::InputTag("hltScoutingPFPacker"));
1100   desc.add<edm::InputTag>("tracks", edm::InputTag("hltScoutingTrackPacker"));
1101   desc.add<edm::InputTag>("displacedVertices", edm::InputTag("hltScoutingMuonPackerNoVtx", "displacedVtx"));
1102   desc.add<edm::InputTag>("primaryVertices", edm::InputTag("hltScoutingPrimaryVertexPacker", "primaryVtx"));
1103   desc.add<edm::InputTag>("pfMetPt", edm::InputTag("hltScoutingPFPacker", "pfMetPt"));
1104   desc.add<edm::InputTag>("pfMetPhi", edm::InputTag("hltScoutingPFPacker", "pfMetPhi"));
1105   desc.add<edm::InputTag>("rho", edm::InputTag("hltScoutingPFPacker", "rho"));
1106   descriptions.addWithDefaultLabel(desc);
1107 }
1108 
1109 //define this as a plug-in
1110 DEFINE_FWK_MODULE(ScoutingCollectionMonitor);