71 hname =
"xtal in beam position";
73 hname =
"Max Amplitude vs TDC offset";
75 hname =
"Beam Profile X";
77 hname =
"Beam Profile Y";
79 hname =
"E1x1 energy";
81 hname =
"E3x3 energy";
83 hname =
"E5x5 energy";
85 hname =
"E1x1 energy center";
87 hname =
"E3x3 energy center";
89 hname =
"E5x5 energy center";
91 hname =
"E1 over E9 ratio";
93 hname =
"E1 over E25 ratio";
95 hname =
"E9 over E25 ratio";
101 hname =
"E1 over E9 vs X";
103 hname =
"E1 over E9 vs Y";
105 hname =
"E1 over E25 vs X";
107 hname =
"E1 over E25 vs Y";
109 hname =
"E9 over E25 vs X";
111 hname =
"E9 over E25 vs Y";
113 hname =
"Xtal in Beam Shape";
125 if (pdigis.isValid()) {
136 if (
phits.isValid()) {
137 theHits =
phits.product();
147 if (pHodo.isValid()) {
158 if (pTDC.isValid()) {
169 if (pEventHeader.isValid()) {
170 evtHeader = pEventHeader.
product();
179 if (xtalInBeamId ==
EBDetId(0)) {
182 int xibEta = xtalInBeamId.
ieta();
183 int xibPhi = xtalInBeamId.
iphi();
186 if (
data_ && (evtHeader->tableIsMoving()))
191 for (
unsigned int icry = 0; icry < 25; icry++) {
192 unsigned int row = icry / 5;
193 unsigned int column = icry % 5;
194 int ieta = xtalInBeamId.
ieta() + column - 2;
195 int iphi = xtalInBeamId.
iphi() + row - 2;
198 if (tempId.
ism() == 1)
199 Xtals5x5[icry] = tempId;
211 for (
unsigned int icry = 0; icry < 25; icry++) {
212 if (!Xtals5x5[icry].null()) {
213 double theAmpl = (theHits->find(Xtals5x5[icry]))->amplitude();
218 if (icry == 6 || icry == 7 || icry == 8 || icry == 11 || icry == 12 || icry == 13 || icry == 16 || icry == 17 ||
226 double sampleSave[10];
227 for (
int ii = 0;
ii < 10; ++
ii) {
228 sampleSave[
ii] = 0.0;
233 if (thisDigi != theDigis->end()) {
237 sampleSave[
sample] = analogSample;
238 if (eMax < analogSample) {
246 double xBeam = theHodo->posX();
247 double yBeam = theHodo->posY();
269 for (
int ii = 0;
ii < 10; ++
ii) {
273 if ((fabs(xBeam) < 2.5) && (fabs(yBeam) < 2.5)) {
MonitorElement * meETBShape_
MonitorElement * meETBampltdc_
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * meETBe5x5_
MonitorElement * meETBe1e25_
MonitorElement * meETBe3x3_
virtual void setCurrentFolder(std::string const &fullpath)
edm::EDGetTokenT< EcalTBTDCRecInfo > tdcRec_Token_
edm::EDGetTokenT< EBDigiCollection > digi_Token_
MonitorElement * meETBe9e25vsX_
edm::EDGetTokenT< EcalTBHodoscopeRecInfo > hodoRec_Token_
void bookHistograms(DQMStore::IBooker &i, edm::Run const &, edm::EventSetup const &) override
EcalMGPASample sample(int i) const
MonitorElement * meETBe1e25vsX_
std::string eventHeaderProducer_
int ism() const
get the ECAL/SM id
static bool validDetId(int i, int j)
check if a valid index combination
MonitorElement * meETBxib_
int iphi() const
get the crystal iphi
EcalTBValidation(const edm::ParameterSet &)
edm::EDGetTokenT< EBUncalibratedRecHitCollection > hit_Token_
MonitorElement * meETBe9e25_
MonitorElement * meETBe9e25vsY_
std::string eventHeaderCollection_
MonitorElement * meETBe1vsX_
std::string hodoRecInfoProducer_
std::string digiProducer_
int ieta() const
get the crystal ieta
MonitorElement * meETBe5x5_center_
static const int ETAPHIMODE
std::string hitCollection_
T const * product() const
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
T getParameter(std::string const &) const
MonitorElement * meETBe1e9vsX_
boost::transform_iterator< IterHelp, boost::counting_iterator< int > > const_iterator
MonitorElement * meETBe1e25vsY_
MonitorElement * meETBe1x1_
std::string tdcRecInfoCollection_
~EcalTBValidation() override
tuple config
parse the configuration file
std::string tdcRecInfoProducer_
edm::EDGetTokenT< EcalTBEventHeader > eventHeader_Token_
MonitorElement * meETBe1e9_
MonitorElement * meETBe3x3_center_
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
static const int SMCRYSTALMODE
MonitorElement * meETBe1e9vsY_
std::string digiCollection_
MonitorElement * meETBhodoY_
MonitorElement * meETBe1vsY_
std::string hodoRecInfoCollection_
MonitorElement * meETBe1x1_center_
MonitorElement * meETBhodoX_
void analyze(const edm::Event &, const edm::EventSetup &) override
caConstants::TupleMultiplicity const *__restrict__ HitsOnGPU const *__restrict__ tindex_type *__restrict__ double *__restrict__ phits
int adc() const
get the ADC sample (12 bits)