File indexing completed on 2024-04-06 12:00:03
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 #include "CaloOnlineTools/EcalTools/plugins/EcalCosmicsHists.h"
0015 #include "DataFormats/DetId/interface/DetId.h"
0016 #include "Geometry/CaloTopology/interface/CaloTopology.h"
0017 #include "Geometry/Records/interface/CaloTopologyRecord.h"
0018
0019 #include "DataFormats/EgammaReco/interface/BasicCluster.h"
0020 #include "DataFormats/EgammaReco/interface/BasicClusterFwd.h"
0021 #include "DataFormats/CaloRecHit/interface/CaloClusterFwd.h"
0022
0023 #include "DataFormats/HcalRecHit/interface/HcalRecHitCollections.h"
0024 #include "DataFormats/HcalDetId/interface/HcalSubdetector.h"
0025
0026 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutSetupFwd.h"
0027 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutSetup.h"
0028
0029 using namespace cms;
0030 using namespace edm;
0031 using namespace std;
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044 EcalCosmicsHists::EcalCosmicsHists(const edm::ParameterSet& iConfig)
0045 : ecalRawDataColl_(iConfig.getParameter<edm::InputTag>("ecalRawDataColl")),
0046 ecalRecHitCollectionEB_(iConfig.getParameter<edm::InputTag>("ecalRecHitCollectionEB")),
0047 ecalRecHitCollectionEE_(iConfig.getParameter<edm::InputTag>("ecalRecHitCollectionEE")),
0048 barrelClusterCollection_(iConfig.getParameter<edm::InputTag>("barrelClusterCollection")),
0049 endcapClusterCollection_(iConfig.getParameter<edm::InputTag>("endcapClusterCollection")),
0050 l1GTReadoutRecTag_(iConfig.getUntrackedParameter<std::string>("L1GlobalReadoutRecord", "gtDigis")),
0051 l1GMTReadoutRecTag_(iConfig.getUntrackedParameter<std::string>("L1GlobalMuonReadoutRecord", "gtDigis")),
0052 barrelClusterToken_(consumes<reco::SuperClusterCollection>(barrelClusterCollection_)),
0053 endcapClusterToken_(consumes<reco::SuperClusterCollection>(endcapClusterCollection_)),
0054 ebRecHitToken_(consumes<EcalRecHitCollection>(ecalRecHitCollectionEB_)),
0055 eeRecHitToken_(consumes<EcalRecHitCollection>(ecalRecHitCollectionEE_)),
0056 ecalRawDataToken_(consumes<EcalRawDataCollection>(ecalRawDataColl_)),
0057 tracksToken_(consumes<reco::TrackCollection>(edm::InputTag("cosmicMuons"))),
0058 tracksBarrelToken_(consumes<reco::TrackCollection>(edm::InputTag("cosmicMuonsBarrelOnly"))),
0059 hbheRecHitToken_(consumes<HBHERecHitCollection>(edm::InputTag("hbhereco"))),
0060 hfRecHitToken_(consumes<HFRecHitCollection>(edm::InputTag("hfreco"))),
0061 hoRecHitToken_(consumes<HORecHitCollection>(edm::InputTag("horeco"))),
0062 l1MuGMTToken_(consumes<L1MuGMTReadoutCollection>(l1GMTReadoutRecTag_)),
0063 l1GTReadoutToken_(consumes<L1GlobalTriggerReadoutRecord>(l1GTReadoutRecTag_)),
0064 gtRecordToken_(consumes<L1GlobalTriggerReadoutRecord>(edm::InputTag("gtDigis"))),
0065 ecalADCToGeVConstantToken_(esConsumes()),
0066 l1MenuToken_(esConsumes()),
0067 ecalMappingToken_(esConsumes<edm::Transition::BeginRun>()),
0068 runNum_(-1),
0069 histRangeMax_(iConfig.getUntrackedParameter<double>("histogramMaxRange", 1.8)),
0070 histRangeMin_(iConfig.getUntrackedParameter<double>("histogramMinRange", 0.0)),
0071 minTimingAmpEB_(iConfig.getUntrackedParameter<double>("MinTimingAmpEB", 0.100)),
0072 minTimingAmpEE_(iConfig.getUntrackedParameter<double>("MinTimingAmpEE", 0.100)),
0073 minRecHitAmpEB_(iConfig.getUntrackedParameter<double>("MinRecHitAmpEB", 0.027)),
0074 minRecHitAmpEE_(iConfig.getUntrackedParameter<double>("MinRecHitAmpEE", 0.18)),
0075 minHighEnergy_(iConfig.getUntrackedParameter<double>("MinHighEnergy", 2.0)),
0076 fileName_(iConfig.getUntrackedParameter<std::string>("fileName", std::string("ecalCosmicHists"))),
0077 runInFileName_(iConfig.getUntrackedParameter<bool>("runInFileName", true)),
0078 startTime_(iConfig.getUntrackedParameter<double>("TimeStampStart", 1215107133.)),
0079 runTimeLength_(iConfig.getUntrackedParameter<double>("TimeStampLength", 3.)),
0080 numTimingBins_(iConfig.getUntrackedParameter<int>("TimeStampBins", 1800)) {
0081 naiveEvtNum_ = 0;
0082 cosmicCounter_ = 0;
0083 cosmicCounterEB_ = 0;
0084 cosmicCounterEEM_ = 0;
0085 cosmicCounterEEP_ = 0;
0086 cosmicCounterTopBottom_ = 0;
0087
0088
0089 edm::ParameterSet trkParameters = iConfig.getParameter<edm::ParameterSet>("TrackAssociatorParameters");
0090 edm::ConsumesCollector iC = consumesCollector();
0091 trackParameters_.loadParameters(trkParameters, iC);
0092 trackAssociator_.useDefaultPropagator();
0093
0094 string title1 = "Seed Energy for All Feds; Seed Energy (GeV)";
0095 string name1 = "SeedEnergyAllFEDs";
0096 int numBins = 200;
0097 allFedsHist_ = new TH1F(name1.c_str(), title1.c_str(), numBins, histRangeMin_, histRangeMax_);
0098
0099 fedMap_ = new EcalFedMap();
0100 }
0101
0102 EcalCosmicsHists::~EcalCosmicsHists() {}
0103
0104
0105
0106
0107
0108
0109 void EcalCosmicsHists::analyze(edm::Event const& iEvent, edm::EventSetup const& iSetup) {
0110 bool hasEndcapClusters = true;
0111 int ievt = iEvent.id().event();
0112
0113 edm::Handle<reco::SuperClusterCollection> bscHandle;
0114 edm::Handle<reco::SuperClusterCollection> escHandle;
0115
0116 naiveEvtNum_++;
0117
0118
0119
0120
0121
0122 const auto& agc = iSetup.getData(ecalADCToGeVConstantToken_);
0123 if (naiveEvtNum_ <= 1) {
0124 LogWarning("EcalCosmicsHists") << "Global EB ADC->GeV scale: " << agc.getEBValue() << " GeV/ADC count";
0125 LogWarning("EcalCosmicsHists") << "Global EE ADC->GeV scale: " << agc.getEEValue() << " GeV/ADC count";
0126 }
0127
0128
0129
0130 unsigned int timeStampLow = (0xFFFFFFFF & iEvent.time().value());
0131 unsigned int timeStampHigh = (iEvent.time().value() >> 32);
0132 double rawEventTime = (double)(timeStampHigh) + ((double)(timeStampLow) / 1000000.);
0133 double eventTime = rawEventTime - startTime_;
0134
0135
0136
0137 iEvent.getByToken(barrelClusterToken_, bscHandle);
0138 if (!(bscHandle.isValid())) {
0139 LogWarning("EcalCosmicsHists") << barrelClusterCollection_ << " not available";
0140 return;
0141 }
0142 LogDebug("EcalCosmicsHists") << "event " << ievt;
0143
0144 iEvent.getByToken(endcapClusterToken_, escHandle);
0145 if (!(escHandle.isValid())) {
0146 LogWarning("EcalCosmicsHists") << endcapClusterCollection_ << " not available";
0147 hasEndcapClusters = false;
0148
0149 }
0150
0151 Handle<EcalRecHitCollection> hits;
0152 iEvent.getByToken(ebRecHitToken_, hits);
0153 if (!(hits.isValid())) {
0154 LogWarning("EcalCosmicsHists") << ecalRecHitCollectionEB_ << " not available";
0155 return;
0156 }
0157 Handle<EcalRecHitCollection> hitsEE;
0158 iEvent.getByToken(eeRecHitToken_, hitsEE);
0159 if (!(hitsEE.isValid())) {
0160 LogWarning("EcalCosmicsHists") << ecalRecHitCollectionEE_ << " not available";
0161 return;
0162 }
0163
0164 Handle<EcalRawDataCollection> DCCHeaders;
0165 iEvent.getByToken(ecalRawDataToken_, DCCHeaders);
0166 if (!DCCHeaders.isValid())
0167 LogWarning("EcalCosmicsHists") << "DCC headers not available";
0168
0169
0170
0171 int orbit = -100;
0172 int bx = -100;
0173 int runType = -100;
0174
0175 for (EcalRawDataCollection::const_iterator headerItr = DCCHeaders->begin(); headerItr != DCCHeaders->end();
0176 ++headerItr) {
0177 headerItr->getEventSettings();
0178 int myorbit = headerItr->getOrbit();
0179 int mybx = headerItr->getBX();
0180 int myRunType = headerItr->getRunType();
0181 int FEDid = headerItr->fedId();
0182 TH2F* dccRuntypeHist = FEDsAndDCCRuntypeVsBxHists_[FEDid];
0183 if (dccRuntypeHist == nullptr) {
0184 initHists(FEDid);
0185 dccRuntypeHist = FEDsAndDCCRuntypeVsBxHists_[FEDid];
0186 }
0187 dccRuntypeHist->Fill(mybx, myRunType);
0188
0189 if (bx == -100) {
0190 bx = mybx;
0191 } else if (bx != mybx) {
0192 LogWarning("EcalCosmicsHists") << "This header has a conflicting bx OTHERS were " << bx << " here " << mybx;
0193 dccBXErrorByFEDHist_->Fill(headerItr->fedId());
0194 if (bx != -100) {
0195 dccErrorVsBxHist_->Fill(bx, 0);
0196 }
0197 }
0198
0199 if (runType == -100) {
0200 runType = myRunType;
0201 } else if (runType != myRunType) {
0202 LogWarning("EcalCosmicsHists") << "This header has a conflicting runType OTHERS were " << bx << " here " << mybx;
0203 dccRuntypeErrorByFEDHist_->Fill(headerItr->fedId());
0204 if (bx != -100)
0205 dccErrorVsBxHist_->Fill(bx, 2);
0206 }
0207
0208 if (orbit == -100) {
0209 orbit = myorbit;
0210 } else if (orbit != myorbit) {
0211 LogWarning("EcalCosmicsHists") << "This header has a conflicting orbit; OTHERS were " << orbit << " here "
0212 << myorbit;
0213 dccOrbitErrorByFEDHist_->Fill(headerItr->fedId());
0214 if (bx != -100)
0215 dccErrorVsBxHist_->Fill(bx, 1);
0216 }
0217 }
0218 dccEventVsBxHist_->Fill(bx, runType);
0219 dccRuntypeHist_->Fill(runType);
0220
0221 std::vector<bool> l1Triggers = determineTriggers(iEvent, iSetup);
0222 bool isEcalL1 = l1Triggers[4];
0223 bool isHCALL1 = l1Triggers[3];
0224 bool isRPCL1 = l1Triggers[2];
0225 bool isCSCL1 = l1Triggers[1];
0226 bool isDTL1 = l1Triggers[0];
0227
0228 if (runNum_ == -1) {
0229 runNum_ = iEvent.id().run();
0230 }
0231
0232 int numberOfCosmics = 0;
0233 int numberOfCosmicsEB = 0;
0234 int numberOfCosmicsEEP = 0;
0235 int numberOfCosmicsEEM = 0;
0236 int numberOfCosmicsTop = 0;
0237 int numberOfCosmicsBottom = 0;
0238 int numberOfHighEClusters = 0;
0239
0240 std::vector<EBDetId> seeds;
0241
0242
0243
0244 const reco::SuperClusterCollection* clusterCollection_p = bscHandle.product();
0245 for (reco::SuperClusterCollection::const_iterator clus = clusterCollection_p->begin();
0246 clus != clusterCollection_p->end();
0247 ++clus) {
0248 double energy = clus->energy();
0249 double phi = clus->phi();
0250 double eta = clus->eta();
0251 double time = -1000.0;
0252 double ampli = 0.;
0253 double secondMin = 0.;
0254 double secondTime = -1000.;
0255 int numXtalsinCluster = 0;
0256
0257 EBDetId maxDet;
0258 EBDetId secDet;
0259
0260 numberofBCinSC_->Fill(clus->clustersSize());
0261 numberofBCinSCphi_->Fill(phi, clus->clustersSize());
0262
0263 for (reco::CaloCluster_iterator bclus = (clus->clustersBegin()); bclus != (clus->clustersEnd()); ++bclus) {
0264 double cphi = (*bclus)->phi();
0265 double ceta = (*bclus)->eta();
0266 TrueBCOccupancy_->Fill(cphi, ceta);
0267 TrueBCOccupancyCoarse_->Fill(cphi, ceta);
0268 }
0269
0270 std::vector<std::pair<DetId, float> > clusterDetIds = clus->hitsAndFractions();
0271 for (std::vector<std::pair<DetId, float> >::const_iterator detitr = clusterDetIds.begin();
0272 detitr != clusterDetIds.end();
0273 ++detitr) {
0274
0275 if ((*detitr).first.det() != DetId::Ecal) {
0276 std::cout << " det is " << (*detitr).first.det() << std::endl;
0277 continue;
0278 }
0279 if ((*detitr).first.subdetId() != EcalBarrel) {
0280 std::cout << " subdet is " << (*detitr).first.subdetId() << std::endl;
0281 continue;
0282 }
0283 EcalRecHitCollection::const_iterator thishit = hits->find((*detitr).first);
0284 if (thishit == hits->end())
0285 continue;
0286
0287
0288 EcalRecHit myhit = (*thishit);
0289
0290 double thisamp = myhit.energy();
0291 if (thisamp > minRecHitAmpEB_) {
0292 numXtalsinCluster++;
0293 }
0294 if (thisamp > secondMin) {
0295 secondMin = thisamp;
0296 secondTime = myhit.time();
0297 secDet = (EBDetId)(*detitr).first;
0298 }
0299 if (secondMin > ampli) {
0300 std::swap(ampli, secondMin);
0301 std::swap(time, secondTime);
0302 std::swap(maxDet, secDet);
0303 }
0304 }
0305
0306 double fullnumXtalsinCluster = clusterDetIds.size();
0307
0308 float E2 = ampli + secondMin;
0309 EcalElectronicsId elecId = ecalElectronicsMap_->getElectronicsId((EBDetId)maxDet);
0310 int FEDid = 600 + elecId.dccId();
0311
0312 numberOfCosmics++;
0313 numberOfCosmicsEB++;
0314
0315
0316 seeds.push_back(maxDet);
0317 int ieta = maxDet.ieta();
0318 int iphi = maxDet.iphi();
0319 int ietaSM = maxDet.ietaSM();
0320 int iphiSM = maxDet.iphiSM();
0321
0322 int LM = ecalElectronicsMap_->getLMNumber(maxDet);
0323
0324
0325 if (iphi > 0 && iphi < 180) {
0326 numberOfCosmicsTop++;
0327 } else {
0328 numberOfCosmicsBottom++;
0329 }
0330
0331
0332 TH1F* uRecHist = FEDsAndHists_[FEDid];
0333 TH1F* E2uRecHist = FEDsAndE2Hists_[FEDid];
0334 TH1F* energyuRecHist = FEDsAndenergyHists_[FEDid];
0335 TH1F* timingHist = FEDsAndTimingHists_[FEDid];
0336 TH1F* freqHist = FEDsAndFrequencyHists_[FEDid];
0337 TH1F* iphiProfileHist = FEDsAndiPhiProfileHists_[FEDid];
0338 TH1F* ietaProfileHist = FEDsAndiEtaProfileHists_[FEDid];
0339 TH2F* timingHistVsFreq = FEDsAndTimingVsFreqHists_[FEDid];
0340 TH2F* timingHistVsAmp = FEDsAndTimingVsAmpHists_[FEDid];
0341 TH2F* E2vsE1uRecHist = FEDsAndE2vsE1Hists_[FEDid];
0342 TH2F* energyvsE1uRecHist = FEDsAndenergyvsE1Hists_[FEDid];
0343 TH2F* occupHist = FEDsAndOccupancyHists_[FEDid];
0344 TH2F* timingHistVsPhi = FEDsAndTimingVsPhiHists_[FEDid];
0345 TH2F* timingHistVsModule = FEDsAndTimingVsModuleHists_[FEDid];
0346
0347 if (uRecHist == nullptr) {
0348 initHists(FEDid);
0349 uRecHist = FEDsAndHists_[FEDid];
0350 E2uRecHist = FEDsAndE2Hists_[FEDid];
0351 energyuRecHist = FEDsAndenergyHists_[FEDid];
0352 timingHist = FEDsAndTimingHists_[FEDid];
0353 freqHist = FEDsAndFrequencyHists_[FEDid];
0354 timingHistVsFreq = FEDsAndTimingVsFreqHists_[FEDid];
0355 timingHistVsAmp = FEDsAndTimingVsAmpHists_[FEDid];
0356 iphiProfileHist = FEDsAndiPhiProfileHists_[FEDid];
0357 ietaProfileHist = FEDsAndiEtaProfileHists_[FEDid];
0358 E2vsE1uRecHist = FEDsAndE2vsE1Hists_[FEDid];
0359 energyvsE1uRecHist = FEDsAndenergyvsE1Hists_[FEDid];
0360 occupHist = FEDsAndOccupancyHists_[FEDid];
0361 timingHistVsPhi = FEDsAndTimingVsPhiHists_[FEDid];
0362 timingHistVsModule = FEDsAndTimingVsModuleHists_[FEDid];
0363 }
0364
0365 uRecHist->Fill(ampli);
0366 E2uRecHist->Fill(E2);
0367 E2vsE1uRecHist->Fill(ampli, E2);
0368 energyuRecHist->Fill(energy);
0369 energyvsE1uRecHist->Fill(ampli, energy);
0370 allFedsHist_->Fill(ampli);
0371 allFedsE2Hist_->Fill(E2);
0372 allFedsenergyHist_->Fill(energy);
0373 allFedsenergyHighHist_->Fill(energy);
0374 allFedsE2vsE1Hist_->Fill(ampli, E2);
0375 allFedsenergyvsE1Hist_->Fill(ampli, energy);
0376 freqHist->Fill(naiveEvtNum_);
0377 iphiProfileHist->Fill(iphi);
0378 ietaProfileHist->Fill(ieta);
0379
0380 allFedsFrequencyHist_->Fill(naiveEvtNum_);
0381 allFedsiPhiProfileHist_->Fill(iphi);
0382 allFedsiEtaProfileHist_->Fill(ieta);
0383 allOccupancy_->Fill(iphi, ieta);
0384 TrueOccupancy_->Fill(phi, eta);
0385 allOccupancyCoarse_->Fill(iphi, ieta);
0386 TrueOccupancyCoarse_->Fill(phi, eta);
0387 allFedsNumXtalsInClusterHist_->Fill(numXtalsinCluster);
0388 NumXtalsInClusterHist_->Fill(fullnumXtalsinCluster);
0389 numxtalsVsEnergy_->Fill(energy, numXtalsinCluster);
0390 numxtalsVsHighEnergy_->Fill(energy, numXtalsinCluster);
0391
0392
0393 allFedsFreqTimeVsPhiHist_->Fill(iphi, eventTime);
0394 allFedsFreqTimeVsPhiTTHist_->Fill(iphi, eventTime);
0395 allFedsFreqTimeVsEtaHist_->Fill(eventTime, ieta);
0396 allFedsFreqTimeVsEtaTTHist_->Fill(eventTime, ieta);
0397
0398
0399 occupHist->Fill(ietaSM, iphiSM);
0400 if (fullnumXtalsinCluster == 1) {
0401 allOccupancySingleXtal_->Fill(iphi, ieta);
0402 energySingleXtalHist_->Fill(energy);
0403 }
0404
0405
0406
0407 if (isEcalL1 && !isDTL1 && !isRPCL1 && !isCSCL1 && !isHCALL1) {
0408 allOccupancyExclusiveECAL_->Fill(iphi, ieta);
0409 allOccupancyCoarseExclusiveECAL_->Fill(iphi, ieta);
0410 if (ampli > minTimingAmpEB_) {
0411 allFedsTimingHistECAL_->Fill(time);
0412 allFedsTimingPhiEtaHistECAL_->Fill(iphi, ieta, time);
0413 allFedsTimingTTHistECAL_->Fill(iphi, ieta, time);
0414 allFedsTimingLMHistECAL_->Fill(LM, time);
0415 }
0416 triggerExclusiveHist_->Fill(0);
0417 }
0418
0419 if (!isEcalL1 && !isDTL1 && !isRPCL1 && !isCSCL1 && isHCALL1) {
0420 allOccupancyExclusiveHCAL_->Fill(iphi, ieta);
0421 allOccupancyCoarseExclusiveHCAL_->Fill(iphi, ieta);
0422 if (ampli > minTimingAmpEB_) {
0423 allFedsTimingHistHCAL_->Fill(time);
0424 allFedsTimingPhiEtaHistHCAL_->Fill(iphi, ieta, time);
0425 allFedsTimingTTHistHCAL_->Fill(iphi, ieta, time);
0426 allFedsTimingLMHistHCAL_->Fill(LM, time);
0427 }
0428 triggerExclusiveHist_->Fill(1);
0429 }
0430
0431 if (!isEcalL1 && isDTL1 && !isRPCL1 && !isCSCL1 && !isHCALL1) {
0432 allOccupancyExclusiveDT_->Fill(iphi, ieta);
0433 allOccupancyCoarseExclusiveDT_->Fill(iphi, ieta);
0434 if (ampli > minTimingAmpEB_) {
0435 allFedsTimingHistDT_->Fill(time);
0436 allFedsTimingPhiEtaHistDT_->Fill(iphi, ieta, time);
0437 allFedsTimingTTHistDT_->Fill(iphi, ieta, time);
0438 allFedsTimingLMHistDT_->Fill(LM, time);
0439 }
0440 triggerExclusiveHist_->Fill(2);
0441 }
0442
0443 if (!isEcalL1 && !isDTL1 && isRPCL1 && !isCSCL1 && !isHCALL1) {
0444 allOccupancyExclusiveRPC_->Fill(iphi, ieta);
0445 allOccupancyCoarseExclusiveRPC_->Fill(iphi, ieta);
0446 if (ampli > minTimingAmpEB_) {
0447 allFedsTimingHistRPC_->Fill(time);
0448 allFedsTimingPhiEtaHistRPC_->Fill(iphi, ieta, time);
0449 allFedsTimingTTHistRPC_->Fill(iphi, ieta, time);
0450 allFedsTimingLMHistRPC_->Fill(LM, time);
0451 }
0452 triggerExclusiveHist_->Fill(3);
0453 }
0454
0455 if (!isEcalL1 && !isDTL1 && !isRPCL1 && isCSCL1 && !isHCALL1) {
0456 allOccupancyExclusiveCSC_->Fill(iphi, ieta);
0457 allOccupancyCoarseExclusiveCSC_->Fill(iphi, ieta);
0458 if (ampli > minTimingAmpEB_) {
0459 allFedsTimingHistCSC_->Fill(time);
0460 allFedsTimingPhiEtaHistCSC_->Fill(iphi, ieta, time);
0461 allFedsTimingTTHistCSC_->Fill(iphi, ieta, time);
0462 allFedsTimingLMHistCSC_->Fill(LM, time);
0463 }
0464 triggerExclusiveHist_->Fill(4);
0465 }
0466
0467
0468
0469 if (isEcalL1) {
0470 triggerHist_->Fill(0);
0471 allOccupancyECAL_->Fill(iphi, ieta);
0472 allOccupancyCoarseECAL_->Fill(iphi, ieta);
0473 }
0474 if (isHCALL1) {
0475 triggerHist_->Fill(1);
0476 allOccupancyHCAL_->Fill(iphi, ieta);
0477 allOccupancyCoarseHCAL_->Fill(iphi, ieta);
0478 }
0479 if (isDTL1) {
0480 triggerHist_->Fill(2);
0481 allOccupancyDT_->Fill(iphi, ieta);
0482 allOccupancyCoarseDT_->Fill(iphi, ieta);
0483 }
0484 if (isRPCL1) {
0485 triggerHist_->Fill(3);
0486 allOccupancyRPC_->Fill(iphi, ieta);
0487 allOccupancyCoarseRPC_->Fill(iphi, ieta);
0488 }
0489 if (isCSCL1) {
0490 triggerHist_->Fill(4);
0491 allOccupancyCSC_->Fill(iphi, ieta);
0492 allOccupancyCoarseCSC_->Fill(iphi, ieta);
0493 }
0494
0495
0496 if (isEcalL1 && (isCSCL1 || isRPCL1 || isDTL1) && !isHCALL1)
0497 allFedsTimingHistEcalMuon_->Fill(time);
0498
0499 if (ampli > minTimingAmpEB_) {
0500 timingHist->Fill(time);
0501 timingHistVsFreq->Fill(time, naiveEvtNum_);
0502 timingHistVsAmp->Fill(time, ampli);
0503 allFedsTimingHist_->Fill(time);
0504 allFedsTimingVsAmpHist_->Fill(time, ampli);
0505 allFedsTimingVsFreqHist_->Fill(time, naiveEvtNum_);
0506 timingHistVsPhi->Fill(time, iphiSM);
0507 timingHistVsModule->Fill(time, ietaSM);
0508 allFedsTimingPhiHist_->Fill(iphi, time);
0509 allFedsTimingPhiEtaHist_->Fill(iphi, ieta, time);
0510 allFedsTimingTTHist_->Fill(iphi, ieta, time);
0511 allFedsTimingLMHist_->Fill(LM, time);
0512 if (FEDid >= 610 && FEDid <= 627)
0513 allFedsTimingPhiEbmHist_->Fill(iphi, time);
0514 if (FEDid >= 628 && FEDid <= 645)
0515 allFedsTimingPhiEbpHist_->Fill(iphi, time);
0516
0517 if (FEDid >= 610 && FEDid <= 627)
0518 allFedsTimingEbmHist_->Fill(time);
0519 if (FEDid >= 628 && FEDid <= 645)
0520 allFedsTimingEbpHist_->Fill(time);
0521 if (FEDid >= 613 && FEDid <= 616)
0522 allFedsTimingEbmTopHist_->Fill(time);
0523 if (FEDid >= 631 && FEDid <= 634)
0524 allFedsTimingEbpTopHist_->Fill(time);
0525 if (FEDid >= 622 && FEDid <= 625)
0526 allFedsTimingEbmBottomHist_->Fill(time);
0527 if (FEDid >= 640 && FEDid <= 643)
0528 allFedsTimingEbpBottomHist_->Fill(time);
0529 }
0530
0531
0532
0533 if (energy > minHighEnergy_) {
0534 LogInfo("EcalCosmicsHists") << "High energy event " << iEvent.id().run() << " : " << iEvent.id().event() << " "
0535 << naiveEvtNum_ << " : " << energy << " " << numXtalsinCluster << " : " << iphi << " "
0536 << ieta << " : " << isEcalL1 << isHCALL1 << isDTL1 << isRPCL1 << isCSCL1;
0537
0538 numberOfHighEClusters++;
0539 allOccupancyHighEnergy_->Fill(iphi, ieta);
0540 allOccupancyHighEnergyCoarse_->Fill(iphi, ieta);
0541 allFedsOccupancyHighEnergyHist_->Fill(iphi, ieta, energy);
0542 allFedsenergyOnlyHighHist_->Fill(energy);
0543
0544 HighEnergy_2GeV_occuCoarse->Fill(iphi, ieta);
0545 HighEnergy_2GeV_occu3D->Fill(iphi, ieta, energy);
0546
0547 HighEnergy_NumXtal->Fill(fullnumXtalsinCluster);
0548 HighEnergy_NumXtalFedId->Fill(FEDid, fullnumXtalsinCluster);
0549 HighEnergy_NumXtaliphi->Fill(iphi, fullnumXtalsinCluster);
0550 HighEnergy_energy3D->Fill(iphi, ieta, energy);
0551 HighEnergy_energyNumXtal->Fill(fullnumXtalsinCluster, energy);
0552
0553 if (energy > 100.0) {
0554 LogInfo("EcalCosmicsHists") << "Very high energy event " << iEvent.id().run() << " : " << iEvent.id().event()
0555 << " " << naiveEvtNum_ << " : " << energy << " " << numXtalsinCluster << " : "
0556 << iphi << " " << ieta << " : " << isEcalL1 << isHCALL1 << isDTL1 << isRPCL1
0557 << isCSCL1;
0558
0559 HighEnergy_100GeV_occuCoarse->Fill(iphi, ieta);
0560 HighEnergy_100GeV_occu3D->Fill(iphi, ieta, energy);
0561 }
0562 }
0563
0564
0565
0566 }
0567
0568
0569
0570 if (hasEndcapClusters) {
0571 clusterCollection_p = escHandle.product();
0572 for (reco::SuperClusterCollection::const_iterator clus = clusterCollection_p->begin();
0573 clus != clusterCollection_p->end();
0574 ++clus) {
0575 double energy = clus->energy();
0576
0577
0578 double time = -1000.0;
0579 double ampli = 0.;
0580 double secondMin = 0.;
0581 double secondTime = -1000.;
0582 int clusSize = clus->clustersSize();
0583 int numXtalsinCluster = 0;
0584
0585 EEDetId maxDet;
0586 EEDetId secDet;
0587
0588
0589
0590
0591
0592
0593
0594
0595
0596
0597 std::vector<std::pair<DetId, float> > clusterDetIds = clus->hitsAndFractions();
0598 for (std::vector<std::pair<DetId, float> >::const_iterator detitr = clusterDetIds.begin();
0599 detitr != clusterDetIds.end();
0600 ++detitr) {
0601
0602
0603
0604 if ((*detitr).first.det() != DetId::Ecal) {
0605 LogError("EcalCosmicsHists") << " det is " << (*detitr).first.det();
0606 continue;
0607 }
0608 if ((*detitr).first.subdetId() != EcalEndcap) {
0609 LogError("EcalCosmicsHists") << " subdet is " << (*detitr).first.subdetId();
0610 continue;
0611 }
0612
0613 EcalRecHitCollection::const_iterator thishit = hitsEE->find((*detitr).first);
0614
0615 if (thishit == hitsEE->end()) {
0616 LogInfo("EcalCosmicsHists") << " WARNING: EEDetId not found in the RecHit collection!";
0617 continue;
0618 }
0619
0620
0621
0622 EcalRecHit myhit = (*thishit);
0623
0624
0625 double thisamp = myhit.energy();
0626 if (thisamp > minRecHitAmpEE_) {
0627 numXtalsinCluster++;
0628 }
0629 if (thisamp > secondMin) {
0630 secondMin = thisamp;
0631 secondTime = myhit.time();
0632 secDet = (EEDetId)(*detitr).first;
0633 }
0634 if (secondMin > ampli) {
0635 std::swap(ampli, secondMin);
0636 std::swap(time, secondTime);
0637 std::swap(maxDet, secDet);
0638 }
0639
0640
0641 }
0642
0643 double fullnumXtalsinCluster = clusterDetIds.size();
0644
0645 float E2 = ampli + secondMin;
0646
0647 ecalElectronicsMap_->getElectronicsId((EEDetId)maxDet);
0648
0649
0650
0651
0652
0653
0654 int ix = maxDet.ix();
0655 int iy = maxDet.iy();
0656 int iz = maxDet.zside();
0657
0658
0659
0660
0661
0662 if (!EEDetId::validDetId(ix, iy, iz)) {
0663 LogWarning("EcalCosmicsHists") << "INVALID EE DetId !!!";
0664 return;
0665 }
0666
0667 numberOfCosmics++;
0668 if (iz < 0) {
0669 numberOfCosmicsEEM++;
0670 } else {
0671 numberOfCosmicsEEP++;
0672 }
0673
0674
0675
0676
0677
0678
0679
0680
0681
0682
0683
0684
0685
0686
0687
0688
0689
0690
0691
0692
0693
0694
0695
0696
0697
0698
0699
0700
0701
0702
0703
0704
0705
0706
0707
0708
0709
0710
0711
0712
0713
0714
0715
0716
0717
0718 if (iz < 0) {
0719 EEM_FedsSeedEnergyHist_->Fill(ampli);
0720 EEM_FedsenergyHist_->Fill(energy);
0721 EEM_FedsenergyHighHist_->Fill(energy);
0722 EEM_FedsE2Hist_->Fill(E2);
0723 EEM_FedsE2vsE1Hist_->Fill(ampli, E2);
0724 EEM_FedsenergyvsE1Hist_->Fill(ampli, energy);
0725 EEM_AllOccupancyCoarse_->Fill(ix - 0.5, iy - 0.5);
0726 EEM_AllOccupancy_->Fill(ix - 0.5, iy - 0.5);
0727
0728 EEM_FedsNumXtalsInClusterHist_->Fill(numXtalsinCluster);
0729 EEM_NumXtalsInClusterHist_->Fill(fullnumXtalsinCluster);
0730 EEM_numxtalsVsEnergy_->Fill(energy, numXtalsinCluster);
0731 EEM_numxtalsVsHighEnergy_->Fill(energy, numXtalsinCluster);
0732 EEM_numberofBCinSC_->Fill(clusSize);
0733
0734 if (fullnumXtalsinCluster == 1) {
0735 EEM_OccupancySingleXtal_->Fill(ix - 0.5, iy - 0.5);
0736 EEM_energySingleXtalHist_->Fill(energy);
0737 }
0738
0739 if (ampli > minTimingAmpEE_) {
0740 EEM_FedsTimingHist_->Fill(time);
0741 EEM_FedsTimingVsAmpHist_->Fill(time, ampli);
0742 EEM_FedsTimingTTHist_->Fill(ix - 0.5, iy - 0.5, time);
0743 }
0744
0745
0746
0747 if (isEcalL1 && !isDTL1 && !isRPCL1 && !isCSCL1 && !isHCALL1) {
0748 EEM_OccupancyExclusiveECAL_->Fill(ix - 0.5, iy - 0.5);
0749 EEM_OccupancyCoarseExclusiveECAL_->Fill(ix - 0.5, iy - 0.5);
0750 if (ampli > minTimingAmpEE_) {
0751 EEM_FedsTimingHistECAL_->Fill(time);
0752 EEM_FedsTimingTTHistECAL_->Fill(ix - 0.5, iy - 0.5, time);
0753 }
0754 EEM_triggerExclusiveHist_->Fill(0);
0755 }
0756
0757 if (!isEcalL1 && !isDTL1 && !isRPCL1 && !isCSCL1 && isHCALL1) {
0758 EEM_OccupancyExclusiveHCAL_->Fill(ix - 0.5, iy - 0.5);
0759 EEM_OccupancyCoarseExclusiveHCAL_->Fill(ix - 0.5, iy - 0.5);
0760 if (ampli > minTimingAmpEE_) {
0761 EEM_FedsTimingHistHCAL_->Fill(time);
0762 EEM_FedsTimingTTHistHCAL_->Fill(ix - 0.5, iy - 0.5, time);
0763 }
0764 EEM_triggerExclusiveHist_->Fill(1);
0765 }
0766
0767 if (!isEcalL1 && isDTL1 && !isRPCL1 && !isCSCL1 && !isHCALL1) {
0768 EEM_OccupancyExclusiveDT_->Fill(ix - 0.5, iy - 0.5);
0769 EEM_OccupancyCoarseExclusiveDT_->Fill(ix - 0.5, iy - 0.5);
0770 if (ampli > minTimingAmpEE_) {
0771 EEM_FedsTimingHistDT_->Fill(time);
0772 EEM_FedsTimingTTHistDT_->Fill(ix - 0.5, iy - 0.5, time);
0773 }
0774 EEM_triggerExclusiveHist_->Fill(2);
0775 }
0776
0777 if (!isEcalL1 && !isDTL1 && isRPCL1 && !isCSCL1 && !isHCALL1) {
0778 EEM_OccupancyExclusiveRPC_->Fill(ix - 0.5, iy - 0.5);
0779 EEM_OccupancyCoarseExclusiveRPC_->Fill(ix - 0.5, iy - 0.5);
0780 if (ampli > minTimingAmpEE_) {
0781 EEM_FedsTimingHistRPC_->Fill(time);
0782 EEM_FedsTimingTTHistRPC_->Fill(ix - 0.5, iy - 0.5, time);
0783 }
0784 EEM_triggerExclusiveHist_->Fill(3);
0785 }
0786
0787 if (!isEcalL1 && !isDTL1 && !isRPCL1 && isCSCL1 && !isHCALL1) {
0788 EEM_OccupancyExclusiveCSC_->Fill(ix - 0.5, iy - 0.5);
0789 EEM_OccupancyCoarseExclusiveCSC_->Fill(ix - 0.5, iy - 0.5);
0790 if (ampli > minTimingAmpEE_) {
0791 EEM_FedsTimingHistCSC_->Fill(time);
0792 EEM_FedsTimingTTHistCSC_->Fill(ix - 0.5, iy - 0.5, time);
0793 }
0794 EEM_triggerExclusiveHist_->Fill(4);
0795 }
0796
0797
0798
0799 if (isEcalL1) {
0800 EEM_triggerHist_->Fill(0);
0801 EEM_OccupancyECAL_->Fill(ix - 0.5, iy - 0.5);
0802 EEM_OccupancyCoarseECAL_->Fill(ix - 0.5, iy - 0.5);
0803 }
0804 if (isHCALL1) {
0805 EEM_triggerHist_->Fill(1);
0806 EEM_OccupancyHCAL_->Fill(ix - 0.5, iy - 0.5);
0807 EEM_OccupancyCoarseHCAL_->Fill(ix - 0.5, iy - 0.5);
0808 }
0809 if (isDTL1) {
0810 EEM_triggerHist_->Fill(2);
0811 EEM_OccupancyDT_->Fill(ix - 0.5, iy - 0.5);
0812 EEM_OccupancyCoarseDT_->Fill(ix - 0.5, iy - 0.5);
0813 }
0814 if (isRPCL1) {
0815 EEM_triggerHist_->Fill(3);
0816 EEM_OccupancyRPC_->Fill(ix - 0.5, iy - 0.5);
0817 EEM_OccupancyCoarseRPC_->Fill(ix - 0.5, iy - 0.5);
0818 }
0819 if (isCSCL1) {
0820 EEM_triggerHist_->Fill(4);
0821 EEM_OccupancyCSC_->Fill(ix - 0.5, iy - 0.5);
0822 EEM_OccupancyCoarseCSC_->Fill(ix - 0.5, iy - 0.5);
0823 }
0824
0825 } else {
0826 EEP_FedsSeedEnergyHist_->Fill(ampli);
0827 EEP_FedsenergyHist_->Fill(energy);
0828 EEP_FedsenergyHighHist_->Fill(energy);
0829 EEP_FedsE2Hist_->Fill(E2);
0830 EEP_FedsE2vsE1Hist_->Fill(ampli, E2);
0831 EEP_FedsenergyvsE1Hist_->Fill(ampli, energy);
0832 EEP_AllOccupancyCoarse_->Fill(ix - 0.5, iy - 0.5);
0833 EEP_AllOccupancy_->Fill(ix - 0.5, iy - 0.5);
0834
0835 EEP_FedsNumXtalsInClusterHist_->Fill(numXtalsinCluster);
0836 EEP_NumXtalsInClusterHist_->Fill(fullnumXtalsinCluster);
0837 EEP_numxtalsVsEnergy_->Fill(energy, numXtalsinCluster);
0838 EEP_numxtalsVsHighEnergy_->Fill(energy, numXtalsinCluster);
0839 EEP_numberofBCinSC_->Fill(clusSize);
0840
0841 if (fullnumXtalsinCluster == 1) {
0842 EEP_OccupancySingleXtal_->Fill(ix - 0.5, iy - 0.5);
0843 EEP_energySingleXtalHist_->Fill(energy);
0844 }
0845
0846 if (ampli > minTimingAmpEE_) {
0847 EEP_FedsTimingHist_->Fill(time);
0848 EEP_FedsTimingVsAmpHist_->Fill(time, ampli);
0849 EEP_FedsTimingTTHist_->Fill(ix - 0.5, iy - 0.5, time);
0850 }
0851
0852
0853
0854 if (isEcalL1 && !isDTL1 && !isRPCL1 && !isCSCL1 && !isHCALL1) {
0855 EEP_OccupancyExclusiveECAL_->Fill(ix - 0.5, iy - 0.5);
0856 EEP_OccupancyCoarseExclusiveECAL_->Fill(ix - 0.5, iy - 0.5);
0857 if (ampli > minTimingAmpEE_) {
0858 EEP_FedsTimingHistECAL_->Fill(time);
0859 EEP_FedsTimingTTHistECAL_->Fill(ix - 0.5, iy - 0.5, time);
0860 }
0861 EEP_triggerExclusiveHist_->Fill(0);
0862 }
0863
0864 if (!isEcalL1 && !isDTL1 && !isRPCL1 && !isCSCL1 && isHCALL1) {
0865 EEP_OccupancyExclusiveHCAL_->Fill(ix - 0.5, iy - 0.5);
0866 EEP_OccupancyCoarseExclusiveHCAL_->Fill(ix - 0.5, iy - 0.5);
0867 if (ampli > minTimingAmpEE_) {
0868 EEP_FedsTimingHistHCAL_->Fill(time);
0869 EEP_FedsTimingTTHistHCAL_->Fill(ix - 0.5, iy - 0.5, time);
0870 }
0871 EEP_triggerExclusiveHist_->Fill(1);
0872 }
0873
0874 if (!isEcalL1 && isDTL1 && !isRPCL1 && !isCSCL1 && !isHCALL1) {
0875 EEP_OccupancyExclusiveDT_->Fill(ix - 0.5, iy - 0.5);
0876 EEP_OccupancyCoarseExclusiveDT_->Fill(ix - 0.5, iy - 0.5);
0877 if (ampli > minTimingAmpEE_) {
0878 EEP_FedsTimingHistDT_->Fill(time);
0879 EEP_FedsTimingTTHistDT_->Fill(ix - 0.5, iy - 0.5, time);
0880 }
0881 EEP_triggerExclusiveHist_->Fill(2);
0882 }
0883
0884 if (!isEcalL1 && !isDTL1 && isRPCL1 && !isCSCL1 && !isHCALL1) {
0885 EEP_OccupancyExclusiveRPC_->Fill(ix - 0.5, iy - 0.5);
0886 EEP_OccupancyCoarseExclusiveRPC_->Fill(ix - 0.5, iy - 0.5);
0887 if (ampli > minTimingAmpEE_) {
0888 EEP_FedsTimingHistRPC_->Fill(time);
0889 EEP_FedsTimingTTHistRPC_->Fill(ix - 0.5, iy - 0.5, time);
0890 }
0891 EEP_triggerExclusiveHist_->Fill(3);
0892 }
0893
0894 if (!isEcalL1 && !isDTL1 && !isRPCL1 && isCSCL1 && !isHCALL1) {
0895 EEP_OccupancyExclusiveCSC_->Fill(ix - 0.5, iy - 0.5);
0896 EEP_OccupancyCoarseExclusiveCSC_->Fill(ix - 0.5, iy - 0.5);
0897 if (ampli > minTimingAmpEE_) {
0898 EEP_FedsTimingHistCSC_->Fill(time);
0899 EEP_FedsTimingTTHistCSC_->Fill(ix - 0.5, iy - 0.5, time);
0900 }
0901 EEP_triggerExclusiveHist_->Fill(4);
0902 }
0903
0904
0905
0906 if (isEcalL1) {
0907 EEP_triggerHist_->Fill(0);
0908 EEP_OccupancyECAL_->Fill(ix - 0.5, iy - 0.5);
0909 EEP_OccupancyCoarseECAL_->Fill(ix - 0.5, iy - 0.5);
0910 }
0911 if (isHCALL1) {
0912 EEP_triggerHist_->Fill(1);
0913 EEP_OccupancyHCAL_->Fill(ix - 0.5, iy - 0.5);
0914 EEP_OccupancyCoarseHCAL_->Fill(ix - 0.5, iy - 0.5);
0915 }
0916 if (isDTL1) {
0917 EEP_triggerHist_->Fill(2);
0918 EEP_OccupancyDT_->Fill(ix - 0.5, iy - 0.5);
0919 EEP_OccupancyCoarseDT_->Fill(ix - 0.5, iy - 0.5);
0920 }
0921 if (isRPCL1) {
0922 EEP_triggerHist_->Fill(3);
0923 EEP_OccupancyRPC_->Fill(ix - 0.5, iy - 0.5);
0924 EEP_OccupancyCoarseRPC_->Fill(ix - 0.5, iy - 0.5);
0925 }
0926 if (isCSCL1) {
0927 EEP_triggerHist_->Fill(4);
0928 EEP_OccupancyCSC_->Fill(ix - 0.5, iy - 0.5);
0929 EEP_OccupancyCoarseCSC_->Fill(ix - 0.5, iy - 0.5);
0930 }
0931 }
0932
0933
0934
0935 if (energy > minHighEnergy_) {
0936 LogInfo("EcalCosmicsHists") << "High energy event in EE " << iEvent.id().run() << " : " << iEvent.id().event()
0937 << " " << naiveEvtNum_ << " : " << energy << " " << numXtalsinCluster << " : " << ix
0938 << " " << iy << " : " << isEcalL1 << isHCALL1 << isDTL1 << isRPCL1 << isCSCL1;
0939
0940
0941
0942
0943
0944 if (iz < 0) {
0945 EEM_FedsenergyOnlyHighHist_->Fill(energy);
0946 EEM_OccupancyHighEnergy_->Fill(ix - 0.5, iy - 0.5);
0947 EEM_OccupancyHighEnergyCoarse_->Fill(ix - 0.5, iy - 0.5);
0948 } else {
0949 EEP_FedsenergyOnlyHighHist_->Fill(energy);
0950 }
0951
0952
0953
0954
0955
0956
0957
0958
0959
0960 if (energy > 100.0) {
0961 LogInfo("EcalCosmicsHists") << "Very high energy event in EE " << iEvent.id().run() << " : "
0962 << iEvent.id().event() << " " << naiveEvtNum_ << " : " << energy << " "
0963 << numXtalsinCluster << " : " << ix << " " << iy << " : " << isEcalL1 << isHCALL1
0964 << isDTL1 << isRPCL1 << isCSCL1;
0965
0966
0967 }
0968 }
0969
0970
0971
0972 }
0973 }
0974
0975 HighEnergy_numClusHighEn->Fill(numberOfHighEClusters);
0976 HighEnergy_ratioClusters->Fill((double(numberOfHighEClusters)) / (double(numberOfCosmics)));
0977
0978 numberofCosmicsHist_->Fill(numberOfCosmics);
0979 EEP_numberofCosmicsHist_->Fill(numberOfCosmicsEEP);
0980 EEM_numberofCosmicsHist_->Fill(numberOfCosmicsEEM);
0981 numberofCosmicsHistEB_->Fill(numberOfCosmicsEB);
0982
0983 if (numberOfCosmics > 0) {
0984 cosmicCounter_++;
0985 numberofGoodEvtFreq_->Fill(naiveEvtNum_);
0986 allFedsFreqTimeHist_->Fill(eventTime);
0987
0988
0989
0990 }
0991
0992 if (numberOfCosmicsEB > 0)
0993 cosmicCounterEB_++;
0994 if (numberOfCosmicsEEP > 0)
0995 cosmicCounterEEP_++;
0996 if (numberOfCosmicsEEM > 0)
0997 cosmicCounterEEM_++;
0998
0999 if (numberOfCosmicsTop && numberOfCosmicsBottom) {
1000 cosmicCounterTopBottom_++;
1001 numberofCosmicsTopBottomHist_->Fill(numberOfCosmicsTop + numberOfCosmicsBottom);
1002 }
1003
1004
1005
1006
1007 edm::Handle<reco::TrackCollection> recoTracks;
1008 iEvent.getByToken(tracksToken_, recoTracks);
1009
1010 if (recoTracks.isValid()) {
1011 std::map<int, std::vector<DetId> > trackDetIdMap;
1012 int tracks = 0;
1013 for (reco::TrackCollection::const_iterator recoTrack = recoTracks->begin(); recoTrack != recoTracks->end();
1014 ++recoTrack) {
1015 if (fabs(recoTrack->d0()) > 70 || fabs(recoTrack->dz()) > 70)
1016 continue;
1017 if (recoTrack->numberOfValidHits() < 20)
1018 continue;
1019
1020
1021
1022 TrackDetMatchInfo info = trackAssociator_.associate(iEvent, iSetup, *recoTrack, trackParameters_);
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047 for (unsigned int i = 0; i < info.crossedEcalIds.size(); i++) {
1048
1049 if (info.crossedEcalIds[i].det() == DetId::Ecal && info.crossedEcalIds[i].subdetId() == 1) {
1050 EBDetId ebDetId(info.crossedEcalIds[i]);
1051 trackAssoc_muonsEcal_->Fill(ebDetId.iphi(), ebDetId.ieta());
1052
1053
1054
1055 EcalRecHitCollection::const_iterator thishit = hits->find(ebDetId);
1056 if (thishit == hits->end())
1057 continue;
1058
1059
1060
1061
1062 }
1063 }
1064
1065
1066
1067 numberofCrossedEcalIdsHist_->Fill(info.crossedEcalIds.size());
1068 tracks++;
1069 if (!info.crossedEcalIds.empty())
1070 trackDetIdMap.insert(std::pair<int, std::vector<DetId> >(tracks, info.crossedEcalIds));
1071 }
1072
1073
1074
1075 int numAssocTracks = 0;
1076 int numAssocClusters = 0;
1077 edm::LogVerbatim("TrackAssociator") << "Matching cosmic clusters to tracks...";
1078 int numSeeds = seeds.size();
1079 int numTracks = trackDetIdMap.size();
1080 while (!seeds.empty() && !trackDetIdMap.empty()) {
1081 double bestDr = 1000;
1082 double bestDPhi = 1000;
1083 double bestDEta = 1000;
1084 double bestEtaTrack = 1000;
1085 double bestEtaSeed = 1000;
1086 double bestPhiTrack = 1000;
1087 double bestPhiSeed = 1000;
1088 EBDetId bestTrackDet;
1089 EBDetId bestSeed;
1090 int bestTrack = -1;
1091 std::map<EBDetId, EBDetId> trackDetIdToSeedMap;
1092
1093
1094
1095 for (std::vector<EBDetId>::const_iterator seedItr = seeds.begin(); seedItr != seeds.end(); ++seedItr) {
1096 for (std::map<int, std::vector<DetId> >::const_iterator mapItr = trackDetIdMap.begin();
1097 mapItr != trackDetIdMap.end();
1098 ++mapItr) {
1099 for (unsigned int i = 0; i < mapItr->second.size(); i++) {
1100
1101 if (mapItr->second[i].det() == DetId::Ecal && mapItr->second[i].subdetId() == 1) {
1102 EBDetId ebDet = (mapItr->second[i]);
1103 double seedEta = seedItr->ieta();
1104 double deta = ebDet.ieta() - seedEta;
1105 if (seedEta * ebDet.ieta() < 0)
1106 deta > 0 ? (deta = deta - 1.) : (deta = deta + 1.);
1107 double dR;
1108 double dphi = ebDet.iphi() - seedItr->iphi();
1109 if (abs(dphi) > 180)
1110 dphi > 0 ? (dphi = 360 - dphi) : (dphi = -360 - dphi);
1111 dR = sqrt(deta * deta + dphi * dphi);
1112 if (dR < bestDr) {
1113 bestDr = dR;
1114 bestDPhi = dphi;
1115 bestDEta = deta;
1116 bestTrackDet = mapItr->second[i];
1117 bestTrack = mapItr->first;
1118 bestSeed = (*seedItr);
1119 bestEtaTrack = ebDet.ieta();
1120 bestEtaSeed = seedEta;
1121 bestPhiTrack = ebDet.iphi();
1122 bestPhiSeed = seedItr->iphi();
1123 }
1124 }
1125 }
1126 }
1127 }
1128 if (bestDr < 1000) {
1129
1130 deltaRHist_->Fill(bestDr);
1131 deltaPhiHist_->Fill(bestDPhi);
1132 deltaEtaHist_->Fill(bestDEta);
1133 deltaEtaDeltaPhiHist_->Fill(bestDEta, bestDPhi);
1134 seedTrackEtaHist_->Fill(bestEtaSeed, bestEtaTrack);
1135 seedTrackPhiHist_->Fill(bestPhiSeed, bestPhiTrack);
1136 seeds.erase(find(seeds.begin(), seeds.end(), bestSeed));
1137 trackDetIdMap.erase(trackDetIdMap.find(bestTrack));
1138 trackDetIdToSeedMap[bestTrackDet] = bestSeed;
1139 numAssocTracks++;
1140 numAssocClusters++;
1141
1142
1143 if (bestDPhi < 1.5 && bestDEta < 1.8) {
1144
1145
1146
1147 EcalRecHitCollection::const_iterator Ecalhit = hits->find(bestSeed);
1148 if (Ecalhit == hits->end()) {
1149 continue;
1150 }
1151 double EcalhitEnergy = Ecalhit->energy();
1152
1153 HighEnergy_bestSeed->Fill(EcalhitEnergy);
1154 HighEnergy_bestSeedOccupancy->Fill(bestSeed.iphi(), bestSeed.ieta());
1155 }
1156 } else {
1157 edm::LogVerbatim("TrackAssociator") << "could not match cluster seed to track." << bestDr;
1158 break;
1159 }
1160 }
1161 if (numSeeds > 0 && numTracks > 0) {
1162 ratioAssocClustersHist_->AddBinContent(1, numAssocClusters);
1163 ratioAssocClustersHist_->AddBinContent(2, numSeeds);
1164 }
1165 if (numTracks > 0) {
1166 ratioAssocTracksHist_->AddBinContent(1, numAssocTracks);
1167 ratioAssocTracksHist_->AddBinContent(2, numTracks);
1168 numberofCosmicsWTrackHist_->Fill(numSeeds);
1169 }
1170 } else {
1171 LogWarning("EcalCosmicsHists") << "!!! No TrackAssociator recoTracks !!!";
1172 }
1173
1174
1175 edm::Handle<reco::TrackCollection> recoTracksBarrel;
1176 iEvent.getByToken(tracksBarrelToken_, recoTracksBarrel);
1177 if (!recoTracksBarrel.isValid()) {
1178 edm::LogWarning("EcalCosmicsHists") << "RecoTracksBarrel not valid!! ";
1179 } else {
1180 HighEnergy_numRecoTrackBarrel->Fill(recoTracksBarrel->size());
1181 for (reco::TrackCollection::const_iterator recoTrack = recoTracksBarrel->begin();
1182 recoTrack != recoTracksBarrel->end();
1183 ++recoTrack) {
1184
1185
1186 }
1187
1188 for (reco::SuperClusterCollection::const_iterator clus = clusterCollection_p->begin();
1189 clus != clusterCollection_p->end();
1190 ++clus) {
1191 double energy = clus->energy();
1192 double phi = clus->phi();
1193 double eta = clus->eta();
1194
1195 if (recoTracksBarrel->empty())
1196 HighEnergy_0tracks_occu3D->Fill(phi, eta, energy);
1197 if (recoTracksBarrel->size() == 1)
1198 HighEnergy_1tracks_occu3D->Fill(phi, eta, energy);
1199 if (recoTracksBarrel->size() == 2)
1200 HighEnergy_2tracks_occu3D->Fill(phi, eta, energy);
1201
1202 std::vector<std::pair<DetId, float> > clusterDetIds = clus->hitsAndFractions();
1203 for (std::vector<std::pair<DetId, float> >::const_iterator detitr = clusterDetIds.begin();
1204 detitr != clusterDetIds.end();
1205 ++detitr) {
1206 if ((*detitr).first.det() != DetId::Ecal) {
1207 continue;
1208 }
1209 if ((*detitr).first.subdetId() != EcalBarrel) {
1210 continue;
1211 }
1212 EcalRecHitCollection::const_iterator thishit = hits->find((*detitr).first);
1213 if (thishit == hits->end()) {
1214 continue;
1215 }
1216
1217 double rechitenergy = thishit->energy();
1218 int ieta = ((EBDetId)(*detitr).first).ieta();
1219 int iphi = ((EBDetId)(*detitr).first).iphi();
1220 if (rechitenergy > minRecHitAmpEB_) {
1221 if (recoTracksBarrel->empty())
1222 HighEnergy_0tracks_occu3DXtal->Fill(iphi, ieta, rechitenergy);
1223 if (recoTracksBarrel->size() == 1)
1224 HighEnergy_1tracks_occu3DXtal->Fill(iphi, ieta, rechitenergy);
1225 if (recoTracksBarrel->size() == 2)
1226 HighEnergy_2tracks_occu3DXtal->Fill(iphi, ieta, rechitenergy);
1227
1228 if (rechitenergy > 10)
1229 edm::LogWarning("EcalCosmicsHists") << "!!!!! Crystal with energy " << rechitenergy << " at (ieta,iphi) ("
1230 << ieta << " ," << iphi << "); Id: " << (*detitr).first.det();
1231 }
1232 }
1233 }
1234
1235
1236 if (recoTracksBarrel->size() == 2) {
1237 reco::TrackCollection::const_iterator Track1 = recoTracksBarrel->begin();
1238 reco::TrackCollection::const_iterator Track2 = (recoTracksBarrel->begin()) + 1;
1239 float angle = (acos(sin(Track1->theta()) * cos(Track1->phi()) * sin(Track2->theta()) * cos(Track2->phi()) +
1240 sin(Track1->theta()) * sin(Track1->phi()) * sin(Track2->theta()) * sin(Track2->phi()) +
1241 cos(Track1->theta()) * cos(Track2->theta()))) /
1242 0.017453292519943;
1243
1244 HighEnergy_TracksAngle->Fill(angle);
1245 if ((Track1->innerPosition().phi()) > 0 && (Track2->innerPosition().phi()) < 0) {
1246
1247 HighEnergy_TracksAngleTopBottom->Fill(angle);
1248 }
1249 }
1250 }
1251
1252
1253
1254
1255
1256
1257 edm::Handle<HBHERecHitCollection> hbhe;
1258 iEvent.getByToken(hbheRecHitToken_, hbhe);
1259
1260 edm::Handle<HFRecHitCollection> hfrh;
1261 iEvent.getByToken(hfRecHitToken_, hfrh);
1262
1263 edm::Handle<HORecHitCollection> horh;
1264 iEvent.getByToken(hoRecHitToken_, horh);
1265
1266 if (hbhe.isValid()) {
1267 const HBHERecHitCollection hbheHit = *(hbhe.product());
1268 for (HBHERecHitCollection::const_iterator hhit = hbheHit.begin(); hhit != hbheHit.end(); hhit++) {
1269
1270 hcalEnergy_HBHE_->Fill(hhit->energy());
1271
1272 }
1273 } else {
1274 LogWarning("EcalCosmicHists") << " HBHE RecHits **NOT** VALID!! ";
1275 }
1276
1277 if (hfrh.isValid()) {
1278 const HFRecHitCollection hfHit = *(hfrh.product());
1279 for (HFRecHitCollection::const_iterator hhit = hfHit.begin(); hhit != hfHit.end(); hhit++) {
1280 hcalEnergy_HF_->Fill(hhit->energy());
1281 }
1282 } else {
1283 LogWarning("EcalCosmicHists") << " HF RecHits **NOT** VALID!! ";
1284 }
1285
1286 if (horh.isValid()) {
1287 const HORecHitCollection hoHit = *(horh.product());
1288 for (HORecHitCollection::const_iterator hhit = hoHit.begin(); hhit != hoHit.end(); hhit++) {
1289
1290 hcalEnergy_HO_->Fill(hhit->energy());
1291
1292 }
1293 } else {
1294 LogWarning("EcalCosmicHists") << " HO RecHits **NOT** VALID!! ";
1295 }
1296
1297
1298 }
1299
1300 std::vector<bool> EcalCosmicsHists::determineTriggers(const edm::Event& iEvent, const edm::EventSetup& eventSetup) {
1301 std::vector<bool> l1Triggers;
1302
1303 l1Triggers.reserve(5);
1304 for (int i = 0; i < 5; i++)
1305 l1Triggers.push_back(false);
1306
1307
1308 Handle<L1MuGMTReadoutCollection> gmtrc_handle;
1309 iEvent.getByToken(l1MuGMTToken_, gmtrc_handle);
1310 L1MuGMTReadoutCollection const* gmtrc = gmtrc_handle.product();
1311 if (!(gmtrc_handle.isValid())) {
1312 LogWarning("EcalCosmicsHists") << "l1MuGMTReadoutCollection"
1313 << " not available";
1314 return l1Triggers;
1315 }
1316
1317 Handle<L1GlobalTriggerReadoutRecord> L1GTRR;
1318 iEvent.getByToken(l1GTReadoutToken_, L1GTRR);
1319
1320
1321 const auto& menu = eventSetup.getData(l1MenuToken_);
1322 edm::Handle<L1GlobalTriggerReadoutRecord> gtRecord;
1323 iEvent.getByToken(gtRecordToken_, gtRecord);
1324
1325 const DecisionWord dWord = gtRecord->decisionWord();
1326
1327 bool l1SingleEG1 = menu.gtAlgorithmResult("L1_SingleEG1", dWord);
1328 bool l1SingleEG5 = menu.gtAlgorithmResult("L1_SingleEG5", dWord);
1329 bool l1SingleEG8 = menu.gtAlgorithmResult("L1_SingleEG8", dWord);
1330 bool l1SingleEG10 = menu.gtAlgorithmResult("L1_SingleEG10", dWord);
1331 bool l1SingleEG12 = menu.gtAlgorithmResult("L1_SingleEG12", dWord);
1332 bool l1SingleEG15 = menu.gtAlgorithmResult("L1_SingleEG15", dWord);
1333 bool l1SingleEG20 = menu.gtAlgorithmResult("L1_SingleEG20", dWord);
1334 bool l1SingleEG25 = menu.gtAlgorithmResult("L1_SingleEG25", dWord);
1335 bool l1DoubleNoIsoEGBTBtight = menu.gtAlgorithmResult("L1_DoubleNoIsoEG_BTB_tight", dWord);
1336 bool l1DoubleNoIsoEGBTBloose = menu.gtAlgorithmResult("L1_DoubleNoIsoEG_BTB_loose ", dWord);
1337 bool l1DoubleNoIsoEGTopBottom = menu.gtAlgorithmResult("L1_DoubleNoIsoEGTopBottom", dWord);
1338 bool l1DoubleNoIsoEGTopBottomCen = menu.gtAlgorithmResult("L1_DoubleNoIsoEGTopBottomCen", dWord);
1339 bool l1DoubleNoIsoEGTopBottomCen2 = menu.gtAlgorithmResult("L1_DoubleNoIsoEGTopBottomCen2", dWord);
1340 bool l1DoubleNoIsoEGTopBottomCenVert = menu.gtAlgorithmResult("L1_DoubleNoIsoEGTopBottomCenVert", dWord);
1341
1342 l1Triggers[4] = l1SingleEG1 || l1SingleEG5 || l1SingleEG8 || l1SingleEG10 || l1SingleEG12 || l1SingleEG15 ||
1343 l1SingleEG20 || l1SingleEG25 || l1DoubleNoIsoEGBTBtight || l1DoubleNoIsoEGBTBloose ||
1344 l1DoubleNoIsoEGTopBottom || l1DoubleNoIsoEGTopBottomCen || l1DoubleNoIsoEGTopBottomCen2 ||
1345 l1DoubleNoIsoEGTopBottomCenVert;
1346
1347 std::vector<L1MuGMTReadoutRecord> gmt_records = gmtrc->getRecords();
1348 std::vector<L1MuGMTReadoutRecord>::const_iterator igmtrr;
1349 for (igmtrr = gmt_records.begin(); igmtrr != gmt_records.end(); igmtrr++) {
1350 std::vector<L1MuRegionalCand>::const_iterator iter1;
1351 std::vector<L1MuRegionalCand> rmc;
1352
1353
1354 int idt = 0;
1355 rmc = igmtrr->getDTBXCands();
1356 for (iter1 = rmc.begin(); iter1 != rmc.end(); iter1++) {
1357 if (!(*iter1).empty()) {
1358 idt++;
1359 }
1360 }
1361
1362
1363 if (igmtrr->getBxInEvent() == 0 && idt > 0)
1364 l1Triggers[0] = true;
1365
1366
1367 int irpcb = 0;
1368 rmc = igmtrr->getBrlRPCCands();
1369 for (iter1 = rmc.begin(); iter1 != rmc.end(); iter1++) {
1370 if (!(*iter1).empty()) {
1371 irpcb++;
1372 }
1373 }
1374
1375
1376 if (igmtrr->getBxInEvent() == 0 && irpcb > 0)
1377 l1Triggers[2] = true;
1378
1379
1380 int icsc = 0;
1381 rmc = igmtrr->getCSCCands();
1382 for (iter1 = rmc.begin(); iter1 != rmc.end(); iter1++) {
1383 if (!(*iter1).empty()) {
1384 icsc++;
1385 }
1386 }
1387
1388
1389 if (igmtrr->getBxInEvent() == 0 && icsc > 0)
1390 l1Triggers[1] = true;
1391 }
1392
1393 L1GlobalTriggerReadoutRecord const* gtrr = L1GTRR.product();
1394
1395 for (int ibx = -1; ibx <= 1; ibx++) {
1396 bool hcal_top = false;
1397 bool hcal_bot = false;
1398 const L1GtPsbWord psb = gtrr->gtPsbWord(0xbb0d, ibx);
1399 std::vector<int> valid_phi;
1400 if ((psb.aData(4) & 0x3f) >= 1) {
1401 valid_phi.push_back((psb.aData(4) >> 10) & 0x1f);
1402 }
1403 if ((psb.bData(4) & 0x3f) >= 1) {
1404 valid_phi.push_back((psb.bData(4) >> 10) & 0x1f);
1405 }
1406 if ((psb.aData(5) & 0x3f) >= 1) {
1407 valid_phi.push_back((psb.aData(5) >> 10) & 0x1f);
1408 }
1409 if ((psb.bData(5) & 0x3f) >= 1) {
1410 valid_phi.push_back((psb.bData(5) >> 10) & 0x1f);
1411 }
1412 std::vector<int>::const_iterator iphi;
1413 for (iphi = valid_phi.begin(); iphi != valid_phi.end(); iphi++) {
1414
1415 if (*iphi < 9)
1416 hcal_top = true;
1417 if (*iphi > 8)
1418 hcal_bot = true;
1419 }
1420 if (ibx == 0 && hcal_top && hcal_bot)
1421 l1Triggers[3] = true;
1422 }
1423
1424 edm::LogInfo("EcalCosmicsHists") << "**** Trigger SourceSource ****";
1425 if (l1Triggers[0])
1426 edm::LogInfo("EcalCosmicsHists") << "DT";
1427 if (l1Triggers[2])
1428 edm::LogInfo("EcalCosmicsHists") << "RPC";
1429 if (l1Triggers[1])
1430 edm::LogInfo("EcalCosmicsHists") << "CSC";
1431 if (l1Triggers[3])
1432 edm::LogInfo("EcalCosmicsHists") << "HCAL";
1433 if (l1Triggers[4])
1434 edm::LogInfo("EcalCosmicsHists") << "ECAL";
1435 edm::LogInfo("EcalCosmicsHists") << "************************";
1436
1437 return l1Triggers;
1438 }
1439
1440
1441 void EcalCosmicsHists::initHists(int FED) {
1442 using namespace std;
1443
1444 string FEDid = intToString(FED);
1445 string title1 = "Energy of Seed Crystal ";
1446 title1.append(fedMap_->getSliceFromFed(FED));
1447 title1.append(";Seed Energy (GeV);Number of Cosmics");
1448 string name1 = "SeedEnergyFED";
1449 name1.append(intToString(FED));
1450 int numBins = 200;
1451 TH1F* hist = new TH1F(name1.c_str(), title1.c_str(), numBins, histRangeMin_, histRangeMax_);
1452 FEDsAndHists_[FED] = hist;
1453 FEDsAndHists_[FED]->SetDirectory(nullptr);
1454
1455 TH1F* E2hist = new TH1F(Form("E2_FED_%d", FED), Form("E2_FED_%d", FED), numBins, histRangeMin_, histRangeMax_);
1456 FEDsAndE2Hists_[FED] = E2hist;
1457 FEDsAndE2Hists_[FED]->SetDirectory(nullptr);
1458
1459 TH1F* energyhist =
1460 new TH1F(Form("Energy_FED_%d", FED), Form("Energy_FED_%d", FED), numBins, histRangeMin_, histRangeMax_);
1461 FEDsAndenergyHists_[FED] = energyhist;
1462 FEDsAndenergyHists_[FED]->SetDirectory(nullptr);
1463
1464 TH2F* E2vsE1hist = new TH2F(Form("E2vsE1_FED_%d", FED),
1465 Form("E2vsE1_FED_%d", FED),
1466 numBins,
1467 histRangeMin_,
1468 histRangeMax_,
1469 numBins,
1470 histRangeMin_,
1471 histRangeMax_);
1472 FEDsAndE2vsE1Hists_[FED] = E2vsE1hist;
1473 FEDsAndE2vsE1Hists_[FED]->SetDirectory(nullptr);
1474
1475 TH2F* energyvsE1hist = new TH2F(Form("EnergyvsE1_FED_%d", FED),
1476 Form("EnergyvsE1_FED_%d", FED),
1477 numBins,
1478 histRangeMin_,
1479 histRangeMax_,
1480 numBins,
1481 histRangeMin_,
1482 histRangeMax_);
1483 FEDsAndenergyvsE1Hists_[FED] = energyvsE1hist;
1484 FEDsAndenergyvsE1Hists_[FED]->SetDirectory(nullptr);
1485
1486 title1 = "Time for ";
1487 title1.append(fedMap_->getSliceFromFed(FED));
1488 title1.append(";Relative Time (1 clock = 25ns);Events");
1489 name1 = "TimeFED";
1490 name1.append(intToString(FED));
1491 TH1F* timingHist = new TH1F(name1.c_str(), title1.c_str(), 78, -7, 7);
1492 FEDsAndTimingHists_[FED] = timingHist;
1493 FEDsAndTimingHists_[FED]->SetDirectory(nullptr);
1494
1495 TH1F* freqHist =
1496 new TH1F(Form("Frequency_FED_%d", FED), Form("Frequency for FED %d;Event Number", FED), 100, 0., 100000);
1497 FEDsAndFrequencyHists_[FED] = freqHist;
1498 FEDsAndFrequencyHists_[FED]->SetDirectory(nullptr);
1499
1500 TH1F* iphiProfileHist =
1501 new TH1F(Form("iPhi_Profile_FED_%d", FED), Form("iPhi Profile for FED %d", FED), 360, 1., 361);
1502 FEDsAndiPhiProfileHists_[FED] = iphiProfileHist;
1503 FEDsAndiPhiProfileHists_[FED]->SetDirectory(nullptr);
1504
1505 TH1F* ietaProfileHist =
1506 new TH1F(Form("iEta_Profile_FED_%d", FED), Form("iEta Profile for FED %d", FED), 172, -86, 86);
1507 FEDsAndiEtaProfileHists_[FED] = ietaProfileHist;
1508 FEDsAndiEtaProfileHists_[FED]->SetDirectory(nullptr);
1509
1510 TH2F* timingHistVsFreq =
1511 new TH2F(Form("timeVsFreqFED_%d", FED), Form("time Vs Freq FED %d", FED), 78, -7, 7, 100, 0., 100000);
1512 FEDsAndTimingVsFreqHists_[FED] = timingHistVsFreq;
1513 FEDsAndTimingVsFreqHists_[FED]->SetDirectory(nullptr);
1514
1515 TH2F* timingHistVsAmp = new TH2F(
1516 Form("timeVsAmpFED_%d", FED), Form("time Vs Amp FED %d", FED), 78, -7, 7, numBins, histRangeMin_, histRangeMax_);
1517 FEDsAndTimingVsAmpHists_[FED] = timingHistVsAmp;
1518 FEDsAndTimingVsAmpHists_[FED]->SetDirectory(nullptr);
1519
1520 TH1F* numXtalInClusterHist = new TH1F(Form("NumXtalsInCluster_FED_%d", FED),
1521 Form("Num active Xtals In Cluster for FED %d;Num Active Xtals", FED),
1522 25,
1523 0,
1524 25);
1525 FEDsAndNumXtalsInClusterHists_[FED] = numXtalInClusterHist;
1526 FEDsAndNumXtalsInClusterHists_[FED]->SetDirectory(nullptr);
1527
1528 TH2F* OccupHist = new TH2F(Form("occupFED_%d", FED), Form("Occupancy FED %d;i#eta;i#phi", FED), 85, 1, 86, 20, 1, 21);
1529 FEDsAndOccupancyHists_[FED] = OccupHist;
1530 FEDsAndOccupancyHists_[FED]->SetDirectory(nullptr);
1531
1532 TH2F* timingHistVsPhi = new TH2F(Form("timeVsPhiFED_%d", FED),
1533 Form("time Vs Phi FED %d;Relative Time (1 clock = 25ns);i#phi", FED),
1534 78,
1535 -7,
1536 7,
1537 20,
1538 1,
1539 21);
1540 FEDsAndTimingVsPhiHists_[FED] = timingHistVsPhi;
1541 FEDsAndTimingVsPhiHists_[FED]->SetDirectory(nullptr);
1542
1543 TH2F* timingHistVsModule = new TH2F(Form("timeVsModuleFED_%d", FED),
1544 Form("time Vs Module FED %d;Relative Time (1 clock = 25ns);i#eta", FED),
1545 78,
1546 -7,
1547 7,
1548 4,
1549 1,
1550 86);
1551 FEDsAndTimingVsModuleHists_[FED] = timingHistVsModule;
1552 FEDsAndTimingVsModuleHists_[FED]->SetDirectory(nullptr);
1553
1554 TH2F* dccRuntypeVsBxFED =
1555 new TH2F(Form("DCCRuntypeVsBxFED_%d", FED), Form("DCC Runtype vs. BX FED %d", FED), 3600, 0, 3600, 24, 0, 24);
1556 FEDsAndDCCRuntypeVsBxHists_[FED] = dccRuntypeVsBxFED;
1557 FEDsAndDCCRuntypeVsBxHists_[FED]->SetDirectory(nullptr);
1558 }
1559
1560
1561 void EcalCosmicsHists::beginRun(edm::Run const&, edm::EventSetup const& eventSetup) {
1562 ecalElectronicsMap_ = &eventSetup.getData(ecalMappingToken_);
1563
1564
1565 int numBins = 200;
1566
1567
1568 double ttEtaBins[36] = {-85, -80, -75, -70, -65, -60, -55, -50, -45, -40, -35, -30, -25, -20, -15, -10, -5, 0,
1569 1, 6, 11, 16, 21, 26, 31, 36, 41, 46, 51, 56, 61, 66, 71, 76, 81, 86};
1570 double modEtaBins[10] = {-85, -65, -45, -25, 0, 1, 26, 46, 66, 86};
1571 double ttPhiBins[73];
1572 double modPhiBins[19];
1573 double timingBins[79];
1574 double highEBins[11];
1575 for (int i = 0; i < 79; ++i) {
1576 timingBins[i] = -7. + double(i) * 14. / 78.;
1577 if (i < 73) {
1578 ttPhiBins[i] = 1 + 5 * i;
1579 if (i < 19) {
1580 modPhiBins[i] = 1 + 20 * i;
1581 if (i < 11) {
1582 highEBins[i] = 10. + double(i) * 20.;
1583 }
1584 }
1585 }
1586 }
1587
1588
1589
1590 double timingEndInSeconds = runTimeLength_ * 3600.;
1591 double timingBinWidth = timingEndInSeconds / double(numTimingBins_);
1592
1593
1594 allFedsenergyHist_ =
1595 new TH1F("energy_AllClusters", "energy_AllClusters;Cluster Energy (GeV)", numBins, histRangeMin_, histRangeMax_);
1596 allFedsenergyHighHist_ =
1597 new TH1F("energyHigh_AllClusters", "energyHigh_AllClusters;Cluster Energy (GeV)", numBins, histRangeMin_, 200.0);
1598 allFedsenergyOnlyHighHist_ = new TH1F("energyHigh_HighEnergyClusters",
1599 "energy of High Energy Clusters;Cluster Energy (GeV)",
1600 numBins,
1601 histRangeMin_,
1602 200.0);
1603 allFedsE2Hist_ = new TH1F(
1604 "E2_AllClusters", "E2_AllClusters;Seed+highest neighbor energy (GeV)", numBins, histRangeMin_, histRangeMax_);
1605 allFedsE2vsE1Hist_ = new TH2F("E2vsE1_AllClusters",
1606 "E2vsE1_AllClusters;Seed Energy (GeV);Seed+highest neighbor energy (GeV)",
1607 numBins,
1608 histRangeMin_,
1609 histRangeMax_,
1610 numBins,
1611 histRangeMin_,
1612 histRangeMax_);
1613 allFedsenergyvsE1Hist_ = new TH2F("energyvsE1_AllClusters",
1614 "energyvsE1_AllClusters;Seed Energy (GeV);Energy(GeV)",
1615 numBins,
1616 histRangeMin_,
1617 histRangeMax_,
1618 numBins,
1619 histRangeMin_,
1620 histRangeMax_);
1621 allFedsTimingHist_ = new TH1F("timeForAllFeds", "timeForAllFeds;Relative Time (1 clock = 25ns)", 78, -7, 7);
1622 allFedsTimingVsFreqHist_ = new TH2F("timeVsFreqAllEvent",
1623 "time Vs Freq All events;Relative Time (1 clock = 25ns);Event Number",
1624 78,
1625 -7,
1626 7,
1627 2000,
1628 0.,
1629 200000);
1630 allFedsTimingVsAmpHist_ = new TH2F("timeVsAmpAllEvents",
1631 "time Vs Amp All Events;Relative Time (1 clock = 25ns);Amplitude (GeV)",
1632 78,
1633 -7,
1634 7,
1635 numBins,
1636 histRangeMin_,
1637 histRangeMax_);
1638 allFedsFrequencyHist_ = new TH1F("FrequencyAllEvent", "Frequency for All events;Event Number", 2000, 0., 200000);
1639
1640
1641 allFedsFreqTimeHist_ = new TH1F("FrequencyAllEventsInTime",
1642 Form("Time of Cosmic Events; Time (s);Passing Event rate/%5g s", timingBinWidth),
1643 numTimingBins_,
1644 0.,
1645 timingEndInSeconds);
1646 allFedsFreqTimeVsPhiHist_ =
1647 new TH2F("FrequencyAllEventsInTimeVsPhi",
1648 Form("Time of Cosmic Events vs iPhi; iPhi;Time (s)/%5g s", timingBinWidth * 360.),
1649 360,
1650 1.,
1651 361.,
1652 numTimingBins_ / 360,
1653 0.,
1654 timingEndInSeconds);
1655 allFedsFreqTimeVsPhiTTHist_ =
1656 new TH2F("FrequencyAllEventsInTimeVsTTPhi",
1657 Form("Time of Cosmic Events vs iPhi (TT bins); iPhi;Time (s)/%5g s", timingBinWidth * 72.),
1658 72,
1659 1.,
1660 361.,
1661 numTimingBins_ / 72,
1662 0.,
1663 timingEndInSeconds);
1664 allFedsFreqTimeVsEtaHist_ =
1665 new TH2F("FrequencyAllEventsInTimeVsEta",
1666 Form("Time of Cosmic Events vs iEta; Time (s)/%5g s; iEta", timingBinWidth * 172.),
1667 numTimingBins_ / 172,
1668 0.,
1669 timingEndInSeconds,
1670 172,
1671 -86.,
1672 86.);
1673 allFedsFreqTimeVsEtaTTHist_ =
1674 new TH2F("FrequencyAllEventsInTimeVsTTEta",
1675 Form("Time of Cosmic Events vs Eta (TT bins);Time (s)/%5g s; iEta", timingBinWidth * 35.),
1676 numTimingBins_ / 35,
1677 0.,
1678 timingEndInSeconds,
1679 35,
1680 ttEtaBins);
1681
1682
1683 allFedsiPhiProfileHist_ = new TH1F("iPhiProfileAllEvents", "iPhi Profile all events;i#phi", 360, 1., 361.);
1684 allFedsiEtaProfileHist_ = new TH1F("iEtaProfileAllEvents", "iEta Profile all events;i#eta", 172, -86, 86);
1685
1686 allOccupancy_ = new TH2F("OccupancyAllEvents", "Occupancy all events;i#phi;i#eta", 360, 1., 361., 172, -86, 86);
1687 TrueOccupancy_ =
1688 new TH2F("TrueOccupancyAllEvents", "True Occupancy all events;#phi;#eta", 360, -3.14159, 3.14159, 172, -1.5, 1.5);
1689 allOccupancyCoarse_ =
1690 new TH2F("OccupancyAllEventsCoarse", "Occupancy all events Coarse;i#phi;i#eta", 360 / 5, 1, 361., 35, ttEtaBins);
1691 TrueOccupancyCoarse_ = new TH2F("TrueOccupancyAllEventsCoarse",
1692 "True Occupancy all events Coarse;#phi;#eta",
1693 360 / 5,
1694 -3.14159,
1695 3.14159,
1696 34,
1697 -1.5,
1698 1.5);
1699
1700
1701 allOccupancySingleXtal_ =
1702 new TH2F("OccupancySingleXtal", "Occupancy single xtal clusters;i#phi;i#eta", 360, 1., 361., 172, -86, 86);
1703 energySingleXtalHist_ = new TH1F(
1704 "energy_SingleXtalClusters", "Energy single xtal clusters;Cluster Energy (GeV)", numBins, histRangeMin_, 200.0);
1705
1706 allFedsTimingPhiHist_ = new TH2F("timePhiAllFEDs",
1707 "time vs Phi for all FEDs (TT binning);i#phi;Relative Time (1 clock = 25ns)",
1708 72,
1709 1,
1710 361,
1711 78,
1712 -7,
1713 7);
1714 allFedsTimingPhiEbpHist_ = new TH2F("timePhiEBP",
1715 "time vs Phi for FEDs in EB+ (TT binning) ;i#phi;Relative Time (1 clock = 25ns)",
1716 72,
1717 1,
1718 361,
1719 78,
1720 -7,
1721 7);
1722 allFedsTimingPhiEbmHist_ = new TH2F("timePhiEBM",
1723 "time vs Phi for FEDs in EB- (TT binning);i#phi;Relative Time (1 clock = 25ns)",
1724 72,
1725 1,
1726 361,
1727 78,
1728 -7,
1729 7);
1730 allFedsTimingPhiEtaHist_ =
1731 new TH3F("timePhiEtaAllFEDs",
1732 "(Phi,Eta,time) for all FEDs (SM,M binning);i#phi;i#eta;Relative Time (1 clock = 25ns)",
1733 18,
1734 modPhiBins,
1735 9,
1736 modEtaBins,
1737 78,
1738 timingBins);
1739 allFedsTimingTTHist_ =
1740 new TH3F("timeTTAllFEDs",
1741 "(Phi,Eta,time) for all FEDs (SM,TT binning);i#phi;i#eta;Relative Time (1 clock = 25ns)",
1742 72,
1743 ttPhiBins,
1744 35,
1745 ttEtaBins,
1746 78,
1747 timingBins);
1748 allFedsTimingLMHist_ = new TH2F(
1749 "timeLMAllFEDs", "(LM,time) for all FEDs (SM,LM binning);LM;Relative Time (1 clock = 25ns)", 92, 1, 92, 78, -7, 7);
1750
1751 allFedsTimingEbpHist_ = new TH1F("timeEBP", "time for FEDs in EB+;Relative Time (1 clock = 25ns)", 78, -7, 7);
1752 allFedsTimingEbmHist_ = new TH1F("timeEBM", "time for FEDs in EB-;Relative Time (1 clock = 25ns)", 78, -7, 7);
1753 allFedsTimingEbpTopHist_ =
1754 new TH1F("timeEBPTop", "time for FEDs in EB+ Top;Relative Time (1 clock = 25ns)", 78, -7, 7);
1755 allFedsTimingEbmTopHist_ =
1756 new TH1F("timeEBMTop", "time for FEDs in EB- Top;Relative Time (1 clock = 25ns)", 78, -7, 7);
1757 allFedsTimingEbpBottomHist_ =
1758 new TH1F("timeEBPBottom", "time for FEDs in EB+ Bottom;Relative Time (1 clock = 25ns)", 78, -7, 7);
1759 allFedsTimingEbmBottomHist_ =
1760 new TH1F("timeEBMBottom", "time for FEDs in EB- Bottom;Relative Time (1 clock = 25ns)", 78, -7, 7);
1761
1762 numberofCosmicsHist_ =
1763 new TH1F("numberofCosmicsPerEvent", "Number of cosmics per event;Number of Cosmics", 30, 0, 30);
1764 numberofCosmicsHistEB_ =
1765 new TH1F("numberofCosmicsPerEvent_EB", "Number of cosmics per event EB;Number of Cosmics", 30, 0, 30);
1766
1767 numberofCosmicsWTrackHist_ =
1768 new TH1F("numberofCosmicsWTrackPerEvent", "Number of cosmics with track per event", 30, 0, 30);
1769 numberofCosmicsTopBottomHist_ = new TH1F(
1770 "numberofCosmicsTopBottomPerEvent", "Number of top bottom cosmics per event;Number of Cosmics", 30, 0, 30);
1771 numberofGoodEvtFreq_ = new TH1F("frequencyOfGoodEvents",
1772 "Number of events with cosmic vs Event;Event Number;Number of Good Events/100 Events",
1773 2000,
1774 0,
1775 200000);
1776
1777 numberofCrossedEcalIdsHist_ = new TH1F("numberofCrossedEcalCosmicsPerEvent",
1778 "Number of crossed ECAL cosmics per event;Number of Crossed Cosmics",
1779 10,
1780 0,
1781 10);
1782
1783 allOccupancyExclusiveECAL_ = new TH2F("OccupancyAllEvents_ExclusiveECAL",
1784 "Occupancy all events Exclusive ECAL ;i#phi;i#eta",
1785 360,
1786 1.,
1787 361.,
1788 172,
1789 -86,
1790 86);
1791 allOccupancyCoarseExclusiveECAL_ = new TH2F("OccupancyAllEventsCoarse_ExclusiveECAL",
1792 "Occupancy all events Coarse Exclusive ECAL;i#phi;i#eta",
1793 360 / 5,
1794 ttPhiBins,
1795 35,
1796 ttEtaBins);
1797 allOccupancyECAL_ =
1798 new TH2F("OccupancyAllEvents_ECAL", "Occupancy all events ECAL;i#phi;i#eta", 360, 1., 361., 172, -86, 86);
1799 allOccupancyCoarseECAL_ = new TH2F("OccupancyAllEventsCoarse_ECAL",
1800 "Occupancy all events Coarse ECAL;i#phi;i#eta",
1801 360 / 5,
1802 ttPhiBins,
1803 35,
1804 ttEtaBins);
1805 allFedsTimingHistECAL_ =
1806 new TH1F("timeForAllFeds_ECAL", "timeForAllFeds ECAL;Relative Time (1 clock = 25ns)", 78, -7, 7);
1807 allFedsTimingPhiEtaHistECAL_ =
1808 new TH3F("timePhiEtaAllFEDs_ECAL",
1809 "ECAL (Phi,Eta,time) for all FEDs (SM,M binning);i#phi;i#eta;Relative Time (1 clock = 25ns)",
1810 18,
1811 modPhiBins,
1812 9,
1813 modEtaBins,
1814 78,
1815 timingBins);
1816 allFedsTimingTTHistECAL_ =
1817 new TH3F("timeTTAllFEDs_ECAL",
1818 "ECAL (Phi,Eta,time) for all FEDs (SM,TT binning);i#phi;i#eta;Relative Time (1 clock = 25ns)",
1819 72,
1820 ttPhiBins,
1821 35,
1822 ttEtaBins,
1823 78,
1824 timingBins);
1825 allFedsTimingLMHistECAL_ = new TH2F("timeLMAllFEDs_ECAL",
1826 "ECAL (LM,time) for all FEDs (SM,LM binning);LM;Relative Time (1 clock = 25ns)",
1827 92,
1828 1,
1829 92,
1830 78,
1831 -7,
1832 7);
1833
1834 allOccupancyExclusiveDT_ = new TH2F(
1835 "OccupancyAllEvents_ExclusiveDT", "Occupancy all events Exclusive DT;i#phi;i#eta", 360, 1., 361., 172, -86, 86);
1836 allOccupancyCoarseExclusiveDT_ = new TH2F("OccupancyAllEventsCoarse_ExclusiveDT",
1837 "Occupancy all events Coarse Exclusive DT;i#phi;i#eta",
1838 360 / 5,
1839 1,
1840 361.,
1841 35,
1842 ttEtaBins);
1843 allOccupancyDT_ =
1844 new TH2F("OccupancyAllEvents_DT", "Occupancy all events DT;i#phi;i#eta", 360, 1., 361., 172, -86, 86);
1845 allOccupancyCoarseDT_ = new TH2F(
1846 "OccupancyAllEventsCoarse_DT", "Occupancy all events Coarse DT;i#phi;i#eta", 360 / 5, 1, 361., 35, ttEtaBins);
1847 allFedsTimingHistDT_ = new TH1F("timeForAllFeds_DT", "timeForAllFeds DT;Relative Time (1 clock = 25ns)", 78, -7, 7);
1848 allFedsTimingPhiEtaHistDT_ =
1849 new TH3F("timePhiEtaAllFEDs_DT",
1850 "DT (Phi,Eta,time) for all FEDs (SM,M binning);i#phi;i#eta;Relative Time (1 clock = 25ns)",
1851 18,
1852 modPhiBins,
1853 9,
1854 modEtaBins,
1855 78,
1856 timingBins);
1857 allFedsTimingTTHistDT_ =
1858 new TH3F("timeTTAllFEDs_DT",
1859 "DT (Phi,Eta,time) for all FEDs (SM,TT binning);i#phi;i#eta;Relative Time (1 clock = 25ns)",
1860 72,
1861 ttPhiBins,
1862 35,
1863 ttEtaBins,
1864 78,
1865 timingBins);
1866 allFedsTimingLMHistDT_ = new TH2F("timeLMAllFEDs_DT",
1867 "DT (LM,time) for all FEDs (SM,LM binning);LM;Relative Time (1 clock = 25ns)",
1868 92,
1869 1,
1870 92,
1871 78,
1872 -7,
1873 7);
1874
1875 allOccupancyExclusiveRPC_ = new TH2F(
1876 "OccupancyAllEvents_ExclusiveRPC", "Occupancy all events Exclusive RPC;i#phi;i#eta", 360, 1., 361., 172, -86, 86);
1877 allOccupancyCoarseExclusiveRPC_ = new TH2F("OccupancyAllEventsCoarse_ExclusiveRPC",
1878 "Occupancy all events Coarse Exclusive RPC;i#phi;i#eta",
1879 360 / 5,
1880 1,
1881 361.,
1882 35,
1883 ttEtaBins);
1884 allOccupancyRPC_ =
1885 new TH2F("OccupancyAllEvents_RPC", "Occupancy all events RPC;i#phi;i#eta", 360, 1., 361., 172, -86, 86);
1886 allOccupancyCoarseRPC_ = new TH2F(
1887 "OccupancyAllEventsCoarse_RPC", "Occupancy all events Coarse RPC;i#phi;i#eta", 360 / 5, 1, 361., 35, ttEtaBins);
1888 allFedsTimingHistRPC_ =
1889 new TH1F("timeForAllFeds_RPC", "timeForAllFeds RPC;Relative Time (1 clock = 25ns)", 78, -7, 7);
1890 allFedsTimingPhiEtaHistRPC_ =
1891 new TH3F("timePhiEtaAllFEDs_RPC",
1892 "RPC (Phi,Eta,time) for all FEDs (SM,M binning);i#phi;i#eta;Relative Time (1 clock = 25ns)",
1893 18,
1894 modPhiBins,
1895 9,
1896 modEtaBins,
1897 78,
1898 timingBins);
1899 allFedsTimingTTHistRPC_ =
1900 new TH3F("timeTTAllFEDs_RPC",
1901 "RPC (Phi,Eta,time) for all FEDs (SM,TT binning);i#phi;i#eta;Relative Time (1 clock = 25ns)",
1902 72,
1903 ttPhiBins,
1904 35,
1905 ttEtaBins,
1906 78,
1907 timingBins);
1908 allFedsTimingLMHistRPC_ = new TH2F("timeLMAllFEDs_RPC",
1909 "RPC (LM,time) for all FEDs (SM,LM binning);LM;Relative Time (1 clock = 25ns)",
1910 92,
1911 1,
1912 92,
1913 78,
1914 -7,
1915 7);
1916
1917 allOccupancyExclusiveCSC_ = new TH2F(
1918 "OccupancyAllEvents_ExclusiveCSC", "Occupancy all events Exclusive CSC;i#phi;i#eta", 360, 1., 361., 172, -86, 86);
1919 allOccupancyCoarseExclusiveCSC_ = new TH2F("OccupancyAllEventsCoarse_ExclusiveCSC",
1920 "Occupancy all events Coarse Exclusive CSC;i#phi;i#eta",
1921 360 / 5,
1922 1,
1923 361.,
1924 35,
1925 ttEtaBins);
1926 allOccupancyCSC_ =
1927 new TH2F("OccupancyAllEvents_CSC", "Occupancy all events CSC;i#phi;i#eta", 360, 1., 361., 172, -86, 86);
1928 allOccupancyCoarseCSC_ = new TH2F(
1929 "OccupancyAllEventsCoarse_CSC", "Occupancy all events Coarse CSC;i#phi;i#eta", 360 / 5, 1, 361., 35, ttEtaBins);
1930 allFedsTimingHistCSC_ =
1931 new TH1F("timeForAllFeds_CSC", "timeForAllFeds CSC;Relative Time (1 clock = 25ns)", 78, -7, 7);
1932 allFedsTimingPhiEtaHistCSC_ =
1933 new TH3F("timePhiEtaAllFEDs_CSC",
1934 "CSC (Phi,Eta,time) for all FEDs (SM,M binning);i#phi;i#eta;Relative Time (1 clock = 25ns)",
1935 18,
1936 modPhiBins,
1937 9,
1938 modEtaBins,
1939 78,
1940 timingBins);
1941 allFedsTimingTTHistCSC_ =
1942 new TH3F("timeTTAllFEDs_CSC",
1943 "CSC (Phi,Eta,time) for all FEDs (SM,TT binning);i#phi;i#eta;Relative Time (1 clock = 25ns)",
1944 72,
1945 ttPhiBins,
1946 35,
1947 ttEtaBins,
1948 78,
1949 timingBins);
1950 allFedsTimingLMHistCSC_ = new TH2F("timeLMAllFEDs_CSC",
1951 "CSC (LM,time) for all FEDs (SM,LM binning);LM;Relative Time (1 clock = 25ns)",
1952 92,
1953 1,
1954 62,
1955 78,
1956 -7,
1957 7);
1958
1959 allOccupancyExclusiveHCAL_ = new TH2F("OccupancyAllEvents_ExclusiveHCAL",
1960 "Occupancy all events Exclusive HCAL;i#phi;i#eta",
1961 360,
1962 1.,
1963 361.,
1964 172,
1965 -86,
1966 86);
1967 allOccupancyCoarseExclusiveHCAL_ = new TH2F("OccupancyAllEventsCoarse_ExclusiveHCAL",
1968 "Occupancy all events Coarse Exclusive HCAL;i#phi;i#eta",
1969 360 / 5,
1970 1,
1971 361.,
1972 35,
1973 ttEtaBins);
1974 allOccupancyHCAL_ =
1975 new TH2F("OccupancyAllEvents_HCAL", "Occupancy all events HCAL;i#phi;i#eta", 360, 1., 361., 172, -86, 86);
1976 allOccupancyCoarseHCAL_ = new TH2F(
1977 "OccupancyAllEventsCoarse_HCAL", "Occupancy all events Coarse HCAL;i#phi;i#eta", 360 / 5, 1, 361., 35, ttEtaBins);
1978 allFedsTimingHistHCAL_ =
1979 new TH1F("timeForAllFeds_HCAL", "timeForAllFeds HCAL;Relative Time (1 clock = 25ns)", 78, -7, 7);
1980 allFedsTimingPhiEtaHistHCAL_ =
1981 new TH3F("timePhiEtaAllFEDs_HCAL",
1982 "HCAL (Phi,Eta,time) for all FEDs (SM,M binning);i#phi;i#eta;Relative Time (1 clock = 25ns)",
1983 18,
1984 modPhiBins,
1985 9,
1986 modEtaBins,
1987 78,
1988 timingBins);
1989 allFedsTimingTTHistHCAL_ =
1990 new TH3F("timeTTAllFEDs_HCAL",
1991 "HCAL (Phi,Eta,time) for all FEDs (SM,TT binning);i#phi;i#eta;Relative Time (1 clock = 25ns)",
1992 72,
1993 ttPhiBins,
1994 35,
1995 ttEtaBins,
1996 78,
1997 timingBins);
1998 allFedsTimingLMHistHCAL_ = new TH2F("timeLMAllFEDs_HCAL",
1999 "HCAL (LM,time) for all FEDs (SM,LM binning);LM;Relative Time (1 clock = 25ns)",
2000 92,
2001 1,
2002 92,
2003 78,
2004 -7,
2005 7);
2006
2007 TrueBCOccupancy_ = new TH2F(
2008 "BCTrueOccupancyAllEvents", "True SB Occupancy all events;#phi;#eta", 360, -3.14159, 3.14159, 172, -1.5, 1.5);
2009 TrueBCOccupancyCoarse_ = new TH2F("BCTrueOccupancyAllEventsCoarse",
2010 "True BC Occupancy all events Coarse;#phi;#eta",
2011 360 / 5,
2012 -3.14159,
2013 3.14159,
2014 34,
2015 -1.5,
2016 1.5);
2017
2018 numberofBCinSC_ =
2019 new TH1F("numberofBCinSC", "Number of Basic Clusters in Super Cluster;Num Basic Clusters", 20, 0, 20);
2020 numberofBCinSCphi_ = new TH2F("numberofBCinSCphi",
2021 "Number of Basic Clusters in Super Cluster;phi;Num Basic Clusters",
2022 360 / 5,
2023 -3.14159,
2024 3.14159,
2025 20,
2026 0,
2027 20);
2028
2029 allFedsTimingHistEcalMuon_ =
2030 new TH1F("timeForAllFeds_EcalMuon", "timeForAllFeds Ecal+Muon;Relative Time (1 clock = 25ns)", 78, -7, 7);
2031
2032 triggerHist_ = new TH1F("triggerHist", "Trigger Number", 5, 0, 5);
2033 triggerHist_->GetXaxis()->SetBinLabel(1, "ECAL");
2034 triggerHist_->GetXaxis()->SetBinLabel(2, "HCAL");
2035 triggerHist_->GetXaxis()->SetBinLabel(3, "DT");
2036 triggerHist_->GetXaxis()->SetBinLabel(4, "RPC");
2037 triggerHist_->GetXaxis()->SetBinLabel(5, "CSC");
2038
2039 triggerExclusiveHist_ = new TH1F("triggerExclusiveHist", "Trigger Number (Mutually Exclusive)", 5, 0, 5);
2040 triggerExclusiveHist_->GetXaxis()->SetBinLabel(1, "ECAL");
2041 triggerExclusiveHist_->GetXaxis()->SetBinLabel(2, "HCAL");
2042 triggerExclusiveHist_->GetXaxis()->SetBinLabel(3, "DT");
2043 triggerExclusiveHist_->GetXaxis()->SetBinLabel(4, "RPC");
2044 triggerExclusiveHist_->GetXaxis()->SetBinLabel(5, "CSC");
2045
2046 runNumberHist_ = new TH1F("runNumberHist", "Run Number", 1, 0, 1);
2047
2048 deltaRHist_ = new TH1F("deltaRHist", "deltaR", 500, -0.5, 499.5);
2049 deltaEtaHist_ = new TH1F("deltaIEtaHist", "deltaIEta", 170, -85.5, 84.5);
2050 deltaPhiHist_ = new TH1F("deltaIPhiHist", "deltaIPhi", 720, -360.5, 359.5);
2051 ratioAssocTracksHist_ = new TH1F("ratioAssocTracks", "num assoc. tracks/tracks through Ecal", 11, 0, 1.1);
2052 ratioAssocClustersHist_ = new TH1F("ratioAssocClusters", "num assoc. clusters/total clusters", 11, 0, 1.1);
2053 trackAssoc_muonsEcal_ = new TH2F(
2054 "trackAssoc_muonsEcal", "Map of muon hits in Ecal", 360, 1., 361., 172, -86, 86);
2055 deltaEtaDeltaPhiHist_ =
2056 new TH2F("deltaEtaDeltaPhi", "Delta ieta vs. delta iphi", 170, -85.5, 84.5, 720, -360.5, 359.5);
2057 seedTrackEtaHist_ = new TH2F("seedTrackEta", "track ieta vs. seed ieta", 170, -85.5, 84.5, 170, -85.5, 84.5);
2058 seedTrackPhiHist_ = new TH2F("seedTrackPhi", "track iphi vs. seed iphi", 720, -360.5, 359.5, 720, -360.5, 359.5);
2059
2060 dccEventVsBxHist_ = new TH2F("dccEventVsBx", "DCC Runtype vs. bunch crossing", 3600, 0, 3600, 24, 0, 24);
2061 dccBXErrorByFEDHist_ = new TH1F("dccBXErrorByFED", "Incorrect BX number by FED", 54, 601, 655);
2062 dccOrbitErrorByFEDHist_ = new TH1F("dccOrbitErrorByFED", "Incorrect orbit number by FED", 54, 601, 655);
2063 dccRuntypeErrorByFEDHist_ = new TH1F("dccRuntypeErrorByFED", "Incorrect DCC Runtype by FED", 54, 601, 655);
2064 dccRuntypeHist_ = new TH1F("dccRuntype", "DCC Runtype frequency", 24, 0, 24);
2065 dccErrorVsBxHist_ = new TH2F("dccErrorVsBX", "DCC Errors vs. BX", 3600, 0, 3600, 3, 0, 3);
2066
2067 hcalEnergy_HBHE_ = new TH1F("hcalEnergy_HBHE", "RecHit Energy HBHE", 440, -10, 100);
2068 hcalEnergy_HF_ = new TH1F("hcalEnergy_HF", "RecHit Energy HF", 440, -10, 100);
2069 hcalEnergy_HO_ = new TH1F("hcalEnergy_HO", "RecHit Energy HO", 440, -10, 100);
2070 hcalHEHBecalEB_ =
2071 new TH2F("hcalHEHBecalEB", "HCAL HBHE RecHit energy vs ECAL EB energy", numBins, histRangeMin_, 300.0, 40, -5, 5);
2072
2073 NumXtalsInClusterHist_ = new TH1F("NumXtalsInClusterAllHist", "Number of Xtals in Cluster;NumXtals", 150, 0, 150);
2074 numxtalsVsEnergy_ = new TH2F("NumXtalsVsEnergy",
2075 "Number of Xtals in Cluster vs Energy;Energy (GeV);Number of Xtals in Cluster",
2076 numBins,
2077 histRangeMin_,
2078 histRangeMax_,
2079 150,
2080 0,
2081 150);
2082 numxtalsVsHighEnergy_ = new TH2F("NumXtalsVsHighEnergy",
2083 "Number of Xtals in Cluster vs Energy;Energy (GeV);Number of Xtals in Cluster",
2084 numBins,
2085 histRangeMin_,
2086 200.,
2087 150,
2088 0,
2089 150);
2090
2091
2092 allOccupancyHighEnergy_ =
2093 new TH2F("OccupancyHighEnergyEvents", "Occupancy high energy events;i#phi;i#eta", 360, 1., 361., 172, -86, 86);
2094 allOccupancyHighEnergyCoarse_ = new TH2F("OccupancyHighEnergyEventsCoarse",
2095 "Occupancy high energy events Coarse;i#phi;i#eta",
2096 72,
2097 ttPhiBins,
2098 35,
2099 ttEtaBins);
2100 allFedsOccupancyHighEnergyHist_ = new TH3F("OccupancyHighEnergyEvents3D",
2101 "(Phi,Eta,energy) for all high energy events;i#phi;i#eta;energy (GeV)",
2102 18,
2103 modPhiBins,
2104 9,
2105 modEtaBins,
2106 10,
2107 highEBins);
2108 allFedsNumXtalsInClusterHist_ =
2109 new TH1F("NumActiveXtalsInClusterAllHist", "Number of active Xtals in Cluster;NumXtals", 100, 0, 100);
2110
2111 HighEnergy_NumXtal = new TH1F("HighEnergy_NumXtal", "Num crystals in high E clusters;num crystals", 150, 0, 150);
2112 HighEnergy_NumXtalFedId = new TH2F(
2113 "HighEnergy_NumXtalFedId", "Num crystals in cluster vs FedId;FedId;num crystals", 36, 610., 645., 150, 0, 150);
2114 HighEnergy_NumXtaliphi = new TH2F(
2115 "HighEnergy_NumXtaliphi", "Num crystals in cluster vs iphi;i#phi;num crystals", 360, 1., 361., 150, 0, 150);
2116 HighEnergy_energy3D = new TH3F("HighEnergy_energy3D",
2117 "(Phi,Eta,energy) for all high energy events;i#phi;i#eta;energy (GeV)",
2118 72,
2119 ttPhiBins,
2120 35,
2121 ttEtaBins,
2122 10,
2123 highEBins);
2124
2125 HighEnergy_energyNumXtal = new TH2F("HighEnergy_energyNumXtal",
2126 "Energy in cluster vs Num crystals in cluster;num crystals;energy",
2127 150,
2128 0,
2129 150,
2130 200,
2131 0.,
2132 200.);
2133
2134 HighEnergy_bestSeed = new TH1F("HighEnergy_bestSeedEnergy", "BestSeed Energy from TrackAss", 200, 0., 200.);
2135 HighEnergy_bestSeedOccupancy = new TH2F(
2136 "HighEnergy_bestSeedOccupancy", "Occupancy HighEn events from TrackAss;i#phi;i#eta", 360, 1., 361., 172, -86, 86);
2137
2138 HighEnergy_numClusHighEn = new TH1F("HighEnergy_numClusHighEn", "Num High Energy Clusters", 7, 0, 7);
2139 HighEnergy_ratioClusters =
2140 new TH1F("HighEnergy_ratioClusters", "Num High Energy Clusters/Num tot Clusters", 100, 0., 1.1);
2141
2142 HighEnergy_numRecoTrackBarrel = new TH1F("HighEnergy_numRecoTracksBarrel", "Num BarrelRecoTracks", 10, 0, 10);
2143 HighEnergy_TracksAngle = new TH1F("HighEnergy_TracksAngle", "Angle between tracks", 720, 0., 180.);
2144 HighEnergy_TracksAngleTopBottom =
2145 new TH1F("HighEnergy_TopBottomTracksAngle", "Angle between top-bottom tracks", 720, 0., 180.);
2146
2147 HighEnergy_2GeV_occuCoarse = new TH2F("HighEnergy_occu2GeV_Coarse",
2148 "Occupancy high energy events with more than 2 GeV;i#phi;i#eta",
2149 72,
2150 ttPhiBins,
2151 35,
2152 ttEtaBins);
2153 HighEnergy_2GeV_occu3D = new TH3F("HighEnergy_2GeV_energy3D",
2154 "(iphi,ieta,energy) for all high energy events w > 10 GeV;i#phi;i#eta;energy (GeV)",
2155 72,
2156 ttPhiBins,
2157 35,
2158 ttEtaBins,
2159 10,
2160 highEBins);
2161 HighEnergy_100GeV_occuCoarse = new TH2F("HighEnergy_occu100GeV_Coarse",
2162 "Occupancy high energy events with more than 100 GeV;i#phi;i#eta",
2163 72,
2164 ttPhiBins,
2165 35,
2166 ttEtaBins);
2167 HighEnergy_100GeV_occu3D =
2168 new TH3F("HighEnergy_100GeV_energy3D",
2169 "(iphi,ieta,energy) for all high energy events more than 100 GeV;i#phi;i#eta;energy (GeV)",
2170 72,
2171 ttPhiBins,
2172 35,
2173 ttEtaBins,
2174 10,
2175 highEBins);
2176 HighEnergy_0tracks_occu3D = new TH3F("HighEnergy_0Tracks_energy3D",
2177 "(iphi,ieta,energy) for all events with 0 tracks;i#phi;i#eta;energy (GeV)",
2178 72,
2179 ttPhiBins,
2180 35,
2181 ttEtaBins,
2182 10,
2183 highEBins);
2184 HighEnergy_1tracks_occu3D = new TH3F("HighEnergy_1Tracks_energy3D",
2185 "(iphi,ieta,energy) for all events with 1 tracks;i#phi;i#eta;energy (GeV)",
2186 72,
2187 ttPhiBins,
2188 35,
2189 ttEtaBins,
2190 10,
2191 highEBins);
2192 HighEnergy_2tracks_occu3D = new TH3F("HighEnergy_2Tracks_energy3D",
2193 "(iphi,ieta,energy) for all events with 2 tracks;i#phi;i#eta;energy (GeV)",
2194 72,
2195 ttPhiBins,
2196 35,
2197 ttEtaBins,
2198 10,
2199 highEBins);
2200 HighEnergy_0tracks_occu3DXtal = new TH3F("HighEnergy_0Tracks_energy3DXtal",
2201 "(iphi,ieta,energy) for all events with 0 tracks;i#phi;i#eta;energy (GeV)",
2202 360,
2203 1.,
2204 361.,
2205 172,
2206 -86,
2207 86,
2208 200,
2209 0.,
2210 200.);
2211 HighEnergy_1tracks_occu3DXtal = new TH3F("HighEnergy_1Tracks_energy3DXtal",
2212 "(iphi,ieta,energy) for all events with 1 tracks;i#phi;i#eta;energy (GeV)",
2213 360,
2214 1.,
2215 361.,
2216 172,
2217 -86,
2218 86,
2219 200,
2220 0.,
2221 200.);
2222 HighEnergy_2tracks_occu3DXtal = new TH3F("HighEnergy_2Tracks_energy3DXtal",
2223 "(iphi,ieta,energy) for all events with 2 tracks;i#phi;i#eta;energy (GeV)",
2224 360,
2225 1.,
2226 361.,
2227 172,
2228 -86,
2229 86,
2230 200,
2231 0.,
2232 200.);
2233
2234
2235
2236
2237 EEM_FedsSeedEnergyHist_ =
2238 new TH1F("SeedEnergyAllFEDs", "Seed Energy for EEM Feds; Seed Energy (GeV)", 200, histRangeMin_, 10.0);
2239
2240 EEM_AllOccupancyCoarse_ =
2241 new TH2F("OccupancyAllEventsCoarse", "Occupancy all events Coarse EEM;ix;iy", 20, 0, 100, 20, 0, 100);
2242 EEM_AllOccupancy_ = new TH2F("OccupancyAllEvents", "Occupancy all events EEM;ix;iy", 100, 0, 100, 100, 0, 100);
2243 EEM_FedsenergyHist_ =
2244 new TH1F("energy_AllClusters", "energy_AllClusters_EEM;Cluster Energy (GeV)", numBins, histRangeMin_, 10.0);
2245 EEM_FedsenergyHighHist_ = new TH1F(
2246 "energyHigh_AllClusters", "energyHigh_AllClusters in EEM;Cluster Energy (GeV)", numBins, histRangeMin_, 200.0);
2247 EEM_FedsenergyOnlyHighHist_ = new TH1F("energyHigh_HighEnergyClusters",
2248 "energy of High Energy Clusters in EEM;Cluster Energy (GeV)",
2249 numBins,
2250 histRangeMin_,
2251 200.0);
2252 EEM_FedsE2Hist_ =
2253 new TH1F("E2_AllClusters", "E2_AllClusters_EEM;Seed+highest neighbor energy (GeV)", numBins, histRangeMin_, 10.0);
2254 EEM_FedsE2vsE1Hist_ = new TH2F("E2vsE1_AllClusters",
2255 "E2vsE1_AllClusters_EEM;Seed Energy (GeV);Seed+highest neighbor energy (GeV)",
2256 numBins,
2257 histRangeMin_,
2258 10.0,
2259 numBins,
2260 histRangeMin_,
2261 10.0);
2262 EEM_FedsenergyvsE1Hist_ = new TH2F("energyvsE1_AllClusters",
2263 "energyvsE1_AllClusters_EEM;Seed Energy (GeV);Energy(GeV)",
2264 numBins,
2265 histRangeMin_,
2266 10.0,
2267 numBins,
2268 histRangeMin_,
2269 10.0);
2270 EEM_FedsTimingHist_ = new TH1F("timeForAllFeds", "timeForAllFeds_EEM;Relative Time (1 clock = 25ns)", 78, -7, 7);
2271 EEM_numberofCosmicsHist_ =
2272 new TH1F("numberofCosmicsPerEvent", "Number of cosmics per event EEM;Number of Cosmics", 30, 0, 30);
2273
2274 EEM_FedsTimingVsAmpHist_ = new TH2F("timeVsAmpAllEvents",
2275 "time Vs Amp All Events EEM;Relative Time (1 clock = 25ns);Amplitude (GeV)",
2276 78,
2277 -7,
2278 7,
2279 numBins,
2280 histRangeMin_,
2281 10.0);
2282 EEM_FedsTimingTTHist_ = new TH3F("timeTTAllFEDs",
2283 "(ix,iy,time) for all FEDs (SM,TT binning) EEM;ix;iy;Relative Time (1 clock = 25ns)",
2284 20,
2285 0,
2286 100,
2287 20,
2288 0,
2289 100,
2290 78,
2291 -7,
2292 7);
2293
2294 EEM_OccupancySingleXtal_ =
2295 new TH2F("OccupancySingleXtal", "Occupancy single xtal clusters EEM;ix;iy", 100, 0, 100, 100, 0, 100);
2296 EEM_energySingleXtalHist_ = new TH1F("energy_SingleXtalClusters",
2297 "Energy single xtal clusters EEM;Cluster Energy (GeV)",
2298 numBins,
2299 histRangeMin_,
2300 200.0);
2301
2302 EEM_OccupancyExclusiveECAL_ = new TH2F(
2303 "OccupancyAllEvents_ExclusiveECAL", "Occupancy all events Exclusive ECAL EEM;ix;iy", 100, 0, 100, 100, 0, 100);
2304 EEM_OccupancyCoarseExclusiveECAL_ = new TH2F("OccupancyAllEventsCoarse_ExclusiveECAL",
2305 "Occupancy all events Coarse Exclusive ECAL EEM;ix;iy",
2306 20,
2307 0,
2308 100,
2309 20,
2310 0,
2311 100);
2312 EEM_OccupancyECAL_ =
2313 new TH2F("OccupancyAllEvents_ECAL", "Occupancy all events ECAL EEM;ix;iy", 100, 0, 100, 100, 0, 100);
2314 EEM_OccupancyCoarseECAL_ =
2315 new TH2F("OccupancyAllEventsCoarse_ECAL", "Occupancy all events Coarse ECAL EEM;ix;iy", 20, 0, 100, 20, 0, 100);
2316 EEM_FedsTimingHistECAL_ =
2317 new TH1F("timeForAllFeds_ECAL", "timeForAllFeds ECAL EEM;Relative Time (1 clock = 25ns)", 78, -7, 7);
2318 EEM_FedsTimingTTHistECAL_ =
2319 new TH3F("timeTTAllFEDs_ECAL",
2320 "(ix,iy,time) for all FEDs (SM,TT binning) ECAL EEM;ix;iy;Relative Time (1 clock = 25ns)",
2321 20,
2322 0,
2323 100,
2324 20,
2325 0,
2326 100,
2327 78,
2328 -7,
2329 7);
2330
2331 EEM_OccupancyExclusiveDT_ = new TH2F(
2332 "OccupancyAllEvents_ExclusiveDT", "Occupancy all events Exclusive DT EEM;ix;iy", 100, 0, 100, 100, 0, 100);
2333 EEM_OccupancyCoarseExclusiveDT_ = new TH2F("OccupancyAllEventsCoarse_ExclusiveDT",
2334 "Occupancy all events Coarse Exclusive DT EEM;ix;iy",
2335 20,
2336 0,
2337 100,
2338 20,
2339 0,
2340 100);
2341 EEM_OccupancyDT_ = new TH2F("OccupancyAllEvents_DT", "Occupancy all events DT EEM;ix;iy", 100, 0, 100, 100, 0, 100);
2342 EEM_OccupancyCoarseDT_ =
2343 new TH2F("OccupancyAllEventsCoarse_DT", "Occupancy all events Coarse DT EEM;ix;iy", 20, 0, 100, 20, 0, 100);
2344 EEM_FedsTimingHistDT_ =
2345 new TH1F("timeForAllFeds_DT", "timeForAllFeds DT EEM;Relative Time (1 clock = 25ns)", 78, -7, 7);
2346 EEM_FedsTimingTTHistDT_ =
2347 new TH3F("timeTTAllFEDs_DT",
2348 "(ix,iy,time) for all FEDs (SM,TT binning) DT EEM;ix;iy;Relative Time (1 clock = 25ns)",
2349 20,
2350 0,
2351 100,
2352 20,
2353 0,
2354 100,
2355 78,
2356 -7,
2357 7);
2358
2359 EEM_OccupancyExclusiveRPC_ = new TH2F(
2360 "OccupancyAllEvents_ExclusiveRPC", "Occupancy all events Exclusive RPC EEM;ix;iy", 100, 0, 100, 100, 0, 100);
2361 EEM_OccupancyCoarseExclusiveRPC_ = new TH2F("OccupancyAllEventsCoarse_ExclusiveRPC",
2362 "Occupancy all events Coarse Exclusive RPC EEM;ix;iy",
2363 20,
2364 0,
2365 100,
2366 20,
2367 0,
2368 100);
2369 EEM_OccupancyRPC_ =
2370 new TH2F("OccupancyAllEvents_RPC", "Occupancy all events RPC EEM;ix;iy", 100, 0, 100, 100, 0, 100);
2371 EEM_OccupancyCoarseRPC_ =
2372 new TH2F("OccupancyAllEventsCoarse_RPC", "Occupancy all events Coarse RPC EEM;ix;iy", 20, 0, 100, 20, 0, 100);
2373 EEM_FedsTimingHistRPC_ =
2374 new TH1F("timeForAllFeds_RPC", "timeForAllFeds RPC EEM;Relative Time (1 clock = 25ns)", 78, -7, 7);
2375 EEM_FedsTimingTTHistRPC_ =
2376 new TH3F("timeTTAllFEDs_RPC",
2377 "(ix,iy,time) for all FEDs (SM,TT binning) RPC EEM;ix;iy;Relative Time (1 clock = 25ns)",
2378 20,
2379 0,
2380 100,
2381 20,
2382 0,
2383 100,
2384 78,
2385 -7,
2386 7);
2387
2388 EEM_OccupancyExclusiveCSC_ = new TH2F(
2389 "OccupancyAllEvents_ExclusiveCSC", "Occupancy all events Exclusive CSC EEM;ix;iy", 100, 0, 100, 100, 0, 100);
2390 EEM_OccupancyCoarseExclusiveCSC_ = new TH2F("OccupancyAllEventsCoarse_ExclusiveCSC",
2391 "Occupancy all events Coarse Exclusive CSC EEM;ix;iy",
2392 20,
2393 0,
2394 100,
2395 20,
2396 0,
2397 100);
2398 EEM_OccupancyCSC_ =
2399 new TH2F("OccupancyAllEvents_CSC", "Occupancy all events CSC EEM;ix;iy", 100, 0, 100, 100, 0, 100);
2400 EEM_OccupancyCoarseCSC_ =
2401 new TH2F("OccupancyAllEventsCoarse_CSC", "Occupancy all events Coarse CSC EEM;ix;iy", 20, 0, 100, 20, 0, 100);
2402 EEM_FedsTimingHistCSC_ =
2403 new TH1F("timeForAllFeds_CSC", "timeForAllFeds CSC EEM;Relative Time (1 clock = 25ns)", 78, -7, 7);
2404 EEM_FedsTimingTTHistCSC_ =
2405 new TH3F("timeTTAllFEDs_CSC",
2406 "(ix,iy,time) for all FEDs (SM,TT binning) CSC EEM;ix;iy;Relative Time (1 clock = 25ns)",
2407 20,
2408 0,
2409 100,
2410 20,
2411 0,
2412 100,
2413 78,
2414 -7,
2415 7);
2416
2417 EEM_OccupancyExclusiveHCAL_ = new TH2F(
2418 "OccupancyAllEvents_ExclusiveHCAL", "Occupancy all events Exclusive HCAL EEM;ix;iy", 100, 0, 100, 100, 0, 100);
2419 EEM_OccupancyCoarseExclusiveHCAL_ = new TH2F("OccupancyAllEventsCoarse_ExclusiveHCAL",
2420 "Occupancy all events Coarse Exclusive HCAL EEM;ix;iy",
2421 20,
2422 0,
2423 100,
2424 20,
2425 0,
2426 100);
2427 EEM_OccupancyHCAL_ =
2428 new TH2F("OccupancyAllEvents_HCAL", "Occupancy all events HCAL EEM;ix;iy", 100, 0, 100, 100, 0, 100);
2429 EEM_OccupancyCoarseHCAL_ =
2430 new TH2F("OccupancyAllEventsCoarse_HCAL", "Occupancy all events Coarse HCAL EEM;ix;iy", 20, 0, 100, 20, 0, 100);
2431 EEM_FedsTimingHistHCAL_ =
2432 new TH1F("timeForAllFeds_HCAL", "timeForAllFeds HCAL EEM;Relative Time (1 clock = 25ns)", 78, -7, 7);
2433 EEM_FedsTimingTTHistHCAL_ =
2434 new TH3F("timeTTAllFEDs_HCAL",
2435 "(ix,iy,time) for all FEDs (SM,TT binning) HCAL EEM;ix;iy;Relative Time (1 clock = 25ns)",
2436 20,
2437 0,
2438 100,
2439 20,
2440 0,
2441 100,
2442 78,
2443 -7,
2444 7);
2445
2446 EEM_numberofBCinSC_ =
2447 new TH1F("numberofBCinSC", "Number of Basic Clusters in Super Cluster EEM;Num Basic Clusters", 20, 0, 20);
2448
2449 EEM_triggerHist_ = new TH1F("triggerHist", "Trigger Number EEM", 5, 0, 5);
2450 EEM_triggerHist_->GetXaxis()->SetBinLabel(1, "ECAL");
2451 EEM_triggerHist_->GetXaxis()->SetBinLabel(2, "HCAL");
2452 EEM_triggerHist_->GetXaxis()->SetBinLabel(3, "DT");
2453 EEM_triggerHist_->GetXaxis()->SetBinLabel(4, "RPC");
2454 EEM_triggerHist_->GetXaxis()->SetBinLabel(5, "CSC");
2455
2456 EEM_triggerExclusiveHist_ = new TH1F("triggerExclusiveHist", "Trigger Number (Mutually Exclusive) EEM", 5, 0, 5);
2457 triggerExclusiveHist_->GetXaxis()->SetBinLabel(1, "ECAL");
2458 EEM_triggerExclusiveHist_->GetXaxis()->SetBinLabel(2, "HCAL");
2459 EEM_triggerExclusiveHist_->GetXaxis()->SetBinLabel(3, "DT");
2460 EEM_triggerExclusiveHist_->GetXaxis()->SetBinLabel(4, "RPC");
2461 EEM_triggerExclusiveHist_->GetXaxis()->SetBinLabel(5, "CSC");
2462
2463 EEM_NumXtalsInClusterHist_ =
2464 new TH1F("NumXtalsInClusterAllHist", "Number of Xtals in Cluster EEM;NumXtals", 150, 0, 150);
2465 EEM_numxtalsVsEnergy_ = new TH2F("NumXtalsVsEnergy",
2466 "Number of Xtals in Cluster vs Energy EEM;Energy (GeV);Number of Xtals in Cluster",
2467 numBins,
2468 histRangeMin_,
2469 10.0,
2470 150,
2471 0,
2472 150);
2473 EEM_numxtalsVsHighEnergy_ =
2474 new TH2F("NumXtalsVsHighEnergy",
2475 "Number of Xtals in Cluster vs Energy EEM;Energy (GeV);Number of Xtals in Cluster",
2476 numBins,
2477 histRangeMin_,
2478 200.,
2479 150,
2480 0,
2481 150);
2482
2483 EEM_OccupancyHighEnergy_ =
2484 new TH2F("OccupancyHighEnergyEvents", "Occupancy high energy events EEM;ix;iy", 100, 0, 100, 100, 0, 100);
2485 EEM_OccupancyHighEnergyCoarse_ = new TH2F(
2486 "OccupancyHighEnergyEventsCoarse", "Occupancy high energy events Coarse EEM;ix;iy", 20, 0, 100, 20, 0, 100);
2487
2488 EEM_FedsNumXtalsInClusterHist_ =
2489 new TH1F("NumActiveXtalsInClusterAllHist", "Number of active Xtals in Cluster EEM;NumXtals", 100, 0, 100);
2490
2491
2492 EEP_FedsSeedEnergyHist_ =
2493 new TH1F("SeedEnergyAllFEDs", "Seed Energy for EEP Feds; Seed Energy (GeV)", 200, histRangeMin_, 10.0);
2494
2495 EEP_AllOccupancyCoarse_ =
2496 new TH2F("OccupancyAllEventsCoarse", "Occupancy all events Coarse EEP;ix;iy", 20, 0, 100, 20, 0, 100);
2497 EEP_AllOccupancy_ = new TH2F("OccupancyAllEvents", "Occupancy all events EEP;ix;iy", 100, 0, 100, 100, 0, 100);
2498 EEP_FedsenergyHist_ =
2499 new TH1F("energy_AllClusters", "energy_AllClusters_EEP;Cluster Energy (GeV)", numBins, histRangeMin_, 10.0);
2500 EEP_FedsenergyHighHist_ = new TH1F(
2501 "energyHigh_AllClusters", "energyHigh_AllClusters in EEP;Cluster Energy (GeV)", numBins, histRangeMin_, 200.0);
2502 EEP_FedsenergyOnlyHighHist_ = new TH1F("energyHigh_HighEnergyClusters",
2503 "energy of High Energy Clusters in EEP;Cluster Energy (GeV)",
2504 numBins,
2505 histRangeMin_,
2506 200.0);
2507 EEP_FedsE2Hist_ =
2508 new TH1F("E2_AllClusters", "E2_AllClusters_EEP;Seed+highest neighbor energy (GeV)", numBins, histRangeMin_, 10.0);
2509 EEP_FedsE2vsE1Hist_ = new TH2F("E2vsE1_AllClusters",
2510 "E2vsE1_AllClusters_EEP;Seed Energy (GeV);Seed+highest neighbor energy (GeV)",
2511 numBins,
2512 histRangeMin_,
2513 10.0,
2514 numBins,
2515 histRangeMin_,
2516 10.0);
2517 EEP_FedsenergyvsE1Hist_ = new TH2F("energyvsE1_AllClusters",
2518 "energyvsE1_AllClusters_EEP;Seed Energy (GeV);Energy(GeV)",
2519 numBins,
2520 histRangeMin_,
2521 10.0,
2522 numBins,
2523 histRangeMin_,
2524 10.0);
2525 EEP_FedsTimingHist_ = new TH1F("timeForAllFeds", "timeForAllFeds_EEP;Relative Time (1 clock = 25ns)", 78, -7, 7);
2526 EEP_numberofCosmicsHist_ =
2527 new TH1F("numberofCosmicsPerEvent", "Number of cosmics per event EEP;Number of Cosmics", 30, 0, 30);
2528
2529 EEP_FedsTimingVsAmpHist_ = new TH2F("timeVsAmpAllEvents",
2530 "time Vs Amp All Events EEP;Relative Time (1 clock = 25ns);Amplitude (GeV)",
2531 78,
2532 -7,
2533 7,
2534 numBins,
2535 histRangeMin_,
2536 10.0);
2537 EEP_FedsTimingTTHist_ = new TH3F("timeTTAllFEDs",
2538 "(ix,iy,time) for all FEDs (SM,TT binning) EEP;ix;iy;Relative Time (1 clock = 25ns)",
2539 20,
2540 0,
2541 100,
2542 20,
2543 0,
2544 100,
2545 78,
2546 -7,
2547 7);
2548
2549 EEP_OccupancySingleXtal_ =
2550 new TH2F("OccupancySingleXtal", "Occupancy single xtal clusters EEP;ix;iy", 100, 0, 100, 100, 0, 100);
2551 EEP_energySingleXtalHist_ = new TH1F("energy_SingleXtalClusters",
2552 "Energy single xtal clusters EEP;Cluster Energy (GeV)",
2553 numBins,
2554 histRangeMin_,
2555 200.0);
2556
2557 EEP_OccupancyExclusiveECAL_ = new TH2F(
2558 "OccupancyAllEvents_ExclusiveECAL", "Occupancy all events Exclusive ECAL EEP;ix;iy", 100, 0, 100, 100, 0, 100);
2559 EEP_OccupancyCoarseExclusiveECAL_ = new TH2F("OccupancyAllEventsCoarse_ExclusiveECAL",
2560 "Occupancy all events Coarse Exclusive ECAL EEP;ix;iy",
2561 20,
2562 0,
2563 100,
2564 20,
2565 0,
2566 100);
2567 EEP_OccupancyECAL_ =
2568 new TH2F("OccupancyAllEvents_ECAL", "Occupancy all events ECAL EEP;ix;iy", 100, 0, 100, 100, 0, 100);
2569 EEP_OccupancyCoarseECAL_ =
2570 new TH2F("OccupancyAllEventsCoarse_ECAL", "Occupancy all events Coarse ECAL EEP;ix;iy", 20, 0, 100, 20, 0, 100);
2571 EEP_FedsTimingHistECAL_ =
2572 new TH1F("timeForAllFeds_ECAL", "timeForAllFeds ECAL EEP;Relative Time (1 clock = 25ns)", 78, -7, 7);
2573 EEP_FedsTimingTTHistECAL_ =
2574 new TH3F("timeTTAllFEDs_ECAL",
2575 "(ix,iy,time) for all FEDs (SM,TT binning) ECAL EEP;ix;iy;Relative Time (1 clock = 25ns)",
2576 20,
2577 0,
2578 100,
2579 20,
2580 0,
2581 100,
2582 78,
2583 -7,
2584 7);
2585
2586 EEP_OccupancyExclusiveDT_ = new TH2F(
2587 "OccupancyAllEvents_ExclusiveDT", "Occupancy all events Exclusive DT EEP;ix;iy", 100, 0, 100, 100, 0, 100);
2588 EEP_OccupancyCoarseExclusiveDT_ = new TH2F("OccupancyAllEventsCoarse_ExclusiveDT",
2589 "Occupancy all events Coarse Exclusive DT EEP;ix;iy",
2590 20,
2591 0,
2592 100,
2593 20,
2594 0,
2595 100);
2596 EEP_OccupancyDT_ = new TH2F("OccupancyAllEvents_DT", "Occupancy all events DT EEP;ix;iy", 100, 0, 100, 100, 0, 100);
2597 EEP_OccupancyCoarseDT_ =
2598 new TH2F("OccupancyAllEventsCoarse_DT", "Occupancy all events Coarse DT EEP;ix;iy", 20, 0, 100, 20, 0, 100);
2599 EEP_FedsTimingHistDT_ =
2600 new TH1F("timeForAllFeds_DT", "timeForAllFeds DT EEP;Relative Time (1 clock = 25ns)", 78, -7, 7);
2601 EEP_FedsTimingTTHistDT_ =
2602 new TH3F("timeTTAllFEDs_DT",
2603 "(ix,iy,time) for all FEDs (SM,TT binning) DT EEP;ix;iy;Relative Time (1 clock = 25ns)",
2604 20,
2605 0,
2606 100,
2607 20,
2608 0,
2609 100,
2610 78,
2611 -7,
2612 7);
2613
2614 EEP_OccupancyExclusiveRPC_ = new TH2F(
2615 "OccupancyAllEvents_ExclusiveRPC", "Occupancy all events Exclusive RPC EEP;ix;iy", 100, 0, 100, 100, 0, 100);
2616 EEP_OccupancyCoarseExclusiveRPC_ = new TH2F("OccupancyAllEventsCoarse_ExclusiveRPC",
2617 "Occupancy all events Coarse Exclusive RPC EEP;ix;iy",
2618 20,
2619 0,
2620 100,
2621 20,
2622 0,
2623 100);
2624 EEP_OccupancyRPC_ =
2625 new TH2F("OccupancyAllEvents_RPC", "Occupancy all events RPC EEP;ix;iy", 100, 0, 100, 100, 0, 100);
2626 EEP_OccupancyCoarseRPC_ =
2627 new TH2F("OccupancyAllEventsCoarse_RPC", "Occupancy all events Coarse RPC EEP;ix;iy", 20, 0, 100, 20, 0, 100);
2628 EEP_FedsTimingHistRPC_ =
2629 new TH1F("timeForAllFeds_RPC", "timeForAllFeds RPC EEP;Relative Time (1 clock = 25ns)", 78, -7, 7);
2630 EEP_FedsTimingTTHistRPC_ =
2631 new TH3F("timeTTAllFEDs_RPC",
2632 "(ix,iy,time) for all FEDs (SM,TT binning) RPC EEP;ix;iy;Relative Time (1 clock = 25ns)",
2633 20,
2634 0,
2635 100,
2636 20,
2637 0,
2638 100,
2639 78,
2640 -7,
2641 7);
2642
2643 EEP_OccupancyExclusiveCSC_ = new TH2F(
2644 "OccupancyAllEvents_ExclusiveCSC", "Occupancy all events Exclusive CSC EEP;ix;iy", 100, 0, 100, 100, 0, 100);
2645 EEP_OccupancyCoarseExclusiveCSC_ = new TH2F("OccupancyAllEventsCoarse_ExclusiveCSC",
2646 "Occupancy all events Coarse Exclusive CSC EEP;ix;iy",
2647 20,
2648 0,
2649 100,
2650 20,
2651 0,
2652 100);
2653 EEP_OccupancyCSC_ =
2654 new TH2F("OccupancyAllEvents_CSC", "Occupancy all events CSC EEP;ix;iy", 100, 0, 100, 100, 0, 100);
2655 EEP_OccupancyCoarseCSC_ =
2656 new TH2F("OccupancyAllEventsCoarse_CSC", "Occupancy all events Coarse CSC EEP;ix;iy", 20, 0, 100, 20, 0, 100);
2657 EEP_FedsTimingHistCSC_ =
2658 new TH1F("timeForAllFeds_CSC", "timeForAllFeds CSC EEP;Relative Time (1 clock = 25ns)", 78, -7, 7);
2659 EEP_FedsTimingTTHistCSC_ =
2660 new TH3F("timeTTAllFEDs_CSC",
2661 "(ix,iy,time) for all FEDs (SM,TT binning) CSC EEP;ix;iy;Relative Time (1 clock = 25ns)",
2662 20,
2663 0,
2664 100,
2665 20,
2666 0,
2667 100,
2668 78,
2669 -7,
2670 7);
2671
2672 EEP_OccupancyExclusiveHCAL_ = new TH2F(
2673 "OccupancyAllEvents_ExclusiveHCAL", "Occupancy all events Exclusive HCAL EEP;ix;iy", 100, 0, 100, 100, 0, 100);
2674 EEP_OccupancyCoarseExclusiveHCAL_ = new TH2F("OccupancyAllEventsCoarse_ExclusiveHCAL",
2675 "Occupancy all events Coarse Exclusive HCAL EEP;ix;iy",
2676 20,
2677 0,
2678 100,
2679 20,
2680 0,
2681 100);
2682 EEP_OccupancyHCAL_ =
2683 new TH2F("OccupancyAllEvents_HCAL", "Occupancy all events HCAL EEP;ix;iy", 100, 0, 100, 100, 0, 100);
2684 EEP_OccupancyCoarseHCAL_ =
2685 new TH2F("OccupancyAllEventsCoarse_HCAL", "Occupancy all events Coarse HCAL EEP;ix;iy", 20, 0, 100, 20, 0, 100);
2686 EEP_FedsTimingHistHCAL_ =
2687 new TH1F("timeForAllFeds_HCAL", "timeForAllFeds HCAL EEP;Relative Time (1 clock = 25ns)", 78, -7, 7);
2688 EEP_FedsTimingTTHistHCAL_ =
2689 new TH3F("timeTTAllFEDs_HCAL",
2690 "(ix,iy,time) for all FEDs (SM,TT binning) HCAL EEP;ix;iy;Relative Time (1 clock = 25ns)",
2691 20,
2692 0,
2693 100,
2694 20,
2695 0,
2696 100,
2697 78,
2698 -7,
2699 7);
2700
2701 EEP_numberofBCinSC_ =
2702 new TH1F("numberofBCinSC", "Number of Basic Clusters in Super Cluster EEP;Num Basic Clusters", 20, 0, 20);
2703
2704 EEP_triggerHist_ = new TH1F("triggerHist", "Trigger Number EEP", 5, 0, 5);
2705 EEP_triggerHist_->GetXaxis()->SetBinLabel(1, "ECAL");
2706 EEP_triggerHist_->GetXaxis()->SetBinLabel(2, "HCAL");
2707 EEP_triggerHist_->GetXaxis()->SetBinLabel(3, "DT");
2708 EEP_triggerHist_->GetXaxis()->SetBinLabel(4, "RPC");
2709 EEP_triggerHist_->GetXaxis()->SetBinLabel(5, "CSC");
2710
2711 EEP_triggerExclusiveHist_ = new TH1F("triggerExclusiveHist", "Trigger Number (Mutually Exclusive) EEP", 5, 0, 5);
2712 EEP_triggerExclusiveHist_->GetXaxis()->SetBinLabel(1, "ECAL");
2713 EEP_triggerExclusiveHist_->GetXaxis()->SetBinLabel(2, "HCAL");
2714 EEP_triggerExclusiveHist_->GetXaxis()->SetBinLabel(3, "DT");
2715 EEP_triggerExclusiveHist_->GetXaxis()->SetBinLabel(4, "RPC");
2716 EEP_triggerExclusiveHist_->GetXaxis()->SetBinLabel(5, "CSC");
2717
2718 EEP_NumXtalsInClusterHist_ =
2719 new TH1F("NumXtalsInClusterAllHist", "Number of Xtals in Cluster EEP;NumXtals", 150, 0, 150);
2720 EEP_numxtalsVsEnergy_ = new TH2F("NumXtalsVsEnergy",
2721 "Number of Xtals in Cluster vs Energy EEP;Energy (GeV);Number of Xtals in Cluster",
2722 numBins,
2723 histRangeMin_,
2724 10.0,
2725 150,
2726 0,
2727 150);
2728 EEP_numxtalsVsHighEnergy_ =
2729 new TH2F("NumXtalsVsHighEnergy",
2730 "Number of Xtals in Cluster vs Energy EEP;Energy (GeV);Number of Xtals in Cluster",
2731 numBins,
2732 histRangeMin_,
2733 200.,
2734 150,
2735 0,
2736 150);
2737
2738 EEP_OccupancyHighEnergy_ =
2739 new TH2F("OccupancyHighEnergyEvents", "Occupancy high energy events EEP;ix;iy", 100, 0, 100, 100, 0, 100);
2740 EEP_OccupancyHighEnergyCoarse_ = new TH2F(
2741 "OccupancyHighEnergyEventsCoarse", "Occupancy high energy events Coarse EEP;ix;iy", 20, 0, 100, 20, 0, 100);
2742
2743 EEP_FedsNumXtalsInClusterHist_ =
2744 new TH1F("NumActiveXtalsInClusterAllHist", "Number of active Xtals in Cluster EEP;NumXtals", 100, 0, 100);
2745 }
2746
2747 void EcalCosmicsHists::endRun(edm::Run const&, edm::EventSetup const& eventSetup) {}
2748
2749
2750 void EcalCosmicsHists::endJob() {
2751 using namespace std;
2752 if (runInFileName_) {
2753 fileName_ += "-" + intToString(runNum_) + ".graph.root";
2754 } else {
2755 fileName_ += ".root";
2756 }
2757
2758 TFile root_file_(fileName_.c_str(), "RECREATE");
2759
2760 for (map<int, TH1F*>::const_iterator itr = FEDsAndHists_.begin(); itr != FEDsAndHists_.end(); ++itr) {
2761 string dir = fedMap_->getSliceFromFed(itr->first);
2762 TDirectory* FEDdir = gDirectory->mkdir(dir.c_str());
2763 FEDdir->cd();
2764
2765 TH1F* hist = itr->second;
2766 if (hist != nullptr)
2767 hist->Write();
2768 else {
2769 cerr << "EcalCosmicsHists: Error: This shouldn't happen!" << endl;
2770 }
2771
2772 hist = FEDsAndTimingHists_[itr->first];
2773 if (hist != nullptr)
2774 hist->Write();
2775 else {
2776 cerr << "EcalCosmicsHists: Error: This shouldn't happen!" << endl;
2777 }
2778
2779 hist = FEDsAndFrequencyHists_[itr->first];
2780 hist->Write();
2781
2782 hist = FEDsAndiPhiProfileHists_[itr->first];
2783 hist->Write();
2784
2785 hist = FEDsAndiEtaProfileHists_[itr->first];
2786 hist->Write();
2787
2788 hist = FEDsAndE2Hists_[itr->first];
2789 hist->Write();
2790
2791 hist = FEDsAndenergyHists_[itr->first];
2792 hist->Write();
2793
2794 hist = FEDsAndNumXtalsInClusterHists_[itr->first];
2795 hist->Write();
2796
2797 TH2F* hist2 = FEDsAndTimingVsAmpHists_[itr->first];
2798 hist2->Write();
2799
2800 hist2 = FEDsAndTimingVsFreqHists_[itr->first];
2801 hist2->Write();
2802
2803 hist2 = FEDsAndE2vsE1Hists_[itr->first];
2804 hist2->Write();
2805
2806 hist2 = FEDsAndenergyvsE1Hists_[itr->first];
2807 hist2->Write();
2808
2809 hist2 = FEDsAndOccupancyHists_[itr->first];
2810 hist2->Write();
2811
2812 hist2 = FEDsAndTimingVsPhiHists_[itr->first];
2813 hist2->Write();
2814
2815 hist2 = FEDsAndTimingVsModuleHists_[itr->first];
2816 hist2->Write();
2817
2818
2819 map<int, TH2F*>::const_iterator itr2d;
2820 itr2d = FEDsAndDCCRuntypeVsBxHists_.find(itr->first);
2821 if (itr2d != FEDsAndDCCRuntypeVsBxHists_.end()) {
2822 TH2F* hist2 = itr2d->second;
2823 hist2->GetYaxis()->SetBinLabel(1, "COSMIC");
2824 hist2->GetYaxis()->SetBinLabel(2, "BEAMH4");
2825 hist2->GetYaxis()->SetBinLabel(3, "BEAMH2");
2826 hist2->GetYaxis()->SetBinLabel(4, "MTCC");
2827 hist2->GetYaxis()->SetBinLabel(5, "LASER_STD");
2828 hist2->GetYaxis()->SetBinLabel(6, "LASER_POWER_SCAN");
2829 hist2->GetYaxis()->SetBinLabel(7, "LASER_DELAY_SCAN");
2830 hist2->GetYaxis()->SetBinLabel(8, "TESTPULSE_SCAN_MEM");
2831 hist2->GetYaxis()->SetBinLabel(9, "TESTPULSE_MGPA");
2832 hist2->GetYaxis()->SetBinLabel(10, "PEDESTAL_STD");
2833 hist2->GetYaxis()->SetBinLabel(11, "PEDESTAL_OFFSET_SCAN");
2834 hist2->GetYaxis()->SetBinLabel(12, "PEDESTAL_25NS_SCAN");
2835 hist2->GetYaxis()->SetBinLabel(13, "LED_STD");
2836 hist2->GetYaxis()->SetBinLabel(14, "PHYSICS_GLOBAL");
2837 hist2->GetYaxis()->SetBinLabel(15, "COSMICS_GLOBAL");
2838 hist2->GetYaxis()->SetBinLabel(16, "HALO_GLOBAL");
2839 hist2->GetYaxis()->SetBinLabel(17, "LASER_GAP");
2840 hist2->GetYaxis()->SetBinLabel(18, "TESTPULSE_GAP");
2841 hist2->GetYaxis()->SetBinLabel(19, "PEDESTAL_GAP");
2842 hist2->GetYaxis()->SetBinLabel(20, "LED_GAP");
2843 hist2->GetYaxis()->SetBinLabel(21, "PHYSICS_LOCAL");
2844 hist2->GetYaxis()->SetBinLabel(22, "COSMICS_LOCAL");
2845 hist2->GetYaxis()->SetBinLabel(23, "HALO_LOCAL");
2846 hist2->GetYaxis()->SetBinLabel(24, "CALIB_LOCAL");
2847 hist2->Write();
2848 }
2849
2850 root_file_.cd();
2851 }
2852 allFedsHist_->Write();
2853 allFedsE2Hist_->Write();
2854 allFedsenergyHist_->Write();
2855 allFedsenergyHighHist_->Write();
2856 allFedsenergyOnlyHighHist_->Write();
2857 allFedsE2vsE1Hist_->Write();
2858 allFedsenergyvsE1Hist_->Write();
2859 allFedsTimingHist_->Write();
2860 allFedsTimingVsAmpHist_->Write();
2861 allFedsFrequencyHist_->Write();
2862 allFedsTimingVsFreqHist_->Write();
2863 allFedsiEtaProfileHist_->Write();
2864 allFedsiPhiProfileHist_->Write();
2865 allOccupancy_->Write();
2866 TrueOccupancy_->Write();
2867 allOccupancyCoarse_->Write();
2868 TrueOccupancyCoarse_->Write();
2869 allOccupancyHighEnergy_->Write();
2870 allOccupancyHighEnergyCoarse_->Write();
2871 allOccupancySingleXtal_->Write();
2872 energySingleXtalHist_->Write();
2873 allFedsNumXtalsInClusterHist_->Write();
2874 allFedsTimingPhiHist_->Write();
2875 allFedsTimingPhiEbpHist_->Write();
2876 allFedsTimingPhiEbmHist_->Write();
2877 allFedsTimingEbpHist_->Write();
2878 allFedsTimingEbmHist_->Write();
2879 allFedsTimingEbpTopHist_->Write();
2880 allFedsTimingEbmTopHist_->Write();
2881 allFedsTimingEbpBottomHist_->Write();
2882 allFedsTimingEbmBottomHist_->Write();
2883 allFedsTimingPhiEtaHist_->Write();
2884 allFedsTimingTTHist_->Write();
2885 allFedsTimingLMHist_->Write();
2886 allFedsOccupancyHighEnergyHist_->Write();
2887
2888 numberofBCinSC_->Write();
2889 numberofBCinSCphi_->Write();
2890 TrueBCOccupancyCoarse_->Write();
2891 TrueBCOccupancy_->Write();
2892
2893 numxtalsVsEnergy_->Write();
2894 numxtalsVsHighEnergy_->Write();
2895
2896 allOccupancyExclusiveECAL_->Write();
2897 allOccupancyCoarseExclusiveECAL_->Write();
2898 allOccupancyECAL_->Write();
2899 allOccupancyCoarseECAL_->Write();
2900 allFedsTimingPhiEtaHistECAL_->Write();
2901 allFedsTimingHistECAL_->Write();
2902 allFedsTimingTTHistECAL_->Write();
2903 allFedsTimingLMHistECAL_->Write();
2904
2905 allOccupancyExclusiveHCAL_->Write();
2906 allOccupancyCoarseExclusiveHCAL_->Write();
2907 allOccupancyHCAL_->Write();
2908 allOccupancyCoarseHCAL_->Write();
2909 allFedsTimingPhiEtaHistHCAL_->Write();
2910 allFedsTimingHistHCAL_->Write();
2911 allFedsTimingTTHistHCAL_->Write();
2912 allFedsTimingLMHistHCAL_->Write();
2913
2914 allOccupancyExclusiveDT_->Write();
2915 allOccupancyCoarseExclusiveDT_->Write();
2916 allOccupancyDT_->Write();
2917 allOccupancyCoarseDT_->Write();
2918 allFedsTimingPhiEtaHistDT_->Write();
2919 allFedsTimingHistDT_->Write();
2920 allFedsTimingTTHistDT_->Write();
2921 allFedsTimingLMHistDT_->Write();
2922
2923 allOccupancyExclusiveRPC_->Write();
2924 allOccupancyCoarseExclusiveRPC_->Write();
2925 allOccupancyRPC_->Write();
2926 allOccupancyCoarseRPC_->Write();
2927 allFedsTimingPhiEtaHistRPC_->Write();
2928 allFedsTimingHistRPC_->Write();
2929 allFedsTimingTTHistRPC_->Write();
2930 allFedsTimingLMHistRPC_->Write();
2931
2932 allOccupancyExclusiveCSC_->Write();
2933 allOccupancyCoarseExclusiveCSC_->Write();
2934 allOccupancyCSC_->Write();
2935 allOccupancyCoarseCSC_->Write();
2936 allFedsTimingPhiEtaHistCSC_->Write();
2937 allFedsTimingHistCSC_->Write();
2938 allFedsTimingTTHistCSC_->Write();
2939 allFedsTimingLMHistCSC_->Write();
2940
2941 allFedsTimingHistEcalMuon_->Write();
2942
2943
2944 TDirectory* EEMinusDir = gDirectory->mkdir("EEMinus");
2945 EEMinusDir->cd();
2946 EEM_FedsSeedEnergyHist_->Write();
2947 EEM_AllOccupancyCoarse_->Write();
2948 EEM_AllOccupancy_->Write();
2949 EEM_FedsenergyHist_->Write();
2950 EEM_FedsenergyHighHist_->Write();
2951 EEM_FedsenergyOnlyHighHist_->Write();
2952 EEM_FedsE2Hist_->Write();
2953 EEM_FedsE2vsE1Hist_->Write();
2954 EEM_FedsenergyvsE1Hist_->Write();
2955 EEM_FedsTimingHist_->Write();
2956 EEM_numberofCosmicsHist_->Write();
2957 EEM_FedsTimingVsAmpHist_->Write();
2958 EEM_FedsTimingTTHist_->Write();
2959 EEM_OccupancySingleXtal_->Write();
2960 EEM_energySingleXtalHist_->Write();
2961 EEM_OccupancyExclusiveECAL_->Write();
2962 EEM_OccupancyCoarseExclusiveECAL_->Write();
2963 EEM_OccupancyECAL_->Write();
2964 EEM_OccupancyCoarseECAL_->Write();
2965 EEM_FedsTimingHistECAL_->Write();
2966 EEM_FedsTimingTTHistECAL_->Write();
2967 EEM_OccupancyExclusiveDT_->Write();
2968 EEM_OccupancyCoarseExclusiveDT_->Write();
2969 EEM_OccupancyDT_->Write();
2970 EEM_OccupancyCoarseDT_->Write();
2971 EEM_FedsTimingHistDT_->Write();
2972 EEM_FedsTimingTTHistDT_->Write();
2973 EEM_OccupancyExclusiveRPC_->Write();
2974 EEM_OccupancyCoarseExclusiveRPC_->Write();
2975 EEM_OccupancyRPC_->Write();
2976 EEM_OccupancyCoarseRPC_->Write();
2977 EEM_FedsTimingHistRPC_->Write();
2978 EEM_FedsTimingTTHistRPC_->Write();
2979 EEM_OccupancyExclusiveCSC_->Write();
2980 EEM_OccupancyCoarseExclusiveCSC_->Write();
2981 EEM_OccupancyCSC_->Write();
2982 EEM_OccupancyCoarseCSC_->Write();
2983 EEM_FedsTimingHistCSC_->Write();
2984 EEM_FedsTimingTTHistCSC_->Write();
2985 EEM_OccupancyExclusiveHCAL_->Write();
2986 EEM_OccupancyCoarseExclusiveHCAL_->Write();
2987 EEM_OccupancyHCAL_->Write();
2988 EEM_OccupancyCoarseHCAL_->Write();
2989 EEM_FedsTimingHistHCAL_->Write();
2990 EEM_FedsTimingTTHistHCAL_->Write();
2991 EEM_numberofBCinSC_->Write();
2992 EEM_triggerHist_->Write();
2993 EEM_triggerExclusiveHist_->Write();
2994 EEM_NumXtalsInClusterHist_->Write();
2995 EEM_numxtalsVsEnergy_->Write();
2996 EEM_numxtalsVsHighEnergy_->Write();
2997 EEM_OccupancyHighEnergy_->Write();
2998 EEM_OccupancyHighEnergyCoarse_->Write();
2999 EEM_FedsNumXtalsInClusterHist_->Write();
3000 root_file_.cd();
3001
3002 TDirectory* EEPlusDir = gDirectory->mkdir("EEPlus");
3003 EEPlusDir->cd();
3004 EEP_FedsSeedEnergyHist_->Write();
3005 EEP_AllOccupancyCoarse_->Write();
3006 EEP_AllOccupancy_->Write();
3007 EEP_FedsenergyHist_->Write();
3008 EEP_FedsenergyHighHist_->Write();
3009 EEP_FedsenergyOnlyHighHist_->Write();
3010 EEP_FedsE2Hist_->Write();
3011 EEP_FedsE2vsE1Hist_->Write();
3012 EEP_FedsenergyvsE1Hist_->Write();
3013 EEP_FedsTimingHist_->Write();
3014 EEP_numberofCosmicsHist_->Write();
3015 EEP_FedsTimingVsAmpHist_->Write();
3016 EEP_FedsTimingTTHist_->Write();
3017 EEP_OccupancySingleXtal_->Write();
3018 EEP_energySingleXtalHist_->Write();
3019 EEP_OccupancyExclusiveECAL_->Write();
3020 EEP_OccupancyCoarseExclusiveECAL_->Write();
3021 EEP_OccupancyECAL_->Write();
3022 EEP_OccupancyCoarseECAL_->Write();
3023 EEP_FedsTimingHistECAL_->Write();
3024 EEP_FedsTimingTTHistECAL_->Write();
3025 EEP_OccupancyExclusiveDT_->Write();
3026 EEP_OccupancyCoarseExclusiveDT_->Write();
3027 EEP_OccupancyDT_->Write();
3028 EEP_OccupancyCoarseDT_->Write();
3029 EEP_FedsTimingHistDT_->Write();
3030 EEP_FedsTimingTTHistDT_->Write();
3031 EEP_OccupancyExclusiveRPC_->Write();
3032 EEP_OccupancyCoarseExclusiveRPC_->Write();
3033 EEP_OccupancyRPC_->Write();
3034 EEP_OccupancyCoarseRPC_->Write();
3035 EEP_FedsTimingHistRPC_->Write();
3036 EEP_FedsTimingTTHistRPC_->Write();
3037 EEP_OccupancyExclusiveCSC_->Write();
3038 EEP_OccupancyCoarseExclusiveCSC_->Write();
3039 EEP_OccupancyCSC_->Write();
3040 EEP_OccupancyCoarseCSC_->Write();
3041 EEP_FedsTimingHistCSC_->Write();
3042 EEP_FedsTimingTTHistCSC_->Write();
3043 EEP_OccupancyExclusiveHCAL_->Write();
3044 EEP_OccupancyCoarseExclusiveHCAL_->Write();
3045 EEP_OccupancyHCAL_->Write();
3046 EEP_OccupancyCoarseHCAL_->Write();
3047 EEP_FedsTimingHistHCAL_->Write();
3048 EEP_FedsTimingTTHistHCAL_->Write();
3049 EEP_numberofBCinSC_->Write();
3050 EEP_triggerHist_->Write();
3051 EEP_triggerExclusiveHist_->Write();
3052 EEP_NumXtalsInClusterHist_->Write();
3053 EEP_numxtalsVsEnergy_->Write();
3054 EEP_numxtalsVsHighEnergy_->Write();
3055 EEP_OccupancyHighEnergy_->Write();
3056 EEP_OccupancyHighEnergyCoarse_->Write();
3057 EEP_FedsNumXtalsInClusterHist_->Write();
3058 root_file_.cd();
3059
3060 triggerHist_->Write();
3061 triggerExclusiveHist_->Write();
3062
3063 NumXtalsInClusterHist_->Write();
3064
3065 numberofCosmicsHist_->Write();
3066 numberofCosmicsHistEB_->Write();
3067
3068 numberofCosmicsWTrackHist_->Write();
3069 numberofCosmicsTopBottomHist_->Write();
3070 numberofGoodEvtFreq_->Write();
3071 numberofCrossedEcalIdsHist_->Write();
3072
3073 runNumberHist_->SetBinContent(1, runNum_);
3074 runNumberHist_->Write();
3075
3076 deltaRHist_->Write();
3077 deltaEtaHist_->Write();
3078 deltaPhiHist_->Write();
3079 ratioAssocClustersHist_->Write();
3080 ratioAssocTracksHist_->Write();
3081 deltaEtaDeltaPhiHist_->Write();
3082 seedTrackPhiHist_->Write();
3083 seedTrackEtaHist_->Write();
3084 dccEventVsBxHist_->Write();
3085 dccOrbitErrorByFEDHist_->Write();
3086 dccBXErrorByFEDHist_->Write();
3087 dccRuntypeErrorByFEDHist_->Write();
3088 dccErrorVsBxHist_->Write();
3089 dccRuntypeHist_->Write();
3090
3091 trackAssoc_muonsEcal_->Write();
3092
3093 hcalEnergy_HBHE_->Write();
3094 hcalEnergy_HF_->Write();
3095 hcalEnergy_HO_->Write();
3096 hcalHEHBecalEB_->Write();
3097
3098 TDirectory* highEnergyDir = gDirectory->mkdir("HighEnergy");
3099 highEnergyDir->cd();
3100 HighEnergy_NumXtal->Write();
3101 HighEnergy_NumXtalFedId->Write();
3102 HighEnergy_NumXtaliphi->Write();
3103 HighEnergy_energy3D->Write();
3104 HighEnergy_energyNumXtal->Write();
3105 HighEnergy_bestSeed->Write();
3106 HighEnergy_bestSeedOccupancy->Write();
3107 HighEnergy_numClusHighEn->Write();
3108 HighEnergy_ratioClusters->Write();
3109 HighEnergy_numRecoTrackBarrel->Write();
3110 HighEnergy_TracksAngle->Write();
3111 HighEnergy_TracksAngleTopBottom->Write();
3112 HighEnergy_2GeV_occuCoarse->Write();
3113 HighEnergy_2GeV_occu3D->Write();
3114 HighEnergy_100GeV_occuCoarse->Write();
3115 HighEnergy_100GeV_occu3D->Write();
3116 HighEnergy_0tracks_occu3D->Write();
3117 HighEnergy_1tracks_occu3D->Write();
3118 HighEnergy_2tracks_occu3D->Write();
3119 HighEnergy_0tracks_occu3DXtal->Write();
3120 HighEnergy_1tracks_occu3DXtal->Write();
3121 HighEnergy_2tracks_occu3DXtal->Write();
3122
3123 root_file_.cd();
3124
3125 TDirectory* TimeStampdir = gDirectory->mkdir("EventTiming");
3126 TimeStampdir->cd();
3127 allFedsFreqTimeHist_->Write();
3128 allFedsFreqTimeVsPhiHist_->Write();
3129 allFedsFreqTimeVsPhiTTHist_->Write();
3130 allFedsFreqTimeVsEtaHist_->Write();
3131 allFedsFreqTimeVsEtaTTHist_->Write();
3132
3133 root_file_.cd();
3134
3135 root_file_.Close();
3136
3137 LogWarning("EcalCosmicsHists") << "---> Number of cosmic events: " << cosmicCounter_ << " in " << naiveEvtNum_
3138 << " events.";
3139 LogWarning("EcalCosmicsHists") << "---> Number of EB cosmic events: " << cosmicCounterEB_ << " in " << naiveEvtNum_
3140 << " events.";
3141 LogWarning("EcalCosmicsHists") << "---> Number of EE- cosmic events: " << cosmicCounterEEM_ << " in " << naiveEvtNum_
3142 << " events.";
3143 LogWarning("EcalCosmicsHists") << "---> Number of EE+ cosmic events: " << cosmicCounterEEP_ << " in " << naiveEvtNum_
3144 << " events.";
3145
3146
3147 }
3148
3149 std::string EcalCosmicsHists::intToString(int num) {
3150 using namespace std;
3151 ostringstream myStream;
3152 myStream << num << flush;
3153 return (myStream.str());
3154 }