00001
00002
00003
00004
00005
00015 #include "CaloOnlineTools/EcalTools/plugins/EcalCosmicsHists.h"
00016 #include "DataFormats/DetId/interface/DetId.h"
00017 #include "Geometry/CaloTopology/interface/CaloTopology.h"
00018 #include "Geometry/CaloEventSetup/interface/CaloTopologyRecord.h"
00019 #include "Geometry/EcalMapping/interface/EcalElectronicsMapping.h"
00020 #include "Geometry/EcalMapping/interface/EcalMappingRcd.h"
00021
00022 #include "DataFormats/EgammaReco/interface/BasicCluster.h"
00023 #include "DataFormats/EgammaReco/interface/BasicClusterFwd.h"
00024 #include "DataFormats/EgammaReco/interface/SuperCluster.h"
00025 #include "DataFormats/EgammaReco/interface/SuperClusterFwd.h"
00026 #include "DataFormats/CaloRecHit/interface/CaloClusterFwd.h"
00027
00028 #include "DataFormats/HcalRecHit/interface/HcalRecHitCollections.h"
00029 #include "DataFormats/HcalDetId/interface/HcalSubdetector.h"
00030
00031 #include "CondFormats/EcalObjects/interface/EcalADCToGeVConstant.h"
00032 #include "CondFormats/L1TObjects/interface/L1GtTriggerMenu.h"
00033 #include "CondFormats/DataRecord/interface/L1GtTriggerMenuRcd.h"
00034 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutSetupFwd.h"
00035 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutSetup.h"
00036 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutRecord.h"
00037 #include "CondFormats/DataRecord/interface/EcalADCToGeVConstantRcd.h"
00038
00039
00040 #include <vector>
00041 #include "TLine.h"
00042
00043
00044 using namespace cms;
00045 using namespace edm;
00046 using namespace std;
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059 EcalCosmicsHists::EcalCosmicsHists(const edm::ParameterSet& iConfig) :
00060 ecalRawDataColl_(iConfig.getParameter<edm::InputTag>("ecalRawDataColl")),
00061 ecalRecHitCollectionEB_ (iConfig.getParameter<edm::InputTag>("ecalRecHitCollectionEB")),
00062 ecalRecHitCollectionEE_ (iConfig.getParameter<edm::InputTag>("ecalRecHitCollectionEE")),
00063 barrelClusterCollection_ (iConfig.getParameter<edm::InputTag>("barrelClusterCollection")),
00064 endcapClusterCollection_ (iConfig.getParameter<edm::InputTag>("endcapClusterCollection")),
00065 l1GTReadoutRecTag_ (iConfig.getUntrackedParameter<std::string>("L1GlobalReadoutRecord","gtDigis")),
00066 l1GMTReadoutRecTag_ (iConfig.getUntrackedParameter<std::string>("L1GlobalMuonReadoutRecord","gtDigis")),
00067 runNum_(-1),
00068 histRangeMax_ (iConfig.getUntrackedParameter<double>("histogramMaxRange",1.8)),
00069 histRangeMin_ (iConfig.getUntrackedParameter<double>("histogramMinRange",0.0)),
00070 minTimingAmpEB_ (iConfig.getUntrackedParameter<double>("MinTimingAmpEB",0.100)),
00071 minTimingAmpEE_ (iConfig.getUntrackedParameter<double>("MinTimingAmpEE",0.100)),
00072 minRecHitAmpEB_(iConfig.getUntrackedParameter<double>("MinRecHitAmpEB",0.027)),
00073 minRecHitAmpEE_(iConfig.getUntrackedParameter<double>("MinRecHitAmpEE",0.18)),
00074 minHighEnergy_(iConfig.getUntrackedParameter<double>("MinHighEnergy",2.0)),
00075 fileName_ (iConfig.getUntrackedParameter<std::string>("fileName", std::string("ecalCosmicHists"))),
00076 runInFileName_(iConfig.getUntrackedParameter<bool>("runInFileName",true)),
00077 startTime_ (iConfig.getUntrackedParameter<double>("TimeStampStart",1215107133.)),
00078 runTimeLength_ (iConfig.getUntrackedParameter<double>("TimeStampLength",3.)),
00079 numTimingBins_(iConfig.getUntrackedParameter<int>("TimeStampBins",1800))
00080 {
00081 naiveEvtNum_ = 0;
00082 cosmicCounter_ = 0;
00083 cosmicCounterEB_ = 0;
00084 cosmicCounterEEM_ = 0;
00085 cosmicCounterEEP_ = 0;
00086 cosmicCounterTopBottom_ = 0;
00087
00088
00089 edm::ParameterSet trkParameters = iConfig.getParameter<edm::ParameterSet>("TrackAssociatorParameters");
00090 trackParameters_.loadParameters( trkParameters );
00091 trackAssociator_.useDefaultPropagator();
00092
00093 string title1 = "Seed Energy for All Feds; Seed Energy (GeV)";
00094 string name1 = "SeedEnergyAllFEDs";
00095 int numBins = 200;
00096 allFedsHist_ = new TH1F(name1.c_str(),title1.c_str(),numBins,histRangeMin_,histRangeMax_);
00097
00098 fedMap_ = new EcalFedMap();
00099 }
00100
00101
00102 EcalCosmicsHists::~EcalCosmicsHists()
00103 {
00104 }
00105
00106
00107
00108
00109
00110
00111
00112 void
00113 EcalCosmicsHists::analyze(edm::Event const & iEvent, edm::EventSetup const & iSetup)
00114 {
00115 bool hasEndcapClusters = true;
00116 int ievt = iEvent.id().event();
00117
00118 edm::Handle<reco::SuperClusterCollection> bscHandle;
00119 edm::Handle<reco::SuperClusterCollection> escHandle;
00120
00121 naiveEvtNum_++;
00122
00123
00124
00125
00126
00127
00128 edm::ESHandle<EcalADCToGeVConstant> pAgc;
00129 iSetup.get<EcalADCToGeVConstantRcd>().get(pAgc);
00130 const EcalADCToGeVConstant* agc = pAgc.product();
00131 if (naiveEvtNum_<=1) {
00132 LogWarning("EcalCosmicsHists") << "Global EB ADC->GeV scale: " << agc->getEBValue() << " GeV/ADC count" ;
00133 LogWarning("EcalCosmicsHists") << "Global EE ADC->GeV scale: " << agc->getEEValue() << " GeV/ADC count" ;
00134 }
00135
00136
00137
00138
00139
00140
00141
00142
00143 unsigned int timeStampLow = ( 0xFFFFFFFF & iEvent.time().value() );
00144 unsigned int timeStampHigh = ( iEvent.time().value() >> 32 );
00145 double rawEventTime = ( double)(timeStampHigh)+((double )(timeStampLow)/1000000.);
00146 double eventTime = rawEventTime - startTime_;
00147
00148
00149
00150 iEvent.getByLabel(barrelClusterCollection_, bscHandle);
00151 if (!(bscHandle.isValid()))
00152 {
00153 LogWarning("EcalCosmicsHists") << barrelClusterCollection_ << " not available";
00154 return;
00155 }
00156 LogDebug("EcalCosmicsHists") << "event " << ievt;
00157
00158 iEvent.getByLabel(endcapClusterCollection_, escHandle);
00159 if (!(escHandle.isValid()))
00160 {
00161 LogWarning("EcalCosmicsHists") << endcapClusterCollection_ << " not available";
00162 hasEndcapClusters = false;
00163
00164 }
00165
00166 Handle<EcalRecHitCollection> hits;
00167 iEvent.getByLabel(ecalRecHitCollectionEB_, hits);
00168 if (!(hits.isValid()))
00169 {
00170 LogWarning("EcalCosmicsHists") << ecalRecHitCollectionEB_ << " not available";
00171 return;
00172 }
00173 Handle<EcalRecHitCollection> hitsEE;
00174 iEvent.getByLabel(ecalRecHitCollectionEE_, hitsEE);
00175 if (!(hitsEE.isValid()))
00176 {
00177 LogWarning("EcalCosmicsHists") << ecalRecHitCollectionEE_ << " not available";
00178 return;
00179 }
00180
00181 Handle<EcalRawDataCollection> DCCHeaders;
00182 iEvent.getByLabel(ecalRawDataColl_, DCCHeaders);
00183 if(!DCCHeaders.isValid())
00184 LogWarning("EcalCosmicsHists") << "DCC headers not available";
00185
00186
00187
00188 int orbit = -100;
00189 int bx = -100;
00190 int runType = -100;
00191
00192 for(EcalRawDataCollection::const_iterator headerItr= DCCHeaders->begin();headerItr != DCCHeaders->end();
00193 ++headerItr) {
00194 EcalDCCHeaderBlock::EcalDCCEventSettings settings = headerItr->getEventSettings();
00195 int myorbit = headerItr->getOrbit();
00196 int mybx = headerItr->getBX();
00197 int myRunType = headerItr->getRunType();
00198 int FEDid = headerItr->fedId();
00199 TH2F* dccRuntypeHist = FEDsAndDCCRuntypeVsBxHists_[FEDid];
00200 if(dccRuntypeHist==0)
00201 {
00202 initHists(FEDid);
00203 dccRuntypeHist = FEDsAndDCCRuntypeVsBxHists_[FEDid];
00204 }
00205 dccRuntypeHist->Fill(mybx,myRunType);
00206
00207 if (bx == -100)
00208 {
00209 bx = mybx;
00210 }
00211 else if (bx != mybx)
00212 {
00213 LogWarning("EcalCosmicsHists") << "This header has a conflicting bx OTHERS were " << bx << " here " << mybx;
00214 dccBXErrorByFEDHist_->Fill(headerItr->fedId());
00215 if(bx != -100)
00216 {
00217 dccErrorVsBxHist_->Fill(bx,0);
00218 }
00219 }
00220
00221 if (runType == -100)
00222 {
00223 runType = myRunType;
00224 }
00225 else if (runType != myRunType)
00226 {
00227 LogWarning("EcalCosmicsHists") << "This header has a conflicting runType OTHERS were " << bx << " here " << mybx;
00228 dccRuntypeErrorByFEDHist_->Fill(headerItr->fedId());
00229 if(bx != -100)
00230 dccErrorVsBxHist_->Fill(bx,2);
00231 }
00232
00233
00234 if (orbit == -100)
00235 {
00236 orbit = myorbit;
00237 }
00238 else if (orbit != myorbit)
00239 {
00240 LogWarning("EcalCosmicsHists") << "This header has a conflicting orbit; OTHERS were " << orbit << " here " << myorbit;
00241 dccOrbitErrorByFEDHist_->Fill(headerItr->fedId());
00242 if(bx != -100)
00243 dccErrorVsBxHist_->Fill(bx,1);
00244 }
00245 }
00246 dccEventVsBxHist_->Fill(bx,runType);
00247 dccRuntypeHist_->Fill(runType);
00248
00249
00250
00251 std::vector<bool> l1Triggers = determineTriggers(iEvent, iSetup);
00252 bool isEcalL1 = l1Triggers[4];
00253 bool isHCALL1 = l1Triggers[3];
00254 bool isRPCL1 = l1Triggers[2];
00255 bool isCSCL1 = l1Triggers[1];
00256 bool isDTL1 = l1Triggers[0];
00257
00258 if(runNum_==-1)
00259 {
00260 runNum_ = iEvent.id().run();
00261 }
00262
00263 int numberOfCosmics = 0;
00264 int numberOfCosmicsEB = 0;
00265 int numberOfCosmicsEEP = 0;
00266 int numberOfCosmicsEEM = 0;
00267 int numberOfCosmicsTop = 0;
00268 int numberOfCosmicsBottom = 0;
00269 int numberOfHighEClusters = 0;
00270
00271 std::vector<EBDetId> seeds;
00272
00273
00274
00275 const reco::SuperClusterCollection *clusterCollection_p = bscHandle.product();
00276 for (reco::SuperClusterCollection::const_iterator clus = clusterCollection_p->begin(); clus != clusterCollection_p->end(); ++clus)
00277 {
00278 double energy = clus->energy();
00279 double phi = clus->phi();
00280 double eta = clus->eta();
00281 double time = -1000.0;
00282 double ampli = 0.;
00283 double secondMin = 0.;
00284 double secondTime = -1000.;
00285 int numXtalsinCluster = 0;
00286
00287 EBDetId maxDet;
00288 EBDetId secDet;
00289
00290 numberofBCinSC_->Fill(clus->clustersSize());
00291 numberofBCinSCphi_->Fill(phi,clus->clustersSize());
00292
00293 for (reco::CaloCluster_iterator bclus = (clus->clustersBegin()); bclus != (clus->clustersEnd()); ++bclus)
00294 {
00295 double cphi = (*bclus)->phi();
00296 double ceta = (*bclus)->eta();
00297 TrueBCOccupancy_->Fill(cphi,ceta);
00298 TrueBCOccupancyCoarse_->Fill(cphi,ceta);
00299 }
00300
00301 std::vector< std::pair<DetId, float> > clusterDetIds = clus->hitsAndFractions();
00302 for(std::vector<std::pair<DetId, float> >::const_iterator detitr = clusterDetIds.begin(); detitr != clusterDetIds.end(); ++detitr)
00303 {
00304
00305 if ((*detitr).first.det() != DetId::Ecal) { std::cout << " det is " <<(*detitr).first.det() << std::endl;continue;}
00306 if ((*detitr).first.subdetId() != EcalBarrel) {std::cout << " subdet is " <<(*detitr).first.subdetId() << std::endl; continue; }
00307 EcalRecHitCollection::const_iterator thishit = hits->find((*detitr).first);
00308 if (thishit == hits->end()) continue;
00309
00310
00311 EcalRecHit myhit = (*thishit);
00312
00313 double thisamp = myhit.energy();
00314 if (thisamp > minRecHitAmpEB_) {numXtalsinCluster++; }
00315 if (thisamp > secondMin) {secondMin = thisamp; secondTime = myhit.time(); secDet = (EBDetId)(*detitr).first;}
00316 if (secondMin > ampli) {std::swap(ampli,secondMin); std::swap(time,secondTime); std::swap(maxDet,secDet);}
00317 }
00318
00319 double fullnumXtalsinCluster = clusterDetIds.size();
00320
00321 float E2 = ampli + secondMin;
00322 EcalElectronicsId elecId = ecalElectronicsMap_->getElectronicsId((EBDetId) maxDet);
00323 int FEDid = 600+elecId.dccId();
00324
00325 numberOfCosmics++;
00326 numberOfCosmicsEB++;
00327
00328
00329 seeds.push_back(maxDet);
00330 int ieta = maxDet.ieta();
00331 int iphi = maxDet.iphi();
00332 int ietaSM = maxDet.ietaSM();
00333 int iphiSM = maxDet.iphiSM();
00334
00335 int LM = ecalElectronicsMap_->getLMNumber(maxDet) ;
00336
00337
00338 if (iphi>0&&iphi<180) {
00339 numberOfCosmicsTop++;
00340 } else {
00341 numberOfCosmicsBottom++;
00342 }
00343
00344
00345 TH1F* uRecHist = FEDsAndHists_[FEDid];
00346 TH1F* E2uRecHist = FEDsAndE2Hists_[FEDid];
00347 TH1F* energyuRecHist = FEDsAndenergyHists_[FEDid];
00348 TH1F* timingHist = FEDsAndTimingHists_[FEDid];
00349 TH1F* freqHist = FEDsAndFrequencyHists_[FEDid];
00350 TH1F* iphiProfileHist = FEDsAndiPhiProfileHists_[FEDid];
00351 TH1F* ietaProfileHist = FEDsAndiEtaProfileHists_[FEDid];
00352 TH2F* timingHistVsFreq = FEDsAndTimingVsFreqHists_[FEDid];
00353 TH2F* timingHistVsAmp = FEDsAndTimingVsAmpHists_[FEDid];
00354 TH2F* E2vsE1uRecHist = FEDsAndE2vsE1Hists_[FEDid];
00355 TH2F* energyvsE1uRecHist = FEDsAndenergyvsE1Hists_[FEDid];
00356 TH1F* numXtalInClusterHist = FEDsAndNumXtalsInClusterHists_[FEDid];
00357 TH2F* occupHist = FEDsAndOccupancyHists_[FEDid];
00358 TH2F* timingHistVsPhi = FEDsAndTimingVsPhiHists_[FEDid];
00359 TH2F* timingHistVsModule = FEDsAndTimingVsModuleHists_[FEDid];
00360
00361 if(uRecHist==0)
00362 {
00363 initHists(FEDid);
00364 uRecHist = FEDsAndHists_[FEDid];
00365 E2uRecHist = FEDsAndE2Hists_[FEDid];
00366 energyuRecHist = FEDsAndenergyHists_[FEDid];
00367 timingHist = FEDsAndTimingHists_[FEDid];
00368 freqHist = FEDsAndFrequencyHists_[FEDid];
00369 timingHistVsFreq = FEDsAndTimingVsFreqHists_[FEDid];
00370 timingHistVsAmp = FEDsAndTimingVsAmpHists_[FEDid];
00371 iphiProfileHist = FEDsAndiPhiProfileHists_[FEDid];
00372 ietaProfileHist = FEDsAndiEtaProfileHists_[FEDid];
00373 E2vsE1uRecHist = FEDsAndE2vsE1Hists_[FEDid];
00374 energyvsE1uRecHist = FEDsAndenergyvsE1Hists_[FEDid];
00375 numXtalInClusterHist = FEDsAndNumXtalsInClusterHists_[FEDid];
00376 occupHist = FEDsAndOccupancyHists_[FEDid];
00377 timingHistVsPhi = FEDsAndTimingVsPhiHists_[FEDid];
00378 timingHistVsModule = FEDsAndTimingVsModuleHists_[FEDid];
00379 }
00380
00381 uRecHist->Fill(ampli);
00382 E2uRecHist->Fill(E2);
00383 E2vsE1uRecHist->Fill(ampli,E2);
00384 energyuRecHist->Fill(energy);
00385 energyvsE1uRecHist->Fill(ampli,energy);
00386 allFedsHist_->Fill(ampli);
00387 allFedsE2Hist_->Fill(E2);
00388 allFedsenergyHist_->Fill(energy);
00389 allFedsenergyHighHist_->Fill(energy);
00390 allFedsE2vsE1Hist_->Fill(ampli,E2);
00391 allFedsenergyvsE1Hist_->Fill(ampli,energy);
00392 freqHist->Fill(naiveEvtNum_);
00393 iphiProfileHist->Fill(iphi);
00394 ietaProfileHist->Fill(ieta);
00395
00396 allFedsFrequencyHist_->Fill(naiveEvtNum_);
00397 allFedsiPhiProfileHist_->Fill(iphi);
00398 allFedsiEtaProfileHist_->Fill(ieta);
00399 allOccupancy_->Fill(iphi, ieta);
00400 TrueOccupancy_->Fill(phi, eta);
00401 allOccupancyCoarse_->Fill(iphi, ieta);
00402 TrueOccupancyCoarse_->Fill(phi, eta);
00403 allFedsNumXtalsInClusterHist_->Fill(numXtalsinCluster);
00404 NumXtalsInClusterHist_->Fill(fullnumXtalsinCluster);
00405 numxtalsVsEnergy_->Fill(energy,numXtalsinCluster);
00406 numxtalsVsHighEnergy_->Fill(energy,numXtalsinCluster);
00407
00408
00409 allFedsFreqTimeVsPhiHist_->Fill(iphi,eventTime);
00410 allFedsFreqTimeVsPhiTTHist_->Fill(iphi,eventTime);
00411 allFedsFreqTimeVsEtaHist_->Fill(eventTime,ieta);
00412 allFedsFreqTimeVsEtaTTHist_->Fill(eventTime,ieta);
00413
00414
00415 occupHist->Fill(ietaSM,iphiSM);
00416 if (fullnumXtalsinCluster==1) {
00417 allOccupancySingleXtal_->Fill(iphi, ieta);
00418 energySingleXtalHist_->Fill(energy);
00419 }
00420
00421
00422
00423 if(isEcalL1&&!isDTL1&&!isRPCL1&&!isCSCL1&&!isHCALL1) {
00424 allOccupancyExclusiveECAL_->Fill(iphi, ieta);
00425 allOccupancyCoarseExclusiveECAL_->Fill(iphi, ieta);
00426 if (ampli > minTimingAmpEB_) {
00427 allFedsTimingHistECAL_->Fill(time);
00428 allFedsTimingPhiEtaHistECAL_->Fill(iphi,ieta,time);
00429 allFedsTimingTTHistECAL_->Fill(iphi,ieta,time);
00430 allFedsTimingLMHistECAL_->Fill(LM,time);
00431 }
00432 triggerExclusiveHist_->Fill(0);
00433 }
00434
00435 if(!isEcalL1&&!isDTL1&&!isRPCL1&&!isCSCL1&&isHCALL1) {
00436 allOccupancyExclusiveHCAL_->Fill(iphi, ieta);
00437 allOccupancyCoarseExclusiveHCAL_->Fill(iphi, ieta);
00438 if (ampli > minTimingAmpEB_) {
00439 allFedsTimingHistHCAL_->Fill(time);
00440 allFedsTimingPhiEtaHistHCAL_->Fill(iphi,ieta,time);
00441 allFedsTimingTTHistHCAL_->Fill(iphi,ieta,time);
00442 allFedsTimingLMHistHCAL_->Fill(LM,time);
00443 }
00444 triggerExclusiveHist_->Fill(1);
00445 }
00446
00447 if(!isEcalL1&&isDTL1&&!isRPCL1&&!isCSCL1&&!isHCALL1) {
00448 allOccupancyExclusiveDT_->Fill(iphi, ieta);
00449 allOccupancyCoarseExclusiveDT_->Fill(iphi, ieta);
00450 if (ampli > minTimingAmpEB_) {
00451 allFedsTimingHistDT_->Fill(time);
00452 allFedsTimingPhiEtaHistDT_->Fill(iphi,ieta,time);
00453 allFedsTimingTTHistDT_->Fill(iphi,ieta,time);
00454 allFedsTimingLMHistDT_->Fill(LM,time);
00455 }
00456 triggerExclusiveHist_->Fill(2);
00457 }
00458
00459 if(!isEcalL1&&!isDTL1&&isRPCL1&&!isCSCL1&&!isHCALL1) {
00460 allOccupancyExclusiveRPC_->Fill(iphi, ieta);
00461 allOccupancyCoarseExclusiveRPC_->Fill(iphi, ieta);
00462 if (ampli > minTimingAmpEB_) {
00463 allFedsTimingHistRPC_->Fill(time);
00464 allFedsTimingPhiEtaHistRPC_->Fill(iphi,ieta,time);
00465 allFedsTimingTTHistRPC_->Fill(iphi,ieta,time);
00466 allFedsTimingLMHistRPC_->Fill(LM,time);
00467 }
00468 triggerExclusiveHist_->Fill(3);
00469 }
00470
00471 if(!isEcalL1&&!isDTL1&&!isRPCL1&&isCSCL1&&!isHCALL1) {
00472 allOccupancyExclusiveCSC_->Fill(iphi, ieta);
00473 allOccupancyCoarseExclusiveCSC_->Fill(iphi, ieta);
00474 if (ampli > minTimingAmpEB_) {
00475 allFedsTimingHistCSC_->Fill(time);
00476 allFedsTimingPhiEtaHistCSC_->Fill(iphi,ieta,time);
00477 allFedsTimingTTHistCSC_->Fill(iphi,ieta,time);
00478 allFedsTimingLMHistCSC_->Fill(LM,time);
00479 }
00480 triggerExclusiveHist_->Fill(4);
00481 }
00482
00483
00484
00485 if (isEcalL1) {
00486 triggerHist_->Fill(0);
00487 allOccupancyECAL_->Fill(iphi, ieta);
00488 allOccupancyCoarseECAL_->Fill(iphi, ieta);
00489 }
00490 if (isHCALL1) {
00491 triggerHist_->Fill(1);
00492 allOccupancyHCAL_->Fill(iphi, ieta);
00493 allOccupancyCoarseHCAL_->Fill(iphi, ieta);
00494 }
00495 if (isDTL1) {
00496 triggerHist_->Fill(2);
00497 allOccupancyDT_->Fill(iphi, ieta);
00498 allOccupancyCoarseDT_->Fill(iphi, ieta);
00499 }
00500 if (isRPCL1) {
00501 triggerHist_->Fill(3);
00502 allOccupancyRPC_->Fill(iphi, ieta);
00503 allOccupancyCoarseRPC_->Fill(iphi, ieta);
00504 }
00505 if (isCSCL1) {
00506 triggerHist_->Fill(4);
00507 allOccupancyCSC_->Fill(iphi, ieta);
00508 allOccupancyCoarseCSC_->Fill(iphi, ieta);
00509 }
00510
00511
00512 if(isEcalL1&&(isCSCL1||isRPCL1||isDTL1)&&!isHCALL1)
00513 allFedsTimingHistEcalMuon_->Fill(time);
00514
00515 if (ampli > minTimingAmpEB_) {
00516 timingHist->Fill(time);
00517 timingHistVsFreq->Fill(time, naiveEvtNum_);
00518 timingHistVsAmp->Fill(time, ampli);
00519 allFedsTimingHist_->Fill(time);
00520 allFedsTimingVsAmpHist_->Fill(time, ampli);
00521 allFedsTimingVsFreqHist_->Fill(time, naiveEvtNum_);
00522 timingHistVsPhi->Fill(time, iphiSM);
00523 timingHistVsModule->Fill(time, ietaSM);
00524 allFedsTimingPhiHist_->Fill(iphi,time);
00525 allFedsTimingPhiEtaHist_->Fill(iphi,ieta,time);
00526 allFedsTimingTTHist_->Fill(iphi,ieta,time);
00527 allFedsTimingLMHist_->Fill(LM,time);
00528 if (FEDid>=610&&FEDid<=627) allFedsTimingPhiEbmHist_->Fill(iphi,time);
00529 if (FEDid>=628&&FEDid<=645) allFedsTimingPhiEbpHist_->Fill(iphi,time);
00530
00531 if (FEDid>=610&&FEDid<=627) allFedsTimingEbmHist_->Fill(time);
00532 if (FEDid>=628&&FEDid<=645) allFedsTimingEbpHist_->Fill(time);
00533 if (FEDid>=613&&FEDid<=616) allFedsTimingEbmTopHist_->Fill(time);
00534 if (FEDid>=631&&FEDid<=634) allFedsTimingEbpTopHist_->Fill(time);
00535 if (FEDid>=622&&FEDid<=625) allFedsTimingEbmBottomHist_->Fill(time);
00536 if (FEDid>=640&&FEDid<=643) allFedsTimingEbpBottomHist_->Fill(time);
00537 }
00538
00539
00540
00541 if (energy>minHighEnergy_) {
00542
00543 LogInfo("EcalCosmicsHists") << "High energy event " << iEvent.id().run() << " : "
00544 << iEvent.id().event() << " " << naiveEvtNum_
00545 << " : " << energy << " " << numXtalsinCluster
00546 << " : " << iphi << " " << ieta
00547 << " : " << isEcalL1 << isHCALL1 << isDTL1 << isRPCL1 << isCSCL1 ;
00548
00549 numberOfHighEClusters++;
00550 allOccupancyHighEnergy_->Fill(iphi, ieta);
00551 allOccupancyHighEnergyCoarse_->Fill(iphi, ieta);
00552 allFedsOccupancyHighEnergyHist_->Fill(iphi,ieta,energy);
00553 allFedsenergyOnlyHighHist_->Fill(energy);
00554
00555 HighEnergy_2GeV_occuCoarse->Fill(iphi,ieta);
00556 HighEnergy_2GeV_occu3D->Fill(iphi,ieta,energy);
00557
00558 HighEnergy_NumXtal->Fill(fullnumXtalsinCluster);
00559 HighEnergy_NumXtalFedId->Fill(FEDid,fullnumXtalsinCluster);
00560 HighEnergy_NumXtaliphi->Fill(iphi,fullnumXtalsinCluster);
00561 HighEnergy_energy3D->Fill(iphi,ieta,energy);
00562 HighEnergy_energyNumXtal->Fill(fullnumXtalsinCluster,energy);
00563
00564 if (energy>100.0) {
00565 LogInfo("EcalCosmicsHists") << "Very high energy event " << iEvent.id().run() << " : "
00566 << iEvent.id().event() << " " << naiveEvtNum_
00567 << " : " << energy << " " << numXtalsinCluster
00568 << " : " << iphi << " " << ieta
00569 << " : " << isEcalL1 << isHCALL1 << isDTL1 << isRPCL1 << isCSCL1 ;
00570
00571 HighEnergy_100GeV_occuCoarse->Fill(iphi,ieta);
00572 HighEnergy_100GeV_occu3D->Fill(iphi,ieta,energy);
00573
00574 }
00575
00576 }
00577
00578
00579
00580 }
00581
00582
00583
00584 if(hasEndcapClusters) {
00585 clusterCollection_p = escHandle.product();
00586 for (reco::SuperClusterCollection::const_iterator clus = clusterCollection_p->begin(); clus != clusterCollection_p->end(); ++clus) {
00587 double energy = clus->energy();
00588
00589
00590 double time = -1000.0;
00591 double ampli = 0.;
00592 double secondMin = 0.;
00593 double secondTime = -1000.;
00594 int clusSize = clus->clustersSize();
00595 int numXtalsinCluster = 0;
00596
00597 EEDetId maxDet;
00598 EEDetId secDet;
00599
00600
00601
00602
00603
00604
00605
00606
00607
00608
00609 std::vector<std::pair<DetId, float> > clusterDetIds = clus->hitsAndFractions();
00610 for(std::vector<std::pair<DetId, float> >::const_iterator detitr = clusterDetIds.begin(); detitr != clusterDetIds.end(); ++detitr) {
00611
00612
00613
00614
00615 if ((*detitr).first.det() != DetId::Ecal) {
00616 LogError("EcalCosmicsHists") << " det is " <<(*detitr).first.det(); continue;
00617 }
00618 if ((*detitr).first.subdetId() != EcalEndcap) {
00619 LogError("EcalCosmicsHists") << " subdet is " <<(*detitr).first.subdetId(); continue;
00620 }
00621
00622 EcalRecHitCollection::const_iterator thishit = hitsEE->find((*detitr).first);
00623
00624 if (thishit == hitsEE->end()) {
00625 LogInfo("EcalCosmicsHists") << " WARNING: EEDetId not found in the RecHit collection!";
00626 continue;
00627 }
00628
00629
00630
00631 EcalRecHit myhit = (*thishit);
00632
00633
00634 double thisamp = myhit.energy();
00635 if (thisamp > minRecHitAmpEE_) {numXtalsinCluster++; }
00636 if (thisamp > secondMin) {secondMin = thisamp; secondTime = myhit.time(); secDet = (EEDetId)(*detitr).first;}
00637 if (secondMin > ampli) {std::swap(ampli,secondMin); std::swap(time,secondTime); std::swap(maxDet,secDet);}
00638
00639
00640 }
00641
00642 double fullnumXtalsinCluster = clusterDetIds.size();
00643
00644 float E2 = ampli + secondMin;
00645
00646 EcalElectronicsId elecId = ecalElectronicsMap_->getElectronicsId((EEDetId) maxDet);
00647
00648
00649
00650
00651
00652
00653 int ix = maxDet.ix();
00654 int iy = maxDet.iy();
00655 int iz = maxDet.zside();
00656
00657
00658
00659
00660
00661 if (!EEDetId::validDetId(ix,iy,iz)) {
00662 LogWarning("EcalCosmicsHists") << "INVALID EE DetId !!!" << endl;
00663 return;
00664 }
00665
00666
00667 numberOfCosmics++;
00668 if (iz<0) { numberOfCosmicsEEM++; }
00669 else { numberOfCosmicsEEP++; }
00670
00671
00672
00673
00674
00675
00676
00677
00678
00679
00680
00681
00682
00683
00684
00685
00686
00687
00688
00689
00690
00691
00692
00693
00694
00695
00696
00697
00698
00699
00700
00701
00702
00703
00704
00705
00706
00707
00708
00709
00710
00711
00712
00713
00714
00715 if (iz<0) {
00716 EEM_FedsSeedEnergyHist_->Fill(ampli);
00717 EEM_FedsenergyHist_->Fill(energy);
00718 EEM_FedsenergyHighHist_->Fill(energy);
00719 EEM_FedsE2Hist_->Fill(E2);
00720 EEM_FedsE2vsE1Hist_->Fill(ampli,E2);
00721 EEM_FedsenergyvsE1Hist_->Fill(ampli,energy);
00722 EEM_AllOccupancyCoarse_->Fill(ix-0.5,iy-0.5);
00723 EEM_AllOccupancy_->Fill(ix-0.5,iy-0.5);
00724
00725 EEM_FedsNumXtalsInClusterHist_->Fill(numXtalsinCluster);
00726 EEM_NumXtalsInClusterHist_->Fill(fullnumXtalsinCluster);
00727 EEM_numxtalsVsEnergy_->Fill(energy,numXtalsinCluster);
00728 EEM_numxtalsVsHighEnergy_->Fill(energy,numXtalsinCluster);
00729 EEM_numberofBCinSC_->Fill(clusSize);
00730
00731 if (fullnumXtalsinCluster==1) {
00732 EEM_OccupancySingleXtal_->Fill(ix-0.5,iy-0.5);
00733 EEM_energySingleXtalHist_->Fill(energy);
00734 }
00735
00736 if (ampli > minTimingAmpEE_) {
00737 EEM_FedsTimingHist_->Fill(time);
00738 EEM_FedsTimingVsAmpHist_->Fill(time, ampli);
00739 EEM_FedsTimingTTHist_->Fill(ix-0.5,iy-0.5,time);
00740 }
00741
00742
00743
00744 if(isEcalL1&&!isDTL1&&!isRPCL1&&!isCSCL1&&!isHCALL1) {
00745 EEM_OccupancyExclusiveECAL_->Fill(ix-0.5,iy-0.5);
00746 EEM_OccupancyCoarseExclusiveECAL_->Fill(ix-0.5,iy-0.5);
00747 if (ampli > minTimingAmpEE_) {
00748 EEM_FedsTimingHistECAL_->Fill(time);
00749 EEM_FedsTimingTTHistECAL_->Fill(ix-0.5,iy-0.5,time);
00750 }
00751 EEM_triggerExclusiveHist_->Fill(0);
00752 }
00753
00754 if(!isEcalL1&&!isDTL1&&!isRPCL1&&!isCSCL1&&isHCALL1) {
00755 EEM_OccupancyExclusiveHCAL_->Fill(ix-0.5,iy-0.5);
00756 EEM_OccupancyCoarseExclusiveHCAL_->Fill(ix-0.5,iy-0.5);
00757 if (ampli > minTimingAmpEE_) {
00758 EEM_FedsTimingHistHCAL_->Fill(time);
00759 EEM_FedsTimingTTHistHCAL_->Fill(ix-0.5,iy-0.5,time);
00760 }
00761 EEM_triggerExclusiveHist_->Fill(1);
00762 }
00763
00764 if(!isEcalL1&&isDTL1&&!isRPCL1&&!isCSCL1&&!isHCALL1) {
00765 EEM_OccupancyExclusiveDT_->Fill(ix-0.5,iy-0.5);
00766 EEM_OccupancyCoarseExclusiveDT_->Fill(ix-0.5,iy-0.5);
00767 if (ampli > minTimingAmpEE_) {
00768 EEM_FedsTimingHistDT_->Fill(time);
00769 EEM_FedsTimingTTHistDT_->Fill(ix-0.5,iy-0.5,time);
00770 }
00771 EEM_triggerExclusiveHist_->Fill(2);
00772 }
00773
00774 if(!isEcalL1&&!isDTL1&&isRPCL1&&!isCSCL1&&!isHCALL1) {
00775 EEM_OccupancyExclusiveRPC_->Fill(ix-0.5,iy-0.5);
00776 EEM_OccupancyCoarseExclusiveRPC_->Fill(ix-0.5,iy-0.5);
00777 if (ampli > minTimingAmpEE_) {
00778 EEM_FedsTimingHistRPC_->Fill(time);
00779 EEM_FedsTimingTTHistRPC_->Fill(ix-0.5,iy-0.5,time);
00780 }
00781 EEM_triggerExclusiveHist_->Fill(3);
00782 }
00783
00784 if(!isEcalL1&&!isDTL1&&!isRPCL1&&isCSCL1&&!isHCALL1) {
00785 EEM_OccupancyExclusiveCSC_->Fill(ix-0.5,iy-0.5);
00786 EEM_OccupancyCoarseExclusiveCSC_->Fill(ix-0.5,iy-0.5);
00787 if (ampli > minTimingAmpEE_) {
00788 EEM_FedsTimingHistCSC_->Fill(time);
00789 EEM_FedsTimingTTHistCSC_->Fill(ix-0.5,iy-0.5,time);
00790 }
00791 EEM_triggerExclusiveHist_->Fill(4);
00792 }
00793
00794
00795
00796 if (isEcalL1) {
00797 EEM_triggerHist_->Fill(0);
00798 EEM_OccupancyECAL_->Fill(ix-0.5,iy-0.5);
00799 EEM_OccupancyCoarseECAL_->Fill(ix-0.5,iy-0.5);
00800 }
00801 if (isHCALL1) {
00802 EEM_triggerHist_->Fill(1);
00803 EEM_OccupancyHCAL_->Fill(ix-0.5,iy-0.5);
00804 EEM_OccupancyCoarseHCAL_->Fill(ix-0.5,iy-0.5);
00805 }
00806 if (isDTL1) {
00807 EEM_triggerHist_->Fill(2);
00808 EEM_OccupancyDT_->Fill(ix-0.5,iy-0.5);
00809 EEM_OccupancyCoarseDT_->Fill(ix-0.5,iy-0.5);
00810 }
00811 if (isRPCL1) {
00812 EEM_triggerHist_->Fill(3);
00813 EEM_OccupancyRPC_->Fill(ix-0.5,iy-0.5);
00814 EEM_OccupancyCoarseRPC_->Fill(ix-0.5,iy-0.5);
00815 }
00816 if (isCSCL1) {
00817 EEM_triggerHist_->Fill(4);
00818 EEM_OccupancyCSC_->Fill(ix-0.5,iy-0.5);
00819 EEM_OccupancyCoarseCSC_->Fill(ix-0.5,iy-0.5);
00820 }
00821
00822 } else {
00823
00824 EEP_FedsSeedEnergyHist_->Fill(ampli);
00825 EEP_FedsenergyHist_->Fill(energy);
00826 EEP_FedsenergyHighHist_->Fill(energy);
00827 EEP_FedsE2Hist_->Fill(E2);
00828 EEP_FedsE2vsE1Hist_->Fill(ampli,E2);
00829 EEP_FedsenergyvsE1Hist_->Fill(ampli,energy);
00830 EEP_AllOccupancyCoarse_->Fill(ix-0.5,iy-0.5);
00831 EEP_AllOccupancy_->Fill(ix-0.5,iy-0.5);
00832
00833 EEP_FedsNumXtalsInClusterHist_->Fill(numXtalsinCluster);
00834 EEP_NumXtalsInClusterHist_->Fill(fullnumXtalsinCluster);
00835 EEP_numxtalsVsEnergy_->Fill(energy,numXtalsinCluster);
00836 EEP_numxtalsVsHighEnergy_->Fill(energy,numXtalsinCluster);
00837 EEP_numberofBCinSC_->Fill(clusSize);
00838
00839 if (fullnumXtalsinCluster==1) {
00840 EEP_OccupancySingleXtal_->Fill(ix-0.5,iy-0.5);
00841 EEP_energySingleXtalHist_->Fill(energy);
00842 }
00843
00844 if (ampli > minTimingAmpEE_) {
00845 EEP_FedsTimingHist_->Fill(time);
00846 EEP_FedsTimingVsAmpHist_->Fill(time, ampli);
00847 EEP_FedsTimingTTHist_->Fill(ix-0.5,iy-0.5,time);
00848 }
00849
00850
00851
00852 if(isEcalL1&&!isDTL1&&!isRPCL1&&!isCSCL1&&!isHCALL1) {
00853 EEP_OccupancyExclusiveECAL_->Fill(ix-0.5,iy-0.5);
00854 EEP_OccupancyCoarseExclusiveECAL_->Fill(ix-0.5,iy-0.5);
00855 if (ampli > minTimingAmpEE_) {
00856 EEP_FedsTimingHistECAL_->Fill(time);
00857 EEP_FedsTimingTTHistECAL_->Fill(ix-0.5,iy-0.5,time);
00858 }
00859 EEP_triggerExclusiveHist_->Fill(0);
00860 }
00861
00862 if(!isEcalL1&&!isDTL1&&!isRPCL1&&!isCSCL1&&isHCALL1) {
00863 EEP_OccupancyExclusiveHCAL_->Fill(ix-0.5,iy-0.5);
00864 EEP_OccupancyCoarseExclusiveHCAL_->Fill(ix-0.5,iy-0.5);
00865 if (ampli > minTimingAmpEE_) {
00866 EEP_FedsTimingHistHCAL_->Fill(time);
00867 EEP_FedsTimingTTHistHCAL_->Fill(ix-0.5,iy-0.5,time);
00868 }
00869 EEP_triggerExclusiveHist_->Fill(1);
00870 }
00871
00872 if(!isEcalL1&&isDTL1&&!isRPCL1&&!isCSCL1&&!isHCALL1) {
00873 EEP_OccupancyExclusiveDT_->Fill(ix-0.5,iy-0.5);
00874 EEP_OccupancyCoarseExclusiveDT_->Fill(ix-0.5,iy-0.5);
00875 if (ampli > minTimingAmpEE_) {
00876 EEP_FedsTimingHistDT_->Fill(time);
00877 EEP_FedsTimingTTHistDT_->Fill(ix-0.5,iy-0.5,time);
00878 }
00879 EEP_triggerExclusiveHist_->Fill(2);
00880 }
00881
00882 if(!isEcalL1&&!isDTL1&&isRPCL1&&!isCSCL1&&!isHCALL1) {
00883 EEP_OccupancyExclusiveRPC_->Fill(ix-0.5,iy-0.5);
00884 EEP_OccupancyCoarseExclusiveRPC_->Fill(ix-0.5,iy-0.5);
00885 if (ampli > minTimingAmpEE_) {
00886 EEP_FedsTimingHistRPC_->Fill(time);
00887 EEP_FedsTimingTTHistRPC_->Fill(ix-0.5,iy-0.5,time);
00888 }
00889 EEP_triggerExclusiveHist_->Fill(3);
00890 }
00891
00892 if(!isEcalL1&&!isDTL1&&!isRPCL1&&isCSCL1&&!isHCALL1) {
00893 EEP_OccupancyExclusiveCSC_->Fill(ix-0.5,iy-0.5);
00894 EEP_OccupancyCoarseExclusiveCSC_->Fill(ix-0.5,iy-0.5);
00895 if (ampli > minTimingAmpEE_) {
00896 EEP_FedsTimingHistCSC_->Fill(time);
00897 EEP_FedsTimingTTHistCSC_->Fill(ix-0.5,iy-0.5,time);
00898 }
00899 EEP_triggerExclusiveHist_->Fill(4);
00900 }
00901
00902
00903
00904 if (isEcalL1) {
00905 EEP_triggerHist_->Fill(0);
00906 EEP_OccupancyECAL_->Fill(ix-0.5,iy-0.5);
00907 EEP_OccupancyCoarseECAL_->Fill(ix-0.5,iy-0.5);
00908 }
00909 if (isHCALL1) {
00910 EEP_triggerHist_->Fill(1);
00911 EEP_OccupancyHCAL_->Fill(ix-0.5,iy-0.5);
00912 EEP_OccupancyCoarseHCAL_->Fill(ix-0.5,iy-0.5);
00913 }
00914 if (isDTL1) {
00915 EEP_triggerHist_->Fill(2);
00916 EEP_OccupancyDT_->Fill(ix-0.5,iy-0.5);
00917 EEP_OccupancyCoarseDT_->Fill(ix-0.5,iy-0.5);
00918 }
00919 if (isRPCL1) {
00920 EEP_triggerHist_->Fill(3);
00921 EEP_OccupancyRPC_->Fill(ix-0.5,iy-0.5);
00922 EEP_OccupancyCoarseRPC_->Fill(ix-0.5,iy-0.5);
00923 }
00924 if (isCSCL1) {
00925 EEP_triggerHist_->Fill(4);
00926 EEP_OccupancyCSC_->Fill(ix-0.5,iy-0.5);
00927 EEP_OccupancyCoarseCSC_->Fill(ix-0.5,iy-0.5);
00928 }
00929
00930 }
00931
00932
00933
00934
00935 if (energy>minHighEnergy_) {
00936
00937 LogInfo("EcalCosmicsHists") << "High energy event in EE " << iEvent.id().run() << " : "
00938 << iEvent.id().event() << " " << naiveEvtNum_
00939 << " : " << energy << " " << numXtalsinCluster
00940 << " : " << ix << " " << iy
00941 << " : " << isEcalL1 << isHCALL1 << isDTL1 << isRPCL1 << isCSCL1 ;
00942
00943
00944
00945
00946
00947 if (iz<0) {
00948 EEM_FedsenergyOnlyHighHist_->Fill(energy);
00949 EEM_OccupancyHighEnergy_->Fill(ix-0.5,iy-0.5);
00950 EEM_OccupancyHighEnergyCoarse_->Fill(ix-0.5,iy-0.5);
00951 } else {
00952 EEP_FedsenergyOnlyHighHist_->Fill(energy);
00953 }
00954
00955
00956
00957
00958
00959
00960
00961
00962
00963 if (energy>100.0) {
00964 LogInfo("EcalCosmicsHists") << "Very high energy event in EE " << iEvent.id().run() << " : "
00965 << iEvent.id().event() << " " << naiveEvtNum_
00966 << " : " << energy << " " << numXtalsinCluster
00967 << " : " << ix << " " << iy
00968 << " : " << isEcalL1 << isHCALL1 << isDTL1 << isRPCL1 << isCSCL1 ;
00969
00970
00971 }
00972
00973 }
00974
00975
00976
00977 }
00978 }
00979
00980 HighEnergy_numClusHighEn->Fill(numberOfHighEClusters);
00981 HighEnergy_ratioClusters->Fill((double(numberOfHighEClusters))/(double(numberOfCosmics)));
00982
00983 numberofCosmicsHist_->Fill(numberOfCosmics);
00984 EEP_numberofCosmicsHist_->Fill(numberOfCosmicsEEP);
00985 EEM_numberofCosmicsHist_->Fill(numberOfCosmicsEEM);
00986 numberofCosmicsHistEB_->Fill(numberOfCosmicsEB);
00987
00988 if ( numberOfCosmics > 0 ) {
00989 cosmicCounter_++;
00990 numberofGoodEvtFreq_->Fill(naiveEvtNum_);
00991 allFedsFreqTimeHist_->Fill(eventTime);
00992
00993
00994
00995 }
00996
00997 if ( numberOfCosmicsEB > 0 ) cosmicCounterEB_++;
00998 if ( numberOfCosmicsEEP > 0 ) cosmicCounterEEP_++;
00999 if ( numberOfCosmicsEEM > 0 ) cosmicCounterEEM_++;
01000
01001 if (numberOfCosmicsTop&&numberOfCosmicsBottom) {
01002 cosmicCounterTopBottom_++;
01003 numberofCosmicsTopBottomHist_->Fill(numberOfCosmicsTop+numberOfCosmicsBottom);
01004 }
01005
01006
01007
01008
01009 edm::Handle<reco::TrackCollection> recoTracks;
01010 iEvent.getByLabel("cosmicMuons", recoTracks);
01011
01012 if ( recoTracks.isValid() ) {
01013
01014 std::map<int,std::vector<DetId> > trackDetIdMap;
01015 int tracks = 0;
01016 for(reco::TrackCollection::const_iterator recoTrack = recoTracks->begin(); recoTrack != recoTracks->end(); ++recoTrack){
01017
01018 if(fabs(recoTrack->d0())>70 || fabs(recoTrack->dz())>70)
01019 continue;
01020 if(recoTrack->numberOfValidHits()<20)
01021 continue;
01022
01023
01024
01025 TrackDetMatchInfo info = trackAssociator_.associate(iEvent, iSetup, *recoTrack, trackParameters_);
01026
01027
01028
01029
01030
01031
01032
01033
01034
01035
01036
01037
01038
01039
01040
01041
01042
01043
01044
01045
01046
01047
01048
01049
01050 for (unsigned int i=0; i<info.crossedEcalIds.size(); i++) {
01051
01052 if (info.crossedEcalIds[i].det() == DetId::Ecal && info.crossedEcalIds[i].subdetId() == 1) {
01053 EBDetId ebDetId (info.crossedEcalIds[i]);
01054 trackAssoc_muonsEcal_->Fill(ebDetId.iphi(), ebDetId.ieta());
01055
01056
01057
01058 EcalRecHitCollection::const_iterator thishit = hits->find(ebDetId);
01059 if (thishit == hits->end()) continue;
01060
01061 EcalRecHit myhit = (*thishit);
01062
01063
01064 }
01065 }
01066
01067
01068
01069 numberofCrossedEcalIdsHist_->Fill(info.crossedEcalIds.size());
01070 tracks++;
01071 if(info.crossedEcalIds.size()>0)
01072 trackDetIdMap.insert(std::pair<int,std::vector<DetId> > (tracks,info.crossedEcalIds));
01073 }
01074
01075
01076
01077 int numAssocTracks = 0;
01078 int numAssocClusters = 0;
01079 edm::LogVerbatim("TrackAssociator") << "Matching cosmic clusters to tracks...";
01080 int numSeeds = seeds.size();
01081 int numTracks = trackDetIdMap.size();
01082 while(seeds.size() > 0 && trackDetIdMap.size() > 0)
01083 {
01084 double bestDr = 1000;
01085 double bestDPhi = 1000;
01086 double bestDEta = 1000;
01087 double bestEtaTrack = 1000;
01088 double bestEtaSeed = 1000;
01089 double bestPhiTrack = 1000;
01090 double bestPhiSeed = 1000;
01091 EBDetId bestTrackDet;
01092 EBDetId bestSeed;
01093 int bestTrack = -1;
01094 std::map<EBDetId,EBDetId> trackDetIdToSeedMap;
01095
01096
01097
01098 for(std::vector<EBDetId>::const_iterator seedItr = seeds.begin(); seedItr != seeds.end(); ++seedItr) {
01099 for(std::map<int,std::vector<DetId> >::const_iterator mapItr = trackDetIdMap.begin();
01100 mapItr != trackDetIdMap.end(); ++mapItr) {
01101 for(unsigned int i=0; i<mapItr->second.size(); i++) {
01102
01103 if(mapItr->second[i].det() == DetId::Ecal && mapItr->second[i].subdetId() == 1) {
01104 EBDetId ebDet = (mapItr->second[i]);
01105 double seedEta = seedItr->ieta();
01106 double deta = ebDet.ieta()-seedEta;
01107 if(seedEta * ebDet.ieta() < 0 )
01108 deta > 0 ? (deta=deta-1.) : (deta=deta+1.);
01109 double dR;
01110 double dphi = ebDet.iphi()-seedItr->iphi();
01111 if (abs(dphi) > 180)
01112 dphi > 0 ? (dphi=360-dphi) : (dphi=-360-dphi);
01113 dR = sqrt(deta*deta + dphi*dphi);
01114 if(dR < bestDr)
01115 {
01116 bestDr = dR;
01117 bestDPhi = dphi;
01118 bestDEta = deta;
01119 bestTrackDet = mapItr->second[i];
01120 bestTrack = mapItr->first;
01121 bestSeed = (*seedItr);
01122 bestEtaTrack = ebDet.ieta();
01123 bestEtaSeed = seedEta;
01124 bestPhiTrack = ebDet.iphi();
01125 bestPhiSeed = seedItr->iphi();
01126 }
01127 }
01128 }
01129 }
01130 }
01131 if(bestDr < 1000) {
01132
01133 deltaRHist_->Fill(bestDr);
01134 deltaPhiHist_->Fill(bestDPhi);
01135 deltaEtaHist_->Fill(bestDEta);
01136 deltaEtaDeltaPhiHist_->Fill(bestDEta,bestDPhi);
01137 seedTrackEtaHist_->Fill(bestEtaSeed,bestEtaTrack);
01138 seedTrackPhiHist_->Fill(bestPhiSeed,bestPhiTrack);
01139 seeds.erase(find(seeds.begin(),seeds.end(), bestSeed));
01140 trackDetIdMap.erase(trackDetIdMap.find(bestTrack));
01141 trackDetIdToSeedMap[bestTrackDet] = bestSeed;
01142 numAssocTracks++;
01143 numAssocClusters++;
01144
01145
01146 if(bestDPhi < 1.5 && bestDEta < 1.8 ) {
01147
01148
01149
01150 EcalRecHitCollection::const_iterator Ecalhit = hits->find(bestSeed);
01151 if (Ecalhit == hits->end()) {
01152 continue;
01153 }
01154 double EcalhitEnergy = Ecalhit->energy();
01155
01156 HighEnergy_bestSeed->Fill(EcalhitEnergy);
01157 HighEnergy_bestSeedOccupancy->Fill(bestSeed.iphi(), bestSeed.ieta());
01158 }
01159 }
01160 else {
01161 edm::LogVerbatim("TrackAssociator") << "could not match cluster seed to track." << bestDr;
01162 break;
01163 }
01164 }
01165 if(numSeeds>0 && numTracks>0) {
01166 ratioAssocClustersHist_->AddBinContent(1,numAssocClusters);
01167 ratioAssocClustersHist_->AddBinContent(2,numSeeds);
01168 }
01169 if(numTracks>0) {
01170 ratioAssocTracksHist_->AddBinContent(1,numAssocTracks);
01171 ratioAssocTracksHist_->AddBinContent(2,numTracks);
01172 numberofCosmicsWTrackHist_->Fill(numSeeds);
01173 }
01174 } else {
01175
01176 }
01177
01178
01179
01180 edm::Handle<reco::TrackCollection> recoTracksBarrel;
01181 iEvent.getByLabel("cosmicMuonsBarrelOnly", recoTracksBarrel);
01182 if ( !recoTracksBarrel.isValid() ) {
01183
01184 }
01185 else {
01186
01187 HighEnergy_numRecoTrackBarrel->Fill(recoTracksBarrel->size());
01188 for(reco::TrackCollection::const_iterator recoTrack = recoTracksBarrel->begin(); recoTrack != recoTracksBarrel->end(); ++recoTrack) {
01189
01190
01191 }
01192
01193 for (reco::SuperClusterCollection::const_iterator clus = clusterCollection_p->begin(); clus != clusterCollection_p->end(); ++clus) {
01194 double energy = clus->energy();
01195 double phi = clus->phi();
01196 double eta = clus->eta();
01197
01198 if (recoTracksBarrel->size()==0) HighEnergy_0tracks_occu3D->Fill(phi,eta,energy);
01199 if (recoTracksBarrel->size()==1) HighEnergy_1tracks_occu3D->Fill(phi,eta,energy);
01200 if (recoTracksBarrel->size()==2) HighEnergy_2tracks_occu3D->Fill(phi,eta,energy);
01201
01202 std::vector<std::pair<DetId, float> > clusterDetIds = clus->hitsAndFractions();
01203 for(std::vector< std::pair<DetId, float> >::const_iterator detitr = clusterDetIds.begin(); detitr != clusterDetIds.end(); ++detitr)
01204 {
01205 if ((*detitr).first.det() != DetId::Ecal) {continue;}
01206 if ((*detitr).first.subdetId() != EcalBarrel) {continue; }
01207 EcalRecHitCollection::const_iterator thishit = hits->find((*detitr).first);
01208 if (thishit == hits->end()) {continue;}
01209
01210 double rechitenergy = thishit->energy();
01211 int ieta = ((EBDetId)(*detitr).first).ieta();
01212 int iphi = ((EBDetId)(*detitr).first).iphi();
01213 if (rechitenergy > minRecHitAmpEB_) {
01214 if (recoTracksBarrel->size()==0) HighEnergy_0tracks_occu3DXtal->Fill(iphi,ieta,rechitenergy);
01215 if (recoTracksBarrel->size()==1) HighEnergy_1tracks_occu3DXtal->Fill(iphi,ieta,rechitenergy);
01216 if (recoTracksBarrel->size()==2) HighEnergy_2tracks_occu3DXtal->Fill(iphi,ieta,rechitenergy);
01217
01218 if (rechitenergy > 10 ) edm::LogWarning("EcalCosmicsHists") << "!!!!! Crystal with energy " << rechitenergy << " at (ieta,iphi) (" << ieta << " ," << iphi << "); Id: " << (*detitr).first.det();
01219 }
01220 }
01221 }
01222
01223
01224 if ( recoTracksBarrel->size() == 2 ) {
01225 reco::TrackCollection::const_iterator Track1 = recoTracksBarrel->begin();
01226 reco::TrackCollection::const_iterator Track2 = (recoTracksBarrel->begin())+1;
01227 float angle = (acos(sin(Track1->theta()) * cos(Track1->phi()) * sin(Track2->theta()) * cos(Track2->phi()) + sin(Track1->theta()) * sin(Track1->phi()) * sin(Track2->theta()) * sin(Track2->phi()) + cos(Track1->theta()) * cos(Track2->theta())))/0.017453292519943;
01228
01229 HighEnergy_TracksAngle->Fill(angle);
01230 if ( (Track1->innerPosition().phi()) > 0 && (Track2->innerPosition().phi()) < 0 ) {
01231
01232 HighEnergy_TracksAngleTopBottom->Fill(angle);
01233 }
01234
01235
01236 }
01237 }
01238
01239
01240
01241
01242
01243
01244
01245 edm::Handle<HBHERecHitCollection> hbhe;
01246 iEvent.getByLabel("hbhereco", hbhe);
01247
01248 edm::Handle<HFRecHitCollection> hfrh;
01249 iEvent.getByLabel("hfreco",hfrh);
01250
01251 edm::Handle<HORecHitCollection> horh;
01252 iEvent.getByLabel("horeco", horh);
01253
01254 if ( hbhe.isValid() ) {
01255
01256 const HBHERecHitCollection hbheHit = *(hbhe.product());
01257 for (HBHERecHitCollection::const_iterator hhit=hbheHit.begin(); hhit!=hbheHit.end(); hhit++) {
01258
01259 hcalEnergy_HBHE_->Fill(hhit->energy());
01260
01261 }
01262 } else {
01263
01264 }
01265
01266 if ( hfrh.isValid() ) {
01267
01268 const HFRecHitCollection hfHit = *(hfrh.product());
01269 for (HFRecHitCollection::const_iterator hhit=hfHit.begin(); hhit!=hfHit.end(); hhit++) {
01270 hcalEnergy_HF_->Fill(hhit->energy());
01271 }
01272 } else {
01273
01274 }
01275
01276 if ( horh.isValid() ) {
01277
01278 const HORecHitCollection hoHit = *(horh.product());
01279 for (HORecHitCollection::const_iterator hhit=hoHit.begin(); hhit!=hoHit.end(); hhit++) {
01280
01281 hcalEnergy_HO_->Fill(hhit->energy());
01282
01283 }
01284 } else {
01285
01286 }
01287
01288
01289 }
01290
01291
01292
01293 std::vector<bool> EcalCosmicsHists::determineTriggers(const edm::Event& iEvent, const edm::EventSetup& eventSetup)
01294 {
01295 std::vector<bool> l1Triggers;
01296
01297 for(int i=0;i<5;i++)
01298 l1Triggers.push_back(false);
01299
01300
01301 Handle<L1MuGMTReadoutCollection> gmtrc_handle;
01302 iEvent.getByLabel(l1GMTReadoutRecTag_,gmtrc_handle);
01303 L1MuGMTReadoutCollection const* gmtrc = gmtrc_handle.product();
01304 if (!(gmtrc_handle.isValid()))
01305 {
01306 LogWarning("EcalCosmicsHists") << "l1MuGMTReadoutCollection" << " not available";
01307 return l1Triggers;
01308 }
01309
01310 Handle<L1GlobalTriggerReadoutRecord> L1GTRR;
01311 iEvent.getByLabel(l1GTReadoutRecTag_,L1GTRR);
01312
01313
01314 edm::ESHandle<L1GtTriggerMenu> menuRcd;
01315 eventSetup.get<L1GtTriggerMenuRcd>().get(menuRcd) ;
01316 const L1GtTriggerMenu* menu = menuRcd.product();
01317 edm::Handle< L1GlobalTriggerReadoutRecord > gtRecord;
01318 iEvent.getByLabel( edm::InputTag("gtDigis"), gtRecord);
01319
01320 const DecisionWord dWord = gtRecord->decisionWord();
01321
01322 bool l1SingleEG1 = menu->gtAlgorithmResult("L1_SingleEG1", dWord);
01323 bool l1SingleEG5 = menu->gtAlgorithmResult("L1_SingleEG5", dWord);
01324 bool l1SingleEG8 = menu->gtAlgorithmResult("L1_SingleEG8", dWord);
01325 bool l1SingleEG10 = menu->gtAlgorithmResult("L1_SingleEG10", dWord);
01326 bool l1SingleEG12 = menu->gtAlgorithmResult("L1_SingleEG12", dWord);
01327 bool l1SingleEG15 = menu->gtAlgorithmResult("L1_SingleEG15", dWord);
01328 bool l1SingleEG20 = menu->gtAlgorithmResult("L1_SingleEG20", dWord);
01329 bool l1SingleEG25 = menu->gtAlgorithmResult("L1_SingleEG25", dWord);
01330 bool l1DoubleNoIsoEGBTBtight = menu->gtAlgorithmResult("L1_DoubleNoIsoEG_BTB_tight", dWord);
01331 bool l1DoubleNoIsoEGBTBloose = menu->gtAlgorithmResult("L1_DoubleNoIsoEG_BTB_loose ", dWord);
01332 bool l1DoubleNoIsoEGTopBottom = menu->gtAlgorithmResult("L1_DoubleNoIsoEGTopBottom", dWord);
01333 bool l1DoubleNoIsoEGTopBottomCen = menu->gtAlgorithmResult("L1_DoubleNoIsoEGTopBottomCen", dWord);
01334 bool l1DoubleNoIsoEGTopBottomCen2 = menu->gtAlgorithmResult("L1_DoubleNoIsoEGTopBottomCen2", dWord);
01335 bool l1DoubleNoIsoEGTopBottomCenVert = menu->gtAlgorithmResult("L1_DoubleNoIsoEGTopBottomCenVert", dWord);
01336
01337 l1Triggers[4] = l1SingleEG1 || l1SingleEG5 || l1SingleEG8 || l1SingleEG10 || l1SingleEG12 || l1SingleEG15
01338 || l1SingleEG20 || l1SingleEG25 || l1DoubleNoIsoEGBTBtight || l1DoubleNoIsoEGBTBloose
01339 || l1DoubleNoIsoEGTopBottom || l1DoubleNoIsoEGTopBottomCen || l1DoubleNoIsoEGTopBottomCen2
01340 || l1DoubleNoIsoEGTopBottomCenVert;
01341
01342 std::vector<L1MuGMTReadoutRecord> gmt_records = gmtrc->getRecords();
01343 std::vector<L1MuGMTReadoutRecord>::const_iterator igmtrr;
01344 for(igmtrr=gmt_records.begin(); igmtrr!=gmt_records.end(); igmtrr++) {
01345 std::vector<L1MuRegionalCand>::const_iterator iter1;
01346 std::vector<L1MuRegionalCand> rmc;
01347
01348
01349 int idt = 0;
01350 rmc = igmtrr->getDTBXCands();
01351 for(iter1=rmc.begin(); iter1!=rmc.end(); iter1++) {
01352 if ( !(*iter1).empty() ) {
01353 idt++;
01354 }
01355 }
01356
01357
01358 if(igmtrr->getBxInEvent()==0 && idt>0) l1Triggers[0] = true;
01359
01360
01361 int irpcb = 0;
01362 rmc = igmtrr->getBrlRPCCands();
01363 for(iter1=rmc.begin(); iter1!=rmc.end(); iter1++) {
01364 if ( !(*iter1).empty() ) {
01365 irpcb++;
01366 }
01367 }
01368
01369
01370 if(igmtrr->getBxInEvent()==0 && irpcb>0) l1Triggers[2] = true;
01371
01372
01373 int icsc = 0;
01374 rmc = igmtrr->getCSCCands();
01375 for(iter1=rmc.begin(); iter1!=rmc.end(); iter1++) {
01376 if ( !(*iter1).empty() ) {
01377 icsc++;
01378 }
01379 }
01380
01381
01382 if(igmtrr->getBxInEvent()==0 && icsc>0) l1Triggers[1] = true;
01383 }
01384
01385 L1GlobalTriggerReadoutRecord const* gtrr = L1GTRR.product();
01386
01387 for(int ibx=-1; ibx<=1; ibx++) {
01388 bool hcal_top = false;
01389 bool hcal_bot = false;
01390 const L1GtPsbWord psb = gtrr->gtPsbWord(0xbb0d,ibx);
01391 std::vector<int> valid_phi;
01392 if((psb.aData(4)&0x3f) >= 1) {valid_phi.push_back( (psb.aData(4)>>10)&0x1f ); }
01393 if((psb.bData(4)&0x3f) >= 1) {valid_phi.push_back( (psb.bData(4)>>10)&0x1f ); }
01394 if((psb.aData(5)&0x3f) >= 1) {valid_phi.push_back( (psb.aData(5)>>10)&0x1f ); }
01395 if((psb.bData(5)&0x3f) >= 1) {valid_phi.push_back( (psb.bData(5)>>10)&0x1f ); }
01396 std::vector<int>::const_iterator iphi;
01397 for(iphi=valid_phi.begin(); iphi!=valid_phi.end(); iphi++) {
01398
01399 if(*iphi<9) hcal_top=true;
01400 if(*iphi>8) hcal_bot=true;
01401 }
01402 if(ibx==0 && hcal_top && hcal_bot) l1Triggers[3]=true;
01403 }
01404
01405 edm::LogInfo("EcalCosmicsHists") << "**** Trigger SourceSource ****";
01406 if(l1Triggers[0]) edm::LogInfo("EcalCosmicsHists") << "DT";
01407 if(l1Triggers[2]) edm::LogInfo("EcalCosmicsHists") << "RPC";
01408 if(l1Triggers[1]) edm::LogInfo("EcalCosmicsHists") << "CSC";
01409 if(l1Triggers[3]) edm::LogInfo("EcalCosmicsHists") << "HCAL";
01410 if(l1Triggers[4]) edm::LogInfo("EcalCosmicsHists") << "ECAL";
01411 edm::LogInfo("EcalCosmicsHists") << "************************";
01412
01413 return l1Triggers;
01414 }
01415
01416
01417 void EcalCosmicsHists::initHists(int FED)
01418 {
01419 using namespace std;
01420
01421 string FEDid = intToString(FED);
01422 string title1 = "Energy of Seed Crystal ";
01423 title1.append(fedMap_->getSliceFromFed(FED));
01424 title1.append(";Seed Energy (GeV);Number of Cosmics");
01425 string name1 = "SeedEnergyFED";
01426 name1.append(intToString(FED));
01427 int numBins = 200;
01428 TH1F* hist = new TH1F(name1.c_str(),title1.c_str(), numBins, histRangeMin_, histRangeMax_);
01429 FEDsAndHists_[FED] = hist;
01430 FEDsAndHists_[FED]->SetDirectory(0);
01431
01432 TH1F* E2hist = new TH1F(Form("E2_FED_%d",FED),Form("E2_FED_%d",FED), numBins, histRangeMin_, histRangeMax_);
01433 FEDsAndE2Hists_[FED] = E2hist;
01434 FEDsAndE2Hists_[FED]->SetDirectory(0);
01435
01436 TH1F* energyhist = new TH1F(Form("Energy_FED_%d",FED),Form("Energy_FED_%d",FED), numBins, histRangeMin_, histRangeMax_);
01437 FEDsAndenergyHists_[FED] = energyhist;
01438 FEDsAndenergyHists_[FED]->SetDirectory(0);
01439
01440 TH2F* E2vsE1hist = new TH2F(Form("E2vsE1_FED_%d",FED),Form("E2vsE1_FED_%d",FED), numBins, histRangeMin_, histRangeMax_, numBins, histRangeMin_, histRangeMax_);
01441 FEDsAndE2vsE1Hists_[FED] = E2vsE1hist;
01442 FEDsAndE2vsE1Hists_[FED]->SetDirectory(0);
01443
01444 TH2F* energyvsE1hist = new TH2F(Form("EnergyvsE1_FED_%d",FED),Form("EnergyvsE1_FED_%d",FED), numBins, histRangeMin_, histRangeMax_, numBins, histRangeMin_, histRangeMax_);
01445 FEDsAndenergyvsE1Hists_[FED] = energyvsE1hist;
01446 FEDsAndenergyvsE1Hists_[FED]->SetDirectory(0);
01447
01448 title1 = "Time for ";
01449 title1.append(fedMap_->getSliceFromFed(FED));
01450 title1.append(";Relative Time (1 clock = 25ns);Events");
01451 name1 = "TimeFED";
01452 name1.append(intToString(FED));
01453 TH1F* timingHist = new TH1F(name1.c_str(),title1.c_str(),78,-7,7);
01454 FEDsAndTimingHists_[FED] = timingHist;
01455 FEDsAndTimingHists_[FED]->SetDirectory(0);
01456
01457 TH1F* freqHist = new TH1F(Form("Frequency_FED_%d",FED),Form("Frequency for FED %d;Event Number",FED),100,0.,100000);
01458 FEDsAndFrequencyHists_[FED] = freqHist;
01459 FEDsAndFrequencyHists_[FED]->SetDirectory(0);
01460
01461 TH1F* iphiProfileHist = new TH1F(Form("iPhi_Profile_FED_%d",FED),Form("iPhi Profile for FED %d",FED),360,1.,361);
01462 FEDsAndiPhiProfileHists_[FED] = iphiProfileHist;
01463 FEDsAndiPhiProfileHists_[FED]->SetDirectory(0);
01464
01465 TH1F* ietaProfileHist = new TH1F(Form("iEta_Profile_FED_%d",FED),Form("iEta Profile for FED %d",FED),172,-86,86);
01466 FEDsAndiEtaProfileHists_[FED] = ietaProfileHist;
01467 FEDsAndiEtaProfileHists_[FED]->SetDirectory(0);
01468
01469 TH2F* timingHistVsFreq = new TH2F(Form("timeVsFreqFED_%d",FED),Form("time Vs Freq FED %d",FED),78,-7,7,100,0.,100000);
01470 FEDsAndTimingVsFreqHists_[FED] = timingHistVsFreq;
01471 FEDsAndTimingVsFreqHists_[FED]->SetDirectory(0);
01472
01473 TH2F* timingHistVsAmp = new TH2F(Form("timeVsAmpFED_%d",FED),Form("time Vs Amp FED %d",FED),78,-7,7,numBins,histRangeMin_,histRangeMax_);
01474 FEDsAndTimingVsAmpHists_[FED] = timingHistVsAmp;
01475 FEDsAndTimingVsAmpHists_[FED]->SetDirectory(0);
01476
01477 TH1F* numXtalInClusterHist = new TH1F(Form("NumXtalsInCluster_FED_%d",FED),Form("Num active Xtals In Cluster for FED %d;Num Active Xtals",FED),25,0,25);
01478 FEDsAndNumXtalsInClusterHists_[FED] = numXtalInClusterHist;
01479 FEDsAndNumXtalsInClusterHists_[FED]->SetDirectory(0);
01480
01481 TH2F* OccupHist = new TH2F(Form("occupFED_%d",FED),Form("Occupancy FED %d;i#eta;i#phi",FED),85,1,86,20,1,21);
01482 FEDsAndOccupancyHists_[FED] = OccupHist;
01483 FEDsAndOccupancyHists_[FED]->SetDirectory(0);
01484
01485 TH2F* timingHistVsPhi = new TH2F(Form("timeVsPhiFED_%d",FED),Form("time Vs Phi FED %d;Relative Time (1 clock = 25ns);i#phi",FED),78,-7,7,20,1,21);
01486 FEDsAndTimingVsPhiHists_[FED] = timingHistVsPhi;
01487 FEDsAndTimingVsPhiHists_[FED]->SetDirectory(0);
01488
01489 TH2F* timingHistVsModule = new TH2F(Form("timeVsModuleFED_%d",FED),Form("time Vs Module FED %d;Relative Time (1 clock = 25ns);i#eta",FED),78,-7,7,4,1,86);
01490 FEDsAndTimingVsModuleHists_[FED] = timingHistVsModule;
01491 FEDsAndTimingVsModuleHists_[FED]->SetDirectory(0);
01492
01493 TH2F* dccRuntypeVsBxFED = new TH2F(Form("DCCRuntypeVsBxFED_%d",FED),Form("DCC Runtype vs. BX FED %d",FED),3600,0,3600,24,0,24);
01494 FEDsAndDCCRuntypeVsBxHists_[FED] = dccRuntypeVsBxFED;
01495 FEDsAndDCCRuntypeVsBxHists_[FED]->SetDirectory(0);
01496
01497 }
01498
01499
01500 void
01501 EcalCosmicsHists::beginRun(edm::Run const &, edm::EventSetup const & eventSetup)
01502 {
01503 edm::ESHandle< EcalElectronicsMapping > handle;
01504 eventSetup.get< EcalMappingRcd >().get(handle);
01505 ecalElectronicsMap_ = handle.product();
01506
01507
01508 int numBins = 200;
01509
01510
01511 double ttEtaBins[36] = {-85, -80, -75, -70, -65, -60, -55, -50, -45, -40, -35, -30, -25, -20, -15, -10, -5, 0, 1, 6, 11, 16, 21, 26, 31, 36, 41, 46, 51, 56, 61, 66, 71, 76, 81, 86 };
01512 double modEtaBins[10]={-85, -65, -45, -25, 0, 1, 26, 46, 66, 86};
01513 double ttPhiBins[73];
01514 double modPhiBins[19];
01515 double timingBins[79];
01516 double highEBins[11];
01517 for (int i = 0; i < 79; ++i)
01518 {
01519 timingBins[i]=-7.+double(i)*14./78.;
01520 if (i<73)
01521 {
01522 ttPhiBins[i]=1+5*i;
01523 if ( i < 19)
01524 {
01525 modPhiBins[i]=1+20*i;
01526 if (i < 11)
01527 {
01528 highEBins[i]=10.+double(i)*20.;
01529 }
01530 }
01531 }
01532
01533 }
01534
01535
01536
01537 double timingEndInSeconds = runTimeLength_*3600.;
01538 double timingBinWidth = timingEndInSeconds/double(numTimingBins_);
01539
01540
01541
01542 allFedsenergyHist_ = new TH1F("energy_AllClusters","energy_AllClusters;Cluster Energy (GeV)",numBins,histRangeMin_,histRangeMax_);
01543 allFedsenergyHighHist_ = new TH1F("energyHigh_AllClusters","energyHigh_AllClusters;Cluster Energy (GeV)",numBins,histRangeMin_,200.0);
01544 allFedsenergyOnlyHighHist_ = new TH1F("energyHigh_HighEnergyClusters","energy of High Energy Clusters;Cluster Energy (GeV)",numBins,histRangeMin_,200.0);
01545 allFedsE2Hist_ = new TH1F("E2_AllClusters","E2_AllClusters;Seed+highest neighbor energy (GeV)",numBins,histRangeMin_,histRangeMax_);
01546 allFedsE2vsE1Hist_ = new TH2F("E2vsE1_AllClusters","E2vsE1_AllClusters;Seed Energy (GeV);Seed+highest neighbor energy (GeV)",numBins,histRangeMin_,histRangeMax_,numBins,histRangeMin_,histRangeMax_);
01547 allFedsenergyvsE1Hist_ = new TH2F("energyvsE1_AllClusters","energyvsE1_AllClusters;Seed Energy (GeV);Energy(GeV)",numBins,histRangeMin_,histRangeMax_,numBins,histRangeMin_,histRangeMax_);
01548 allFedsTimingHist_ = new TH1F("timeForAllFeds","timeForAllFeds;Relative Time (1 clock = 25ns)",78,-7,7);
01549 allFedsTimingVsFreqHist_ = new TH2F("timeVsFreqAllEvent","time Vs Freq All events;Relative Time (1 clock = 25ns);Event Number",78,-7,7,2000,0.,200000);
01550 allFedsTimingVsAmpHist_ = new TH2F("timeVsAmpAllEvents","time Vs Amp All Events;Relative Time (1 clock = 25ns);Amplitude (GeV)",78,-7,7,numBins,histRangeMin_,histRangeMax_);
01551 allFedsFrequencyHist_ = new TH1F("FrequencyAllEvent","Frequency for All events;Event Number",2000,0.,200000);
01552
01553
01554 allFedsFreqTimeHist_ = new TH1F("FrequencyAllEventsInTime",Form("Time of Cosmic Events; Time (s);Passing Event rate/%5g s",timingBinWidth),numTimingBins_,0.,timingEndInSeconds);
01555 allFedsFreqTimeVsPhiHist_= new TH2F("FrequencyAllEventsInTimeVsPhi",Form("Time of Cosmic Events vs iPhi; iPhi;Time (s)/%5g s",timingBinWidth*360.),360,1.,361.,numTimingBins_/360,0.,timingEndInSeconds);
01556 allFedsFreqTimeVsPhiTTHist_= new TH2F("FrequencyAllEventsInTimeVsTTPhi",Form("Time of Cosmic Events vs iPhi (TT bins); iPhi;Time (s)/%5g s",timingBinWidth*72.),72,1.,361.,numTimingBins_/72,0.,timingEndInSeconds);
01557 allFedsFreqTimeVsEtaHist_= new TH2F("FrequencyAllEventsInTimeVsEta",Form("Time of Cosmic Events vs iEta; Time (s)/%5g s; iEta" ,timingBinWidth*172.),numTimingBins_/172,0.,timingEndInSeconds,172,-86.,86.);
01558 allFedsFreqTimeVsEtaTTHist_= new TH2F("FrequencyAllEventsInTimeVsTTEta",Form("Time of Cosmic Events vs Eta (TT bins);Time (s)/%5g s; iEta" ,timingBinWidth*35.),numTimingBins_/35,0.,timingEndInSeconds,35,ttEtaBins);
01559
01560
01561 allFedsiPhiProfileHist_ = new TH1F("iPhiProfileAllEvents","iPhi Profile all events;i#phi",360,1.,361.);
01562 allFedsiEtaProfileHist_ = new TH1F("iEtaProfileAllEvents","iEta Profile all events;i#eta",172,-86,86);
01563
01564 allOccupancy_ = new TH2F("OccupancyAllEvents","Occupancy all events;i#phi;i#eta",360,1.,361.,172,-86,86);
01565 TrueOccupancy_ = new TH2F("TrueOccupancyAllEvents","True Occupancy all events;#phi;#eta",360,-3.14159,3.14159,172,-1.5,1.5);
01566 allOccupancyCoarse_ = new TH2F("OccupancyAllEventsCoarse","Occupancy all events Coarse;i#phi;i#eta",360/5,1,361.,35,ttEtaBins);
01567 TrueOccupancyCoarse_ = new TH2F("TrueOccupancyAllEventsCoarse","True Occupancy all events Coarse;#phi;#eta",360/5,-3.14159,3.14159,34,-1.5,1.5);
01568
01569
01570
01571 allOccupancySingleXtal_ = new TH2F("OccupancySingleXtal","Occupancy single xtal clusters;i#phi;i#eta",360,1.,361.,172,-86,86);
01572 energySingleXtalHist_ = new TH1F("energy_SingleXtalClusters","Energy single xtal clusters;Cluster Energy (GeV)",numBins,histRangeMin_,200.0);
01573
01574 allFedsTimingPhiHist_ = new TH2F("timePhiAllFEDs","time vs Phi for all FEDs (TT binning);i#phi;Relative Time (1 clock = 25ns)",72,1,361,78,-7,7);
01575 allFedsTimingPhiEbpHist_ = new TH2F("timePhiEBP","time vs Phi for FEDs in EB+ (TT binning) ;i#phi;Relative Time (1 clock = 25ns)",72,1,361,78,-7,7);
01576 allFedsTimingPhiEbmHist_ = new TH2F("timePhiEBM","time vs Phi for FEDs in EB- (TT binning);i#phi;Relative Time (1 clock = 25ns)",72,1,361,78,-7,7);
01577 allFedsTimingPhiEtaHist_ = new TH3F("timePhiEtaAllFEDs","(Phi,Eta,time) for all FEDs (SM,M binning);i#phi;i#eta;Relative Time (1 clock = 25ns)",18,modPhiBins,9,modEtaBins,78,timingBins);
01578 allFedsTimingTTHist_ = new TH3F("timeTTAllFEDs","(Phi,Eta,time) for all FEDs (SM,TT binning);i#phi;i#eta;Relative Time (1 clock = 25ns)",72,ttPhiBins,35,ttEtaBins,78,timingBins);
01579 allFedsTimingLMHist_ = new TH2F("timeLMAllFEDs","(LM,time) for all FEDs (SM,LM binning);LM;Relative Time (1 clock = 25ns)",92, 1, 92,78,-7,7);
01580
01581 allFedsTimingEbpHist_ = new TH1F("timeEBP","time for FEDs in EB+;Relative Time (1 clock = 25ns)",78,-7,7);
01582 allFedsTimingEbmHist_ = new TH1F("timeEBM","time for FEDs in EB-;Relative Time (1 clock = 25ns)",78,-7,7);
01583 allFedsTimingEbpTopHist_ = new TH1F("timeEBPTop","time for FEDs in EB+ Top;Relative Time (1 clock = 25ns)",78,-7,7);
01584 allFedsTimingEbmTopHist_ = new TH1F("timeEBMTop","time for FEDs in EB- Top;Relative Time (1 clock = 25ns)",78,-7,7);
01585 allFedsTimingEbpBottomHist_ = new TH1F("timeEBPBottom","time for FEDs in EB+ Bottom;Relative Time (1 clock = 25ns)",78,-7,7);
01586 allFedsTimingEbmBottomHist_ = new TH1F("timeEBMBottom","time for FEDs in EB- Bottom;Relative Time (1 clock = 25ns)",78,-7,7);
01587
01588 numberofCosmicsHist_ = new TH1F("numberofCosmicsPerEvent","Number of cosmics per event;Number of Cosmics",30,0,30);
01589 numberofCosmicsHistEB_ = new TH1F("numberofCosmicsPerEvent_EB","Number of cosmics per event EB;Number of Cosmics",30,0,30);
01590
01591 numberofCosmicsWTrackHist_ = new TH1F("numberofCosmicsWTrackPerEvent","Number of cosmics with track per event",30,0,30);
01592 numberofCosmicsTopBottomHist_ = new TH1F("numberofCosmicsTopBottomPerEvent","Number of top bottom cosmics per event;Number of Cosmics",30,0,30);
01593 numberofGoodEvtFreq_ = new TH1F("frequencyOfGoodEvents","Number of events with cosmic vs Event;Event Number;Number of Good Events/100 Events",2000,0,200000);
01594
01595 numberofCrossedEcalIdsHist_ = new TH1F("numberofCrossedEcalCosmicsPerEvent","Number of crossed ECAL cosmics per event;Number of Crossed Cosmics",10,0,10);
01596
01597 allOccupancyExclusiveECAL_ = new TH2F("OccupancyAllEvents_ExclusiveECAL","Occupancy all events Exclusive ECAL ;i#phi;i#eta",360,1.,361.,172,-86,86);
01598 allOccupancyCoarseExclusiveECAL_ = new TH2F("OccupancyAllEventsCoarse_ExclusiveECAL","Occupancy all events Coarse Exclusive ECAL;i#phi;i#eta",360/5,ttPhiBins,35, ttEtaBins);
01599 allOccupancyECAL_ = new TH2F("OccupancyAllEvents_ECAL","Occupancy all events ECAL;i#phi;i#eta",360,1.,361.,172,-86,86);
01600 allOccupancyCoarseECAL_ = new TH2F("OccupancyAllEventsCoarse_ECAL","Occupancy all events Coarse ECAL;i#phi;i#eta",360/5,ttPhiBins,35, ttEtaBins);
01601 allFedsTimingHistECAL_ = new TH1F("timeForAllFeds_ECAL","timeForAllFeds ECAL;Relative Time (1 clock = 25ns)",78,-7,7);
01602 allFedsTimingPhiEtaHistECAL_ = new TH3F("timePhiEtaAllFEDs_ECAL","ECAL (Phi,Eta,time) for all FEDs (SM,M binning);i#phi;i#eta;Relative Time (1 clock = 25ns)",18,modPhiBins,9, modEtaBins,78,timingBins);
01603 allFedsTimingTTHistECAL_ = new TH3F("timeTTAllFEDs_ECAL","ECAL (Phi,Eta,time) for all FEDs (SM,TT binning);i#phi;i#eta;Relative Time (1 clock = 25ns)",72,ttPhiBins,35,ttEtaBins,78,timingBins);
01604 allFedsTimingLMHistECAL_ = new TH2F("timeLMAllFEDs_ECAL","ECAL (LM,time) for all FEDs (SM,LM binning);LM;Relative Time (1 clock = 25ns)",92, 1, 92,78,-7,7);
01605
01606 allOccupancyExclusiveDT_ = new TH2F("OccupancyAllEvents_ExclusiveDT","Occupancy all events Exclusive DT;i#phi;i#eta",360,1.,361.,172,-86,86);
01607 allOccupancyCoarseExclusiveDT_ = new TH2F("OccupancyAllEventsCoarse_ExclusiveDT","Occupancy all events Coarse Exclusive DT;i#phi;i#eta",360/5,1,361.,35,ttEtaBins);
01608 allOccupancyDT_ = new TH2F("OccupancyAllEvents_DT","Occupancy all events DT;i#phi;i#eta",360,1.,361.,172,-86,86);
01609 allOccupancyCoarseDT_ = new TH2F("OccupancyAllEventsCoarse_DT","Occupancy all events Coarse DT;i#phi;i#eta",360/5,1,361.,35,ttEtaBins);
01610 allFedsTimingHistDT_ = new TH1F("timeForAllFeds_DT","timeForAllFeds DT;Relative Time (1 clock = 25ns)",78,-7,7);
01611 allFedsTimingPhiEtaHistDT_ = new TH3F("timePhiEtaAllFEDs_DT","DT (Phi,Eta,time) for all FEDs (SM,M binning);i#phi;i#eta;Relative Time (1 clock = 25ns)",18,modPhiBins,9, modEtaBins,78,timingBins);
01612 allFedsTimingTTHistDT_ = new TH3F("timeTTAllFEDs_DT","DT (Phi,Eta,time) for all FEDs (SM,TT binning);i#phi;i#eta;Relative Time (1 clock = 25ns)",72,ttPhiBins,35,ttEtaBins,78,timingBins);
01613 allFedsTimingLMHistDT_ = new TH2F("timeLMAllFEDs_DT","DT (LM,time) for all FEDs (SM,LM binning);LM;Relative Time (1 clock = 25ns)",92, 1, 92,78,-7,7);
01614
01615 allOccupancyExclusiveRPC_ = new TH2F("OccupancyAllEvents_ExclusiveRPC","Occupancy all events Exclusive RPC;i#phi;i#eta",360,1.,361.,172,-86,86);
01616 allOccupancyCoarseExclusiveRPC_ = new TH2F("OccupancyAllEventsCoarse_ExclusiveRPC","Occupancy all events Coarse Exclusive RPC;i#phi;i#eta",360/5,1,361.,35, ttEtaBins);
01617 allOccupancyRPC_ = new TH2F("OccupancyAllEvents_RPC","Occupancy all events RPC;i#phi;i#eta",360,1.,361.,172,-86,86);
01618 allOccupancyCoarseRPC_ = new TH2F("OccupancyAllEventsCoarse_RPC","Occupancy all events Coarse RPC;i#phi;i#eta",360/5,1,361.,35, ttEtaBins);
01619 allFedsTimingHistRPC_ = new TH1F("timeForAllFeds_RPC","timeForAllFeds RPC;Relative Time (1 clock = 25ns)",78,-7,7);
01620 allFedsTimingPhiEtaHistRPC_ = new TH3F("timePhiEtaAllFEDs_RPC","RPC (Phi,Eta,time) for all FEDs (SM,M binning);i#phi;i#eta;Relative Time (1 clock = 25ns)",18,modPhiBins,9, modEtaBins,78,timingBins);
01621 allFedsTimingTTHistRPC_ = new TH3F("timeTTAllFEDs_RPC","RPC (Phi,Eta,time) for all FEDs (SM,TT binning);i#phi;i#eta;Relative Time (1 clock = 25ns)",72,ttPhiBins,35,ttEtaBins,78,timingBins);
01622 allFedsTimingLMHistRPC_ = new TH2F("timeLMAllFEDs_RPC","RPC (LM,time) for all FEDs (SM,LM binning);LM;Relative Time (1 clock = 25ns)",92, 1, 92,78,-7,7);
01623
01624 allOccupancyExclusiveCSC_ = new TH2F("OccupancyAllEvents_ExclusiveCSC","Occupancy all events Exclusive CSC;i#phi;i#eta",360,1.,361.,172,-86,86);
01625 allOccupancyCoarseExclusiveCSC_ = new TH2F("OccupancyAllEventsCoarse_ExclusiveCSC","Occupancy all events Coarse Exclusive CSC;i#phi;i#eta",360/5,1,361.,35, ttEtaBins);
01626 allOccupancyCSC_ = new TH2F("OccupancyAllEvents_CSC","Occupancy all events CSC;i#phi;i#eta",360,1.,361.,172,-86,86);
01627 allOccupancyCoarseCSC_ = new TH2F("OccupancyAllEventsCoarse_CSC","Occupancy all events Coarse CSC;i#phi;i#eta",360/5,1,361.,35, ttEtaBins);
01628 allFedsTimingHistCSC_ = new TH1F("timeForAllFeds_CSC","timeForAllFeds CSC;Relative Time (1 clock = 25ns)",78,-7,7);
01629 allFedsTimingPhiEtaHistCSC_ = new TH3F("timePhiEtaAllFEDs_CSC","CSC (Phi,Eta,time) for all FEDs (SM,M binning);i#phi;i#eta;Relative Time (1 clock = 25ns)",18,modPhiBins,9, modEtaBins,78,timingBins);
01630 allFedsTimingTTHistCSC_ = new TH3F("timeTTAllFEDs_CSC","CSC (Phi,Eta,time) for all FEDs (SM,TT binning);i#phi;i#eta;Relative Time (1 clock = 25ns)",72,ttPhiBins,35,ttEtaBins,78,timingBins);
01631 allFedsTimingLMHistCSC_ = new TH2F("timeLMAllFEDs_CSC","CSC (LM,time) for all FEDs (SM,LM binning);LM;Relative Time (1 clock = 25ns)",92, 1, 62,78,-7,7);
01632
01633 allOccupancyExclusiveHCAL_ = new TH2F("OccupancyAllEvents_ExclusiveHCAL","Occupancy all events Exclusive HCAL;i#phi;i#eta",360,1.,361.,172,-86,86);
01634 allOccupancyCoarseExclusiveHCAL_ = new TH2F("OccupancyAllEventsCoarse_ExclusiveHCAL","Occupancy all events Coarse Exclusive HCAL;i#phi;i#eta",360/5,1,361.,35, ttEtaBins);
01635 allOccupancyHCAL_ = new TH2F("OccupancyAllEvents_HCAL","Occupancy all events HCAL;i#phi;i#eta",360,1.,361.,172,-86,86);
01636 allOccupancyCoarseHCAL_ = new TH2F("OccupancyAllEventsCoarse_HCAL","Occupancy all events Coarse HCAL;i#phi;i#eta",360/5,1,361.,35, ttEtaBins);
01637 allFedsTimingHistHCAL_ = new TH1F("timeForAllFeds_HCAL","timeForAllFeds HCAL;Relative Time (1 clock = 25ns)",78,-7,7);
01638 allFedsTimingPhiEtaHistHCAL_ = new TH3F("timePhiEtaAllFEDs_HCAL","HCAL (Phi,Eta,time) for all FEDs (SM,M binning);i#phi;i#eta;Relative Time (1 clock = 25ns)",18,modPhiBins,9, modEtaBins,78,timingBins);
01639 allFedsTimingTTHistHCAL_ = new TH3F("timeTTAllFEDs_HCAL","HCAL (Phi,Eta,time) for all FEDs (SM,TT binning);i#phi;i#eta;Relative Time (1 clock = 25ns)",72,ttPhiBins,35,ttEtaBins,78,timingBins);
01640 allFedsTimingLMHistHCAL_ = new TH2F("timeLMAllFEDs_HCAL","HCAL (LM,time) for all FEDs (SM,LM binning);LM;Relative Time (1 clock = 25ns)",92, 1, 92,78,-7,7);
01641
01642 TrueBCOccupancy_ = new TH2F("BCTrueOccupancyAllEvents","True SB Occupancy all events;#phi;#eta",360,-3.14159,3.14159,172,-1.5,1.5);
01643 TrueBCOccupancyCoarse_ = new TH2F("BCTrueOccupancyAllEventsCoarse","True BC Occupancy all events Coarse;#phi;#eta",360/5,-3.14159,3.14159,34,-1.5 ,1.5);
01644
01645 numberofBCinSC_ = new TH1F("numberofBCinSC","Number of Basic Clusters in Super Cluster;Num Basic Clusters",20,0,20);
01646 numberofBCinSCphi_ = new TH2F("numberofBCinSCphi","Number of Basic Clusters in Super Cluster;phi;Num Basic Clusters",360/5,-3.14159,3.14159,20,0,20);
01647
01648 allFedsTimingHistEcalMuon_ = new TH1F("timeForAllFeds_EcalMuon","timeForAllFeds Ecal+Muon;Relative Time (1 clock = 25ns)",78,-7,7);
01649
01650 triggerHist_ = new TH1F("triggerHist","Trigger Number",5,0,5);
01651 triggerHist_->GetXaxis()->SetBinLabel(1,"ECAL");
01652 triggerHist_->GetXaxis()->SetBinLabel(2,"HCAL");
01653 triggerHist_->GetXaxis()->SetBinLabel(3,"DT");
01654 triggerHist_->GetXaxis()->SetBinLabel(4,"RPC");
01655 triggerHist_->GetXaxis()->SetBinLabel(5,"CSC");
01656
01657 triggerExclusiveHist_ = new TH1F("triggerExclusiveHist","Trigger Number (Mutually Exclusive)",5,0,5); triggerExclusiveHist_->GetXaxis()->SetBinLabel(1,"ECAL");
01658 triggerExclusiveHist_->GetXaxis()->SetBinLabel(2,"HCAL");
01659 triggerExclusiveHist_->GetXaxis()->SetBinLabel(3,"DT");
01660 triggerExclusiveHist_->GetXaxis()->SetBinLabel(4,"RPC");
01661 triggerExclusiveHist_->GetXaxis()->SetBinLabel(5,"CSC");
01662
01663 runNumberHist_ = new TH1F("runNumberHist","Run Number",1,0,1);
01664
01665 deltaRHist_ = new TH1F("deltaRHist","deltaR",500,-0.5,499.5);
01666 deltaEtaHist_ = new TH1F("deltaIEtaHist","deltaIEta",170,-85.5,84.5);
01667 deltaPhiHist_ = new TH1F("deltaIPhiHist","deltaIPhi",720,-360.5,359.5);
01668 ratioAssocTracksHist_ = new TH1F("ratioAssocTracks","num assoc. tracks/tracks through Ecal",11,0,1.1);
01669 ratioAssocClustersHist_ = new TH1F("ratioAssocClusters","num assoc. clusters/total clusters",11,0,1.1);
01670 trackAssoc_muonsEcal_= new TH2F("trackAssoc_muonsEcal","Map of muon hits in Ecal", 360,1.,361.,172,-86,86);
01671 deltaEtaDeltaPhiHist_ = new TH2F("deltaEtaDeltaPhi","Delta ieta vs. delta iphi",170,-85.5,84.5,720,-360.5,359.5);
01672 seedTrackEtaHist_ = new TH2F("seedTrackEta","track ieta vs. seed ieta",170,-85.5,84.5,170,-85.5,84.5);
01673 seedTrackPhiHist_ = new TH2F("seedTrackPhi","track iphi vs. seed iphi",720,-360.5,359.5,720,-360.5,359.5);
01674
01675 dccEventVsBxHist_ = new TH2F("dccEventVsBx","DCC Runtype vs. bunch crossing",3600,0,3600,24,0,24);
01676 dccBXErrorByFEDHist_ = new TH1F("dccBXErrorByFED","Incorrect BX number by FED",54,601,655);
01677 dccOrbitErrorByFEDHist_ = new TH1F("dccOrbitErrorByFED","Incorrect orbit number by FED",54,601,655);
01678 dccRuntypeErrorByFEDHist_ = new TH1F("dccRuntypeErrorByFED","Incorrect DCC Runtype by FED",54,601,655);
01679 dccRuntypeHist_ = new TH1F("dccRuntype","DCC Runtype frequency",24,0,24);
01680 dccErrorVsBxHist_ = new TH2F("dccErrorVsBX","DCC Errors vs. BX",3600,0,3600,3,0,3);
01681
01682 hcalEnergy_HBHE_ = new TH1F("hcalEnergy_HBHE","RecHit Energy HBHE",440,-10,100);
01683 hcalEnergy_HF_ = new TH1F("hcalEnergy_HF","RecHit Energy HF",440,-10,100);
01684 hcalEnergy_HO_ = new TH1F("hcalEnergy_HO","RecHit Energy HO",440,-10,100);
01685 hcalHEHBecalEB_ = new TH2F("hcalHEHBecalEB","HCAL HBHE RecHit energy vs ECAL EB energy",numBins,histRangeMin_,300.0,40,-5,5);
01686
01687 NumXtalsInClusterHist_ = new TH1F("NumXtalsInClusterAllHist","Number of Xtals in Cluster;NumXtals",150,0,150);
01688 numxtalsVsEnergy_ = new TH2F("NumXtalsVsEnergy","Number of Xtals in Cluster vs Energy;Energy (GeV);Number of Xtals in Cluster",numBins,histRangeMin_,histRangeMax_, 150,0,150);
01689 numxtalsVsHighEnergy_ = new TH2F("NumXtalsVsHighEnergy","Number of Xtals in Cluster vs Energy;Energy (GeV);Number of Xtals in Cluster",numBins,histRangeMin_,200., 150,0,150);
01690
01691
01692 allOccupancyHighEnergy_ = new TH2F("OccupancyHighEnergyEvents","Occupancy high energy events;i#phi;i#eta",360,1.,361.,172,-86,86);
01693 allOccupancyHighEnergyCoarse_ = new TH2F("OccupancyHighEnergyEventsCoarse","Occupancy high energy events Coarse;i#phi;i#eta",72,ttPhiBins,35,ttEtaBins);
01694 allFedsOccupancyHighEnergyHist_ = new TH3F("OccupancyHighEnergyEvents3D","(Phi,Eta,energy) for all high energy events;i#phi;i#eta;energy (GeV)",18,modPhiBins,9,modEtaBins,10,highEBins);
01695 allFedsNumXtalsInClusterHist_ = new TH1F("NumActiveXtalsInClusterAllHist","Number of active Xtals in Cluster;NumXtals",100,0,100);
01696
01697 HighEnergy_NumXtal = new TH1F("HighEnergy_NumXtal","Num crystals in high E clusters;num crystals",150,0,150);
01698 HighEnergy_NumXtalFedId = new TH2F("HighEnergy_NumXtalFedId","Num crystals in cluster vs FedId;FedId;num crystals",36,610.,645.,150,0,150);
01699 HighEnergy_NumXtaliphi = new TH2F("HighEnergy_NumXtaliphi","Num crystals in cluster vs iphi;i#phi;num crystals",360,1.,361.,150,0,150);
01700 HighEnergy_energy3D = new TH3F("HighEnergy_energy3D","(Phi,Eta,energy) for all high energy events;i#phi;i#eta;energy (GeV)",72,ttPhiBins,35,ttEtaBins,10,highEBins);
01701
01702 HighEnergy_energyNumXtal = new TH2F("HighEnergy_energyNumXtal","Energy in cluster vs Num crystals in cluster;num crystals;energy",150,0,150,200,0.,200.);
01703
01704 HighEnergy_bestSeed = new TH1F("HighEnergy_bestSeedEnergy","BestSeed Energy from TrackAss",200,0.,200.);
01705 HighEnergy_bestSeedOccupancy = new TH2F("HighEnergy_bestSeedOccupancy","Occupancy HighEn events from TrackAss;i#phi;i#eta",360,1.,361.,172,-86,86);
01706
01707 HighEnergy_numClusHighEn = new TH1F("HighEnergy_numClusHighEn","Num High Energy Clusters",7,0,7);
01708 HighEnergy_ratioClusters = new TH1F("HighEnergy_ratioClusters","Num High Energy Clusters/Num tot Clusters",100,0.,1.1);
01709
01710 HighEnergy_numRecoTrackBarrel = new TH1F("HighEnergy_numRecoTracksBarrel","Num BarrelRecoTracks",10,0,10);
01711 HighEnergy_TracksAngle = new TH1F("HighEnergy_TracksAngle","Angle between tracks",720,0.,180.);
01712 HighEnergy_TracksAngleTopBottom = new TH1F("HighEnergy_TopBottomTracksAngle","Angle between top-bottom tracks",720,0.,180.);
01713
01714 HighEnergy_2GeV_occuCoarse = new TH2F("HighEnergy_occu2GeV_Coarse","Occupancy high energy events with more than 2 GeV;i#phi;i#eta",72,ttPhiBins,35,ttEtaBins);
01715 HighEnergy_2GeV_occu3D = new TH3F("HighEnergy_2GeV_energy3D","(iphi,ieta,energy) for all high energy events w > 10 GeV;i#phi;i#eta;energy (GeV)",72,ttPhiBins,35,ttEtaBins,10,highEBins);
01716 HighEnergy_100GeV_occuCoarse = new TH2F("HighEnergy_occu100GeV_Coarse","Occupancy high energy events with more than 100 GeV;i#phi;i#eta",72,ttPhiBins,35,ttEtaBins);
01717 HighEnergy_100GeV_occu3D = new TH3F("HighEnergy_100GeV_energy3D","(iphi,ieta,energy) for all high energy events more than 100 GeV;i#phi;i#eta;energy (GeV)",72,ttPhiBins,35,ttEtaBins,10,highEBins);
01718 HighEnergy_0tracks_occu3D = new TH3F("HighEnergy_0Tracks_energy3D","(iphi,ieta,energy) for all events with 0 tracks;i#phi;i#eta;energy (GeV)",72,ttPhiBins,35,ttEtaBins,10,highEBins);
01719 HighEnergy_1tracks_occu3D = new TH3F("HighEnergy_1Tracks_energy3D","(iphi,ieta,energy) for all events with 1 tracks;i#phi;i#eta;energy (GeV)",72,ttPhiBins,35,ttEtaBins,10,highEBins);
01720 HighEnergy_2tracks_occu3D = new TH3F("HighEnergy_2Tracks_energy3D","(iphi,ieta,energy) for all events with 2 tracks;i#phi;i#eta;energy (GeV)",72,ttPhiBins,35,ttEtaBins,10,highEBins);
01721 HighEnergy_0tracks_occu3DXtal = new TH3F("HighEnergy_0Tracks_energy3DXtal","(iphi,ieta,energy) for all events with 0 tracks;i#phi;i#eta;energy (GeV)",360,1.,361.,172,-86,86,200,0.,200.);
01722 HighEnergy_1tracks_occu3DXtal = new TH3F("HighEnergy_1Tracks_energy3DXtal","(iphi,ieta,energy) for all events with 1 tracks;i#phi;i#eta;energy (GeV)",360,1.,361.,172,-86,86,200,0.,200.);
01723 HighEnergy_2tracks_occu3DXtal = new TH3F("HighEnergy_2Tracks_energy3DXtal","(iphi,ieta,energy) for all events with 2 tracks;i#phi;i#eta;energy (GeV)",360,1.,361.,172,-86,86,200,0.,200.);
01724
01725
01726
01727
01728 EEM_FedsSeedEnergyHist_ = new TH1F("SeedEnergyAllFEDs","Seed Energy for EEM Feds; Seed Energy (GeV)",200,histRangeMin_,10.0);
01729
01730 EEM_AllOccupancyCoarse_ = new TH2F("OccupancyAllEventsCoarse","Occupancy all events Coarse EEM;ix;iy",20,0,100,20,0,100);
01731 EEM_AllOccupancy_ = new TH2F("OccupancyAllEvents","Occupancy all events EEM;ix;iy",100,0,100,100,0,100);
01732 EEM_FedsenergyHist_ = new TH1F("energy_AllClusters","energy_AllClusters_EEM;Cluster Energy (GeV)",numBins,histRangeMin_,10.0);
01733 EEM_FedsenergyHighHist_ = new TH1F("energyHigh_AllClusters","energyHigh_AllClusters in EEM;Cluster Energy (GeV)",numBins,histRangeMin_,200.0);
01734 EEM_FedsenergyOnlyHighHist_ = new TH1F("energyHigh_HighEnergyClusters","energy of High Energy Clusters in EEM;Cluster Energy (GeV)",numBins,histRangeMin_,200.0);
01735 EEM_FedsE2Hist_ = new TH1F("E2_AllClusters","E2_AllClusters_EEM;Seed+highest neighbor energy (GeV)",numBins,histRangeMin_,10.0);
01736 EEM_FedsE2vsE1Hist_ = new TH2F("E2vsE1_AllClusters","E2vsE1_AllClusters_EEM;Seed Energy (GeV);Seed+highest neighbor energy (GeV)",numBins,histRangeMin_,10.0,numBins,histRangeMin_,10.0);
01737 EEM_FedsenergyvsE1Hist_ = new TH2F("energyvsE1_AllClusters","energyvsE1_AllClusters_EEM;Seed Energy (GeV);Energy(GeV)",numBins,histRangeMin_,10.0,numBins,histRangeMin_,10.0);
01738 EEM_FedsTimingHist_ = new TH1F("timeForAllFeds","timeForAllFeds_EEM;Relative Time (1 clock = 25ns)",78,-7,7);
01739 EEM_numberofCosmicsHist_ = new TH1F("numberofCosmicsPerEvent","Number of cosmics per event EEM;Number of Cosmics",30,0,30);
01740
01741 EEM_FedsTimingVsAmpHist_ = new TH2F("timeVsAmpAllEvents","time Vs Amp All Events EEM;Relative Time (1 clock = 25ns);Amplitude (GeV)",78,-7,7,numBins,histRangeMin_,10.0);
01742 EEM_FedsTimingTTHist_ = new TH3F("timeTTAllFEDs","(ix,iy,time) for all FEDs (SM,TT binning) EEM;ix;iy;Relative Time (1 clock = 25ns)",20,0,100,20,0,100,78,-7,7);
01743
01744 EEM_OccupancySingleXtal_ = new TH2F("OccupancySingleXtal","Occupancy single xtal clusters EEM;ix;iy",100,0,100,100,0,100);
01745 EEM_energySingleXtalHist_ = new TH1F("energy_SingleXtalClusters","Energy single xtal clusters EEM;Cluster Energy (GeV)",numBins,histRangeMin_,200.0);
01746
01747 EEM_OccupancyExclusiveECAL_ = new TH2F("OccupancyAllEvents_ExclusiveECAL","Occupancy all events Exclusive ECAL EEM;ix;iy",100,0,100,100,0,100);
01748 EEM_OccupancyCoarseExclusiveECAL_ = new TH2F("OccupancyAllEventsCoarse_ExclusiveECAL","Occupancy all events Coarse Exclusive ECAL EEM;ix;iy",20,0,100,20,0,100);
01749 EEM_OccupancyECAL_ = new TH2F("OccupancyAllEvents_ECAL","Occupancy all events ECAL EEM;ix;iy",100,0,100,100,0,100);
01750 EEM_OccupancyCoarseECAL_ = new TH2F("OccupancyAllEventsCoarse_ECAL","Occupancy all events Coarse ECAL EEM;ix;iy",20,0,100,20,0,100);
01751 EEM_FedsTimingHistECAL_ = new TH1F("timeForAllFeds_ECAL","timeForAllFeds ECAL EEM;Relative Time (1 clock = 25ns)",78,-7,7);
01752 EEM_FedsTimingTTHistECAL_ = new TH3F("timeTTAllFEDs_ECAL","(ix,iy,time) for all FEDs (SM,TT binning) ECAL EEM;ix;iy;Relative Time (1 clock = 25ns)",20,0,100,20,0,100,78,-7,7);
01753
01754 EEM_OccupancyExclusiveDT_ = new TH2F("OccupancyAllEvents_ExclusiveDT","Occupancy all events Exclusive DT EEM;ix;iy",100,0,100,100,0,100);
01755 EEM_OccupancyCoarseExclusiveDT_ = new TH2F("OccupancyAllEventsCoarse_ExclusiveDT","Occupancy all events Coarse Exclusive DT EEM;ix;iy",20,0,100,20,0,100);
01756 EEM_OccupancyDT_ = new TH2F("OccupancyAllEvents_DT","Occupancy all events DT EEM;ix;iy",100,0,100,100,0,100);
01757 EEM_OccupancyCoarseDT_ = new TH2F("OccupancyAllEventsCoarse_DT","Occupancy all events Coarse DT EEM;ix;iy",20,0,100,20,0,100);
01758 EEM_FedsTimingHistDT_ = new TH1F("timeForAllFeds_DT","timeForAllFeds DT EEM;Relative Time (1 clock = 25ns)",78,-7,7);
01759 EEM_FedsTimingTTHistDT_ = new TH3F("timeTTAllFEDs_DT","(ix,iy,time) for all FEDs (SM,TT binning) DT EEM;ix;iy;Relative Time (1 clock = 25ns)",20,0,100,20,0,100,78,-7,7);
01760
01761 EEM_OccupancyExclusiveRPC_ = new TH2F("OccupancyAllEvents_ExclusiveRPC","Occupancy all events Exclusive RPC EEM;ix;iy",100,0,100,100,0,100);
01762 EEM_OccupancyCoarseExclusiveRPC_ = new TH2F("OccupancyAllEventsCoarse_ExclusiveRPC","Occupancy all events Coarse Exclusive RPC EEM;ix;iy",20,0,100,20,0,100);
01763 EEM_OccupancyRPC_ = new TH2F("OccupancyAllEvents_RPC","Occupancy all events RPC EEM;ix;iy",100,0,100,100,0,100);
01764 EEM_OccupancyCoarseRPC_ = new TH2F("OccupancyAllEventsCoarse_RPC","Occupancy all events Coarse RPC EEM;ix;iy",20,0,100,20,0,100);
01765 EEM_FedsTimingHistRPC_ = new TH1F("timeForAllFeds_RPC","timeForAllFeds RPC EEM;Relative Time (1 clock = 25ns)",78,-7,7);
01766 EEM_FedsTimingTTHistRPC_ = new TH3F("timeTTAllFEDs_RPC","(ix,iy,time) for all FEDs (SM,TT binning) RPC EEM;ix;iy;Relative Time (1 clock = 25ns)",20,0,100,20,0,100,78,-7,7);
01767
01768 EEM_OccupancyExclusiveCSC_ = new TH2F("OccupancyAllEvents_ExclusiveCSC","Occupancy all events Exclusive CSC EEM;ix;iy",100,0,100,100,0,100);
01769 EEM_OccupancyCoarseExclusiveCSC_ = new TH2F("OccupancyAllEventsCoarse_ExclusiveCSC","Occupancy all events Coarse Exclusive CSC EEM;ix;iy",20,0,100,20,0,100);
01770 EEM_OccupancyCSC_ = new TH2F("OccupancyAllEvents_CSC","Occupancy all events CSC EEM;ix;iy",100,0,100,100,0,100);
01771 EEM_OccupancyCoarseCSC_ = new TH2F("OccupancyAllEventsCoarse_CSC","Occupancy all events Coarse CSC EEM;ix;iy",20,0,100,20,0,100);
01772 EEM_FedsTimingHistCSC_ = new TH1F("timeForAllFeds_CSC","timeForAllFeds CSC EEM;Relative Time (1 clock = 25ns)",78,-7,7);
01773 EEM_FedsTimingTTHistCSC_ = new TH3F("timeTTAllFEDs_CSC","(ix,iy,time) for all FEDs (SM,TT binning) CSC EEM;ix;iy;Relative Time (1 clock = 25ns)",20,0,100,20,0,100,78,-7,7);
01774
01775 EEM_OccupancyExclusiveHCAL_ = new TH2F("OccupancyAllEvents_ExclusiveHCAL","Occupancy all events Exclusive HCAL EEM;ix;iy",100,0,100,100,0,100);
01776 EEM_OccupancyCoarseExclusiveHCAL_ = new TH2F("OccupancyAllEventsCoarse_ExclusiveHCAL","Occupancy all events Coarse Exclusive HCAL EEM;ix;iy",20,0,100,20,0,100);
01777 EEM_OccupancyHCAL_ = new TH2F("OccupancyAllEvents_HCAL","Occupancy all events HCAL EEM;ix;iy",100,0,100,100,0,100);
01778 EEM_OccupancyCoarseHCAL_ = new TH2F("OccupancyAllEventsCoarse_HCAL","Occupancy all events Coarse HCAL EEM;ix;iy",20,0,100,20,0,100);
01779 EEM_FedsTimingHistHCAL_ = new TH1F("timeForAllFeds_HCAL","timeForAllFeds HCAL EEM;Relative Time (1 clock = 25ns)",78,-7,7);
01780 EEM_FedsTimingTTHistHCAL_ = new TH3F("timeTTAllFEDs_HCAL","(ix,iy,time) for all FEDs (SM,TT binning) HCAL EEM;ix;iy;Relative Time (1 clock = 25ns)",20,0,100,20,0,100,78,-7,7);
01781
01782 EEM_numberofBCinSC_ = new TH1F("numberofBCinSC","Number of Basic Clusters in Super Cluster EEM;Num Basic Clusters",20,0,20);
01783
01784 EEM_triggerHist_ = new TH1F("triggerHist","Trigger Number EEM",5,0,5);
01785 EEM_triggerHist_->GetXaxis()->SetBinLabel(1,"ECAL");
01786 EEM_triggerHist_->GetXaxis()->SetBinLabel(2,"HCAL");
01787 EEM_triggerHist_->GetXaxis()->SetBinLabel(3,"DT");
01788 EEM_triggerHist_->GetXaxis()->SetBinLabel(4,"RPC");
01789 EEM_triggerHist_->GetXaxis()->SetBinLabel(5,"CSC");
01790
01791 EEM_triggerExclusiveHist_ = new TH1F("triggerExclusiveHist","Trigger Number (Mutually Exclusive) EEM",5,0,5); triggerExclusiveHist_->GetXaxis()->SetBinLabel(1,"ECAL");
01792 EEM_triggerExclusiveHist_->GetXaxis()->SetBinLabel(2,"HCAL");
01793 EEM_triggerExclusiveHist_->GetXaxis()->SetBinLabel(3,"DT");
01794 EEM_triggerExclusiveHist_->GetXaxis()->SetBinLabel(4,"RPC");
01795 EEM_triggerExclusiveHist_->GetXaxis()->SetBinLabel(5,"CSC");
01796
01797 EEM_NumXtalsInClusterHist_ = new TH1F("NumXtalsInClusterAllHist","Number of Xtals in Cluster EEM;NumXtals",150,0,150);
01798 EEM_numxtalsVsEnergy_ = new TH2F("NumXtalsVsEnergy","Number of Xtals in Cluster vs Energy EEM;Energy (GeV);Number of Xtals in Cluster",numBins,histRangeMin_,10.0, 150,0,150);
01799 EEM_numxtalsVsHighEnergy_ = new TH2F("NumXtalsVsHighEnergy","Number of Xtals in Cluster vs Energy EEM;Energy (GeV);Number of Xtals in Cluster",numBins,histRangeMin_,200., 150,0,150);
01800
01801 EEM_OccupancyHighEnergy_ = new TH2F("OccupancyHighEnergyEvents","Occupancy high energy events EEM;ix;iy",100,0,100,100,0,100);
01802 EEM_OccupancyHighEnergyCoarse_ = new TH2F("OccupancyHighEnergyEventsCoarse","Occupancy high energy events Coarse EEM;ix;iy",20,0,100,20,0,100);
01803
01804 EEM_FedsNumXtalsInClusterHist_ = new TH1F("NumActiveXtalsInClusterAllHist","Number of active Xtals in Cluster EEM;NumXtals",100,0,100);
01805
01806
01807
01808 EEP_FedsSeedEnergyHist_ = new TH1F("SeedEnergyAllFEDs","Seed Energy for EEP Feds; Seed Energy (GeV)",200,histRangeMin_,10.0);
01809
01810 EEP_AllOccupancyCoarse_ = new TH2F("OccupancyAllEventsCoarse","Occupancy all events Coarse EEP;ix;iy",20,0,100,20,0,100);
01811 EEP_AllOccupancy_ = new TH2F("OccupancyAllEvents","Occupancy all events EEP;ix;iy",100,0,100,100,0,100);
01812 EEP_FedsenergyHist_ = new TH1F("energy_AllClusters","energy_AllClusters_EEP;Cluster Energy (GeV)",numBins,histRangeMin_,10.0);
01813 EEP_FedsenergyHighHist_ = new TH1F("energyHigh_AllClusters","energyHigh_AllClusters in EEP;Cluster Energy (GeV)",numBins,histRangeMin_,200.0);
01814 EEP_FedsenergyOnlyHighHist_ = new TH1F("energyHigh_HighEnergyClusters","energy of High Energy Clusters in EEP;Cluster Energy (GeV)",numBins,histRangeMin_,200.0);
01815 EEP_FedsE2Hist_ = new TH1F("E2_AllClusters","E2_AllClusters_EEP;Seed+highest neighbor energy (GeV)",numBins,histRangeMin_,10.0);
01816 EEP_FedsE2vsE1Hist_ = new TH2F("E2vsE1_AllClusters","E2vsE1_AllClusters_EEP;Seed Energy (GeV);Seed+highest neighbor energy (GeV)",numBins,histRangeMin_,10.0,numBins,histRangeMin_,10.0);
01817 EEP_FedsenergyvsE1Hist_ = new TH2F("energyvsE1_AllClusters","energyvsE1_AllClusters_EEP;Seed Energy (GeV);Energy(GeV)",numBins,histRangeMin_,10.0,numBins,histRangeMin_,10.0);
01818 EEP_FedsTimingHist_ = new TH1F("timeForAllFeds","timeForAllFeds_EEP;Relative Time (1 clock = 25ns)",78,-7,7);
01819 EEP_numberofCosmicsHist_ = new TH1F("numberofCosmicsPerEvent","Number of cosmics per event EEP;Number of Cosmics",30,0,30);
01820
01821 EEP_FedsTimingVsAmpHist_ = new TH2F("timeVsAmpAllEvents","time Vs Amp All Events EEP;Relative Time (1 clock = 25ns);Amplitude (GeV)",78,-7,7,numBins,histRangeMin_,10.0);
01822 EEP_FedsTimingTTHist_ = new TH3F("timeTTAllFEDs","(ix,iy,time) for all FEDs (SM,TT binning) EEP;ix;iy;Relative Time (1 clock = 25ns)",20,0,100,20,0,100,78,-7,7);
01823
01824 EEP_OccupancySingleXtal_ = new TH2F("OccupancySingleXtal","Occupancy single xtal clusters EEP;ix;iy",100,0,100,100,0,100);
01825 EEP_energySingleXtalHist_ = new TH1F("energy_SingleXtalClusters","Energy single xtal clusters EEP;Cluster Energy (GeV)",numBins,histRangeMin_,200.0);
01826
01827 EEP_OccupancyExclusiveECAL_ = new TH2F("OccupancyAllEvents_ExclusiveECAL","Occupancy all events Exclusive ECAL EEP;ix;iy",100,0,100,100,0,100);
01828 EEP_OccupancyCoarseExclusiveECAL_ = new TH2F("OccupancyAllEventsCoarse_ExclusiveECAL","Occupancy all events Coarse Exclusive ECAL EEP;ix;iy",20,0,100,20,0,100);
01829 EEP_OccupancyECAL_ = new TH2F("OccupancyAllEvents_ECAL","Occupancy all events ECAL EEP;ix;iy",100,0,100,100,0,100);
01830 EEP_OccupancyCoarseECAL_ = new TH2F("OccupancyAllEventsCoarse_ECAL","Occupancy all events Coarse ECAL EEP;ix;iy",20,0,100,20,0,100);
01831 EEP_FedsTimingHistECAL_ = new TH1F("timeForAllFeds_ECAL","timeForAllFeds ECAL EEP;Relative Time (1 clock = 25ns)",78,-7,7);
01832 EEP_FedsTimingTTHistECAL_ = new TH3F("timeTTAllFEDs_ECAL","(ix,iy,time) for all FEDs (SM,TT binning) ECAL EEP;ix;iy;Relative Time (1 clock = 25ns)",20,0,100,20,0,100,78,-7,7);
01833
01834 EEP_OccupancyExclusiveDT_ = new TH2F("OccupancyAllEvents_ExclusiveDT","Occupancy all events Exclusive DT EEP;ix;iy",100,0,100,100,0,100);
01835 EEP_OccupancyCoarseExclusiveDT_ = new TH2F("OccupancyAllEventsCoarse_ExclusiveDT","Occupancy all events Coarse Exclusive DT EEP;ix;iy",20,0,100,20,0,100);
01836 EEP_OccupancyDT_ = new TH2F("OccupancyAllEvents_DT","Occupancy all events DT EEP;ix;iy",100,0,100,100,0,100);
01837 EEP_OccupancyCoarseDT_ = new TH2F("OccupancyAllEventsCoarse_DT","Occupancy all events Coarse DT EEP;ix;iy",20,0,100,20,0,100);
01838 EEP_FedsTimingHistDT_ = new TH1F("timeForAllFeds_DT","timeForAllFeds DT EEP;Relative Time (1 clock = 25ns)",78,-7,7);
01839 EEP_FedsTimingTTHistDT_ = new TH3F("timeTTAllFEDs_DT","(ix,iy,time) for all FEDs (SM,TT binning) DT EEP;ix;iy;Relative Time (1 clock = 25ns)",20,0,100,20,0,100,78,-7,7);
01840
01841 EEP_OccupancyExclusiveRPC_ = new TH2F("OccupancyAllEvents_ExclusiveRPC","Occupancy all events Exclusive RPC EEP;ix;iy",100,0,100,100,0,100);
01842 EEP_OccupancyCoarseExclusiveRPC_ = new TH2F("OccupancyAllEventsCoarse_ExclusiveRPC","Occupancy all events Coarse Exclusive RPC EEP;ix;iy",20,0,100,20,0,100);
01843 EEP_OccupancyRPC_ = new TH2F("OccupancyAllEvents_RPC","Occupancy all events RPC EEP;ix;iy",100,0,100,100,0,100);
01844 EEP_OccupancyCoarseRPC_ = new TH2F("OccupancyAllEventsCoarse_RPC","Occupancy all events Coarse RPC EEP;ix;iy",20,0,100,20,0,100);
01845 EEP_FedsTimingHistRPC_ = new TH1F("timeForAllFeds_RPC","timeForAllFeds RPC EEP;Relative Time (1 clock = 25ns)",78,-7,7);
01846 EEP_FedsTimingTTHistRPC_ = new TH3F("timeTTAllFEDs_RPC","(ix,iy,time) for all FEDs (SM,TT binning) RPC EEP;ix;iy;Relative Time (1 clock = 25ns)",20,0,100,20,0,100,78,-7,7);
01847
01848 EEP_OccupancyExclusiveCSC_ = new TH2F("OccupancyAllEvents_ExclusiveCSC","Occupancy all events Exclusive CSC EEP;ix;iy",100,0,100,100,0,100);
01849 EEP_OccupancyCoarseExclusiveCSC_ = new TH2F("OccupancyAllEventsCoarse_ExclusiveCSC","Occupancy all events Coarse Exclusive CSC EEP;ix;iy",20,0,100,20,0,100);
01850 EEP_OccupancyCSC_ = new TH2F("OccupancyAllEvents_CSC","Occupancy all events CSC EEP;ix;iy",100,0,100,100,0,100);
01851 EEP_OccupancyCoarseCSC_ = new TH2F("OccupancyAllEventsCoarse_CSC","Occupancy all events Coarse CSC EEP;ix;iy",20,0,100,20,0,100);
01852 EEP_FedsTimingHistCSC_ = new TH1F("timeForAllFeds_CSC","timeForAllFeds CSC EEP;Relative Time (1 clock = 25ns)",78,-7,7);
01853 EEP_FedsTimingTTHistCSC_ = new TH3F("timeTTAllFEDs_CSC","(ix,iy,time) for all FEDs (SM,TT binning) CSC EEP;ix;iy;Relative Time (1 clock = 25ns)",20,0,100,20,0,100,78,-7,7);
01854
01855 EEP_OccupancyExclusiveHCAL_ = new TH2F("OccupancyAllEvents_ExclusiveHCAL","Occupancy all events Exclusive HCAL EEP;ix;iy",100,0,100,100,0,100);
01856 EEP_OccupancyCoarseExclusiveHCAL_ = new TH2F("OccupancyAllEventsCoarse_ExclusiveHCAL","Occupancy all events Coarse Exclusive HCAL EEP;ix;iy",20,0,100,20,0,100);
01857 EEP_OccupancyHCAL_ = new TH2F("OccupancyAllEvents_HCAL","Occupancy all events HCAL EEP;ix;iy",100,0,100,100,0,100);
01858 EEP_OccupancyCoarseHCAL_ = new TH2F("OccupancyAllEventsCoarse_HCAL","Occupancy all events Coarse HCAL EEP;ix;iy",20,0,100,20,0,100);
01859 EEP_FedsTimingHistHCAL_ = new TH1F("timeForAllFeds_HCAL","timeForAllFeds HCAL EEP;Relative Time (1 clock = 25ns)",78,-7,7);
01860 EEP_FedsTimingTTHistHCAL_ = new TH3F("timeTTAllFEDs_HCAL","(ix,iy,time) for all FEDs (SM,TT binning) HCAL EEP;ix;iy;Relative Time (1 clock = 25ns)",20,0,100,20,0,100,78,-7,7);
01861
01862 EEP_numberofBCinSC_ = new TH1F("numberofBCinSC","Number of Basic Clusters in Super Cluster EEP;Num Basic Clusters",20,0,20);
01863
01864 EEP_triggerHist_ = new TH1F("triggerHist","Trigger Number EEP",5,0,5);
01865 EEP_triggerHist_->GetXaxis()->SetBinLabel(1,"ECAL");
01866 EEP_triggerHist_->GetXaxis()->SetBinLabel(2,"HCAL");
01867 EEP_triggerHist_->GetXaxis()->SetBinLabel(3,"DT");
01868 EEP_triggerHist_->GetXaxis()->SetBinLabel(4,"RPC");
01869 EEP_triggerHist_->GetXaxis()->SetBinLabel(5,"CSC");
01870
01871 EEP_triggerExclusiveHist_ = new TH1F("triggerExclusiveHist","Trigger Number (Mutually Exclusive) EEP",5,0,5);
01872 EEP_triggerExclusiveHist_->GetXaxis()->SetBinLabel(1,"ECAL");
01873 EEP_triggerExclusiveHist_->GetXaxis()->SetBinLabel(2,"HCAL");
01874 EEP_triggerExclusiveHist_->GetXaxis()->SetBinLabel(3,"DT");
01875 EEP_triggerExclusiveHist_->GetXaxis()->SetBinLabel(4,"RPC");
01876 EEP_triggerExclusiveHist_->GetXaxis()->SetBinLabel(5,"CSC");
01877
01878 EEP_NumXtalsInClusterHist_ = new TH1F("NumXtalsInClusterAllHist","Number of Xtals in Cluster EEP;NumXtals",150,0,150);
01879 EEP_numxtalsVsEnergy_ = new TH2F("NumXtalsVsEnergy","Number of Xtals in Cluster vs Energy EEP;Energy (GeV);Number of Xtals in Cluster",numBins,histRangeMin_,10.0, 150,0,150);
01880 EEP_numxtalsVsHighEnergy_ = new TH2F("NumXtalsVsHighEnergy","Number of Xtals in Cluster vs Energy EEP;Energy (GeV);Number of Xtals in Cluster",numBins,histRangeMin_,200., 150,0,150);
01881
01882 EEP_OccupancyHighEnergy_ = new TH2F("OccupancyHighEnergyEvents","Occupancy high energy events EEP;ix;iy",100,0,100,100,0,100);
01883 EEP_OccupancyHighEnergyCoarse_ = new TH2F("OccupancyHighEnergyEventsCoarse","Occupancy high energy events Coarse EEP;ix;iy",20,0,100,20,0,100);
01884
01885 EEP_FedsNumXtalsInClusterHist_ = new TH1F("NumActiveXtalsInClusterAllHist","Number of active Xtals in Cluster EEP;NumXtals",100,0,100);
01886
01887
01888 }
01889
01890
01891 void
01892 EcalCosmicsHists::endJob()
01893 {
01894 using namespace std;
01895 if (runInFileName_) {
01896 fileName_ += "-"+intToString(runNum_)+".graph.root";
01897 } else {
01898 fileName_ += ".root";
01899 }
01900
01901 TFile root_file_(fileName_.c_str() , "RECREATE");
01902
01903 for(map<int,TH1F*>::const_iterator itr = FEDsAndHists_.begin();
01904 itr != FEDsAndHists_.end(); ++itr) {
01905 string dir = fedMap_->getSliceFromFed(itr->first);
01906 TDirectory* FEDdir = gDirectory->mkdir(dir.c_str());
01907 FEDdir->cd();
01908
01909 TH1F* hist = itr->second;
01910 if(hist!=0)
01911 hist->Write();
01912 else {
01913 cerr << "EcalCosmicsHists: Error: This shouldn't happen!" << endl;
01914 }
01915
01916 hist = FEDsAndTimingHists_[itr->first];
01917 if(hist!=0)
01918 hist->Write();
01919 else {
01920 cerr << "EcalCosmicsHists: Error: This shouldn't happen!" << endl;
01921 }
01922
01923 hist = FEDsAndFrequencyHists_[itr->first];
01924 hist->Write();
01925
01926 hist = FEDsAndiPhiProfileHists_[itr->first];
01927 hist->Write();
01928
01929 hist = FEDsAndiEtaProfileHists_[itr->first];
01930 hist->Write();
01931
01932 hist = FEDsAndE2Hists_[itr->first];
01933 hist->Write();
01934
01935 hist = FEDsAndenergyHists_[itr->first];
01936 hist->Write();
01937
01938 hist = FEDsAndNumXtalsInClusterHists_[itr->first];
01939 hist->Write();
01940
01941 TH2F* hist2 = FEDsAndTimingVsAmpHists_[itr->first];
01942 hist2->Write();
01943
01944 hist2 = FEDsAndTimingVsFreqHists_[itr->first];
01945 hist2->Write();
01946
01947 hist2 = FEDsAndE2vsE1Hists_[itr->first];
01948 hist2->Write();
01949
01950 hist2 = FEDsAndenergyvsE1Hists_[itr->first];
01951 hist2->Write();
01952
01953 hist2 = FEDsAndOccupancyHists_[itr->first];
01954 hist2->Write();
01955
01956 hist2 = FEDsAndTimingVsPhiHists_[itr->first];
01957 hist2->Write();
01958
01959 hist2 = FEDsAndTimingVsModuleHists_[itr->first];
01960 hist2->Write();
01961
01962
01963 map<int,TH2F*>::const_iterator itr2d;
01964 itr2d = FEDsAndDCCRuntypeVsBxHists_.find(itr->first);
01965 if(itr2d != FEDsAndDCCRuntypeVsBxHists_.end())
01966 {
01967 TH2F* hist2 = itr2d->second;
01968 hist2->GetYaxis()->SetBinLabel(1,"COSMIC");
01969 hist2->GetYaxis()->SetBinLabel(2,"BEAMH4");
01970 hist2->GetYaxis()->SetBinLabel(3,"BEAMH2");
01971 hist2->GetYaxis()->SetBinLabel(4,"MTCC");
01972 hist2->GetYaxis()->SetBinLabel(5,"LASER_STD");
01973 hist2->GetYaxis()->SetBinLabel(6,"LASER_POWER_SCAN");
01974 hist2->GetYaxis()->SetBinLabel(7,"LASER_DELAY_SCAN");
01975 hist2->GetYaxis()->SetBinLabel(8,"TESTPULSE_SCAN_MEM");
01976 hist2->GetYaxis()->SetBinLabel(9,"TESTPULSE_MGPA");
01977 hist2->GetYaxis()->SetBinLabel(10,"PEDESTAL_STD");
01978 hist2->GetYaxis()->SetBinLabel(11,"PEDESTAL_OFFSET_SCAN");
01979 hist2->GetYaxis()->SetBinLabel(12,"PEDESTAL_25NS_SCAN");
01980 hist2->GetYaxis()->SetBinLabel(13,"LED_STD");
01981 hist2->GetYaxis()->SetBinLabel(14,"PHYSICS_GLOBAL");
01982 hist2->GetYaxis()->SetBinLabel(15,"COSMICS_GLOBAL");
01983 hist2->GetYaxis()->SetBinLabel(16,"HALO_GLOBAL");
01984 hist2->GetYaxis()->SetBinLabel(17,"LASER_GAP");
01985 hist2->GetYaxis()->SetBinLabel(18,"TESTPULSE_GAP");
01986 hist2->GetYaxis()->SetBinLabel(19,"PEDESTAL_GAP");
01987 hist2->GetYaxis()->SetBinLabel(20,"LED_GAP");
01988 hist2->GetYaxis()->SetBinLabel(21,"PHYSICS_LOCAL");
01989 hist2->GetYaxis()->SetBinLabel(22,"COSMICS_LOCAL");
01990 hist2->GetYaxis()->SetBinLabel(23,"HALO_LOCAL");
01991 hist2->GetYaxis()->SetBinLabel(24,"CALIB_LOCAL");
01992 hist2->Write();
01993 }
01994
01995 root_file_.cd();
01996 }
01997 allFedsHist_->Write();
01998 allFedsE2Hist_->Write();
01999 allFedsenergyHist_->Write();
02000 allFedsenergyHighHist_->Write();
02001 allFedsenergyOnlyHighHist_->Write();
02002 allFedsE2vsE1Hist_->Write();
02003 allFedsenergyvsE1Hist_->Write();
02004 allFedsTimingHist_->Write();
02005 allFedsTimingVsAmpHist_->Write();
02006 allFedsFrequencyHist_->Write();
02007 allFedsTimingVsFreqHist_->Write();
02008 allFedsiEtaProfileHist_->Write();
02009 allFedsiPhiProfileHist_->Write();
02010 allOccupancy_->Write();
02011 TrueOccupancy_->Write();
02012 allOccupancyCoarse_->Write();
02013 TrueOccupancyCoarse_->Write();
02014 allOccupancyHighEnergy_->Write();
02015 allOccupancyHighEnergyCoarse_->Write();
02016 allOccupancySingleXtal_->Write();
02017 energySingleXtalHist_->Write();
02018 allFedsNumXtalsInClusterHist_->Write();
02019 allFedsTimingPhiHist_->Write();
02020 allFedsTimingPhiEbpHist_->Write();
02021 allFedsTimingPhiEbmHist_->Write();
02022 allFedsTimingEbpHist_->Write();
02023 allFedsTimingEbmHist_->Write();
02024 allFedsTimingEbpTopHist_->Write();
02025 allFedsTimingEbmTopHist_->Write();
02026 allFedsTimingEbpBottomHist_->Write();
02027 allFedsTimingEbmBottomHist_->Write();
02028 allFedsTimingPhiEtaHist_->Write();
02029 allFedsTimingTTHist_->Write();
02030 allFedsTimingLMHist_->Write();
02031 allFedsOccupancyHighEnergyHist_->Write();
02032
02033 numberofBCinSC_->Write();
02034 numberofBCinSCphi_->Write();
02035 TrueBCOccupancyCoarse_->Write();
02036 TrueBCOccupancy_->Write();
02037
02038 numxtalsVsEnergy_->Write();
02039 numxtalsVsHighEnergy_->Write();
02040
02041 allOccupancyExclusiveECAL_->Write();
02042 allOccupancyCoarseExclusiveECAL_->Write();
02043 allOccupancyECAL_->Write();
02044 allOccupancyCoarseECAL_->Write();
02045 allFedsTimingPhiEtaHistECAL_->Write();
02046 allFedsTimingHistECAL_->Write();
02047 allFedsTimingTTHistECAL_->Write();
02048 allFedsTimingLMHistECAL_->Write();
02049
02050 allOccupancyExclusiveHCAL_->Write();
02051 allOccupancyCoarseExclusiveHCAL_->Write();
02052 allOccupancyHCAL_->Write();
02053 allOccupancyCoarseHCAL_->Write();
02054 allFedsTimingPhiEtaHistHCAL_->Write();
02055 allFedsTimingHistHCAL_->Write();
02056 allFedsTimingTTHistHCAL_->Write();
02057 allFedsTimingLMHistHCAL_->Write();
02058
02059 allOccupancyExclusiveDT_->Write();
02060 allOccupancyCoarseExclusiveDT_->Write();
02061 allOccupancyDT_->Write();
02062 allOccupancyCoarseDT_->Write();
02063 allFedsTimingPhiEtaHistDT_->Write();
02064 allFedsTimingHistDT_->Write();
02065 allFedsTimingTTHistDT_->Write();
02066 allFedsTimingLMHistDT_->Write();
02067
02068 allOccupancyExclusiveRPC_->Write();
02069 allOccupancyCoarseExclusiveRPC_->Write();
02070 allOccupancyRPC_->Write();
02071 allOccupancyCoarseRPC_->Write();
02072 allFedsTimingPhiEtaHistRPC_->Write();
02073 allFedsTimingHistRPC_->Write();
02074 allFedsTimingTTHistRPC_->Write();
02075 allFedsTimingLMHistRPC_->Write();
02076
02077 allOccupancyExclusiveCSC_->Write();
02078 allOccupancyCoarseExclusiveCSC_->Write();
02079 allOccupancyCSC_->Write();
02080 allOccupancyCoarseCSC_->Write();
02081 allFedsTimingPhiEtaHistCSC_->Write();
02082 allFedsTimingHistCSC_->Write();
02083 allFedsTimingTTHistCSC_->Write();
02084 allFedsTimingLMHistCSC_->Write();
02085
02086 allFedsTimingHistEcalMuon_->Write();
02087
02088
02089 TDirectory* EEMinusDir = gDirectory->mkdir("EEMinus");
02090 EEMinusDir->cd();
02091 EEM_FedsSeedEnergyHist_->Write();
02092 EEM_AllOccupancyCoarse_->Write();
02093 EEM_AllOccupancy_->Write();
02094 EEM_FedsenergyHist_->Write();
02095 EEM_FedsenergyHighHist_->Write();
02096 EEM_FedsenergyOnlyHighHist_->Write();
02097 EEM_FedsE2Hist_->Write();
02098 EEM_FedsE2vsE1Hist_->Write();
02099 EEM_FedsenergyvsE1Hist_->Write();
02100 EEM_FedsTimingHist_->Write();
02101 EEM_numberofCosmicsHist_->Write();
02102 EEM_FedsTimingVsAmpHist_->Write();
02103 EEM_FedsTimingTTHist_->Write();
02104 EEM_OccupancySingleXtal_->Write();
02105 EEM_energySingleXtalHist_->Write();
02106 EEM_OccupancyExclusiveECAL_->Write();
02107 EEM_OccupancyCoarseExclusiveECAL_->Write();
02108 EEM_OccupancyECAL_->Write();
02109 EEM_OccupancyCoarseECAL_->Write();
02110 EEM_FedsTimingHistECAL_->Write();
02111 EEM_FedsTimingTTHistECAL_->Write();
02112 EEM_OccupancyExclusiveDT_->Write();
02113 EEM_OccupancyCoarseExclusiveDT_->Write();
02114 EEM_OccupancyDT_->Write();
02115 EEM_OccupancyCoarseDT_->Write();
02116 EEM_FedsTimingHistDT_->Write();
02117 EEM_FedsTimingTTHistDT_->Write();
02118 EEM_OccupancyExclusiveRPC_->Write();
02119 EEM_OccupancyCoarseExclusiveRPC_->Write();
02120 EEM_OccupancyRPC_->Write();
02121 EEM_OccupancyCoarseRPC_->Write();
02122 EEM_FedsTimingHistRPC_->Write();
02123 EEM_FedsTimingTTHistRPC_->Write();
02124 EEM_OccupancyExclusiveCSC_->Write();
02125 EEM_OccupancyCoarseExclusiveCSC_->Write();
02126 EEM_OccupancyCSC_->Write();
02127 EEM_OccupancyCoarseCSC_->Write();
02128 EEM_FedsTimingHistCSC_->Write();
02129 EEM_FedsTimingTTHistCSC_->Write();
02130 EEM_OccupancyExclusiveHCAL_->Write();
02131 EEM_OccupancyCoarseExclusiveHCAL_->Write();
02132 EEM_OccupancyHCAL_->Write();
02133 EEM_OccupancyCoarseHCAL_->Write();
02134 EEM_FedsTimingHistHCAL_->Write();
02135 EEM_FedsTimingTTHistHCAL_->Write();
02136 EEM_numberofBCinSC_->Write();
02137 EEM_triggerHist_->Write();
02138 EEM_triggerExclusiveHist_->Write();
02139 EEM_NumXtalsInClusterHist_->Write();
02140 EEM_numxtalsVsEnergy_->Write();
02141 EEM_numxtalsVsHighEnergy_->Write();
02142 EEM_OccupancyHighEnergy_->Write();
02143 EEM_OccupancyHighEnergyCoarse_->Write();
02144 EEM_FedsNumXtalsInClusterHist_->Write();
02145 root_file_.cd();
02146
02147 TDirectory* EEPlusDir = gDirectory->mkdir("EEPlus");
02148 EEPlusDir->cd();
02149 EEP_FedsSeedEnergyHist_->Write();
02150 EEP_AllOccupancyCoarse_->Write();
02151 EEP_AllOccupancy_->Write();
02152 EEP_FedsenergyHist_->Write();
02153 EEP_FedsenergyHighHist_->Write();
02154 EEP_FedsenergyOnlyHighHist_->Write();
02155 EEP_FedsE2Hist_->Write();
02156 EEP_FedsE2vsE1Hist_->Write();
02157 EEP_FedsenergyvsE1Hist_->Write();
02158 EEP_FedsTimingHist_->Write();
02159 EEP_numberofCosmicsHist_->Write();
02160 EEP_FedsTimingVsAmpHist_->Write();
02161 EEP_FedsTimingTTHist_->Write();
02162 EEP_OccupancySingleXtal_->Write();
02163 EEP_energySingleXtalHist_->Write();
02164 EEP_OccupancyExclusiveECAL_->Write();
02165 EEP_OccupancyCoarseExclusiveECAL_->Write();
02166 EEP_OccupancyECAL_->Write();
02167 EEP_OccupancyCoarseECAL_->Write();
02168 EEP_FedsTimingHistECAL_->Write();
02169 EEP_FedsTimingTTHistECAL_->Write();
02170 EEP_OccupancyExclusiveDT_->Write();
02171 EEP_OccupancyCoarseExclusiveDT_->Write();
02172 EEP_OccupancyDT_->Write();
02173 EEP_OccupancyCoarseDT_->Write();
02174 EEP_FedsTimingHistDT_->Write();
02175 EEP_FedsTimingTTHistDT_->Write();
02176 EEP_OccupancyExclusiveRPC_->Write();
02177 EEP_OccupancyCoarseExclusiveRPC_->Write();
02178 EEP_OccupancyRPC_->Write();
02179 EEP_OccupancyCoarseRPC_->Write();
02180 EEP_FedsTimingHistRPC_->Write();
02181 EEP_FedsTimingTTHistRPC_->Write();
02182 EEP_OccupancyExclusiveCSC_->Write();
02183 EEP_OccupancyCoarseExclusiveCSC_->Write();
02184 EEP_OccupancyCSC_->Write();
02185 EEP_OccupancyCoarseCSC_->Write();
02186 EEP_FedsTimingHistCSC_->Write();
02187 EEP_FedsTimingTTHistCSC_->Write();
02188 EEP_OccupancyExclusiveHCAL_->Write();
02189 EEP_OccupancyCoarseExclusiveHCAL_->Write();
02190 EEP_OccupancyHCAL_->Write();
02191 EEP_OccupancyCoarseHCAL_->Write();
02192 EEP_FedsTimingHistHCAL_->Write();
02193 EEP_FedsTimingTTHistHCAL_->Write();
02194 EEP_numberofBCinSC_->Write();
02195 EEP_triggerHist_->Write();
02196 EEP_triggerExclusiveHist_->Write();
02197 EEP_NumXtalsInClusterHist_->Write();
02198 EEP_numxtalsVsEnergy_->Write();
02199 EEP_numxtalsVsHighEnergy_->Write();
02200 EEP_OccupancyHighEnergy_->Write();
02201 EEP_OccupancyHighEnergyCoarse_->Write();
02202 EEP_FedsNumXtalsInClusterHist_->Write();
02203 root_file_.cd();
02204
02205 triggerHist_->Write();
02206 triggerExclusiveHist_->Write();
02207
02208 NumXtalsInClusterHist_->Write();
02209
02210 numberofCosmicsHist_->Write();
02211 numberofCosmicsHistEB_->Write();
02212
02213 numberofCosmicsWTrackHist_->Write();
02214 numberofCosmicsTopBottomHist_->Write();
02215 numberofGoodEvtFreq_->Write();
02216 numberofCrossedEcalIdsHist_->Write();
02217
02218 runNumberHist_->SetBinContent(1,runNum_);
02219 runNumberHist_->Write();
02220
02221 deltaRHist_->Write();
02222 deltaEtaHist_->Write();
02223 deltaPhiHist_->Write();
02224 ratioAssocClustersHist_->Write();
02225 ratioAssocTracksHist_->Write();
02226 deltaEtaDeltaPhiHist_->Write();
02227 seedTrackPhiHist_->Write();
02228 seedTrackEtaHist_->Write();
02229 dccEventVsBxHist_->Write();
02230 dccOrbitErrorByFEDHist_->Write();
02231 dccBXErrorByFEDHist_->Write();
02232 dccRuntypeErrorByFEDHist_->Write();
02233 dccErrorVsBxHist_->Write();
02234 dccRuntypeHist_->Write();
02235
02236 trackAssoc_muonsEcal_->Write();
02237
02238 hcalEnergy_HBHE_->Write();
02239 hcalEnergy_HF_->Write();
02240 hcalEnergy_HO_->Write();
02241 hcalHEHBecalEB_->Write();
02242
02243 TDirectory* highEnergyDir = gDirectory->mkdir("HighEnergy");
02244 highEnergyDir->cd();
02245 HighEnergy_NumXtal->Write();
02246 HighEnergy_NumXtalFedId->Write();
02247 HighEnergy_NumXtaliphi->Write();
02248 HighEnergy_energy3D->Write();
02249 HighEnergy_energyNumXtal->Write();
02250 HighEnergy_bestSeed->Write();
02251 HighEnergy_bestSeedOccupancy->Write();
02252 HighEnergy_numClusHighEn->Write();
02253 HighEnergy_ratioClusters->Write();
02254 HighEnergy_numRecoTrackBarrel->Write();
02255 HighEnergy_TracksAngle->Write();
02256 HighEnergy_TracksAngleTopBottom->Write();
02257 HighEnergy_2GeV_occuCoarse->Write();
02258 HighEnergy_2GeV_occu3D->Write();
02259 HighEnergy_100GeV_occuCoarse->Write();
02260 HighEnergy_100GeV_occu3D->Write();
02261 HighEnergy_0tracks_occu3D->Write();
02262 HighEnergy_1tracks_occu3D->Write();
02263 HighEnergy_2tracks_occu3D->Write();
02264 HighEnergy_0tracks_occu3DXtal->Write();
02265 HighEnergy_1tracks_occu3DXtal->Write();
02266 HighEnergy_2tracks_occu3DXtal->Write();
02267
02268 root_file_.cd();
02269
02270 TDirectory* TimeStampdir = gDirectory->mkdir("EventTiming");
02271 TimeStampdir->cd();
02272 allFedsFreqTimeHist_->Write();
02273 allFedsFreqTimeVsPhiHist_->Write();
02274 allFedsFreqTimeVsPhiTTHist_->Write();
02275 allFedsFreqTimeVsEtaHist_->Write();
02276 allFedsFreqTimeVsEtaTTHist_->Write();
02277
02278 root_file_.cd();
02279
02280 root_file_.Close();
02281
02282 LogWarning("EcalCosmicsHists") << "---> Number of cosmic events: " << cosmicCounter_ << " in " << naiveEvtNum_ << " events.";
02283 LogWarning("EcalCosmicsHists") << "---> Number of EB cosmic events: " << cosmicCounterEB_ << " in " << naiveEvtNum_ << " events.";
02284 LogWarning("EcalCosmicsHists") << "---> Number of EE- cosmic events: " << cosmicCounterEEM_ << " in " << naiveEvtNum_ << " events.";
02285 LogWarning("EcalCosmicsHists") << "---> Number of EE+ cosmic events: " << cosmicCounterEEP_ << " in " << naiveEvtNum_ << " events.";
02286
02287
02288
02289 }
02290
02291
02292 std::string EcalCosmicsHists::intToString(int num)
02293 {
02294 using namespace std;
02295 ostringstream myStream;
02296 myStream << num << flush;
02297 return(myStream.str());
02298 }
02299