CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Attributes
L1ExtraDQM::L1ExtraMonElement< CollectionType > Class Template Reference

#include <L1ExtraDQM.h>

Public Types

typedef CollectionType::const_iterator CIterColl
 

Public Member Functions

void bookhistograms (const edm::EventSetup &evSetup, DQMStore::IBooker &ibooker, const std::string &l1ExtraObject, const std::vector< L1GtObject > &l1GtObj, const bool bookPhi=true, const bool bookEta=true)
 
void fillCharge (const CollectionType *collType, const bool validColl, const bool isL1Coll, const int bxInEvent)
 fill charge More...
 
void fillEtPhiEta (const CollectionType *collType, const bool validColl, const bool bookPhi, const bool bookEta, const bool isL1Coll, const int bxInEvent)
 ET, eta, phi. More...
 
void fillEtTotal (const CollectionType *collType, const bool validColl, const bool isL1Coll, const int bxInEvent)
 fill ET total in energy sums More...
 
void fillHfBitCounts (const CollectionType *collType, const bool validColl, const int countIndex, const bool isL1Coll, const int bxInEvent)
 fill bit counts in HFRings collections More...
 
void fillHfRingEtSums (const CollectionType *collType, const bool validColl, const int countIndex, const bool isL1Coll, const int bxInEvent)
 fill energy sums in HFRings collections More...
 
void fillNrObjects (const CollectionType *collType, const bool validColl, const bool isL1Coll, const int bxInEvent)
 number of objects More...
 
void fillPtPhiEta (const CollectionType *collType, const bool validColl, const bool bookPhi, const bool bookEta, const bool isL1Coll, const int bxInEvent)
 PT, eta, phi. More...
 
 L1ExtraMonElement (const edm::EventSetup &, const int)
 
virtual ~L1ExtraMonElement ()
 

Private Attributes

int m_indexCharge
 
int m_indexEt
 
int m_indexEta
 
int m_indexEtTotal
 
int m_indexHfBitCounts
 
int m_indexHfRingEtSums
 
int m_indexNrObjects
 histogram index for each quantity, set during histogram booking More...
 
int m_indexPhi
 
int m_indexPt
 
std::vector< MonitorElement * > m_monElement
 

Detailed Description

template<class CollectionType>
class L1ExtraDQM::L1ExtraMonElement< CollectionType >

Definition at line 89 of file L1ExtraDQM.h.

Member Typedef Documentation

template<class CollectionType >
typedef CollectionType::const_iterator L1ExtraDQM::L1ExtraMonElement< CollectionType >::CIterColl

Definition at line 99 of file L1ExtraDQM.h.

Constructor & Destructor Documentation

template<class CollectionType >
L1ExtraDQM::L1ExtraMonElement< CollectionType >::L1ExtraMonElement ( const edm::EventSetup evSetup,
const int  nrElements 
)

Definition at line 872 of file L1ExtraDQM.cc.

References L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_monElement.

872  :
873  m_indexNrObjects(-1),
874  m_indexPt(-1),
875  m_indexEt(-1),
876  m_indexPhi(-1),
877  m_indexEta(-1),
878  m_indexEtTotal(-1),
879  m_indexCharge(-1),
880  m_indexHfBitCounts(-1),
881  m_indexHfRingEtSums(-1) {
882 
883  m_monElement.reserve(nrElements);
884 
885 }
int m_indexNrObjects
histogram index for each quantity, set during histogram booking
Definition: L1ExtraDQM.h:143
std::vector< MonitorElement * > m_monElement
Definition: L1ExtraDQM.h:140
template<class CollectionType >
L1ExtraDQM::L1ExtraMonElement< CollectionType >::~L1ExtraMonElement ( )
virtual

Definition at line 889 of file L1ExtraDQM.cc.

889  {
890 
891  //empty
892 
893 }

Member Function Documentation

template<class CollectionType >
void L1ExtraDQM::L1ExtraMonElement< CollectionType >::bookhistograms ( const edm::EventSetup evSetup,
DQMStore::IBooker ibooker,
const std::string &  l1ExtraObject,
const std::vector< L1GtObject > &  l1GtObj,
const bool  bookPhi = true,
const bool  bookEta = true 
)

Definition at line 897 of file L1ExtraDQM.cc.

References L1GetHistLimits::L1HistLimits::binThresholds, DQMStore::IBooker::book1D(), CenJet, popcon2dropbox::copy(), ForJet, HfBitCounts, HfRingEtSums, IsoEG, l1extra::L1HFRings::kNumRings, L1GetHistLimits::l1HistLimits(), LogDebug, LogTrace, L1GetHistLimits::L1HistLimits::lowerBinValue, L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_indexEt, L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_indexEta, L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_indexEtTotal, L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_indexHfBitCounts, L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_indexHfRingEtSums, L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_indexNrObjects, L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_indexPhi, L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_indexPt, L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_monElement, Mu, NoIsoEG, L1GetHistLimits::L1HistLimits::nrBins, tauVariables_cff::quantity, AlCaHLTBitMon_QueryRunRegistry::string, TauJet, L1GetHistLimits::L1HistLimits::upperBinValue, RecoTauValidation_cfi::xAxisTitle, and RecoTauValidation_cfi::yAxisTitle.

901  {
902 
903  // FIXME
904  L1GtObject gtObj = l1GtObj.at(0);
905 
906  //
907  std::string histName;
908  std::string histTitle;
911 
912  std::string quantity = "";
913 
914  int indexHistogram = -1;
915 
916  if (gtObj == HfBitCounts) {
917 
918  L1GetHistLimits l1GetHistLimits(evSetup);
919  const L1GetHistLimits::L1HistLimits& histLimits = l1GetHistLimits.l1HistLimits(gtObj, quantity);
920 
921  const int histNrBins = histLimits.nrBins;
922  const double histMinValue = histLimits.lowerBinValue;
923  const double histMaxValue = histLimits.upperBinValue;
924 
925  indexHistogram++;
926  m_indexHfBitCounts = indexHistogram;
927 
928  for (int iCount = 0; iCount < l1extra::L1HFRings::kNumRings; ++iCount) {
929 
930  histName = l1ExtraObject + "_Count_" + std::to_string(iCount);
931  histTitle = l1ExtraObject + ": count " + std::to_string(iCount);
932  xAxisTitle = l1ExtraObject;
933  yAxisTitle = "Entries";
934 
935  m_monElement.push_back(ibooker.book1D(histName, histTitle, histNrBins, histMinValue, histMaxValue));
936  m_monElement[m_indexHfBitCounts + iCount]->setAxisTitle(xAxisTitle, 1);
937  m_monElement[m_indexHfBitCounts + iCount]->setAxisTitle(yAxisTitle, 2);
938 
939  }
940 
941  return;
942 
943  }
944 
945  // number of objects per event
946  if ((gtObj == Mu) || (gtObj == IsoEG) || (gtObj == NoIsoEG) || (gtObj == CenJet) || (gtObj == ForJet) || (gtObj == TauJet)) {
947 
948  quantity = "NrObjects";
949 
950  L1GetHistLimits l1GetHistLimits(evSetup);
951  const L1GetHistLimits::L1HistLimits& histLimits = l1GetHistLimits.l1HistLimits(gtObj, quantity);
952 
953  const int histNrBins = histLimits.nrBins;
954  const double histMinValue = histLimits.lowerBinValue;
955  const double histMaxValue = histLimits.upperBinValue;
956 
957  histName = l1ExtraObject + "_NrObjectsPerEvent";
958  histTitle = l1ExtraObject + ": number of objects per event";
959  xAxisTitle = "Nr_" + l1ExtraObject;
960  yAxisTitle = "Entries";
961 
962  m_monElement.push_back(ibooker.book1D(histName, histTitle, histNrBins, histMinValue, histMaxValue));
963  indexHistogram++;
964 
965  m_monElement[indexHistogram]->setAxisTitle(xAxisTitle, 1);
966  m_monElement[indexHistogram]->setAxisTitle(yAxisTitle, 2);
967  m_indexNrObjects = indexHistogram;
968 
969  }
970 
971  // transverse momentum (energy) PT (ET) [GeV]
972 
973 
974  quantity = "ET";
975  std::string quantityLongName = " transverse energy ";
976 
977  if (gtObj == Mu) {
978  quantity = "PT";
979  quantityLongName = " transverse momentum ";
980  }
981 
982  L1GetHistLimits l1GetHistLimits(evSetup);
983  const L1GetHistLimits::L1HistLimits& histLimits = l1GetHistLimits.l1HistLimits(gtObj, quantity);
984 
985  const int histNrBinsET = histLimits.nrBins;
986  const double histMinValueET = histLimits.lowerBinValue;
987  const double histMaxValueET = histLimits.upperBinValue;
988  const std::vector<float>& binThresholdsET = histLimits.binThresholds;
989 
990  float* binThresholdsETf;
991  size_t sizeBinThresholdsET = binThresholdsET.size();
992  binThresholdsETf = new float[sizeBinThresholdsET];
993  copy(binThresholdsET.begin(), binThresholdsET.end(), binThresholdsETf);
994 
995  LogDebug("L1ExtraDQM") << "\n PT/ET histogram for " << l1ExtraObject
996  << "\n histNrBinsET = " << histNrBinsET << "\n histMinValueET = "
997  << histMinValueET << "\n histMaxValueET = " << histMaxValueET
998  << "\n Last bin value represents the upper limit of the histogram"
999  << std::endl;
1000  for (size_t iBin = 0; iBin < sizeBinThresholdsET; ++iBin) {
1001  LogTrace("L1ExtraDQM") << "Bin " << iBin << ": " << quantity << " = "
1002  << binThresholdsETf[iBin] << " GeV" << std::endl;
1003 
1004  }
1005 
1006  histName = l1ExtraObject + "_" + quantity;
1007  histTitle = l1ExtraObject + ":" + quantityLongName + quantity + " [GeV]";
1008  xAxisTitle = l1ExtraObject + "_" + quantity + " [GeV]";
1009  yAxisTitle = "Entries";
1010 
1011  if (gtObj == HfRingEtSums) {
1012 
1013  indexHistogram++;
1014  m_indexHfRingEtSums = indexHistogram;
1015 
1016  for (int iCount = 0; iCount < l1extra::L1HFRings::kNumRings; ++iCount) {
1017 
1018  histName = l1ExtraObject + "_Count_" + std::to_string(iCount);
1019  histTitle = l1ExtraObject + ": count " + std::to_string(iCount);
1020  xAxisTitle = l1ExtraObject;
1021  yAxisTitle = "Entries";
1022 
1023  m_monElement.push_back(ibooker.book1D(histName, histTitle, histNrBinsET, binThresholdsETf));
1024 
1025  m_monElement[m_indexHfRingEtSums + iCount]->setAxisTitle(xAxisTitle, 1);
1026  m_monElement[m_indexHfRingEtSums + iCount]->setAxisTitle(yAxisTitle, 2);
1027 
1028  }
1029 
1030  } else {
1031 
1032  m_monElement.push_back(ibooker.book1D(histName, histTitle, histNrBinsET, binThresholdsETf));
1033  indexHistogram++;
1034 
1035  m_monElement[indexHistogram]->setAxisTitle(xAxisTitle, 1);
1036  m_monElement[indexHistogram]->setAxisTitle(yAxisTitle, 2);
1037  m_indexPt = indexHistogram;
1038  m_indexEt = indexHistogram;
1039  m_indexEtTotal = indexHistogram;
1040  }
1041 
1042 
1043  delete[] binThresholdsETf;
1044 
1045  //
1046 
1047  if (bookPhi) {
1048 
1049  quantity = "phi";
1050 
1051  // get limits and binning from L1Extra
1052  L1GetHistLimits l1GetHistLimits(evSetup);
1053  const L1GetHistLimits::L1HistLimits& histLimits = l1GetHistLimits.l1HistLimits(gtObj, quantity);
1054 
1055  const int histNrBinsPhi = histLimits.nrBins;
1056  const double histMinValuePhi = histLimits.lowerBinValue;
1057  const double histMaxValuePhi = histLimits.upperBinValue;
1058  const std::vector<float>& binThresholdsPhi = histLimits.binThresholds;
1059 
1060  float* binThresholdsPhif;
1061  size_t sizeBinThresholdsPhi = binThresholdsPhi.size();
1062  binThresholdsPhif = new float[sizeBinThresholdsPhi];
1063  copy(binThresholdsPhi.begin(), binThresholdsPhi.end(), binThresholdsPhif);
1064 
1065  LogDebug("L1ExtraDQM") << "\n phi histogram for " << l1ExtraObject
1066  << "\n histNrBinsPhi = " << histNrBinsPhi
1067  << "\n histMinValuePhi = " << histMinValuePhi
1068  << "\n histMaxValuePhi = " << histMaxValuePhi
1069  << "\n Last bin value represents the upper limit of the histogram"
1070  << std::endl;
1071  for (size_t iBin = 0; iBin < sizeBinThresholdsPhi; ++iBin) {
1072  LogTrace("L1ExtraDQM") << "Bin " << iBin << ": phi = " << binThresholdsPhif[iBin] << " deg" << std::endl;
1073 
1074  }
1075 
1076  histName = l1ExtraObject + "_phi";
1077  histTitle = l1ExtraObject + ": phi distribution ";
1078  xAxisTitle = l1ExtraObject + "_phi [deg]";
1079  yAxisTitle = "Entries";
1080 
1081  m_monElement.push_back(ibooker.book1D(histName, histTitle, histNrBinsPhi, histMinValuePhi, histMaxValuePhi));
1082  indexHistogram++;
1083 
1084  m_monElement[indexHistogram]->setAxisTitle(xAxisTitle, 1);
1085  m_monElement[indexHistogram]->setAxisTitle(yAxisTitle, 2);
1086  m_indexPhi = indexHistogram;
1087 
1088  delete[] binThresholdsPhif;
1089  }
1090 
1091  //
1092 
1093 
1094  if (bookEta) {
1095 
1096  quantity = "eta";
1097 
1098  // get limits and binning from L1Extra
1099  L1GetHistLimits l1GetHistLimits(evSetup);
1100  const L1GetHistLimits::L1HistLimits& histLimits = l1GetHistLimits.l1HistLimits(gtObj, quantity);
1101 
1102  const int histNrBinsEta = histLimits.nrBins;
1103  const double histMinValueEta = histLimits.lowerBinValue;
1104  const double histMaxValueEta = histLimits.upperBinValue;
1105  const std::vector<float>& binThresholdsEta = histLimits.binThresholds;
1106 
1107  //
1108  float* binThresholdsEtaf;
1109  size_t sizeBinThresholdsEta = binThresholdsEta.size();
1110  binThresholdsEtaf = new float[sizeBinThresholdsEta];
1111  copy(binThresholdsEta.begin(), binThresholdsEta.end(), binThresholdsEtaf);
1112 
1113  LogDebug("L1ExtraDQM") << "\n eta histogram for " << l1ExtraObject
1114  << "\n histNrBinsEta = " << histNrBinsEta
1115  << "\n histMinValueEta = " << histMinValueEta
1116  << "\n histMaxValueEta = " << histMaxValueEta
1117  << "\n Last bin value represents the upper limit of the histogram"
1118  << std::endl;
1119  for (size_t iBin = 0; iBin < sizeBinThresholdsEta; ++iBin) {
1120  LogTrace("L1ExtraDQM") << "Bin " << iBin << ": eta = " << binThresholdsEtaf[iBin] << std::endl;
1121 
1122  }
1123 
1124  histName = l1ExtraObject + "_eta";
1125  histTitle = l1ExtraObject + ": eta distribution ";
1126  xAxisTitle = l1ExtraObject + "_eta";
1127  yAxisTitle = "Entries";
1128 
1129  m_monElement.push_back(ibooker.book1D(histName, histTitle, histNrBinsEta, binThresholdsEtaf));
1130  indexHistogram++;
1131 
1132  m_monElement[indexHistogram]->setAxisTitle(xAxisTitle, 1);
1133  m_monElement[indexHistogram]->setAxisTitle(yAxisTitle, 2);
1134  m_indexEta = indexHistogram;
1135 
1136  delete[] binThresholdsEtaf;
1137 
1138  }
1139 
1140 }
#define LogDebug(id)
def copy(args, dbName)
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:106
#define LogTrace(id)
std::vector< float > binThresholds
Definition: L1GtObject.h:30
int m_indexNrObjects
histogram index for each quantity, set during histogram booking
Definition: L1ExtraDQM.h:143
std::vector< MonitorElement * > m_monElement
Definition: L1ExtraDQM.h:140
template<class CollectionType >
void L1ExtraDQM::L1ExtraMonElement< CollectionType >::fillCharge ( const CollectionType *  collType,
const bool  validColl,
const bool  isL1Coll,
const int  bxInEvent 
)

fill charge

Definition at line 1238 of file L1ExtraDQM.cc.

References L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_indexCharge, and L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_monElement.

1239  {
1240 
1241  if (validColl) {
1242  for (CIterColl iterColl = collType->begin(); iterColl
1243  != collType->end(); ++iterColl) {
1244 
1245  if (isL1Coll && (iterColl->bx() != bxInEvent)) {
1246  continue;
1247  }
1248 
1249  m_monElement[m_indexCharge]->Fill(iterColl->charge());
1250  }
1251  }
1252 
1253 }
CollectionType::const_iterator CIterColl
Definition: L1ExtraDQM.h:99
std::vector< MonitorElement * > m_monElement
Definition: L1ExtraDQM.h:140
template<class CollectionType >
void L1ExtraDQM::L1ExtraMonElement< CollectionType >::fillEtPhiEta ( const CollectionType *  collType,
const bool  validColl,
const bool  bookPhi,
const bool  bookEta,
const bool  isL1Coll,
const int  bxInEvent 
)

ET, eta, phi.

Definition at line 1192 of file L1ExtraDQM.cc.

References MillePedeFileConverter_cfg::e, L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_indexEt, L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_indexEta, L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_indexPhi, L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_monElement, and rad2deg().

1194  {
1195 
1196  if (validColl) {
1197  for (CIterColl iterColl = collType->begin(); iterColl
1198  != collType->end(); ++iterColl) {
1199 
1200  if (isL1Coll && (iterColl->bx() != bxInEvent)) {
1201  continue;
1202  }
1203 
1204  m_monElement[m_indexEt]->Fill(iterColl->et());
1205 
1206  if (bookPhi) {
1207  // add a very small quantity to get off the bin edge
1208  m_monElement[m_indexPhi]->Fill(rad2deg(iterColl->phi()) + 1.e-6);
1209  }
1210 
1211  if (bookEta) {
1212  m_monElement[m_indexEta]->Fill(iterColl->eta());
1213  }
1214 
1215  }
1216  }
1217 }
CollectionType::const_iterator CIterColl
Definition: L1ExtraDQM.h:99
const double rad2deg(const double &)
convert phi from rad (-pi, pi] to deg (0, 360)
std::vector< MonitorElement * > m_monElement
Definition: L1ExtraDQM.h:140
template<class CollectionType >
void L1ExtraDQM::L1ExtraMonElement< CollectionType >::fillEtTotal ( const CollectionType *  collType,
const bool  validColl,
const bool  isL1Coll,
const int  bxInEvent 
)

fill ET total in energy sums

Definition at line 1220 of file L1ExtraDQM.cc.

References L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_indexEtTotal, and L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_monElement.

1221  {
1222 
1223  if (validColl) {
1224  for (CIterColl iterColl = collType->begin(); iterColl
1225  != collType->end(); ++iterColl) {
1226 
1227  if (isL1Coll && (iterColl->bx() != bxInEvent)) {
1228  continue;
1229  }
1230 
1231  m_monElement[m_indexEtTotal]->Fill(iterColl->etTotal());
1232  }
1233  }
1234 
1235 }
CollectionType::const_iterator CIterColl
Definition: L1ExtraDQM.h:99
std::vector< MonitorElement * > m_monElement
Definition: L1ExtraDQM.h:140
template<class CollectionType >
void L1ExtraDQM::L1ExtraMonElement< CollectionType >::fillHfBitCounts ( const CollectionType *  collType,
const bool  validColl,
const int  countIndex,
const bool  isL1Coll,
const int  bxInEvent 
)

fill bit counts in HFRings collections

Definition at line 1256 of file L1ExtraDQM.cc.

References L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_indexHfBitCounts, and L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_monElement.

1258  {
1259 
1260  if (validColl) {
1261  for (CIterColl iterColl = collType->begin(); iterColl
1262  != collType->end(); ++iterColl) {
1263 
1264  if (isL1Coll && (iterColl->bx() != bxInEvent)) {
1265  continue;
1266  }
1267 
1268  m_monElement[m_indexHfBitCounts + countIndex]->Fill(
1269  iterColl->hfBitCount(
1270  (l1extra::L1HFRings::HFRingLabels) countIndex));
1271  }
1272  }
1273 
1274 }
CollectionType::const_iterator CIterColl
Definition: L1ExtraDQM.h:99
std::vector< MonitorElement * > m_monElement
Definition: L1ExtraDQM.h:140
template<class CollectionType >
void L1ExtraDQM::L1ExtraMonElement< CollectionType >::fillHfRingEtSums ( const CollectionType *  collType,
const bool  validColl,
const int  countIndex,
const bool  isL1Coll,
const int  bxInEvent 
)

fill energy sums in HFRings collections

Definition at line 1277 of file L1ExtraDQM.cc.

References L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_indexHfRingEtSums, and L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_monElement.

1279  {
1280 
1281  if (validColl) {
1282  for (CIterColl iterColl = collType->begin(); iterColl
1283  != collType->end(); ++iterColl) {
1284 
1285  if (isL1Coll && (iterColl->bx() != bxInEvent)) {
1286  continue;
1287  }
1288 
1289  m_monElement[m_indexHfRingEtSums + countIndex]->Fill(
1290  iterColl->hfEtSum(
1291  (l1extra::L1HFRings::HFRingLabels) countIndex));
1292  }
1293  }
1294 
1295 }
CollectionType::const_iterator CIterColl
Definition: L1ExtraDQM.h:99
std::vector< MonitorElement * > m_monElement
Definition: L1ExtraDQM.h:140
template<class CollectionType >
void L1ExtraDQM::L1ExtraMonElement< CollectionType >::fillNrObjects ( const CollectionType *  collType,
const bool  validColl,
const bool  isL1Coll,
const int  bxInEvent 
)

number of objects

Definition at line 1143 of file L1ExtraDQM.cc.

References L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_indexNrObjects, and L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_monElement.

1145  {
1146 
1147  if (validColl && isL1Coll) {
1148  size_t collSize = 0;
1149  for (CIterColl iterColl = collType->begin(); iterColl
1150  != collType->end(); ++iterColl) {
1151 
1152  if (iterColl->bx() == bxInEvent) {
1153  collSize++;
1154  }
1155  }
1156  m_monElement[m_indexNrObjects]->Fill(collSize);
1157  } else {
1158  size_t collSize = collType->size();
1159  m_monElement[m_indexNrObjects]->Fill(collSize);
1160  }
1161 }
CollectionType::const_iterator CIterColl
Definition: L1ExtraDQM.h:99
int m_indexNrObjects
histogram index for each quantity, set during histogram booking
Definition: L1ExtraDQM.h:143
std::vector< MonitorElement * > m_monElement
Definition: L1ExtraDQM.h:140
template<class CollectionType >
void L1ExtraDQM::L1ExtraMonElement< CollectionType >::fillPtPhiEta ( const CollectionType *  collType,
const bool  validColl,
const bool  bookPhi,
const bool  bookEta,
const bool  isL1Coll,
const int  bxInEvent 
)

PT, eta, phi.

Definition at line 1164 of file L1ExtraDQM.cc.

References MillePedeFileConverter_cfg::e, L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_indexEta, L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_indexPhi, L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_indexPt, L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_monElement, and rad2deg().

1166  {
1167 
1168  if (validColl) {
1169  for (CIterColl iterColl = collType->begin(); iterColl
1170  != collType->end(); ++iterColl) {
1171 
1172  if (isL1Coll && (iterColl->bx() != bxInEvent)) {
1173  continue;
1174  }
1175 
1176  m_monElement[m_indexPt]->Fill(iterColl->pt());
1177 
1178  if (bookPhi) {
1179  // add a very small quantity to get off the bin edge
1180  m_monElement[m_indexPhi]->Fill(rad2deg(iterColl->phi()) + 1.e-6);
1181  }
1182 
1183  if (bookEta) {
1184  m_monElement[m_indexEta]->Fill(iterColl->eta());
1185  }
1186 
1187  }
1188  }
1189 }
CollectionType::const_iterator CIterColl
Definition: L1ExtraDQM.h:99
const double rad2deg(const double &)
convert phi from rad (-pi, pi] to deg (0, 360)
std::vector< MonitorElement * > m_monElement
Definition: L1ExtraDQM.h:140

Member Data Documentation

template<class CollectionType >
int L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_indexCharge
private
template<class CollectionType >
int L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_indexEt
private
template<class CollectionType >
int L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_indexEta
private
template<class CollectionType >
int L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_indexEtTotal
private
template<class CollectionType >
int L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_indexHfBitCounts
private
template<class CollectionType >
int L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_indexHfRingEtSums
private
template<class CollectionType >
int L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_indexNrObjects
private

histogram index for each quantity, set during histogram booking

Definition at line 143 of file L1ExtraDQM.h.

Referenced by L1ExtraDQM::L1ExtraMonElement< CollectionType >::bookhistograms(), and L1ExtraDQM::L1ExtraMonElement< CollectionType >::fillNrObjects().

template<class CollectionType >
int L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_indexPhi
private
template<class CollectionType >
int L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_indexPt
private
template<class CollectionType >
std::vector<MonitorElement*> L1ExtraDQM::L1ExtraMonElement< CollectionType >::m_monElement
private