Public Member Functions | |
APVValidationPlots (const edm::ParameterSet &) | |
~APVValidationPlots () | |
Private Member Functions | |
virtual void | analyze (const edm::Event &, const edm::EventSetup &) |
virtual void | beginJob () |
virtual void | endJob () |
Private Attributes | |
TH1F * | absoluteOccupancy [5][10] |
Int_t | APVAbsoluteOccupancy |
Float_t | APVGlobalPositionX |
Float_t | APVGlobalPositionY |
Float_t | APVGlobalPositionZ |
Double_t | APVMedianOccupancy |
Int_t | APVNumber |
Int_t | DetRawId |
Int_t | Disc |
DQMStore * | dqmStore |
TFile * | infile |
std::string | infilename |
TTree * | intree |
Int_t | IsBack |
Int_t | IsExternalString |
Int_t | IsStereo |
Int_t | IsZMinusSide |
Int_t | Layer_Ring |
std::vector< std::string > | layerName |
TH1F * | medianOccupancy [5][10] |
TH2F * | medianVsAbsoluteOccupancy [5][10] |
Int_t | ModulePosition |
std::vector< unsigned int > | nLayers |
Int_t | NumberOfStrips |
std::ostringstream | oss |
std::string | outfilename |
Int_t | RodStringPetal |
Int_t | SubDetId |
std::vector< std::string > | subDetName |
MonitorElement * | tmp |
Definition at line 45 of file APVValidationPlots.cc.
APVValidationPlots::APVValidationPlots | ( | const edm::ParameterSet & | iConfig | ) | [explicit] |
Definition at line 116 of file APVValidationPlots.cc.
: infilename(iConfig.getUntrackedParameter<std::string>("inputFilename","in.root")), outfilename(iConfig.getUntrackedParameter<std::string>("outputFilename","out.root")) { //now do what ever initialization is needed }
APVValidationPlots::~APVValidationPlots | ( | ) |
Definition at line 125 of file APVValidationPlots.cc.
{ // do anything here that needs to be done at desctruction time // (e.g. close files, deallocate resources etc.) }
void APVValidationPlots::analyze | ( | const edm::Event & | iEvent, |
const edm::EventSetup & | iSetup | ||
) | [private, virtual] |
void APVValidationPlots::beginJob | ( | void | ) | [private, virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 148 of file APVValidationPlots.cc.
References absoluteOccupancy, DQMStore::book1D(), DQMStore::book2D(), dqmStore, MonitorElement::getTH1F(), MonitorElement::getTH2F(), i, j, layerName, medianOccupancy, medianVsAbsoluteOccupancy, nLayers, cmsCodeRules::cppFunctionSkipper::operator, oss, DQMStore::setCurrentFolder(), subDetName, and tmp.
{ oss.str(""); oss << 1; //runNumber dqmStore = edm::Service<DQMStore>().operator->(); dqmStore->setCurrentFolder("ChannelStatusPlots"); // Initialize histograms subDetName.push_back(""); subDetName.push_back("TIB"); subDetName.push_back("TID"); subDetName.push_back("TOB"); subDetName.push_back("TEC"); nLayers.push_back(0); nLayers.push_back(4); nLayers.push_back(3); nLayers.push_back(6); nLayers.push_back(9); layerName.push_back(""); layerName.push_back("Layer"); layerName.push_back("Disk"); layerName.push_back("Layer"); layerName.push_back("Disk"); std::string histoName; std::string histoTitle; for(unsigned int i = 0; i < subDetName.size(); i++) { for(unsigned int j = 0; j <= nLayers[i]; j++) { histoName = "medianVsAbsoluteOccupancy" + subDetName[i]; if(j!=0) { oss.str(""); oss << j; histoName += layerName[i] + oss.str(); } histoTitle = "Median APV occupancy vs. absolute APV occupancy"; if(i!=0) histoTitle += " in " + subDetName[i]; if(j!=0) { histoTitle += " " + layerName[i] + " " + oss.str(); } tmp = dqmStore->book2D(histoName.c_str(), histoTitle.c_str(), 1000, 0., 6., 1000, -1., 3.); medianVsAbsoluteOccupancy[i][j] = tmp->getTH2F(); medianVsAbsoluteOccupancy[i][j]->Rebin2D(10,10); medianVsAbsoluteOccupancy[i][j]->GetXaxis()->SetTitle("log_{10}(Abs. Occupancy)"); medianVsAbsoluteOccupancy[i][j]->GetYaxis()->SetTitle("log_{10}(Median Occupancy)"); // histoName = "medianOccupancy" + subDetName[i]; if(j!=0) { oss.str(""); oss << j; histoName += layerName[i] + oss.str(); } histoTitle = "Median APV occupancy"; if(i!=0) histoTitle += " in " + subDetName[i]; if(j!=0) { histoTitle += " " + layerName[i] + " " + oss.str(); } tmp = dqmStore->book1D(histoName.c_str(), histoTitle.c_str(), 1000, -1., 3.); medianOccupancy[i][j] = tmp->getTH1F(); medianOccupancy[i][j]->GetXaxis()->SetTitle("log_{10}(Occupancy)"); medianOccupancy[i][j]->GetYaxis()->SetTitle("APVs"); // histoName = "absoluteOccupancy" + subDetName[i]; if(j!=0) { oss.str(""); oss << j; histoName += layerName[i] + oss.str(); } histoTitle = "Absolute APV occupancy"; if(i!=0) histoTitle += " in " + subDetName[i]; if(j!=0) { histoTitle += " " + layerName[i] + " " + oss.str(); } tmp = dqmStore->book1D(histoName.c_str(), histoTitle.c_str(), 1000, 0., 6.); absoluteOccupancy[i][j] = tmp->getTH1F(); absoluteOccupancy[i][j]->GetXaxis()->SetTitle("log_{10}(Occupancy)"); absoluteOccupancy[i][j]->GetYaxis()->SetTitle("APVs"); } } }
void APVValidationPlots::endJob | ( | void | ) | [private, virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 231 of file APVValidationPlots.cc.
References absoluteOccupancy, APVAbsoluteOccupancy, APVGlobalPositionX, APVGlobalPositionY, APVGlobalPositionZ, APVMedianOccupancy, APVNumber, DQMStore::cd(), DetRawId, Disc, dqmStore, i, infile, infilename, intree, IsBack, IsExternalString, IsStereo, IsZMinusSide, Layer_Ring, medianOccupancy, medianVsAbsoluteOccupancy, ModulePosition, NumberOfStrips, outfilename, RodStringPetal, DQMStore::save(), and SubDetId.
{ infile = new TFile(infilename.c_str(),"READ"); intree = (TTree*)infile->Get("moduleOccupancy"); 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("ModuleNumber", &ModulePosition); intree->SetBranchAddress("NumberOfStrips", &NumberOfStrips); intree->SetBranchAddress("APVGlobalPositionX", &APVGlobalPositionX); intree->SetBranchAddress("APVGlobalPositionY", &APVGlobalPositionY); intree->SetBranchAddress("APVGlobalPositionZ", &APVGlobalPositionZ); intree->SetBranchAddress("APVNumber", &APVNumber); intree->SetBranchAddress("APVAbsoluteOccupancy", &APVAbsoluteOccupancy); intree->SetBranchAddress("APVMedianOccupancy", &APVMedianOccupancy); for (int i=0; i<intree->GetEntries(); i++) { intree->GetEntry(i); double logMedianOccupancy = -1; double logAbsoluteOccupancy = -1; if (APVMedianOccupancy>0) logMedianOccupancy = log10(APVMedianOccupancy); if (APVAbsoluteOccupancy>0) logAbsoluteOccupancy = log10(APVAbsoluteOccupancy); // The layer/disk information is stored in Layer_Ring for TIB/TOB and in Disc for TID/TEC unsigned int layer = 0; if(SubDetId==3 || SubDetId==5) layer=Layer_Ring; else layer=Disc; // Fill histograms for all the tracker medianVsAbsoluteOccupancy[0][0]->Fill(logAbsoluteOccupancy,logMedianOccupancy); medianOccupancy[0][0]->Fill(logMedianOccupancy); absoluteOccupancy[0][0]->Fill(logAbsoluteOccupancy); // Fill summary histograms for each subdetector medianVsAbsoluteOccupancy[SubDetId-2][0]->Fill(logAbsoluteOccupancy,logMedianOccupancy); medianOccupancy[SubDetId-2][0]->Fill(logMedianOccupancy); absoluteOccupancy[SubDetId-2][0]->Fill(logAbsoluteOccupancy); // Fill histograms for each layer/disk medianVsAbsoluteOccupancy[SubDetId-2][layer]->Fill(logAbsoluteOccupancy,logMedianOccupancy); medianOccupancy[SubDetId-2][layer]->Fill(logMedianOccupancy); absoluteOccupancy[SubDetId-2][layer]->Fill(logAbsoluteOccupancy); } dqmStore->cd(); dqmStore->save(outfilename.c_str(),"ChannelStatusPlots"); }
TH1F* APVValidationPlots::absoluteOccupancy[5][10] [private] |
Definition at line 69 of file APVValidationPlots.cc.
Referenced by beginJob(), and endJob().
Int_t APVValidationPlots::APVAbsoluteOccupancy [private] |
Definition at line 97 of file APVValidationPlots.cc.
Referenced by endJob().
Float_t APVValidationPlots::APVGlobalPositionX [private] |
Definition at line 93 of file APVValidationPlots.cc.
Referenced by endJob().
Float_t APVValidationPlots::APVGlobalPositionY [private] |
Definition at line 94 of file APVValidationPlots.cc.
Referenced by endJob().
Float_t APVValidationPlots::APVGlobalPositionZ [private] |
Definition at line 95 of file APVValidationPlots.cc.
Referenced by endJob().
Double_t APVValidationPlots::APVMedianOccupancy [private] |
Definition at line 98 of file APVValidationPlots.cc.
Referenced by endJob().
Int_t APVValidationPlots::APVNumber [private] |
Definition at line 96 of file APVValidationPlots.cc.
Referenced by endJob().
Int_t APVValidationPlots::DetRawId [private] |
Definition at line 82 of file APVValidationPlots.cc.
Referenced by endJob().
Int_t APVValidationPlots::Disc [private] |
Definition at line 85 of file APVValidationPlots.cc.
Referenced by endJob().
DQMStore* APVValidationPlots::dqmStore [private] |
Definition at line 58 of file APVValidationPlots.cc.
Referenced by beginJob(), and endJob().
TFile* APVValidationPlots::infile [private] |
Definition at line 78 of file APVValidationPlots.cc.
Referenced by endJob().
std::string APVValidationPlots::infilename [private] |
Definition at line 75 of file APVValidationPlots.cc.
Referenced by endJob().
TTree* APVValidationPlots::intree [private] |
Definition at line 79 of file APVValidationPlots.cc.
Referenced by endJob().
Int_t APVValidationPlots::IsBack [private] |
Definition at line 86 of file APVValidationPlots.cc.
Referenced by endJob().
Int_t APVValidationPlots::IsExternalString [private] |
Definition at line 87 of file APVValidationPlots.cc.
Referenced by endJob().
Int_t APVValidationPlots::IsStereo [private] |
Definition at line 90 of file APVValidationPlots.cc.
Referenced by endJob().
Int_t APVValidationPlots::IsZMinusSide [private] |
Definition at line 88 of file APVValidationPlots.cc.
Referenced by endJob().
Int_t APVValidationPlots::Layer_Ring [private] |
Definition at line 84 of file APVValidationPlots.cc.
Referenced by endJob().
std::vector<std::string> APVValidationPlots::layerName [private] |
Definition at line 73 of file APVValidationPlots.cc.
Referenced by beginJob().
TH1F* APVValidationPlots::medianOccupancy[5][10] [private] |
Definition at line 68 of file APVValidationPlots.cc.
Referenced by beginJob(), and endJob().
TH2F* APVValidationPlots::medianVsAbsoluteOccupancy[5][10] [private] |
Definition at line 67 of file APVValidationPlots.cc.
Referenced by beginJob(), and endJob().
Int_t APVValidationPlots::ModulePosition [private] |
Definition at line 91 of file APVValidationPlots.cc.
Referenced by endJob().
std::vector<unsigned int> APVValidationPlots::nLayers [private] |
Definition at line 72 of file APVValidationPlots.cc.
Referenced by beginJob().
Int_t APVValidationPlots::NumberOfStrips [private] |
Definition at line 92 of file APVValidationPlots.cc.
Referenced by endJob().
std::ostringstream APVValidationPlots::oss [private] |
Definition at line 56 of file APVValidationPlots.cc.
Referenced by beginJob().
std::string APVValidationPlots::outfilename [private] |
Definition at line 76 of file APVValidationPlots.cc.
Referenced by endJob().
Int_t APVValidationPlots::RodStringPetal [private] |
Definition at line 89 of file APVValidationPlots.cc.
Referenced by endJob().
Int_t APVValidationPlots::SubDetId [private] |
Definition at line 83 of file APVValidationPlots.cc.
Referenced by endJob().
std::vector<std::string> APVValidationPlots::subDetName [private] |
Definition at line 71 of file APVValidationPlots.cc.
Referenced by beginJob().
MonitorElement* APVValidationPlots::tmp [private] |
Definition at line 60 of file APVValidationPlots.cc.
Referenced by beginJob().