#include <Validation/MuonCSCDigis/src/CSCComparatorDigiValidation.h>
Public Member Functions | |
void | analyze (const edm::Event &, const edm::EventSetup &) |
CSCComparatorDigiValidation (DQMStore *dbe, const edm::InputTag &inputTag, const edm::InputTag &stripDigiInputTag) | |
~CSCComparatorDigiValidation () | |
Private Attributes | |
MonitorElement * | the3StripPlots [10] |
MonitorElement * | theNDigisPerEventPlot |
MonitorElement * | theNDigisPerLayerPlots [10] |
edm::InputTag | theStripDigiInputTag |
MonitorElement * | theStripDigiPlots [10] |
MonitorElement * | theTimeBinPlots [10] |
Definition at line 8 of file CSCComparatorDigiValidation.h.
CSCComparatorDigiValidation::CSCComparatorDigiValidation | ( | DQMStore * | dbe, | |
const edm::InputTag & | inputTag, | |||
const edm::InputTag & | stripDigiInputTag | |||
) |
Definition at line 9 of file CSCComparatorDigiValidation.cc.
References DQMStore::book1D(), CSCBaseValidation::dbe_, i, the3StripPlots, theNDigisPerLayerPlots, theStripDigiPlots, and theTimeBinPlots.
00011 : CSCBaseValidation(dbe, inputTag), 00012 theStripDigiInputTag(stripDigiInputTag), 00013 theTimeBinPlots(), 00014 theNDigisPerLayerPlots(), 00015 theStripDigiPlots(), 00016 the3StripPlots(), 00017 theNDigisPerEventPlot( dbe_->book1D("CSCComparatorDigisPerEvent", "CSC Comparator Digis per event", 100, 0, 100) ) 00018 { 00019 for(int i = 0; i < 10; ++i) 00020 { 00021 char title1[200], title2[200], title3[200], title4[200]; 00022 sprintf(title1, "CSCComparatorDigiTimeType%d", i+1); 00023 sprintf(title2, "CSCComparatorDigisPerLayerType%d", i+1); 00024 sprintf(title3, "CSCComparatorStripAmplitudeType%d", i+1); 00025 sprintf(title4, "CSCComparator3StripAmplitudeType%d", i+1); 00026 theTimeBinPlots[i] = dbe_->book1D(title1, title1, 9, 0, 8); 00027 theNDigisPerLayerPlots[i] = dbe_->book1D(title2, title2, 100, 0, 20); 00028 theStripDigiPlots[i] = dbe_->book1D(title3, title3, 100, 0, 1000); 00029 the3StripPlots[i] = dbe_->book1D(title4, title4, 100, 0, 1000); 00030 00031 } 00032 }
CSCComparatorDigiValidation::~CSCComparatorDigiValidation | ( | ) |
Definition at line 36 of file CSCComparatorDigiValidation.cc.
00037 { 00038 /* 00039 for(int i = 0; i < 10; ++i) 00040 { 00041 std::cout << "Mean of " << theTimeBinPlots[i]->getName() 00042 << " is " << theTimeBinPlots[i]->getMean() 00043 << " +/- " << theTimeBinPlots[i]->getRMS() << std::endl; 00044 std::cout << "Mean charge of " << the3StripPlots[i]->getName() 00045 << " is " << the3StripPlots[i]->getMean() << std::endl; 00046 } 00047 */ 00048 }
void CSCComparatorDigiValidation::analyze | ( | const edm::Event & | e, | |
const edm::EventSetup & | ||||
) | [virtual] |
Implements CSCBaseValidation.
Definition at line 51 of file CSCComparatorDigiValidation.cc.
References ecalMGPA::adc(), CSCLayer::chamber(), CSCChamberSpecs::chamberType(), detId, edm::InputTag::encode(), MonitorElement::Fill(), CSCBaseValidation::findLayer(), edm::Event::getByLabel(), edm::Handle< T >::isValid(), j, prof2calltree::last, DetId::rawId(), CSCChamber::specs(), strip(), the3StripPlots, CSCBaseValidation::theInputTag, theNDigisPerEventPlot, theNDigisPerLayerPlots, theStripDigiInputTag, theStripDigiPlots, and theTimeBinPlots.
Referenced by CSCDigiValidation::analyze().
00052 { 00053 edm::Handle<CSCComparatorDigiCollection> comparators; 00054 edm::Handle<CSCStripDigiCollection> stripDigis; 00055 00056 e.getByLabel(theInputTag, comparators); 00057 if (!comparators.isValid()) { 00058 edm::LogError("CSCDigiDump") << "Cannot get comparators by label " << theInputTag.encode(); 00059 } 00060 e.getByLabel(theStripDigiInputTag, stripDigis); 00061 if (!stripDigis.isValid()) { 00062 edm::LogError("CSCDigiDump") << "Cannot get comparators by label " << theInputTag.encode(); 00063 } 00064 00065 unsigned nDigisPerEvent = 0; 00066 00067 for (CSCComparatorDigiCollection::DigiRangeIterator j=comparators->begin(); j!=comparators->end(); j++) { 00068 std::vector<CSCComparatorDigi>::const_iterator digiItr = (*j).second.first; 00069 std::vector<CSCComparatorDigi>::const_iterator last = (*j).second.second; 00070 00071 CSCDetId detId((*j).first); 00072 const CSCLayer * layer = findLayer(detId.rawId()); 00073 int chamberType = layer->chamber()->specs()->chamberType(); 00074 00075 CSCStripDigiCollection::Range stripRange = stripDigis->get(detId); 00076 00077 theNDigisPerLayerPlots[chamberType-1]->Fill(last-digiItr); 00078 00079 for( ; digiItr != last; ++digiItr) { 00080 ++nDigisPerEvent; 00081 theTimeBinPlots[chamberType-1]->Fill(digiItr->getTimeBin()); 00082 00083 int strip = digiItr->getStrip(); 00084 for(std::vector<CSCStripDigi>::const_iterator stripItr = stripRange.first; 00085 stripItr != stripRange.second; ++stripItr) 00086 { 00087 if(stripItr->getStrip() == strip) 00088 { 00089 std::vector<int> adc = stripItr->getADCCounts(); 00090 float pedc = 0.5*(adc[0]+adc[1]); 00091 float amp = adc[4] - pedc; 00092 theStripDigiPlots[chamberType-1]->Fill(amp); 00093 // check neighbors 00094 if(stripItr != stripRange.first && stripItr != stripRange.second-1) 00095 { 00096 std::vector<int> adcl = (stripItr-1)->getADCCounts(); 00097 std::vector<int> adcr = (stripItr+1)->getADCCounts(); 00098 float pedl = 0.5*(adcl[0]+adcl[1]); 00099 float pedr = 0.5*(adcr[0]+adcr[1]); 00100 float three = adcl[4]-pedl 00101 + adcr[4]-pedr 00102 + amp; 00103 the3StripPlots[chamberType-1]->Fill(three); 00104 } 00105 } 00106 } 00107 } 00108 00109 } 00110 00111 theNDigisPerEventPlot->Fill(nDigisPerEvent); 00112 }
MonitorElement* CSCComparatorDigiValidation::the3StripPlots[10] [private] |
Definition at line 22 of file CSCComparatorDigiValidation.h.
Referenced by analyze(), and CSCComparatorDigiValidation().
Definition at line 20 of file CSCComparatorDigiValidation.h.
Referenced by analyze(), and CSCComparatorDigiValidation().
MonitorElement* CSCComparatorDigiValidation::theStripDigiPlots[10] [private] |
Definition at line 21 of file CSCComparatorDigiValidation.h.
Referenced by analyze(), and CSCComparatorDigiValidation().
MonitorElement* CSCComparatorDigiValidation::theTimeBinPlots[10] [private] |
Definition at line 19 of file CSCComparatorDigiValidation.h.
Referenced by analyze(), and CSCComparatorDigiValidation().