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 875 of file L1ExtraDQM.cc.

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

875  :
876  m_indexNrObjects(-1),
877  m_indexPt(-1),
878  m_indexEt(-1),
879  m_indexPhi(-1),
880  m_indexEta(-1),
881  m_indexEtTotal(-1),
882  m_indexCharge(-1),
883  m_indexHfBitCounts(-1),
884  m_indexHfRingEtSums(-1) {
885 
886  m_monElement.reserve(nrElements);
887 
888 }
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 892 of file L1ExtraDQM.cc.

892  {
893 
894  //empty
895 
896 }

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 900 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.

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

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

1242  {
1243 
1244  if (validColl) {
1245  for (CIterColl iterColl = collType->begin(); iterColl
1246  != collType->end(); ++iterColl) {
1247 
1248  if (isL1Coll && (iterColl->bx() != bxInEvent)) {
1249  continue;
1250  }
1251 
1252  m_monElement[m_indexCharge]->Fill(iterColl->charge());
1253  }
1254  }
1255 
1256 }
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 1195 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().

1197  {
1198 
1199  if (validColl) {
1200  for (CIterColl iterColl = collType->begin(); iterColl
1201  != collType->end(); ++iterColl) {
1202 
1203  if (isL1Coll && (iterColl->bx() != bxInEvent)) {
1204  continue;
1205  }
1206 
1207  m_monElement[m_indexEt]->Fill(iterColl->et());
1208 
1209  if (bookPhi) {
1210  // add a very small quantity to get off the bin edge
1211  m_monElement[m_indexPhi]->Fill(rad2deg(iterColl->phi()) + 1.e-6);
1212  }
1213 
1214  if (bookEta) {
1215  m_monElement[m_indexEta]->Fill(iterColl->eta());
1216  }
1217 
1218  }
1219  }
1220 }
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 1223 of file L1ExtraDQM.cc.

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

1224  {
1225 
1226  if (validColl) {
1227  for (CIterColl iterColl = collType->begin(); iterColl
1228  != collType->end(); ++iterColl) {
1229 
1230  if (isL1Coll && (iterColl->bx() != bxInEvent)) {
1231  continue;
1232  }
1233 
1234  m_monElement[m_indexEtTotal]->Fill(iterColl->etTotal());
1235  }
1236  }
1237 
1238 }
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 1259 of file L1ExtraDQM.cc.

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

1261  {
1262 
1263  if (validColl) {
1264  for (CIterColl iterColl = collType->begin(); iterColl
1265  != collType->end(); ++iterColl) {
1266 
1267  if (isL1Coll && (iterColl->bx() != bxInEvent)) {
1268  continue;
1269  }
1270 
1271  m_monElement[m_indexHfBitCounts + countIndex]->Fill(
1272  iterColl->hfBitCount(
1273  (l1extra::L1HFRings::HFRingLabels) countIndex));
1274  }
1275  }
1276 
1277 }
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 1280 of file L1ExtraDQM.cc.

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

1282  {
1283 
1284  if (validColl) {
1285  for (CIterColl iterColl = collType->begin(); iterColl
1286  != collType->end(); ++iterColl) {
1287 
1288  if (isL1Coll && (iterColl->bx() != bxInEvent)) {
1289  continue;
1290  }
1291 
1292  m_monElement[m_indexHfRingEtSums + countIndex]->Fill(
1293  iterColl->hfEtSum(
1294  (l1extra::L1HFRings::HFRingLabels) countIndex));
1295  }
1296  }
1297 
1298 }
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 1146 of file L1ExtraDQM.cc.

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

1148  {
1149 
1150  if (validColl && isL1Coll) {
1151  size_t collSize = 0;
1152  for (CIterColl iterColl = collType->begin(); iterColl
1153  != collType->end(); ++iterColl) {
1154 
1155  if (iterColl->bx() == bxInEvent) {
1156  collSize++;
1157  }
1158  }
1159  m_monElement[m_indexNrObjects]->Fill(collSize);
1160  } else {
1161  size_t collSize = collType->size();
1162  m_monElement[m_indexNrObjects]->Fill(collSize);
1163  }
1164 }
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 1167 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().

1169  {
1170 
1171  if (validColl) {
1172  for (CIterColl iterColl = collType->begin(); iterColl
1173  != collType->end(); ++iterColl) {
1174 
1175  if (isL1Coll && (iterColl->bx() != bxInEvent)) {
1176  continue;
1177  }
1178 
1179  m_monElement[m_indexPt]->Fill(iterColl->pt());
1180 
1181  if (bookPhi) {
1182  // add a very small quantity to get off the bin edge
1183  m_monElement[m_indexPhi]->Fill(rad2deg(iterColl->phi()) + 1.e-6);
1184  }
1185 
1186  if (bookEta) {
1187  m_monElement[m_indexEta]->Fill(iterColl->eta());
1188  }
1189 
1190  }
1191  }
1192 }
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