File indexing completed on 2024-04-06 12:00:03
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 #include <memory>
0021 #include <vector>
0022 #include <map>
0023
0024
0025 #include "FWCore/Framework/interface/Frameworkfwd.h"
0026 #include "FWCore/Framework/interface/one/EDAnalyzer.h"
0027 #include "FWCore/Framework/interface/Event.h"
0028 #include "FWCore/Framework/interface/MakerMacros.h"
0029 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0030
0031 #include "CondFormats/DataRecord/interface/EcalADCToGeVConstantRcd.h"
0032 #include "CondFormats/EcalObjects/interface/EcalADCToGeVConstant.h"
0033 #include "CondFormats/L1TObjects/interface/L1GtTriggerMenu.h"
0034 #include "CondFormats/DataRecord/interface/L1GtTriggerMenuRcd.h"
0035
0036 #include "DataFormats/EcalDigi/interface/EcalDigiCollections.h"
0037 #include "DataFormats/EcalRecHit/interface/EcalUncalibratedRecHit.h"
0038 #include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h"
0039 #include "DataFormats/EgammaReco/interface/SuperCluster.h"
0040 #include "DataFormats/EgammaReco/interface/SuperClusterFwd.h"
0041 #include "DataFormats/DetId/interface/DetId.h"
0042 #include "DataFormats/EcalRawData/interface/EcalRawDataCollections.h"
0043 #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuRegionalCand.h"
0044 #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuGMTReadoutCollection.h"
0045 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutRecord.h"
0046 #include "DataFormats/L1GlobalTrigger/interface/L1GtPsbWord.h"
0047
0048 #include "Geometry/EcalMapping/interface/EcalElectronicsMapping.h"
0049 #include "Geometry/EcalMapping/interface/EcalMappingRcd.h"
0050
0051 #include "CaloOnlineTools/EcalTools/interface/EcalFedMap.h"
0052
0053 #include "TFile.h"
0054 #include "TH1F.h"
0055 #include "TH2F.h"
0056 #include "TH3F.h"
0057 #include "TGraph.h"
0058 #include "TNtuple.h"
0059
0060
0061 #include "DataFormats/TrackReco/interface/Track.h"
0062 #include "DataFormats/Common/interface/Handle.h"
0063 #include "TrackingTools/TrackAssociator/interface/TrackDetectorAssociator.h"
0064 #include "TrackingTools/TrackAssociator/interface/TrackAssociatorParameters.h"
0065 #include "DataFormats/EcalDetId/interface/EcalSubdetector.h"
0066 #include "DataFormats/EcalDetId/interface/EBDetId.h"
0067 #include "DataFormats/EcalDetId/interface/EEDetId.h"
0068
0069
0070
0071
0072
0073
0074 class EcalCosmicsHists : public edm::one::EDAnalyzer<edm::one::WatchRuns> {
0075 public:
0076 explicit EcalCosmicsHists(const edm::ParameterSet&);
0077 ~EcalCosmicsHists() override;
0078
0079 private:
0080 void beginRun(edm::Run const&, edm::EventSetup const&) override;
0081 void endRun(edm::Run const&, edm::EventSetup const&) override;
0082 void analyze(edm::Event const&, edm::EventSetup const&) override;
0083 void endJob() override;
0084 std::string intToString(int num);
0085 void initHists(int);
0086 std::vector<bool> determineTriggers(const edm::Event&, const edm::EventSetup& eventSetup);
0087
0088
0089
0090 edm::InputTag ecalRawDataColl_;
0091 edm::InputTag ecalRecHitCollectionEB_;
0092 edm::InputTag ecalRecHitCollectionEE_;
0093 edm::InputTag barrelClusterCollection_;
0094 edm::InputTag endcapClusterCollection_;
0095 edm::InputTag l1GTReadoutRecTag_;
0096 edm::InputTag l1GMTReadoutRecTag_;
0097
0098 const edm::EDGetTokenT<reco::SuperClusterCollection> barrelClusterToken_;
0099 const edm::EDGetTokenT<reco::SuperClusterCollection> endcapClusterToken_;
0100 const edm::EDGetTokenT<EcalRecHitCollection> ebRecHitToken_;
0101 const edm::EDGetTokenT<EcalRecHitCollection> eeRecHitToken_;
0102 const edm::EDGetTokenT<EcalRawDataCollection> ecalRawDataToken_;
0103 const edm::EDGetTokenT<reco::TrackCollection> tracksToken_;
0104 const edm::EDGetTokenT<reco::TrackCollection> tracksBarrelToken_;
0105 const edm::EDGetTokenT<HBHERecHitCollection> hbheRecHitToken_;
0106 const edm::EDGetTokenT<HFRecHitCollection> hfRecHitToken_;
0107 const edm::EDGetTokenT<HORecHitCollection> hoRecHitToken_;
0108 const edm::EDGetTokenT<L1MuGMTReadoutCollection> l1MuGMTToken_;
0109 const edm::EDGetTokenT<L1GlobalTriggerReadoutRecord> l1GTReadoutToken_;
0110 const edm::EDGetTokenT<L1GlobalTriggerReadoutRecord> gtRecordToken_;
0111
0112 const edm::ESGetToken<EcalADCToGeVConstant, EcalADCToGeVConstantRcd> ecalADCToGeVConstantToken_;
0113 const edm::ESGetToken<L1GtTriggerMenu, L1GtTriggerMenuRcd> l1MenuToken_;
0114 const edm::ESGetToken<EcalElectronicsMapping, EcalMappingRcd> ecalMappingToken_;
0115
0116 int runNum_;
0117 const double histRangeMax_, histRangeMin_;
0118 const double minTimingAmpEB_;
0119 const double minTimingAmpEE_;
0120 const double minRecHitAmpEB_;
0121 const double minRecHitAmpEE_;
0122 const double minHighEnergy_;
0123
0124 double* ttEtaBins;
0125 double* modEtaBins;
0126 std::string fileName_;
0127 const bool runInFileName_;
0128
0129 const double startTime_, runTimeLength_;
0130 const int numTimingBins_;
0131
0132 std::map<int, TH1F*> FEDsAndHists_;
0133 std::map<int, TH1F*> FEDsAndE2Hists_;
0134 std::map<int, TH1F*> FEDsAndenergyHists_;
0135 std::map<int, TH1F*> FEDsAndTimingHists_;
0136 std::map<int, TH1F*> FEDsAndFrequencyHists_;
0137 std::map<int, TH1F*> FEDsAndiPhiProfileHists_;
0138 std::map<int, TH1F*> FEDsAndNumXtalsInClusterHists_;
0139 std::map<int, TH1F*> FEDsAndiEtaProfileHists_;
0140 std::map<int, TH2F*> FEDsAndTimingVsFreqHists_;
0141 std::map<int, TH2F*> FEDsAndTimingVsAmpHists_;
0142 std::map<int, TH2F*> FEDsAndE2vsE1Hists_;
0143 std::map<int, TH2F*> FEDsAndenergyvsE1Hists_;
0144 std::map<int, TH2F*> FEDsAndOccupancyHists_;
0145 std::map<int, TH2F*> FEDsAndTimingVsPhiHists_;
0146 std::map<int, TH2F*> FEDsAndTimingVsEtaHists_;
0147 std::map<int, TH2F*> FEDsAndTimingVsModuleHists_;
0148 std::map<int, TH2F*> FEDsAndDCCRuntypeVsBxHists_;
0149
0150 TH1F* allFedsHist_;
0151 TH1F* allFedsE2Hist_;
0152 TH1F* allFedsenergyHist_;
0153 TH1F* allFedsenergyHighHist_;
0154 TH1F* allFedsenergyOnlyHighHist_;
0155 TH1F* allFedsTimingHist_;
0156 TH1F* allFedsFrequencyHist_;
0157 TH1F* allFedsiPhiProfileHist_;
0158 TH1F* allFedsiEtaProfileHist_;
0159 TH1F* allFedsNumXtalsInClusterHist_;
0160 TH1F* NumXtalsInClusterHist_;
0161 TH1F* numberofCosmicsHist_;
0162 TH1F* numberofCosmicsWTrackHist_;
0163 TH1F* numberofGoodEvtFreq_;
0164
0165 TH1F* numberofCosmicsHistEB_;
0166
0167
0168 TH1F* numberofBCinSC_;
0169 TH2F* numberofBCinSCphi_;
0170
0171 TH2F* TrueBCOccupancy_;
0172 TH2F* TrueBCOccupancyCoarse_;
0173
0174 TH2F* numxtalsVsEnergy_;
0175 TH2F* numxtalsVsHighEnergy_;
0176
0177 TH2F* allFedsE2vsE1Hist_;
0178 TH2F* allFedsenergyvsE1Hist_;
0179 TH2F* allOccupancy_;
0180 TH2F* TrueOccupancy_;
0181 TH2F* allOccupancyCoarse_;
0182 TH2F* TrueOccupancyCoarse_;
0183
0184
0185 TH2F* allOccupancySingleXtal_;
0186 TH1F* energySingleXtalHist_;
0187
0188 TH2F* allFedsTimingVsFreqHist_;
0189 TH2F* allFedsTimingVsAmpHist_;
0190 TH2F* allFedsTimingPhiHist_;
0191 TH2F* allFedsTimingEtaHist_;
0192 TH2F* allFedsTimingPhiEbpHist_;
0193 TH2F* allFedsTimingPhiEbmHist_;
0194 TH3F* allFedsTimingPhiEtaHist_;
0195 TH3F* allFedsTimingTTHist_;
0196 TH2F* allFedsTimingLMHist_;
0197
0198 TH1F* allFedsTimingEbpHist_;
0199 TH1F* allFedsTimingEbmHist_;
0200 TH1F* allFedsTimingEbpTopHist_;
0201 TH1F* allFedsTimingEbmTopHist_;
0202 TH1F* allFedsTimingEbpBottomHist_;
0203 TH1F* allFedsTimingEbmBottomHist_;
0204
0205 TH2F* allOccupancyECAL_;
0206 TH2F* allOccupancyCoarseECAL_;
0207 TH2F* allOccupancyExclusiveECAL_;
0208 TH2F* allOccupancyCoarseExclusiveECAL_;
0209 TH1F* allFedsTimingHistECAL_;
0210 TH3F* allFedsTimingPhiEtaHistECAL_;
0211 TH3F* allFedsTimingTTHistECAL_;
0212 TH2F* allFedsTimingLMHistECAL_;
0213
0214 TH2F* allOccupancyDT_;
0215 TH2F* allOccupancyCoarseDT_;
0216 TH2F* allOccupancyExclusiveDT_;
0217 TH2F* allOccupancyCoarseExclusiveDT_;
0218 TH1F* allFedsTimingHistDT_;
0219 TH3F* allFedsTimingPhiEtaHistDT_;
0220 TH3F* allFedsTimingTTHistDT_;
0221 TH2F* allFedsTimingLMHistDT_;
0222
0223 TH2F* allOccupancyRPC_;
0224 TH2F* allOccupancyCoarseRPC_;
0225 TH2F* allOccupancyExclusiveRPC_;
0226 TH2F* allOccupancyCoarseExclusiveRPC_;
0227 TH1F* allFedsTimingHistRPC_;
0228 TH3F* allFedsTimingPhiEtaHistRPC_;
0229 TH3F* allFedsTimingTTHistRPC_;
0230 TH2F* allFedsTimingLMHistRPC_;
0231
0232 TH2F* allOccupancyCSC_;
0233 TH2F* allOccupancyCoarseCSC_;
0234 TH2F* allOccupancyExclusiveCSC_;
0235 TH2F* allOccupancyCoarseExclusiveCSC_;
0236 TH1F* allFedsTimingHistCSC_;
0237 TH3F* allFedsTimingPhiEtaHistCSC_;
0238 TH3F* allFedsTimingTTHistCSC_;
0239 TH2F* allFedsTimingLMHistCSC_;
0240
0241 TH2F* allOccupancyHCAL_;
0242 TH2F* allOccupancyCoarseHCAL_;
0243 TH2F* allOccupancyExclusiveHCAL_;
0244 TH2F* allOccupancyCoarseExclusiveHCAL_;
0245 TH1F* allFedsTimingHistHCAL_;
0246 TH3F* allFedsTimingPhiEtaHistHCAL_;
0247 TH3F* allFedsTimingTTHistHCAL_;
0248 TH2F* allFedsTimingLMHistHCAL_;
0249
0250 TH1F* allFedsTimingHistEcalMuon_;
0251
0252 TH1F* triggerHist_;
0253 TH1F* triggerExclusiveHist_;
0254
0255 TH2F* allOccupancyHighEnergy_;
0256 TH2F* allOccupancyHighEnergyCoarse_;
0257 TH3F* allFedsOccupancyHighEnergyHist_;
0258
0259 TH1F* runNumberHist_;
0260 TH1F* deltaRHist_;
0261 TH1F* deltaEtaHist_;
0262 TH1F* deltaPhiHist_;
0263 TH1F* ratioAssocTracksHist_;
0264 TH1F* ratioAssocClustersHist_;
0265 TH2F* deltaEtaDeltaPhiHist_;
0266 TH2F* seedTrackPhiHist_;
0267 TH2F* seedTrackEtaHist_;
0268
0269
0270 TH2F* dccEventVsBxHist_;
0271 TH1F* dccBXErrorByFEDHist_;
0272 TH1F* dccOrbitErrorByFEDHist_;
0273 TH1F* dccRuntypeErrorByFEDHist_;
0274 TH1F* dccRuntypeHist_;
0275 TH2F* dccErrorVsBxHist_;
0276
0277
0278 TH2F* trackAssoc_muonsEcal_;
0279 TrackDetectorAssociator trackAssociator_;
0280 TrackAssociatorParameters trackParameters_;
0281 TH1F* numberofCrossedEcalIdsHist_;
0282
0283
0284 TH1F* numberofCosmicsTopBottomHist_;
0285 int cosmicCounterTopBottom_;
0286
0287
0288 TH1F* hcalEnergy_HBHE_;
0289 TH1F* hcalEnergy_HF_;
0290 TH1F* hcalEnergy_HO_;
0291 TH2F* hcalHEHBecalEB_;
0292
0293
0294 TH1F* HighEnergy_NumXtal;
0295 TH2F* HighEnergy_NumXtalFedId;
0296 TH2F* HighEnergy_NumXtaliphi;
0297 TH3F* HighEnergy_energy3D;
0298 TH2F* HighEnergy_energyNumXtal;
0299
0300 TH1F* HighEnergy_numClusHighEn;
0301 TH1F* HighEnergy_ratioClusters;
0302
0303 TH1F* HighEnergy_bestSeed;
0304 TH2F* HighEnergy_bestSeedOccupancy;
0305
0306 TH2F* HighEnergy_2GeV_occuCoarse;
0307 TH3F* HighEnergy_2GeV_occu3D;
0308 TH2F* HighEnergy_100GeV_occuCoarse;
0309 TH3F* HighEnergy_100GeV_occu3D;
0310
0311 TH1F* HighEnergy_numRecoTrackBarrel;
0312 TH1F* HighEnergy_TracksAngle;
0313 TH1F* HighEnergy_TracksAngleTopBottom;
0314 TH3F* HighEnergy_0tracks_occu3D;
0315 TH3F* HighEnergy_1tracks_occu3D;
0316 TH3F* HighEnergy_2tracks_occu3D;
0317
0318 TH3F* HighEnergy_0tracks_occu3DXtal;
0319 TH3F* HighEnergy_1tracks_occu3DXtal;
0320 TH3F* HighEnergy_2tracks_occu3DXtal;
0321
0322
0323 TH1F* allFedsFreqTimeHist_;
0324 TH2F* allFedsFreqTimeVsPhiHist_;
0325 TH2F* allFedsFreqTimeVsPhiTTHist_;
0326 TH2F* allFedsFreqTimeVsEtaHist_;
0327 TH2F* allFedsFreqTimeVsEtaTTHist_;
0328
0329
0330 TH2F* EEP_AllOccupancyCoarse_;
0331 TH2F* EEP_AllOccupancy_;
0332 TH1F* EEP_FedsenergyHist_;
0333 TH1F* EEP_FedsenergyHighHist_;
0334 TH1F* EEP_FedsenergyOnlyHighHist_;
0335 TH1F* EEP_FedsE2Hist_;
0336 TH2F* EEP_FedsE2vsE1Hist_;
0337 TH2F* EEP_FedsenergyvsE1Hist_;
0338 TH1F* EEP_FedsSeedEnergyHist_;
0339
0340 TH1F* EEP_FedsNumXtalsInClusterHist_;
0341 TH1F* EEP_NumXtalsInClusterHist_;
0342 TH2F* EEP_numxtalsVsEnergy_;
0343 TH2F* EEP_numxtalsVsHighEnergy_;
0344 TH1F* EEP_numberofBCinSC_;
0345
0346 TH1F* EEP_numberofCosmicsHist_;
0347
0348 TH2F* EEP_OccupancySingleXtal_;
0349 TH1F* EEP_energySingleXtalHist_;
0350
0351 TH1F* EEP_FedsTimingHist_;
0352 TH2F* EEP_FedsTimingVsAmpHist_;
0353 TH3F* EEP_FedsTimingTTHist_;
0354
0355 TH2F* EEP_OccupancyECAL_;
0356 TH2F* EEP_OccupancyCoarseECAL_;
0357 TH2F* EEP_OccupancyExclusiveECAL_;
0358 TH2F* EEP_OccupancyCoarseExclusiveECAL_;
0359 TH1F* EEP_FedsTimingHistECAL_;
0360 TH3F* EEP_FedsTimingTTHistECAL_;
0361
0362 TH2F* EEP_OccupancyDT_;
0363 TH2F* EEP_OccupancyCoarseDT_;
0364 TH2F* EEP_OccupancyExclusiveDT_;
0365 TH2F* EEP_OccupancyCoarseExclusiveDT_;
0366 TH1F* EEP_FedsTimingHistDT_;
0367 TH3F* EEP_FedsTimingTTHistDT_;
0368
0369 TH2F* EEP_OccupancyRPC_;
0370 TH2F* EEP_OccupancyCoarseRPC_;
0371 TH2F* EEP_OccupancyExclusiveRPC_;
0372 TH2F* EEP_OccupancyCoarseExclusiveRPC_;
0373 TH1F* EEP_FedsTimingHistRPC_;
0374 TH3F* EEP_FedsTimingTTHistRPC_;
0375
0376 TH2F* EEP_OccupancyCSC_;
0377 TH2F* EEP_OccupancyCoarseCSC_;
0378 TH2F* EEP_OccupancyExclusiveCSC_;
0379 TH2F* EEP_OccupancyCoarseExclusiveCSC_;
0380 TH1F* EEP_FedsTimingHistCSC_;
0381 TH3F* EEP_FedsTimingTTHistCSC_;
0382
0383 TH2F* EEP_OccupancyHCAL_;
0384 TH2F* EEP_OccupancyCoarseHCAL_;
0385 TH2F* EEP_OccupancyExclusiveHCAL_;
0386 TH2F* EEP_OccupancyCoarseExclusiveHCAL_;
0387 TH1F* EEP_FedsTimingHistHCAL_;
0388 TH3F* EEP_FedsTimingTTHistHCAL_;
0389
0390 TH1F* EEP_triggerHist_;
0391 TH1F* EEP_triggerExclusiveHist_;
0392
0393 TH2F* EEP_OccupancyHighEnergy_;
0394 TH2F* EEP_OccupancyHighEnergyCoarse_;
0395
0396
0397 TH2F* EEM_AllOccupancyCoarse_;
0398 TH2F* EEM_AllOccupancy_;
0399 TH1F* EEM_FedsenergyHist_;
0400 TH1F* EEM_FedsenergyHighHist_;
0401 TH1F* EEM_FedsenergyOnlyHighHist_;
0402 TH1F* EEM_FedsE2Hist_;
0403 TH2F* EEM_FedsE2vsE1Hist_;
0404 TH2F* EEM_FedsenergyvsE1Hist_;
0405 TH1F* EEM_FedsSeedEnergyHist_;
0406
0407 TH1F* EEM_FedsNumXtalsInClusterHist_;
0408 TH1F* EEM_NumXtalsInClusterHist_;
0409 TH2F* EEM_numxtalsVsEnergy_;
0410 TH2F* EEM_numxtalsVsHighEnergy_;
0411 TH1F* EEM_numberofBCinSC_;
0412
0413 TH1F* EEM_numberofCosmicsHist_;
0414
0415 TH2F* EEM_OccupancySingleXtal_;
0416 TH1F* EEM_energySingleXtalHist_;
0417
0418 TH1F* EEM_FedsTimingHist_;
0419 TH2F* EEM_FedsTimingVsAmpHist_;
0420 TH3F* EEM_FedsTimingTTHist_;
0421
0422 TH2F* EEM_OccupancyECAL_;
0423 TH2F* EEM_OccupancyCoarseECAL_;
0424 TH2F* EEM_OccupancyExclusiveECAL_;
0425 TH2F* EEM_OccupancyCoarseExclusiveECAL_;
0426 TH1F* EEM_FedsTimingHistECAL_;
0427 TH3F* EEM_FedsTimingTTHistECAL_;
0428
0429 TH2F* EEM_OccupancyDT_;
0430 TH2F* EEM_OccupancyCoarseDT_;
0431 TH2F* EEM_OccupancyExclusiveDT_;
0432 TH2F* EEM_OccupancyCoarseExclusiveDT_;
0433 TH1F* EEM_FedsTimingHistDT_;
0434 TH3F* EEM_FedsTimingTTHistDT_;
0435
0436 TH2F* EEM_OccupancyRPC_;
0437 TH2F* EEM_OccupancyCoarseRPC_;
0438 TH2F* EEM_OccupancyExclusiveRPC_;
0439 TH2F* EEM_OccupancyCoarseExclusiveRPC_;
0440 TH1F* EEM_FedsTimingHistRPC_;
0441 TH3F* EEM_FedsTimingTTHistRPC_;
0442
0443 TH2F* EEM_OccupancyCSC_;
0444 TH2F* EEM_OccupancyCoarseCSC_;
0445 TH2F* EEM_OccupancyExclusiveCSC_;
0446 TH2F* EEM_OccupancyCoarseExclusiveCSC_;
0447 TH1F* EEM_FedsTimingHistCSC_;
0448 TH3F* EEM_FedsTimingTTHistCSC_;
0449
0450 TH2F* EEM_OccupancyHCAL_;
0451 TH2F* EEM_OccupancyCoarseHCAL_;
0452 TH2F* EEM_OccupancyExclusiveHCAL_;
0453 TH2F* EEM_OccupancyCoarseExclusiveHCAL_;
0454 TH1F* EEM_FedsTimingHistHCAL_;
0455 TH3F* EEM_FedsTimingTTHistHCAL_;
0456
0457 TH1F* EEM_triggerHist_;
0458 TH1F* EEM_triggerExclusiveHist_;
0459
0460 TH2F* EEM_OccupancyHighEnergy_;
0461 TH2F* EEM_OccupancyHighEnergyCoarse_;
0462
0463 EcalFedMap* fedMap_;
0464
0465 TFile* file;
0466
0467 int naiveEvtNum_;
0468 int cosmicCounter_;
0469 int cosmicCounterEB_;
0470 int cosmicCounterEEP_;
0471 int cosmicCounterEEM_;
0472
0473 std::vector<int> l1Accepts_;
0474 std::vector<std::string> l1Names_;
0475
0476 const EcalElectronicsMapping* ecalElectronicsMap_;
0477 };