50 for (
int i = 0;
i < 18;
i++) {
88 for(
int i=0;
i<2;
i++){
126 for (
int i = 0;
i < 18;
i++) {
190 for(
int i=0;
i<2;
i++){
204 std::stringstream LaserN, LN;
212 LaserN <<
"Laser" << 1;
217 for (
int i = 0;
i < 18;
i++) {
219 meShapeMapL1_[
i] =
dqmStore_->
bookProfile2D(name, name, 850, 0., 850., 10, 0., 10., 4096, 0., 4096.,
"s");
225 name =
"EELT amplitude " +
Numbers::sEE(i+1) +
" " + LN.str();
226 meAmplMapL1_[
i] =
dqmStore_->
bookProfile2D(name, name, 50,
Numbers::ix0EE(i+1)+0.,
Numbers::ix0EE(i+1)+50., 50,
Numbers::iy0EE(i+1)+0.,
Numbers::iy0EE(i+1)+50., 4096, 0., 4096.*12.,
"s");
232 name =
"EELT timing " +
Numbers::sEE(i+1) +
" " + LN.str();
233 meTimeMapL1_[
i] =
dqmStore_->
bookProfile2D(name, name, 50,
Numbers::ix0EE(i+1)+0.,
Numbers::ix0EE(i+1)+50., 50,
Numbers::iy0EE(i+1)+0.,
Numbers::iy0EE(i+1)+50., 250, 0., 10.,
"s");
239 name =
"EELT amplitude over PN " +
Numbers::sEE(i+1) +
" " + LN.str();
240 meAmplPNMapL1_[
i] =
dqmStore_->
bookProfile2D(name, name, 50,
Numbers::ix0EE(i+1)+0.,
Numbers::ix0EE(i+1)+50., 50,
Numbers::iy0EE(i+1)+0.,
Numbers::iy0EE(i+1)+50., 4096, 0., 4096.*12.,
"s");
247 name =
"EELT amplitude map " + LN.str() +
" EE -";
252 name =
"EELT amplitude map " + LN.str() +
" EE +";
261 for (
int i = 0;
i < 18;
i++) {
262 name =
"EELT PNs amplitude " +
Numbers::sEE(
i+1) +
" G01 " + LN.str();
268 name =
"EELT PNs pedestal " +
Numbers::sEE(i+1) +
" G01 " + LN.str();
277 for (
int i = 0;
i < 18;
i++) {
278 name =
"EELT PNs amplitude " +
Numbers::sEE(
i+1) +
" G16 " + LN.str();
284 name =
"EELT PNs pedestal " +
Numbers::sEE(i+1) +
" G16 " + LN.str();
296 LaserN <<
"Laser" << 2;
301 for (
int i = 0;
i < 18;
i++) {
303 meShapeMapL2_[
i] =
dqmStore_->
bookProfile2D(name, name, 850, 0., 850., 10, 0., 10., 4096, 0., 4096.,
"s");
309 name =
"EELT amplitude " +
Numbers::sEE(i+1) +
" " + LN.str();
310 meAmplMapL2_[
i] =
dqmStore_->
bookProfile2D(name, name, 50,
Numbers::ix0EE(i+1)+0.,
Numbers::ix0EE(i+1)+50., 50,
Numbers::iy0EE(i+1)+0.,
Numbers::iy0EE(i+1)+50., 4096, 0., 4096.*12.,
"s");
316 name =
"EELT timing " +
Numbers::sEE(i+1) +
" " + LN.str();
317 meTimeMapL2_[
i] =
dqmStore_->
bookProfile2D(name, name, 50,
Numbers::ix0EE(i+1)+0.,
Numbers::ix0EE(i+1)+50., 50,
Numbers::iy0EE(i+1)+0.,
Numbers::iy0EE(i+1)+50., 250, 0., 10.,
"s");
323 name =
"EELT amplitude over PN " +
Numbers::sEE(i+1) +
" " + LN.str();
324 meAmplPNMapL2_[
i] =
dqmStore_->
bookProfile2D(name, name, 50,
Numbers::ix0EE(i+1)+0.,
Numbers::ix0EE(i+1)+50., 50,
Numbers::iy0EE(i+1)+0.,
Numbers::iy0EE(i+1)+50., 4096, 0., 4096.*12.,
"s");
331 name =
"EELT amplitude map " + LN.str() +
" EE -";
336 name =
"EELT amplitude map " + LN.str() +
" EE +";
341 for (
int i = 0;
i < 18;
i++) {
342 name =
"EELT PNs amplitude " +
Numbers::sEE(
i+1) +
" G01 " + LN.str();
348 name =
"EELT PNs pedestal " +
Numbers::sEE(i+1) +
" G01 " + LN.str();
357 for (
int i = 0;
i < 18;
i++) {
358 name =
"EELT PNs amplitude " +
Numbers::sEE(
i+1) +
" G16 " + LN.str();
364 name =
"EELT PNs pedestal " +
Numbers::sEE(i+1) +
" G16 " + LN.str();
376 LaserN <<
"Laser" << 3;
381 for (
int i = 0;
i < 18;
i++) {
383 meShapeMapL3_[
i] =
dqmStore_->
bookProfile2D(name, name, 850, 0., 850., 10, 0., 10., 4096, 0., 4096.,
"s");
389 name =
"EELT amplitude " +
Numbers::sEE(i+1) +
" " + LN.str();
390 meAmplMapL3_[
i] =
dqmStore_->
bookProfile2D(name, name, 50,
Numbers::ix0EE(i+1)+0.,
Numbers::ix0EE(i+1)+50., 50,
Numbers::iy0EE(i+1)+0.,
Numbers::iy0EE(i+1)+50., 4096, 0., 4096.*12.,
"s");
396 name =
"EELT timing " +
Numbers::sEE(i+1) +
" " + LN.str();
397 meTimeMapL3_[
i] =
dqmStore_->
bookProfile2D(name, name, 50,
Numbers::ix0EE(i+1)+0.,
Numbers::ix0EE(i+1)+50., 50,
Numbers::iy0EE(i+1)+0.,
Numbers::iy0EE(i+1)+50., 250, 0., 10.,
"s");
403 name =
"EELT amplitude over PN " +
Numbers::sEE(i+1) +
" " + LN.str();
404 meAmplPNMapL3_[
i] =
dqmStore_->
bookProfile2D(name, name, 50,
Numbers::ix0EE(i+1)+0.,
Numbers::ix0EE(i+1)+50., 50,
Numbers::iy0EE(i+1)+0.,
Numbers::iy0EE(i+1)+50., 4096, 0., 4096.*12.,
"s");
411 name =
"EELT amplitude map " + LN.str() +
" EE -";
416 name =
"EELT amplitude map " + LN.str() +
" EE +";
421 for (
int i = 0;
i < 18;
i++) {
422 name =
"EELT PNs amplitude " +
Numbers::sEE(
i+1) +
" G01 " + LN.str();
428 name =
"EELT PNs pedestal " +
Numbers::sEE(i+1) +
" G01 " + LN.str();
437 for (
int i = 0;
i < 18;
i++) {
438 name =
"EELT PNs amplitude " +
Numbers::sEE(
i+1) +
" G16 " + LN.str();
444 name =
"EELT PNs pedestal " +
Numbers::sEE(i+1) +
" G16 " + LN.str();
456 LaserN <<
"Laser" << 4;
461 for (
int i = 0;
i < 18;
i++) {
463 meShapeMapL4_[
i] =
dqmStore_->
bookProfile2D(name, name, 850, 0., 850., 10, 0., 10., 4096, 0., 4096.,
"s");
469 name =
"EELT amplitude " +
Numbers::sEE(i+1) +
" " + LN.str();
470 meAmplMapL4_[
i] =
dqmStore_->
bookProfile2D(name, name, 50,
Numbers::ix0EE(i+1)+0.,
Numbers::ix0EE(i+1)+50., 50,
Numbers::iy0EE(i+1)+0.,
Numbers::iy0EE(i+1)+50., 4096, 0., 4096.*12.,
"s");
476 name =
"EELT timing " +
Numbers::sEE(i+1) +
" " + LN.str();
477 meTimeMapL4_[
i] =
dqmStore_->
bookProfile2D(name, name, 50,
Numbers::ix0EE(i+1)+0.,
Numbers::ix0EE(i+1)+50., 50,
Numbers::iy0EE(i+1)+0.,
Numbers::iy0EE(i+1)+50., 250, 0., 10.,
"s");
483 name =
"EELT amplitude over PN " +
Numbers::sEE(i+1) +
" " + LN.str();
484 meAmplPNMapL4_[
i] =
dqmStore_->
bookProfile2D(name, name, 50,
Numbers::ix0EE(i+1)+0.,
Numbers::ix0EE(i+1)+50., 50,
Numbers::iy0EE(i+1)+0.,
Numbers::iy0EE(i+1)+50., 4096, 0., 4096.*12.,
"s");
491 name =
"EELT amplitude map " + LN.str() +
" EE -";
496 name =
"EELT amplitude map " + LN.str() +
" EE +";
501 for (
int i = 0;
i < 18;
i++) {
502 name =
"EELT PNs amplitude " +
Numbers::sEE(
i+1) +
" G01 " + LN.str();
508 name =
"EELT PNs pedestal " +
Numbers::sEE(i+1) +
" G01 " + LN.str();
517 for (
int i = 0;
i < 18;
i++) {
518 name =
"EELT PNs amplitude " +
Numbers::sEE(
i+1) +
" G16 " + LN.str();
524 name =
"EELT PNs pedestal " +
Numbers::sEE(i+1) +
" G16 " + LN.str();
539 if ( !
init_ )
return;
547 for (
int i = 0;
i < 18;
i++) {
558 for(
int i=0;
i<2;
i++)
565 for (
int i = 0;
i < 18;
i++) {
576 for(
int i=0;
i<2;
i++)
584 for (
int i = 0;
i < 18;
i++) {
595 for(
int i=0;
i<2;
i++)
603 for (
int i = 0;
i < 18;
i++) {
614 for(
int i=0;
i<2;
i++)
624 for (
int i = 0;
i < 18;
i++) {
632 for (
int i = 0;
i < 18;
i++) {
646 for (
int i = 0;
i < 18;
i++) {
654 for (
int i = 0;
i < 18;
i++) {
668 for (
int i = 0;
i < 18;
i++) {
676 for (
int i = 0;
i < 18;
i++) {
690 for (
int i = 0;
i < 18;
i++) {
698 for (
int i = 0;
i < 18;
i++) {
725 for (
int i=0;
i<18;
i++) runType[
i] = -1;
727 for (
int i=0;
i<18;
i++) rtHalf[
i] = -1;
729 for (
int i=0;
i<18;
i++) waveLength[
i] = -1;
741 runType[ism-1] = dcchItr->getRunType();
742 rtHalf[ism-1] = dcchItr->getRtHalf();
743 waveLength[ism-1] = dcchItr->getEventSettings().wavelength;
752 edm::LogWarning(
"EELaserTask") <<
"EcalRawDataCollection not available";
756 if ( ! enable )
return;
764 for (
int i = 0;
i < 80;
i++ ) {
769 std::vector<int> PNs;
777 for(
int i(0);
i < 10;
i++)
799 for (
int i = 0;
i < 10;
i++) {
808 if(iMax >= 0 && max - min > 20.)
815 for(
int i(0);
i < 10;
i++){
816 if(maxpos[
i] > threshold){
824 int need = digis->size();
825 LogDebug(
"EELaserTask") <<
"event " <<
ievt_ <<
" digi collection size " << need;
845 for (
int i = 0;
i < 10;
i++) {
851 if ( rtHalf[ism-1] == 0 || rtHalf[ism-1] == 1 ) {
853 if ( waveLength[ism-1] == 0 ) meShapeMap =
meShapeMapL1_[ism-1];
854 if ( waveLength[ism-1] == 1 ) meShapeMap =
meShapeMapL2_[ism-1];
855 if ( waveLength[ism-1] == 2 ) meShapeMap =
meShapeMapL3_[ism-1];
856 if ( waveLength[ism-1] == 3 ) meShapeMap =
meShapeMapL4_[ism-1];
864 float xval = float(adc);
866 if ( meShapeMap ) meShapeMap->
Fill(ic - 0.5,
i + 0.5, xval);
872 for (
unsigned int i=0;
i<PNs.size();
i++) {
874 if ( ipn >= 0 && ipn < 80 ) numPN[ipn] =
true;
889 int nep = pns->size();
890 LogDebug(
"EELaserTask") <<
"event " <<
ievt_ <<
" pns collection size " << nep;
898 int num = pnItr->id().iPnId();
905 if ( ipn >= 0 && ipn < 80 && numPN[ipn] ==
false )
continue;
909 for (
int i = 0;
i < 4;
i++) {
911 int adc = pnItr->sample(
i).adc();
915 if ( pnItr->sample(
i).gainId() == 0 ) {
921 if ( pnItr->sample(
i).gainId() == 1 ) {
928 float xval = float(adc);
930 if ( mePNPed ) mePNPed->
Fill(num - 0.5, xval);
932 xvalped = xvalped + xval;
936 xvalped = xvalped / 4;
942 for (
int i = 0;
i < 50;
i++) {
944 int adc = pnItr->sample(
i).adc();
946 float xval = float(adc);
948 if ( xval >= xvalmax ) xvalmax = xval;
952 xvalmax = xvalmax - xvalped;
954 if ( pnItr->sample(0).gainId() == 0 ) {
960 if ( pnItr->sample(0).gainId() == 1 ) {
967 if ( mePN ) mePN->
Fill(num - 0.5, xvalmax);
969 if ( ipn >= 0 && ipn < 80 ) adcPN[ipn] = xvalmax;
975 edm::LogWarning(
"EELaserTask") <<
"EcalPnDiodeDigiCollection not available";
983 int neh = hits->size();
984 LogDebug(
"EELaserTask") <<
"event " <<
ievt_ <<
" hits collection size " << neh;
996 if ( ism >= 1 && ism <= 9 ){
1003 float xix = ix - 0.5;
1004 float xiy = iy - 0.5;
1016 if ( rtHalf[ism-1] == 0 || rtHalf[ism-1] == 1 ) {
1018 if ( waveLength[ism-1] == 0 ) {
1024 if ( waveLength[ism-1] == 1 ) {
1030 if ( waveLength[ism-1] == 2 ) {
1036 if ( waveLength[ism-1] == 3 ) {
1049 float xval = hitItr->amplitude();
1050 if ( xval <= 0. ) xval = 0.0;
1051 float yval = hitItr->jitter() + 5.0;
1052 if ( yval <= 0. ) yval = 0.0;
1053 float zval = hitItr->pedestal();
1054 if ( zval <= 0. ) zval = 0.0;
1056 if ( meAmplMap ) meAmplMap->
Fill(xix, xiy, xval);
1059 if ( meTimeMap ) meTimeMap->
Fill(xix, xiy, yval);
1066 if ( PNs.size() > 0 ) {
1068 if ( ipn >= 0 && ipn < 80 ) {
1069 if ( adcPN[ipn] != 0. ) wval = xval / adcPN[ipn];
1073 if ( meAmplPNMap ) meAmplPNMap->
Fill(xix, xiy, wval);
1075 if( meAmplSummaryMap ) meAmplSummaryMap->
Fill(xix, xiy, xval);
1081 edm::LogWarning(
"EELaserTask") <<
"EcalUncalibratedRecHitCollection not available";
int adc(sample_type sample)
get the ADC sample (12 bits)
MonitorElement * mePnAmplMapG01L2_[18]
Some "id" conversions.
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
static std::string sEE(const unsigned ism)
MonitorElement * meTimeMapL4_[18]
static int ipnEE(const int ism, const int ipnid)
MonitorElement * mePnAmplMapG16L2_[18]
edm::EDGetTokenT< EEDigiCollection > EEDigiCollection_
boost::transform_iterator< IterHelp, boost::counting_iterator< int > > const_iterator
MonitorElement * meTimeMapL3_[18]
static unsigned icEE(const unsigned ism, const unsigned ix, const unsigned iy)
MonitorElement * mePnAmplMapG16L1_[18]
void rmdir(const std::string &fullpath)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Some "id" conversions.
MonitorElement * mePnPedMapG01L4_[18]
void analyze(const edm::Event &e, const edm::EventSetup &c)
Analyze.
MonitorElement * mePnPedMapG01L2_[18]
std::vector< EcalDCCHeaderBlock >::const_iterator const_iterator
MonitorElement * meAmplMapL2_[18]
EcalMGPASample sample(int i) const
MonitorElement * mePnAmplMapG01L1_[18]
static int ix0EE(const unsigned ism)
MonitorElement * mePnPedMapG01L3_[18]
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
static int iy0EE(const unsigned ism)
void tag(MonitorElement *me, unsigned int myTag)
MonitorElement * mePnPedMapG16L2_[18]
MonitorElement * mePnAmplMapG01L4_[18]
virtual ~EELaserTask()
Destructor.
MonitorElement * meTimeMapL2_[18]
MonitorElement * mePnPedMapG16L4_[18]
MonitorElement * meShapeMapL3_[18]
const T & max(const T &a, const T &b)
MonitorElement * meAmplMapL4_[18]
MonitorElement * mePnPedMapG16L1_[18]
MonitorElement * meTimeMapL1_[18]
void removeElement(const std::string &name)
edm::EDGetTokenT< EcalPnDiodeDigiCollection > EcalPnDiodeDigiCollection_
MonitorElement * meAmplMapL3_[18]
MonitorElement * meAmplSummaryMapL1_[2]
MonitorElement * meAmplSummaryMapL4_[2]
MonitorElement * bookProfile(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const char *option="s")
void beginRun(const edm::Run &r, const edm::EventSetup &c)
BeginRun.
MonitorElement * meAmplPNMapL3_[18]
std::vector< int > laserWavelengths_
MonitorElement * mePnPedMapG01L1_[18]
edm::EDGetTokenT< EcalRawDataCollection > EcalRawDataCollection_
MonitorElement * meAmplMapL1_[18]
EELaserTask(const edm::ParameterSet &ps)
Constructor.
edm::EDGetTokenT< EcalUncalibratedRecHitCollection > EcalUncalibratedRecHitCollection_
static void initGeometry(const edm::EventSetup &setup, bool verbose=false)
MonitorElement * meAmplSummaryMapL3_[2]
MonitorElement * mePnAmplMapG16L3_[18]
MonitorElement * mePnAmplMapG16L4_[18]
MonitorElement * mePnAmplMapG01L3_[18]
void cleanup(void)
Cleanup.
MonitorElement * mePnPedMapG16L3_[18]
MonitorElement * meAmplPNMapL4_[18]
MonitorElement * meAmplPNMapL1_[18]
static unsigned iSM(const unsigned ism, const EcalSubdetector subdet)
MonitorElement * meAmplSummaryMapL2_[2]
static void getPNs(const int ism, const int ix, const int iy, std::vector< int > &PNsInLM)
static unsigned RtHalf(const EBDetId &id)
void endRun(const edm::Run &r, const edm::EventSetup &c)
EndRun.
static EcalSubdetector subDet(const EBDetId &id)
int ism(int ieta, int iphi)
MonitorElement * meAmplPNMapL2_[18]
MonitorElement * meShapeMapL1_[18]
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
void Reset(void)
reset ME (ie. contents, errors, etc)
void beginJob(void)
BeginJob.
void setCurrentFolder(const std::string &fullpath)
MonitorElement * meShapeMapL4_[18]
MonitorElement * meShapeMapL2_[18]
int adc() const
get the ADC sample (12 bits)
MonitorElement * bookProfile2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, int nchZ, double lowZ, double highZ, const char *option="s")