93 for (
int row=0; row<14; row++){
105 castorDigiHists.meDigi_pulseBX =
m_dbe->
book1D(
"CASTOR average pulse in bunch crossings",
"CASTOR average pulse in bunch crossings", 3600, -0.5, 3600);
107 h_meDigi_pulseBX->GetXaxis()->SetTitle(
"orbit");
111 for(
int i=0;
i<16;
i++){
112 sprintf(name,
"Castor Pulse Shape for sector=%d (in all 14 modules)",
i+1);
162 if(
fVerbosity>0)
std::cout <<
"CastorPSMonitor::processEvent => DQMStore not instantiated !!!"<<std::endl;
179 for (
int i=0;
i<14;
i++){
180 for (
int k=0;
k<16;
k++){
181 if(
fVerbosity>0)
std::cout<<
"module:"<<
i+1<<
" sector:"<<
k+1<<
" Sigma=" << PedSigmaInChannel[
i][
k] << std::endl;
184 for (std::vector<HcalGenericDetId>::const_iterator it = listEMap.begin(); it != listEMap.end(); it++)
187 if(mygenid.isHcalCastorDetId())
191 myBunch.
detid = chanid;
195 for(
int i = 0;
i != 20;
i++)
199 myBunch.
tsfC[
i] = 0.0;
209 if(castorDigis.
size()>0) {
213 std::vector<NewBunch>::iterator bunch_it;
215 bool firstDigi =
true;
216 bool saturated =
false;
223 if ( lastTS+1 > digi.
size() ) lastTS = digi.
size()-1;
225 if(bunch_it->detid.rawId() == digi.
id().
rawId())
break;
226 bunch_it->usedflag =
true;
236 if ( lastTS+1 > digi.
size() ) lastTS = digi.
size()-1;
242 double sumDigi=0.;
double sumDigiADC=0.;
int bxTS=-9999; saturated =
false;
245 for(
int ts = firstTS; ts != lastTS+1; ts++)
249 if ( bxTS < 0 ) bxTS += 3563;
250 bxTS = ( bxTS % 3563 ) + 1;
256 bunch_it->tsAdc[ts] = digi.
sample(ts).
adc();
264 castorDigiHists.meDigi_pulseBX->Fill(static_cast<double>(bxTS),(bunch_it->tsfC[ts])/224.);
269 PSsector[bunch_it->detid.sector()-1]->Fill(10*(bunch_it->detid.module()-1)+ts, bunch_it->tsfC[ts]);
272 sumDigi += bunch_it->tsfC[ts];
274 sumDigiADC += bunch_it->tsAdc[ts];
277 if(bunch_it->tsAdc[ts]>126.95) {
280 std::cout<<
"WARNING: ==> Module:" << bunch_it->detid.module() <<
" Sector:" << bunch_it->detid.sector() <<
" SATURATED !!! in TS:"<< ts <<std::endl;
289 if(saturated)
saturatedMap[bunch_it->detid.module()-1][bunch_it->detid.sector()-1] += 1;
292 DigiOccupancyMap->
Fill(bunch_it->detid.module()-1,bunch_it->detid.sector()-1, double(sumDigi/10));
296 std::cout<<
"==> Module:" << bunch_it->detid.module() <<
" Sector:" << bunch_it->detid.sector() << std::endl;
297 std::cout<<
"==> Total charge in fC:" << sumDigi << std::endl;
298 std::cout<<
"==> Total charge in ADC:" << sumDigiADC << std::endl;
318 for (
int sector=0; sector<16; sector++){
382 for (
int sector=16; sector<20; sector++){
388 for (
int sector=16; sector<20; sector++){
400 else {
if(
fVerbosity>0)
std::cout<<
"CastorPSMonitor::processEvent NO Castor Digis !!!"<<std::endl; }
std::vector< NewBunch > Bunches_
T getUntrackedParameter(std::string const &, T const &) const
virtual void setup(const edm::ParameterSet &ps, DQMStore *dbe)
TH2F * h_reportSummaryMap
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
int presamples() const
number of samples before the sample from the triggered beam crossing (according to the hardware) ...
MonitorElement * SaturationSummaryMap
MonitorElement * DigiOccupancyMap
int adc() const
get the ADC sample
const HcalQIESample & sample(int i) const
access a sample
std::vector< T >::const_iterator const_iterator
const CastorCalibrations & getCastorCalibrations(const HcalGenericDetId &fId) const
MonitorElement * reportSummary
MonitorElement * bookFloat(const char *name)
Book float.
double sumDigiForEachChannel[14][16]
uint32_t rawId() const
get the raw id
double saturatedThreshold_
const CastorQIEShape * getCastorShape() const
float charge(const CastorQIEShape &fShape, unsigned fAdc, unsigned fCapId) const
ADC [0..127] + capid [0..3] -> fC conversion.
double thirdRegionThreshold_
void setup(const edm::ParameterSet &ps, DQMStore *dbe)
MonitorElement * ChannelSummaryMap
struct CastorPSMonitor::@251 castorDigiHists
double secondRegionThreshold_
double pedestal(int fCapId) const
get pedestal for capid=0..3
const_iterator end() const
int capid() const
get the Capacitor id
double firstRegionThreshold_
MonitorElement * reportSummaryMap
MonitorElement * overallStatus
std::map< int, MonitorElement * > PSsector
TH2F * getTH2F(void) const
const HcalCastorDetId & id() const
MonitorElement * bookInt(const char *name)
Book int.
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
int size() const
total number of samples in the digi
void setCurrentFolder(const std::string &fullpath)
void processEvent(const CastorDigiCollection &castorDigis, const CastorDbService &conditions, std::vector< HcalGenericDetId > listEMap, int iBunch, float PedSigmaInChannel[14][16])
const_iterator begin() const
const CastorQIECoder * getCastorCoder(const HcalGenericDetId &fId) const