76 hname =
"xtal in beam position";
78 hname =
"Max Amplitude vs TDC offset";
80 hname =
"Beam Profile X";
82 hname =
"Beam Profile Y";
84 hname =
"E1x1 energy";
86 hname =
"E3x3 energy";
88 hname =
"E5x5 energy";
90 hname =
"E1x1 energy center";
92 hname =
"E3x3 energy center";
94 hname =
"E5x5 energy center";
96 hname =
"E1 over E9 ratio";
98 hname =
"E1 over E25 ratio";
100 hname =
"E9 over E25 ratio";
106 hname =
"E1 over E9 vs X";
108 hname =
"E1 over E9 vs Y";
110 hname =
"E1 over E25 vs X";
112 hname =
"E1 over E25 vs Y";
114 hname =
"E9 over E25 vs X";
116 hname =
"E9 over E25 vs Y";
118 hname =
"Xtal in Beam Shape";
181 evtHeader = pEventHeader.
product();
192 if (xtalInBeamId==
EBDetId(0)){
return; }
193 int xibEta = xtalInBeamId.
ieta();
194 int xibPhi = xtalInBeamId.
iphi();
201 for (
unsigned int icry=0;icry<25;icry++){
202 unsigned int row = icry/5;
203 unsigned int column = icry%5;
204 int ieta = xtalInBeamId.
ieta()+column-2;
205 int iphi = xtalInBeamId.
iphi()+row-2;
209 Xtals5x5[icry] = tempId;
221 for (
unsigned int icry=0;icry<25;icry++) {
222 if (!Xtals5x5[icry].null()){
223 double theAmpl = (theHits->
find(Xtals5x5[icry]))->
amplitude();
225 if (icry==12){ampl1x1 = theAmpl;}
226 if (icry==6 || icry==7 || icry==8 || icry==11 || icry==12 || icry==13 || icry==16 || icry==17 || icry==18){ampl3x3 += theAmpl;}
231 double sampleSave[10];
232 for(
int ii=0;
ii < 10; ++
ii){ sampleSave[
ii] = 0.0; }
236 if (thisDigi != theDigis->
end()){
240 sampleSave[
sample] = analogSample;
241 if ( eMax < analogSample ) {
249 double xBeam = theHodo->
posX();
250 double yBeam = theHodo->
posY();
274 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 Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
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_
void setCurrentFolder(const std::string &fullpath)
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)