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";
170 evtHeader = pEventHeader.
product();
179 if (xtalInBeamId ==
EBDetId(0)) {
182 int xibEta = xtalInBeamId.
ieta();
183 int xibPhi = xtalInBeamId.
iphi();
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_
T getParameter(std::string const &) const
MonitorElement * meETBampltdc_
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * meETBe5x5_
boost::transform_iterator< IterHelp, boost::counting_iterator< int > > const_iterator
MonitorElement * meETBe1e25_
MonitorElement * meETBe3x3_
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
def setup(process, global_tag, zero_tesla=False)
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_
const_iterator find(id_type i) const
MonitorElement * meETBe9e25_
MonitorElement * meETBe9e25vsY_
void setCurrentFolder(std::string const &fullpath)
std::string eventHeaderCollection_
MonitorElement * meETBe1vsX_
MonitorElement * book1D(Args &&...args)
std::string hodoRecInfoProducer_
std::string digiProducer_
int ieta() const
get the crystal ieta
MonitorElement * meETBe5x5_center_
static const int ETAPHIMODE
Namespace of DDCMS conversion namespace.
std::string hitCollection_
T const * product() const
MonitorElement * book2D(Args &&...args)
MonitorElement * meETBe1e9vsX_
MonitorElement * meETBe1e25vsY_
MonitorElement * meETBe1x1_
const_iterator end() const
std::string tdcRecInfoCollection_
~EcalTBValidation() override
iterator find(key_type k)
std::string tdcRecInfoProducer_
edm::EDGetTokenT< EcalTBEventHeader > eventHeader_Token_
MonitorElement * meETBe1e9_
MonitorElement * meETBe3x3_center_
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
int adc() const
get the ADC sample (12 bits)