21 #ifdef WITH_ECAL_COND_DB
113 #ifdef COMMON_NOISE_ANALYSIS
201 sprintf(histo,
"EBPT pedestal quality G01 %s",
Numbers::sEB(ism).c_str());
208 sprintf(histo,
"EBPT pedestal quality G06 %s",
Numbers::sEB(ism).c_str());
215 sprintf(histo,
"EBPT pedestal quality G12 %s",
Numbers::sEB(ism).c_str());
223 sprintf(histo,
"EBPT pedestal quality PNs G01 %s",
Numbers::sEB(ism).c_str());
230 sprintf(histo,
"EBPT pedestal quality PNs G16 %s",
Numbers::sEB(ism).c_str());
238 sprintf(histo,
"EBPT pedestal mean G01 %s",
Numbers::sEB(ism).c_str());
244 sprintf(histo,
"EBPT pedestal mean G06 %s",
Numbers::sEB(ism).c_str());
250 sprintf(histo,
"EBPT pedestal mean G12 %s",
Numbers::sEB(ism).c_str());
257 sprintf(histo,
"EBPT pedestal rms G01 %s",
Numbers::sEB(ism).c_str());
263 sprintf(histo,
"EBPT pedestal rms G06 %s",
Numbers::sEB(ism).c_str());
269 sprintf(histo,
"EBPT pedestal rms G12 %s",
Numbers::sEB(ism).c_str());
276 sprintf(histo,
"EBPDT PNs pedestal rms %s G01",
Numbers::sEB(ism).c_str());
282 sprintf(histo,
"EBPDT PNs pedestal rms %s G16",
Numbers::sEB(ism).c_str());
287 #ifdef COMMON_NOISE_ANALYSIS
290 sprintf(histo,
"EBPT pedestal 3sum G01 %s",
Numbers::sEB(ism).c_str());
297 sprintf(histo,
"EBPT pedestal 3sum G06 %s",
Numbers::sEB(ism).c_str());
304 sprintf(histo,
"EBPT pedestal 3sum G12 %s",
Numbers::sEB(ism).c_str());
312 sprintf(histo,
"EBPT pedestal 5sum G01 %s",
Numbers::sEB(ism).c_str());
319 sprintf(histo,
"EBPT pedestal 5sum G06 %s",
Numbers::sEB(ism).c_str());
326 sprintf(histo,
"EBPT pedestal 5sum G12 %s",
Numbers::sEB(ism).c_str());
346 for (
int ie = 1; ie <= 85; ie++ ) {
347 for (
int ip = 1; ip <= 20; ip++ ) {
356 for (
int i = 1;
i <= 10;
i++ ) {
374 #ifdef COMMON_NOISE_ANALYSIS
383 for (
int ie = 1; ie <= 85; ie++ ) {
384 for (
int ip = 1; ip <= 20; ip++ ) {
411 if (
h01_[ism-1] )
delete h01_[ism-1];
412 if (
h02_[ism-1] )
delete h02_[ism-1];
413 if (
h03_[ism-1] )
delete h03_[ism-1];
415 if (
j01_[ism-1] )
delete j01_[ism-1];
416 if (
j02_[ism-1] )
delete j02_[ism-1];
417 if (
j03_[ism-1] )
delete j03_[ism-1];
419 if (
k01_[ism-1] )
delete k01_[ism-1];
420 if (
k02_[ism-1] )
delete k02_[ism-1];
421 if (
k03_[ism-1] )
delete k03_[ism-1];
423 if (
i01_[ism-1] )
delete i01_[ism-1];
424 if (
i02_[ism-1] )
delete i02_[ism-1];
481 #ifdef COMMON_NOISE_ANALYSIS
501 #ifdef WITH_ECAL_COND_DB
509 std::map<EcalLogicID, MonPedestalsDat> dataset1;
529 for (
int ie = 1; ie <= 85; ie++ ) {
530 for (
int ip = 1; ip <= 20; ip++ ) {
536 float num01, num02, num03;
537 float mean01, mean02, mean03;
538 float rms01, rms02, rms03;
544 if ( update01 || update02 || update03 ) {
550 std::cout <<
"G01 (" << ie <<
"," << ip <<
") " << num01 <<
" " << mean01 <<
" " << rms01 << std::endl;
551 std::cout <<
"G06 (" << ie <<
"," << ip <<
") " << num02 <<
" " << mean02 <<
" " << rms02 << std::endl;
552 std::cout <<
"G12 (" << ie <<
"," << ip <<
") " << num03 <<
" " << mean03 <<
" " << rms03 << std::endl;
598 }
catch (std::runtime_error &
e) {
606 std::map<EcalLogicID, MonPNPedDat> dataset2;
623 for (
int i = 1;
i <= 10;
i++ ) {
629 float mean01, mean02;
635 if ( update01 || update02 ) {
641 std::cout <<
"PNs (" <<
i <<
") G01 " << num01 <<
" " << mean01 <<
" " << rms01 << std::endl;
642 std::cout <<
"PNs (" <<
i <<
") G16 " << num01 <<
" " << mean01 <<
" " << rms01 << std::endl;
680 }
catch (std::runtime_error &e) {
694 if (
ievt_ % 10 == 0 ) {
720 sprintf(histo, (
prefixME_ +
"/EBPedestalTask/Gain01/EBPT pedestal %s G01").c_str(),
Numbers::sEB(ism).c_str());
722 h01_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me,
cloneME_,
h01_[ism-1] );
728 sprintf(histo, (
prefixME_ +
"/EBPedestalTask/Gain06/EBPT pedestal %s G06").c_str(),
Numbers::sEB(ism).c_str());
730 h02_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me,
cloneME_,
h02_[ism-1] );
736 sprintf(histo, (
prefixME_ +
"/EBPedestalTask/Gain12/EBPT pedestal %s G12").c_str(),
Numbers::sEB(ism).c_str());
738 h03_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me,
cloneME_,
h03_[ism-1] );
742 #ifdef COMMON_NOISE_ANALYSIS
745 sprintf(histo, (
prefixME_ +
"/EBPedestalTask/Gain01/EBPT pedestal 3sum %s G01").c_str(),
Numbers::sEB(ism).c_str());
747 j01_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me,
cloneME_,
j01_[ism-1] );
753 sprintf(histo, (
prefixME_ +
"/EBPedestalTask/Gain06/EBPT pedestal 3sum %s G06").c_str(),
Numbers::sEB(ism).c_str());
755 j02_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me,
cloneME_,
j02_[ism-1] );
761 sprintf(histo, (
prefixME_ +
"/EBPedestalTask/Gain12/EBPT pedestal 3sum %s G12").c_str(),
Numbers::sEB(ism).c_str());
763 j03_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me,
cloneME_,
j03_[ism-1] );
769 sprintf(histo, (
prefixME_ +
"/EBPedestalTask/Gain01/EBPT pedestal 5sum %s G01").c_str(),
Numbers::sEB(ism).c_str());
771 k01_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me,
cloneME_,
k01_[ism-1] );
777 sprintf(histo, (
prefixME_ +
"/EBPedestalTask/Gain06/EBPT pedestal 5sum %s G06").c_str(),
Numbers::sEB(ism).c_str());
779 k02_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me,
cloneME_,
k02_[ism-1] );
785 sprintf(histo, (
prefixME_ +
"/EBPedestalTask/Gain12/EBPT pedestal 5sum %s G12").c_str(),
Numbers::sEB(ism).c_str());
787 k03_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me,
cloneME_,
k03_[ism-1] );
794 sprintf(histo, (
prefixME_ +
"/EBPedestalTask/PN/Gain01/EBPDT PNs pedestal %s G01").c_str(),
Numbers::sEB(ism).c_str());
796 i01_[ism-1] = UtilsClient::getHisto<TProfile*>( me,
cloneME_,
i01_[ism-1] );
802 sprintf(histo, (
prefixME_ +
"/EBPedestalTask/PN/Gain16/EBPDT PNs pedestal %s G16").c_str(),
Numbers::sEB(ism).c_str());
804 i02_[ism-1] = UtilsClient::getHisto<TProfile*>( me,
cloneME_,
i02_[ism-1] );
826 #ifdef COMMON_NOISE_ANALYSIS
836 for (
int ie = 1; ie <= 85; ie++ ) {
837 for (
int ip = 1; ip <= 20; ip++ ) {
847 float num01, num02, num03;
848 float mean01, mean02, mean03;
849 float rms01, rms02, rms03;
912 for (
int i = 1;
i <= 10;
i++ ) {
921 float mean01, mean02;
965 #ifdef COMMON_NOISE_ANALYSIS
966 for (
int ie = 1; ie <= 85; ie++ ) {
967 for (
int ip = 1; ip <= 20; ip++ ) {
1001 if ( ie >= 2 && ie <= 84 && ip >= 2 && ip <= 19 ) {
1006 for (
int i = -1;
i <= +1;
i++ ) {
1007 for (
int j = -1;
j <= +1;
j++ ) {
1009 if (
h01_[ism-1] ) x3val01 = x3val01 +
h01_[ism-1]->GetBinError(ie+
i, ip+
j) *
1010 h01_[ism-1]->GetBinError(ie+
i, ip+
j);
1012 if (
h02_[ism-1] ) x3val02 = x3val02 +
h02_[ism-1]->GetBinError(ie+
i, ip+
j) *
1013 h02_[ism-1]->GetBinError(ie+
i, ip+
j);
1015 if (
h03_[ism-1] ) x3val03 = x3val03 +
h03_[ism-1]->GetBinError(ie+
i, ip+
j) *
1016 h03_[ism-1]->GetBinError(ie+
i, ip+
j);
1020 x3val01 = x3val01 / (9.*9.);
1021 x3val02 = x3val02 / (9.*9.);
1022 x3val03 = x3val03 / (9.*9.);
1025 if (
j01_[ism-1] ) y3val01 =
j01_[ism-1]->GetBinError(ie, ip) *
1026 j01_[ism-1]->GetBinError(ie, ip);
1029 if (
j02_[ism-1] ) y3val02 =
j02_[ism-1]->GetBinError(ie, ip) *
1030 j02_[ism-1]->GetBinError(ie, ip);
1033 if (
j03_[ism-1] ) y3val03 =
j03_[ism-1]->GetBinError(ie, ip) *
1034 j03_[ism-1]->GetBinError(ie, ip);
1037 if ( x3val01 != 0 && y3val01 != 0 ) z3val01 =
sqrt(
std::abs(x3val01 - y3val01));
1038 if ( (x3val01 - y3val01) < 0 ) z3val01 = -z3val01;
1043 if ( x3val02 != 0 && y3val02 != 0 ) z3val02 =
sqrt(
std::abs(x3val02 - y3val02));
1044 if ( (x3val02 - y3val02) < 0 ) z3val02 = -z3val02;
1049 if ( x3val03 != 0 && y3val03 != 0 ) z3val03 =
sqrt(
std::abs(x3val03 - y3val03));
1050 if ( (x3val03 - y3val03) < 0 ) z3val03 = -z3val03;
1056 if ( ie >= 3 && ie <= 83 && ip >= 3 && ip <= 18 ) {
1061 for (
int i = -2;
i <= +2;
i++ ) {
1062 for (
int j = -2;
j <= +2;
j++ ) {
1064 if (
h01_[ism-1] ) x5val01 = x5val01 +
h01_[ism-1]->GetBinError(ie+
i, ip+
j) *
1065 h01_[ism-1]->GetBinError(ie+
i, ip+
j);
1067 if (
h02_[ism-1] ) x5val02 = x5val02 +
h02_[ism-1]->GetBinError(ie+
i, ip+
j) *
1068 h02_[ism-1]->GetBinError(ie+
i, ip+
j);
1070 if (
h03_[ism-1] ) x5val03 = x5val03 +
h03_[ism-1]->GetBinError(ie+
i, ip+
j) *
1071 h03_[ism-1]->GetBinError(ie+
i, ip+
j);
1075 x5val01 = x5val01 / (25.*25.);
1076 x5val02 = x5val02 / (25.*25.);
1077 x5val03 = x5val03 / (25.*25.);
1080 if (
k01_[ism-1] ) y5val01 =
k01_[ism-1]->GetBinError(ie, ip) *
1081 k01_[ism-1]->GetBinError(ie, ip);
1084 if (
k02_[ism-1] ) y5val02 =
k02_[ism-1]->GetBinError(ie, ip) *
1085 k02_[ism-1]->GetBinError(ie, ip);
1088 if (
k03_[ism-1] ) y5val03 =
k03_[ism-1]->GetBinError(ie, ip) *
1089 k03_[ism-1]->GetBinError(ie, ip);
1092 if ( x5val01 != 0 && y5val01 != 0 ) z5val01 =
sqrt(
std::abs(x5val01 - y5val01));
1093 if ( (x5val01 - y5val01) < 0 ) z5val01 = -z5val01;
1098 if ( x5val02 != 0 && y5val02 != 0 ) z5val02 =
sqrt(
std::abs(x5val02 - y5val02));
1099 if ( (x5val02 - y5val02) < 0 ) z5val02 = -z5val02;
1104 if ( x5val03 != 0 && y5val03 != 0 ) z5val03 =
sqrt(
std::abs(x5val03 - y5val03));
1105 if ( (x5val03 - y5val03) < 0 ) z5val03 = -z5val03;
MonitorElement * mer01_[36]
static void printBadChannels(const MonitorElement *me, const T *hi, bool positive_only=false)
Print the bad channels.
void beginRun(void)
begin of run method
Cache logicID vector from database.
T getUntrackedParameter(std::string const &, T const &) const
void setPedMeanG1(float mean)
static const int PEDESTAL_MIDDLE_GAIN_RMS_ERROR
void setBinContent(int binx, double content)
set content of bin (1-D)
static bool maskChannel(int ism, int i1, int i2, uint32_t bits, const EcalSubdetector subdet)
static std::string sEB(const int ism)
MonitorElement * mer02_[36]
MonitorElement * meg03_[36]
MonitorElement * meg02_[36]
MonitorElement * met03_[36]
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
MonitorElement * met02_[36]
Some "id" conversions.
static void maskBinContent(const MonitorElement *me, const int ix, const int iy)
Mask the bin content.
void setPedRMSG16(float mean)
static const int PEDESTAL_HIGH_GAIN_MEAN_ERROR
std::vector< int > MGPAGains_
MonitorElement * mes02_[36]
virtual ~EBPedestalClient()
Destructor.
MonitorElement * mep02_[36]
MonitorElement * meg01_[36]
void setPedRMSG1(float mean)
static const int PEDESTAL_LOW_GAIN_RMS_ERROR
void setPedMeanG1(float mean)
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
void setPedRMSG6(float rms)
static int icEB(const int ism, const int ix, const int iy)
MonitorElement * meg04_[36]
static const int PEDESTAL_HIGH_GAIN_RMS_ERROR
static bool maskPn(int ism, int i1, uint32_t bits, const EcalSubdetector subdet)
void setTaskStatus(bool status)
void cleanup(void)
clean up method
static int indexEB(const int ism, const int ie, const int ip)
MonitorElement * mep03_[36]
MonitorElement * mes03_[36]
static int iSM(const int ism, const EcalSubdetector subdet)
MonitorElement * mer03_[36]
MonitorElement * mer05_[36]
void setPedMeanG6(float mean)
void removeElement(const std::string &name)
void endJob(void)
end of job method
std::vector< int > superModules_
MonitorElement * mer04_[36]
EBPedestalClient(const edm::ParameterSet &ps)
Constructor.
void analyze(void)
Analyze.
std::string getName(Reflex::Type &cc)
void setPedMeanG16(float mean)
std::vector< int > MGPAGainsPN_
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. "my/long/dir/my_histo")
void endRun(void)
end of run method
void beginJob(void)
begin of job method
Ecal Monitor Utils for Client.
static const int PEDESTAL_LOW_GAIN_MEAN_ERROR
MonitorElement * mep01_[36]
void setPedRMSG1(float rms)
MonitorElement * met01_[36]
static bool getBinStatus(const MonitorElement *me, const int ix, const int iy)
Returns true if the bin status is red/dark red.
float discrepancyMean_[3]
float discrepancyMeanPn_[2]
void setPedMeanG12(float mean)
void setTaskStatus(bool status)
void insertDataArraySet(const std::map< EcalLogicID, DATT > *data, IOVT *iov)
MonitorElement * meg05_[36]
static const int PEDESTAL_MIDDLE_GAIN_MEAN_ERROR
MonitorElement * mes01_[36]
static bool getBinQuality(const MonitorElement *me, const int ix, const int iy)
Returns true if the bin quality is good or masked.
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
static EcalLogicID getEcalLogicID(const char *name, const int id1=EcalLogicID::NULLID, const int id2=EcalLogicID::NULLID, const int id3=EcalLogicID::NULLID)
int ism(int ieta, int iphi)
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
void Reset(void)
reset ME (ie. contents, errors, etc)
static bool getBinStatistics(const T *histo, const int ix, const int iy, float &num, float &mean, float &rms)
Returns true if the bin contains good statistical data.
void setCurrentFolder(const std::string &fullpath)
void setPedRMSG12(float rms)