Definition at line 45 of file StripValidationPlots.cc.
StripValidationPlots::StripValidationPlots | ( | const edm::ParameterSet & | iConfig | ) | [explicit] |
Definition at line 158 of file StripValidationPlots.cc.
: infilename(iConfig.getUntrackedParameter<std::string>("inputFilename","in.root")), outfilename(iConfig.getUntrackedParameter<std::string>("outputFilename","out.root")) { //now do what ever initialization is needed }
StripValidationPlots::~StripValidationPlots | ( | ) |
Definition at line 167 of file StripValidationPlots.cc.
{ // do anything here that needs to be done at desctruction time // (e.g. close files, deallocate resources etc.) }
void StripValidationPlots::analyze | ( | const edm::Event & | iEvent, |
const edm::EventSetup & | iSetup | ||
) | [private, virtual] |
void StripValidationPlots::beginJob | ( | void | ) | [private, virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 190 of file StripValidationPlots.cc.
References DQMStore::book1D(), DQMStore::book2D(), DQMStore::bookProfile(), distanceVsStripNumber, dqmStore_, MonitorElement::getTH1F(), MonitorElement::getTH2F(), MonitorElement::getTProfile(), i, j, nHitsGoodStripsVsStripNumber, nHitsHotStripsVsStripNumber, nHitsVsStripNumber, nReadStrips, occupancyGoodStripsVsStripNumber, occupancyHotStripsVsStripNumber, occupancyVsStripNumber, cmsCodeRules::cppFunctionSkipper::operator, oss, pfxDistanceVsStripNumber, pfxNHitsGoodStripsVsStripNumber, pfxNHitsHotStripsVsStripNumber, pfxNHitsVsStripNumber, pfxOccupancyGoodStripsVsStripNumber, pfxOccupancyHotStripsVsStripNumber, pfxOccupancyVsStripNumber, pfxPoissonProbGoodStripsVsStripNumber, pfxPoissonProbHotStripsVsStripNumber, pfxPoissonProbVsStripNumber, poissonProbGoodStripsVsStripNumber, poissonProbHotStripsVsStripNumber, poissonProbVsStripNumber, projXDistanceVsStripNumber, projXNHitsGoodStripsVsStripNumber, projXNHitsHotStripsVsStripNumber, projXNHitsVsStripNumber, projYDistanceVsStripNumber, projYNHitsGoodStripsVsStripNumber, projYNHitsHotStripsVsStripNumber, projYNHitsVsStripNumber, projYOccupancyGoodStripsVsStripNumber, projYOccupancyHotStripsVsStripNumber, projYOccupancyVsStripNumber, projYPoissonProbGoodStripsVsStripNumber, projYPoissonProbHotStripsVsStripNumber, projYPoissonProbVsStripNumber, DQMStore::setCurrentFolder(), subDetName, tmp, and tmp_prof.
{ oss.str(""); oss << 1; //runNumber dqmStore_ = edm::Service<DQMStore>().operator->(); dqmStore_->setCurrentFolder("ChannelStatusPlots"); for (int i=0; i<768; i++) { for (int j=0; j<5; j++) nReadStrips[i][j]=0; } // Initialize histograms subDetName.push_back(""); subDetName.push_back("TIB"); subDetName.push_back("TID"); subDetName.push_back("TOB"); subDetName.push_back("TEC"); std::string histoName; std::string histoTitle; for(unsigned int i = 0; i < subDetName.size(); i++) { histoName = "distanceVsStripNumber" + subDetName[i]; histoTitle = "Distance between hot strips vs. strip number"; if(i!=0) histoTitle += " in " + subDetName[i]; tmp = dqmStore_->book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 999, 0.5, 999.5); distanceVsStripNumber.push_back(tmp->getTH2F()); histoName = "pfxDistanceVsStripNumber" + subDetName[i]; tmp_prof = new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5); tmp = dqmStore_->bookProfile(histoName.c_str(), tmp_prof); pfxDistanceVsStripNumber.push_back(tmp->getTProfile()); pfxDistanceVsStripNumber[i]->GetXaxis()->SetTitle("Strip"); pfxDistanceVsStripNumber[i]->GetYaxis()->SetTitle("Distance"); histoName = "projXDistanceVsStripNumber" + subDetName[i]; histoTitle = "Number of hot strips vs. strip number"; if(i!=0) histoTitle += " in " + subDetName[i]; tmp = dqmStore_->book1D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5); projXDistanceVsStripNumber.push_back(tmp->getTH1F()); projXDistanceVsStripNumber[i]->GetXaxis()->SetTitle("Strip"); projXDistanceVsStripNumber[i]->GetYaxis()->SetTitle("N_{hot}"); histoName = "projYDistanceVsStripNumber" + subDetName[i]; histoTitle = "Distribution of distance between hot strips"; if(i!=0) histoTitle += " in " + subDetName[i]; tmp = dqmStore_->book1D(histoName.c_str(), histoTitle.c_str(), 999, 0.5, 999.5); projYDistanceVsStripNumber.push_back(tmp->getTH1F()); projYDistanceVsStripNumber[i]->GetXaxis()->SetTitle("Distance"); projYDistanceVsStripNumber[i]->GetYaxis()->SetTitle("N_{strips}"); // histoName = "occupancyVsStripNumber" + subDetName[i]; histoTitle = "Occupancy of strips vs. strip number"; if(i!=0) histoTitle += " in " + subDetName[i]; tmp = dqmStore_->book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 1000, -8.,0.); occupancyVsStripNumber.push_back(tmp->getTH2F()); histoName = "pfxOccupancyVsStripNumber" + subDetName[i]; tmp_prof = new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5); tmp = dqmStore_->bookProfile(histoName.c_str(), tmp_prof); pfxOccupancyVsStripNumber.push_back(tmp->getTProfile()); pfxOccupancyVsStripNumber[i]->GetXaxis()->SetTitle("Strip"); pfxOccupancyVsStripNumber[i]->GetYaxis()->SetTitle("log_{10}(Occupancy)"); histoName = "projYOccupancyVsStripNumber" + subDetName[i]; histoTitle = "Distribution of strip occupancy"; if(i!=0) histoTitle += " in " + subDetName[i]; tmp = dqmStore_->book1D(histoName.c_str(), histoTitle.c_str(), 1000, -8., 0.); projYOccupancyVsStripNumber.push_back(tmp->getTH1F()); projYOccupancyVsStripNumber[i]->GetXaxis()->SetTitle("log_{10}(Occupancy)"); projYOccupancyVsStripNumber[i]->GetYaxis()->SetTitle("N_{strips}"); // histoName = "occupancyHotStripsVsStripNumber" + subDetName[i]; histoTitle = "Occupancy of hot strips vs. strip number"; if(i!=0) histoTitle += " in " + subDetName[i]; tmp = dqmStore_->book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 1000, -8., 0.); occupancyHotStripsVsStripNumber.push_back(tmp->getTH2F()); histoName = "pfxOccupancyHotStripsVsStripNumber" + subDetName[i]; tmp_prof = new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5); tmp = dqmStore_->bookProfile(histoName.c_str(), tmp_prof); pfxOccupancyHotStripsVsStripNumber.push_back(tmp->getTProfile()); pfxOccupancyHotStripsVsStripNumber[i]->GetXaxis()->SetTitle("Strip"); pfxOccupancyHotStripsVsStripNumber[i]->GetYaxis()->SetTitle("log_{10}(Occupancy)"); histoName = "projYOccupancyHotStripsVsStripNumber" + subDetName[i]; histoTitle = "Distribution of hot strip occupancy"; if(i!=0) histoTitle += " in " + subDetName[i]; tmp = dqmStore_->book1D(histoName.c_str(), histoTitle.c_str(), 1000, -8., 0.); projYOccupancyHotStripsVsStripNumber.push_back(tmp->getTH1F()); projYOccupancyHotStripsVsStripNumber[i]->GetXaxis()->SetTitle("log_{10}(Occupancy)"); projYOccupancyHotStripsVsStripNumber[i]->GetYaxis()->SetTitle("N_{strips}"); // histoName = "occupancyGoodStripsVsStripNumber" + subDetName[i]; histoTitle = "Occupancy of good strips vs. strip number"; if(i!=0) histoTitle += " in " + subDetName[i]; tmp = dqmStore_->book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 1000, -8., 0.); occupancyGoodStripsVsStripNumber.push_back(tmp->getTH2F()); histoName = "pfxOccupancyGoodStripsVsStripNumber" + subDetName[i]; tmp_prof = new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5); tmp = dqmStore_->bookProfile(histoName.c_str(), tmp_prof); pfxOccupancyGoodStripsVsStripNumber.push_back(tmp->getTProfile()); pfxOccupancyGoodStripsVsStripNumber[i]->GetXaxis()->SetTitle("Strip"); pfxOccupancyGoodStripsVsStripNumber[i]->GetYaxis()->SetTitle("log_{10}(Occupancy)"); histoName = "projYOccupancyGoodStripsVsStripNumber" + subDetName[i]; histoTitle = "Distribution of good strip occupancy"; if(i!=0) histoTitle += " in " + subDetName[i]; tmp = dqmStore_->book1D(histoName.c_str(), histoTitle.c_str(), 1000, -8., 0.); projYOccupancyGoodStripsVsStripNumber.push_back(tmp->getTH1F()); projYOccupancyGoodStripsVsStripNumber[i]->GetXaxis()->SetTitle("log_{10}(Occupancy)"); projYOccupancyGoodStripsVsStripNumber[i]->GetYaxis()->SetTitle("N_{strips}"); // histoName = "poissonProbVsStripNumber" + subDetName[i]; histoTitle = "Poisson probability of strips vs. strip number"; if(i!=0) histoTitle += " in " + subDetName[i]; tmp = dqmStore_->book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 1000, -18., 0.); poissonProbVsStripNumber.push_back(tmp->getTH2F()); histoName = "pfxPoissonProbVsStripNumber" + subDetName[i]; tmp_prof = new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5); tmp = dqmStore_->bookProfile(histoName.c_str(), tmp_prof); pfxPoissonProbVsStripNumber.push_back(tmp->getTProfile()); pfxPoissonProbVsStripNumber[i]->GetXaxis()->SetTitle("Strip"); pfxPoissonProbVsStripNumber[i]->GetYaxis()->SetTitle("log_{10}(Probability)"); histoName = "projYPoissonProbVsStripNumber" + subDetName[i]; histoTitle = "Distribution of strip Poisson probability"; if(i!=0) histoTitle += " in " + subDetName[i]; tmp = dqmStore_->book1D(histoName.c_str(), histoTitle.c_str(), 1000, -18., 0.); projYPoissonProbVsStripNumber.push_back(tmp->getTH1F()); projYPoissonProbVsStripNumber[i]->GetXaxis()->SetTitle("log_{10}(Probability)"); projYPoissonProbVsStripNumber[i]->GetYaxis()->SetTitle("N_{strips}"); // histoName = "poissonProbHotStripsVsStripNumber" + subDetName[i]; histoTitle = "Poisson probability of hot strips vs. strip number"; if(i!=0) histoTitle += " in " + subDetName[i]; tmp = dqmStore_->book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 1000, -18., 0.); poissonProbHotStripsVsStripNumber.push_back(tmp->getTH2F()); histoName = "pfxPoissonProbHotStripsVsStripNumber" + subDetName[i]; tmp_prof = new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5); tmp = dqmStore_->bookProfile(histoName.c_str(), tmp_prof); pfxPoissonProbHotStripsVsStripNumber.push_back(tmp->getTProfile()); pfxPoissonProbHotStripsVsStripNumber[i]->GetXaxis()->SetTitle("Strip"); pfxPoissonProbHotStripsVsStripNumber[i]->GetYaxis()->SetTitle("log_{10}(Probability)"); histoName = "projYPoissonProbHotStripsVsStripNumber" + subDetName[i]; histoTitle = "Distribution of hot strip Poisson probability"; if(i!=0) histoTitle += " in " + subDetName[i]; tmp = dqmStore_->book1D(histoName.c_str(), histoTitle.c_str(), 1000, -18., 0.); projYPoissonProbHotStripsVsStripNumber.push_back(tmp->getTH1F()); projYPoissonProbHotStripsVsStripNumber[i]->GetXaxis()->SetTitle("log_{10}(Probability)"); projYPoissonProbHotStripsVsStripNumber[i]->GetYaxis()->SetTitle("N_{strips}"); // histoName = "poissonProbGoodStripsVsStripNumber" + subDetName[i]; histoTitle = "Poisson probability of good strips vs. strip number"; if(i!=0) histoTitle += " in " + subDetName[i]; tmp = dqmStore_->book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 1000, -18., 0.); poissonProbGoodStripsVsStripNumber.push_back(tmp->getTH2F()); histoName = "pfxPoissonProbGoodStripsVsStripNumber" + subDetName[i]; tmp_prof = new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5); tmp = dqmStore_->bookProfile(histoName.c_str(), tmp_prof); pfxPoissonProbGoodStripsVsStripNumber.push_back(tmp->getTProfile()); pfxPoissonProbGoodStripsVsStripNumber[i]->GetXaxis()->SetTitle("Strip"); pfxPoissonProbGoodStripsVsStripNumber[i]->GetYaxis()->SetTitle("log_{10}(Probability)"); histoName = "projYPoissonProbGoodStripsVsStripNumber" + subDetName[i]; histoTitle = "Distribution of good strip Poisson probability"; if(i!=0) histoTitle += " in " + subDetName[i]; tmp = dqmStore_->book1D(histoName.c_str(), histoTitle.c_str(), 1000, -18., 0.); projYPoissonProbGoodStripsVsStripNumber.push_back(tmp->getTH1F()); projYPoissonProbGoodStripsVsStripNumber[i]->GetXaxis()->SetTitle("log_{10}(Probability)"); projYPoissonProbGoodStripsVsStripNumber[i]->GetYaxis()->SetTitle("N_{strips}"); // histoName = "nHitsVsStripNumber" + subDetName[i]; histoTitle = "NHits in strips vs. strip number"; if(i!=0) histoTitle += " in " + subDetName[i]; tmp = dqmStore_->book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 10000, -0.5, 9999.5); nHitsVsStripNumber.push_back(tmp->getTH2F()); histoName = "pfxNHitsVsStripNumber" + subDetName[i]; tmp_prof = new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5); tmp = dqmStore_->bookProfile(histoName.c_str(), tmp_prof); pfxNHitsVsStripNumber.push_back(tmp->getTProfile()); histoName = "projXNHitsVsStripNumber" + subDetName[i]; histoTitle = "Cumulative nHits in strips vs. strip number"; if(i!=0) histoTitle += " in " + subDetName[i]; tmp = dqmStore_->book1D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5); projXNHitsVsStripNumber.push_back(tmp->getTH1F()); histoName = "projYNHitsVsStripNumber" + subDetName[i]; histoTitle = "Distribution of nHits for all strips"; if(i!=0) histoTitle += " in " + subDetName[i]; tmp = dqmStore_->book1D(histoName.c_str(), histoTitle.c_str(), 10000, -0.5, 9999.5); projYNHitsVsStripNumber.push_back(tmp->getTH1F()); projYNHitsVsStripNumber[i]->GetXaxis()->SetTitle("N_{hits}"); projYNHitsVsStripNumber[i]->GetYaxis()->SetTitle("N_{strips}"); // histoName = "nHitsHotStripsVsStripNumber" + subDetName[i]; histoTitle = "NHits in hot strips vs. strip number"; if(i!=0) histoTitle += " in " + subDetName[i]; tmp = dqmStore_->book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 10000, -0.5, 9999.5); nHitsHotStripsVsStripNumber.push_back(tmp->getTH2F()); histoName = "pfxNHitsHotStripsVsStripNumber" + subDetName[i]; tmp_prof = new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5); tmp = dqmStore_->bookProfile(histoName.c_str(), tmp_prof); pfxNHitsHotStripsVsStripNumber.push_back(tmp->getTProfile()); histoName = "projXNHitsHotStripsVsStripNumber" + subDetName[i]; histoTitle = "Cumulative nHits in hot strips vs. strip number"; if(i!=0) histoTitle += " in " + subDetName[i]; tmp = dqmStore_->book1D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5); projXNHitsHotStripsVsStripNumber.push_back(tmp->getTH1F()); histoName = "projYNHitsHotStripsVsStripNumber" + subDetName[i]; histoTitle = "Distribution of nHits for hot strips"; if(i!=0) histoTitle += " in " + subDetName[i]; tmp = dqmStore_->book1D(histoName.c_str(), histoTitle.c_str(), 10000, -0.5, 9999.5); projYNHitsHotStripsVsStripNumber.push_back(tmp->getTH1F()); projYNHitsHotStripsVsStripNumber[i]->GetXaxis()->SetTitle("N_{hits}"); projYNHitsHotStripsVsStripNumber[i]->GetYaxis()->SetTitle("N_{strips}"); // histoName = "nHitsGoodStripsVsStripNumber" + subDetName[i]; histoTitle = "NHits in good strips vs. strip number"; if(i!=0) histoTitle += " in " + subDetName[i]; tmp = dqmStore_->book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 10000, -0.5, 9999.5); nHitsGoodStripsVsStripNumber.push_back(tmp->getTH2F()); histoName = "pfxNHitsGoodStripsVsStripNumber" + subDetName[i]; tmp_prof = new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5); tmp = dqmStore_->bookProfile(histoName.c_str(), tmp_prof); pfxNHitsGoodStripsVsStripNumber.push_back(tmp->getTProfile()); histoName = "projXNHitsGoodStripsVsStripNumber" + subDetName[i]; histoTitle = "Cumulative nHits in good strips vs. strip number"; if(i!=0) histoTitle += " in " + subDetName[i]; tmp = dqmStore_->book1D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5); projXNHitsGoodStripsVsStripNumber.push_back(tmp->getTH1F()); histoName = "projYNHitsGoodStripsVsStripNumber" + subDetName[i]; histoTitle = "Distribution of nHits for good strips"; if(i!=0) histoTitle += " in " + subDetName[i]; tmp = dqmStore_->book1D(histoName.c_str(), histoTitle.c_str(), 10000, -0.5, 9999.5); projYNHitsGoodStripsVsStripNumber.push_back(tmp->getTH1F()); projYNHitsGoodStripsVsStripNumber[i]->GetXaxis()->SetTitle("N_{hits}"); projYNHitsGoodStripsVsStripNumber[i]->GetYaxis()->SetTitle("N_{strips}"); } }
void StripValidationPlots::endJob | ( | void | ) | [private, virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 478 of file StripValidationPlots.cc.
References APVChannel, DQMStore::cd(), gather_cfg::cout, DetRawId, Disc, distance, distanceL, distanceR, distanceVsStripNumber, dqmStore_, firstEntry, HotStripsPerAPV, HotStripsPerModule, i, infile, infilename, intree, IsBack, IsExternalString, IsHot, IsStereo, IsZMinusSide, j, Layer_Ring, ModulePosition, nHitsGoodStripsVsStripNumber, nHitsHotStripsVsStripNumber, nHitsVsStripNumber, nReadStrips, NumberOfStrips, occupancyGoodStripsVsStripNumber, occupancyHotStripsVsStripNumber, occupancyVsStripNumber, outfilename, pfxDistanceVsStripNumber, pfxOccupancyGoodStripsVsStripNumber, pfxOccupancyHotStripsVsStripNumber, pfxOccupancyVsStripNumber, pfxPoissonProbGoodStripsVsStripNumber, pfxPoissonProbHotStripsVsStripNumber, pfxPoissonProbVsStripNumber, PoissonProb, poissonProbGoodStripsVsStripNumber, poissonProbHotStripsVsStripNumber, poissonProbVsStripNumber, projXDistanceVsStripNumber, projYDistanceVsStripNumber, projYNHitsGoodStripsVsStripNumber, projYNHitsHotStripsVsStripNumber, projYNHitsVsStripNumber, projYOccupancyGoodStripsVsStripNumber, projYOccupancyHotStripsVsStripNumber, projYOccupancyVsStripNumber, projYPoissonProbGoodStripsVsStripNumber, projYPoissonProbHotStripsVsStripNumber, projYPoissonProbVsStripNumber, RodStringPetal, DQMStore::save(), savedDetRawId, savedNStrips, savedSubDetId, StripGlobalPositionX, StripGlobalPositionY, StripGlobalPositionZ, StripHits, StripNumber, StripOccupancy, SubDetId, subDetName, and vHotStripsInModule.
{ infile = new TFile(infilename.c_str(),"READ"); intree = (TTree*)infile->Get("stripOccupancy"); intree->SetBranchAddress("DetRawId", &DetRawId); intree->SetBranchAddress("SubDetId", &SubDetId); intree->SetBranchAddress("Layer_Ring", &Layer_Ring); intree->SetBranchAddress("Disc", &Disc); intree->SetBranchAddress("IsBack", &IsBack); intree->SetBranchAddress("IsExternalString", &IsExternalString); intree->SetBranchAddress("IsZMinusSide", &IsZMinusSide); intree->SetBranchAddress("RodStringPetal", &RodStringPetal); intree->SetBranchAddress("IsStereo", &IsStereo); intree->SetBranchAddress("ModulePosition", &ModulePosition); intree->SetBranchAddress("NumberOfStrips", &NumberOfStrips); intree->SetBranchAddress("StripNumber", &StripNumber); intree->SetBranchAddress("APVChannel", &APVChannel); intree->SetBranchAddress("StripGlobalPositionX", &StripGlobalPositionX); intree->SetBranchAddress("StripGlobalPositionY", &StripGlobalPositionY); intree->SetBranchAddress("StripGlobalPositionZ", &StripGlobalPositionZ); intree->SetBranchAddress("IsHot", &IsHot); intree->SetBranchAddress("HotStripsPerAPV", &HotStripsPerAPV); intree->SetBranchAddress("HotStripsPerModule", &HotStripsPerModule); intree->SetBranchAddress("StripOccupancy", &StripOccupancy); intree->SetBranchAddress("StripHits", &StripHits); intree->SetBranchAddress("PoissonProb", &PoissonProb); for (int i=0; i<intree->GetEntries(); /* */) { intree->GetEntry(i); savedNStrips = NumberOfStrips; firstEntry = i; savedDetRawId = DetRawId; savedSubDetId = SubDetId; vHotStripsInModule.clear(); for(int j = firstEntry; j < firstEntry + savedNStrips; j++) { intree->GetEntry(j); if(DetRawId != savedDetRawId) { std::cout << "ERROR! DetRawId changed but I expected to be on the same module!\n"; return; } double logStripOccupancy = log10(StripOccupancy); double logPoissonProb = log10(fabs(PoissonProb)); (nReadStrips[StripNumber-1][0])++; (nReadStrips[StripNumber-1][SubDetId-2])++; //std::cout << "StripNumber = " << StripNumber << ", SubDetId = " << SubDetId << ", nReadStripsAll = " << nReadStrips[StripNumber-1][0] << ", nReadStripsSubDet = " << nReadStrips[StripNumber-1][SubDetId-2] << std::endl; occupancyVsStripNumber[0]->Fill(StripNumber,logStripOccupancy); occupancyVsStripNumber[SubDetId-2]->Fill(StripNumber,logStripOccupancy); poissonProbVsStripNumber[0]->Fill(StripNumber,logPoissonProb); poissonProbVsStripNumber[SubDetId-2]->Fill(StripNumber,logPoissonProb); nHitsVsStripNumber[0]->Fill(StripNumber,StripHits); nHitsVsStripNumber[SubDetId-2]->Fill(StripNumber,StripHits); if(IsHot) { vHotStripsInModule.push_back(StripNumber); // std::cout << "detId = " << DetRawId << ", StripN = " << StripNumber << ", StripOccupancy = " << StripOccupancy << " PoissonProb = " << PoissonProb << std::endl ; occupancyHotStripsVsStripNumber[0]->Fill(StripNumber,logStripOccupancy); occupancyHotStripsVsStripNumber[SubDetId-2]->Fill(StripNumber,logStripOccupancy); poissonProbHotStripsVsStripNumber[0]->Fill(StripNumber,logPoissonProb); poissonProbHotStripsVsStripNumber[SubDetId-2]->Fill(StripNumber,logPoissonProb); nHitsHotStripsVsStripNumber[0]->Fill(StripNumber,StripHits); nHitsHotStripsVsStripNumber[SubDetId-2]->Fill(StripNumber,StripHits); } else { occupancyGoodStripsVsStripNumber[0]->Fill(StripNumber,logStripOccupancy); occupancyGoodStripsVsStripNumber[SubDetId-2]->Fill(StripNumber,logStripOccupancy); poissonProbGoodStripsVsStripNumber[0]->Fill(StripNumber,logPoissonProb); poissonProbGoodStripsVsStripNumber[SubDetId-2]->Fill(StripNumber,logPoissonProb); nHitsGoodStripsVsStripNumber[0]->Fill(StripNumber,StripHits); nHitsGoodStripsVsStripNumber[SubDetId-2]->Fill(StripNumber,StripHits); } } if(vHotStripsInModule.size()==1) { distance = 999; distanceVsStripNumber[0]->Fill(vHotStripsInModule[0], distance); distanceVsStripNumber[savedSubDetId-2]->Fill(vHotStripsInModule[0], distance); } else if(vHotStripsInModule.size()>1) { for(unsigned int iVec = 0; iVec != vHotStripsInModule.size(); iVec++) { if(iVec==0) distance = vHotStripsInModule[1] - vHotStripsInModule[0]; else if(iVec==vHotStripsInModule.size()-1) { distance = vHotStripsInModule[vHotStripsInModule.size()-1] - vHotStripsInModule[vHotStripsInModule.size() -2]; } else if(vHotStripsInModule.size()>2) { distanceR = vHotStripsInModule[iVec + 1] - vHotStripsInModule[iVec]; distanceL = vHotStripsInModule[iVec] - vHotStripsInModule[iVec - 1]; distance = distanceL>distanceR?distanceR:distanceL; } else { std::cout << "ERROR! distance is never computed!!!\n"; } // std::cout << "detId = " << savedDetRawId << ", StripN = " << vHotStripsInModule[iVec] << ", distance = " << distance << std::endl; distanceVsStripNumber[0]->Fill(vHotStripsInModule[iVec], distance); distanceVsStripNumber[savedSubDetId-2]->Fill(vHotStripsInModule[iVec], distance); } } i+=savedNStrips; } std::string histoName; std::string histoTitle; for(unsigned int i = 0; i < subDetName.size(); i++) { projYDistanceVsStripNumber[i]->Add((TH1F*)distanceVsStripNumber[i]->ProjectionY()); pfxDistanceVsStripNumber[i]->Add(distanceVsStripNumber[i]->ProfileX(pfxDistanceVsStripNumber[i]->GetName(),1,998)); projYNHitsVsStripNumber[i]->Add(nHitsVsStripNumber[i]->ProjectionY()); projYNHitsGoodStripsVsStripNumber[i]->Add(nHitsGoodStripsVsStripNumber[i]->ProjectionY()); projYNHitsHotStripsVsStripNumber[i]->Add(nHitsHotStripsVsStripNumber[i]->ProjectionY()); projYOccupancyVsStripNumber[i]->Add(occupancyVsStripNumber[i]->ProjectionY()); projYOccupancyGoodStripsVsStripNumber[i]->Add(occupancyGoodStripsVsStripNumber[i]->ProjectionY()); projYOccupancyHotStripsVsStripNumber[i]->Add(occupancyHotStripsVsStripNumber[i]->ProjectionY()); pfxOccupancyVsStripNumber[i]->Add(occupancyVsStripNumber[i]->ProfileX(pfxOccupancyVsStripNumber[i]->GetName(),-8.,0.)); pfxOccupancyGoodStripsVsStripNumber[i]->Add(occupancyGoodStripsVsStripNumber[i]->ProfileX(pfxOccupancyGoodStripsVsStripNumber[i]->GetName(),-8.,0.)); pfxOccupancyHotStripsVsStripNumber[i]->Add(occupancyHotStripsVsStripNumber[i]->ProfileX(pfxOccupancyHotStripsVsStripNumber[i]->GetName(),-8.,0.)); projYPoissonProbVsStripNumber[i]->Add(poissonProbVsStripNumber[i]->ProjectionY()); projYPoissonProbGoodStripsVsStripNumber[i]->Add(poissonProbGoodStripsVsStripNumber[i]->ProjectionY()); projYPoissonProbHotStripsVsStripNumber[i]->Add(poissonProbHotStripsVsStripNumber[i]->ProjectionY()); pfxPoissonProbVsStripNumber[i]->Add(poissonProbVsStripNumber[i]->ProfileX(pfxPoissonProbVsStripNumber[i]->GetName(),-18., 0.)); pfxPoissonProbGoodStripsVsStripNumber[i]->Add(poissonProbGoodStripsVsStripNumber[i]->ProfileX(pfxPoissonProbGoodStripsVsStripNumber[i]->GetName(),-18., 0.)); pfxPoissonProbHotStripsVsStripNumber[i]->Add(poissonProbHotStripsVsStripNumber[i]->ProfileX(pfxPoissonProbHotStripsVsStripNumber[i]->GetName(),-18., 0.)); projXDistanceVsStripNumber[i]->Add(distanceVsStripNumber[i]->ProjectionX(projXDistanceVsStripNumber[i]->GetName(),1,998)); } dqmStore_->cd(); dqmStore_->save(outfilename.c_str(),"ChannelStatusPlots"); }
Int_t StripValidationPlots::APVChannel [private] |
Definition at line 123 of file StripValidationPlots.cc.
Referenced by endJob().
Int_t StripValidationPlots::DetRawId [private] |
Definition at line 111 of file StripValidationPlots.cc.
Referenced by endJob().
Int_t StripValidationPlots::Disc [private] |
Definition at line 114 of file StripValidationPlots.cc.
Referenced by endJob().
unsigned int StripValidationPlots::distance [private] |
Definition at line 140 of file StripValidationPlots.cc.
Referenced by endJob().
unsigned int StripValidationPlots::distanceL [private] |
Definition at line 141 of file StripValidationPlots.cc.
Referenced by endJob().
unsigned int StripValidationPlots::distanceR [private] |
Definition at line 141 of file StripValidationPlots.cc.
Referenced by endJob().
std::vector<TH2F*> StripValidationPlots::distanceVsStripNumber [private] |
Definition at line 64 of file StripValidationPlots.cc.
Referenced by beginJob(), and endJob().
DQMStore* StripValidationPlots::dqmStore_ [private] |
Definition at line 58 of file StripValidationPlots.cc.
Referenced by beginJob(), and endJob().
Int_t StripValidationPlots::firstEntry [private] |
Definition at line 138 of file StripValidationPlots.cc.
Referenced by endJob().
Int_t StripValidationPlots::HotStripsPerAPV [private] |
Definition at line 128 of file StripValidationPlots.cc.
Referenced by endJob().
Int_t StripValidationPlots::HotStripsPerModule [private] |
Definition at line 129 of file StripValidationPlots.cc.
Referenced by endJob().
TFile* StripValidationPlots::infile [private] |
Definition at line 107 of file StripValidationPlots.cc.
Referenced by endJob().
std::string StripValidationPlots::infilename [private] |
Definition at line 104 of file StripValidationPlots.cc.
Referenced by endJob().
TTree* StripValidationPlots::intree [private] |
Definition at line 108 of file StripValidationPlots.cc.
Referenced by endJob().
Int_t StripValidationPlots::IsBack [private] |
Definition at line 115 of file StripValidationPlots.cc.
Referenced by endJob().
Int_t StripValidationPlots::IsExternalString [private] |
Definition at line 116 of file StripValidationPlots.cc.
Referenced by endJob().
Int_t StripValidationPlots::IsHot [private] |
Definition at line 127 of file StripValidationPlots.cc.
Referenced by endJob().
Int_t StripValidationPlots::IsStereo [private] |
Definition at line 119 of file StripValidationPlots.cc.
Referenced by endJob().
Int_t StripValidationPlots::IsZMinusSide [private] |
Definition at line 117 of file StripValidationPlots.cc.
Referenced by endJob().
Int_t StripValidationPlots::Layer_Ring [private] |
Definition at line 113 of file StripValidationPlots.cc.
Referenced by endJob().
Int_t StripValidationPlots::ModulePosition [private] |
Definition at line 120 of file StripValidationPlots.cc.
Referenced by endJob().
std::vector<TH2F*> StripValidationPlots::nHitsGoodStripsVsStripNumber [private] |
Definition at line 97 of file StripValidationPlots.cc.
Referenced by beginJob(), and endJob().
std::vector<TH2F*> StripValidationPlots::nHitsHotStripsVsStripNumber [private] |
Definition at line 93 of file StripValidationPlots.cc.
Referenced by beginJob(), and endJob().
std::vector<TH2F*> StripValidationPlots::nHitsVsStripNumber [private] |
Definition at line 89 of file StripValidationPlots.cc.
Referenced by beginJob(), and endJob().
unsigned int StripValidationPlots::nReadStrips[768][5] [private] |
Definition at line 142 of file StripValidationPlots.cc.
Referenced by beginJob(), and endJob().
Int_t StripValidationPlots::NumberOfStrips [private] |
Definition at line 121 of file StripValidationPlots.cc.
Referenced by endJob().
std::vector<TH2F*> StripValidationPlots::occupancyGoodStripsVsStripNumber [private] |
Definition at line 75 of file StripValidationPlots.cc.
Referenced by beginJob(), and endJob().
std::vector<TH2F*> StripValidationPlots::occupancyHotStripsVsStripNumber [private] |
Definition at line 72 of file StripValidationPlots.cc.
Referenced by beginJob(), and endJob().
std::vector<TH2F*> StripValidationPlots::occupancyVsStripNumber [private] |
Definition at line 69 of file StripValidationPlots.cc.
Referenced by beginJob(), and endJob().
std::ostringstream StripValidationPlots::oss [private] |
Definition at line 56 of file StripValidationPlots.cc.
Referenced by beginJob().
std::string StripValidationPlots::outfilename [private] |
Definition at line 105 of file StripValidationPlots.cc.
Referenced by endJob().
std::vector<TProfile*> StripValidationPlots::pfxDistanceVsStripNumber [private] |
Definition at line 65 of file StripValidationPlots.cc.
Referenced by beginJob(), and endJob().
std::vector<TProfile*> StripValidationPlots::pfxNHitsGoodStripsVsStripNumber [private] |
Definition at line 98 of file StripValidationPlots.cc.
Referenced by beginJob().
std::vector<TProfile*> StripValidationPlots::pfxNHitsHotStripsVsStripNumber [private] |
Definition at line 94 of file StripValidationPlots.cc.
Referenced by beginJob().
std::vector<TProfile*> StripValidationPlots::pfxNHitsVsStripNumber [private] |
Definition at line 90 of file StripValidationPlots.cc.
Referenced by beginJob().
std::vector<TProfile*> StripValidationPlots::pfxOccupancyGoodStripsVsStripNumber [private] |
Definition at line 76 of file StripValidationPlots.cc.
Referenced by beginJob(), and endJob().
std::vector<TProfile*> StripValidationPlots::pfxOccupancyHotStripsVsStripNumber [private] |
Definition at line 73 of file StripValidationPlots.cc.
Referenced by beginJob(), and endJob().
std::vector<TProfile*> StripValidationPlots::pfxOccupancyVsStripNumber [private] |
Definition at line 70 of file StripValidationPlots.cc.
Referenced by beginJob(), and endJob().
std::vector<TProfile*> StripValidationPlots::pfxPoissonProbGoodStripsVsStripNumber [private] |
Definition at line 86 of file StripValidationPlots.cc.
Referenced by beginJob(), and endJob().
std::vector<TProfile*> StripValidationPlots::pfxPoissonProbHotStripsVsStripNumber [private] |
Definition at line 83 of file StripValidationPlots.cc.
Referenced by beginJob(), and endJob().
std::vector<TProfile*> StripValidationPlots::pfxPoissonProbVsStripNumber [private] |
Definition at line 80 of file StripValidationPlots.cc.
Referenced by beginJob(), and endJob().
Double_t StripValidationPlots::PoissonProb [private] |
Definition at line 132 of file StripValidationPlots.cc.
Referenced by endJob().
std::vector<TH2F*> StripValidationPlots::poissonProbGoodStripsVsStripNumber [private] |
Definition at line 85 of file StripValidationPlots.cc.
Referenced by beginJob(), and endJob().
std::vector<TH2F*> StripValidationPlots::poissonProbHotStripsVsStripNumber [private] |
Definition at line 82 of file StripValidationPlots.cc.
Referenced by beginJob(), and endJob().
std::vector<TH2F*> StripValidationPlots::poissonProbVsStripNumber [private] |
Definition at line 79 of file StripValidationPlots.cc.
Referenced by beginJob(), and endJob().
std::vector<TH1F*> StripValidationPlots::projXDistanceVsStripNumber [private] |
Definition at line 66 of file StripValidationPlots.cc.
Referenced by beginJob(), and endJob().
std::vector<TH1F*> StripValidationPlots::projXNHitsGoodStripsVsStripNumber [private] |
Definition at line 99 of file StripValidationPlots.cc.
Referenced by beginJob().
std::vector<TH1F*> StripValidationPlots::projXNHitsHotStripsVsStripNumber [private] |
Definition at line 95 of file StripValidationPlots.cc.
Referenced by beginJob().
std::vector<TH1F*> StripValidationPlots::projXNHitsVsStripNumber [private] |
Definition at line 91 of file StripValidationPlots.cc.
Referenced by beginJob().
std::vector<TH1F*> StripValidationPlots::projYDistanceVsStripNumber [private] |
Definition at line 67 of file StripValidationPlots.cc.
Referenced by beginJob(), and endJob().
std::vector<TH1F*> StripValidationPlots::projYNHitsGoodStripsVsStripNumber [private] |
Definition at line 100 of file StripValidationPlots.cc.
Referenced by beginJob(), and endJob().
std::vector<TH1F*> StripValidationPlots::projYNHitsHotStripsVsStripNumber [private] |
Definition at line 96 of file StripValidationPlots.cc.
Referenced by beginJob(), and endJob().
std::vector<TH1F*> StripValidationPlots::projYNHitsVsStripNumber [private] |
Definition at line 92 of file StripValidationPlots.cc.
Referenced by beginJob(), and endJob().
std::vector<TH1F*> StripValidationPlots::projYOccupancyGoodStripsVsStripNumber [private] |
Definition at line 77 of file StripValidationPlots.cc.
Referenced by beginJob(), and endJob().
std::vector<TH1F*> StripValidationPlots::projYOccupancyHotStripsVsStripNumber [private] |
Definition at line 74 of file StripValidationPlots.cc.
Referenced by beginJob(), and endJob().
std::vector<TH1F*> StripValidationPlots::projYOccupancyVsStripNumber [private] |
Definition at line 71 of file StripValidationPlots.cc.
Referenced by beginJob(), and endJob().
std::vector<TH1F*> StripValidationPlots::projYPoissonProbGoodStripsVsStripNumber [private] |
Definition at line 87 of file StripValidationPlots.cc.
Referenced by beginJob(), and endJob().
std::vector<TH1F*> StripValidationPlots::projYPoissonProbHotStripsVsStripNumber [private] |
Definition at line 84 of file StripValidationPlots.cc.
Referenced by beginJob(), and endJob().
std::vector<TH1F*> StripValidationPlots::projYPoissonProbVsStripNumber [private] |
Definition at line 81 of file StripValidationPlots.cc.
Referenced by beginJob(), and endJob().
Int_t StripValidationPlots::RodStringPetal [private] |
Definition at line 118 of file StripValidationPlots.cc.
Referenced by endJob().
Int_t StripValidationPlots::savedDetRawId [private] |
Definition at line 135 of file StripValidationPlots.cc.
Referenced by endJob().
Int_t StripValidationPlots::savedNStrips [private] |
Definition at line 136 of file StripValidationPlots.cc.
Referenced by endJob().
Int_t StripValidationPlots::savedSubDetId [private] |
Definition at line 137 of file StripValidationPlots.cc.
Referenced by endJob().
Float_t StripValidationPlots::StripGlobalPositionX [private] |
Definition at line 124 of file StripValidationPlots.cc.
Referenced by endJob().
Float_t StripValidationPlots::StripGlobalPositionY [private] |
Definition at line 125 of file StripValidationPlots.cc.
Referenced by endJob().
Float_t StripValidationPlots::StripGlobalPositionZ [private] |
Definition at line 126 of file StripValidationPlots.cc.
Referenced by endJob().
Int_t StripValidationPlots::StripHits [private] |
Definition at line 131 of file StripValidationPlots.cc.
Referenced by endJob().
Int_t StripValidationPlots::StripNumber [private] |
Definition at line 122 of file StripValidationPlots.cc.
Referenced by endJob().
Double_t StripValidationPlots::StripOccupancy [private] |
Definition at line 130 of file StripValidationPlots.cc.
Referenced by endJob().
Int_t StripValidationPlots::SubDetId [private] |
Definition at line 112 of file StripValidationPlots.cc.
Referenced by endJob().
std::vector<std::string> StripValidationPlots::subDetName [private] |
Definition at line 102 of file StripValidationPlots.cc.
Referenced by beginJob(), and endJob().
MonitorElement* StripValidationPlots::tmp [private] |
Definition at line 60 of file StripValidationPlots.cc.
Referenced by beginJob().
TProfile* StripValidationPlots::tmp_prof [private] |
Definition at line 61 of file StripValidationPlots.cc.
Referenced by beginJob().
std::vector<unsigned int> StripValidationPlots::vHotStripsInModule [private] |
Definition at line 139 of file StripValidationPlots.cc.
Referenced by endJob().