19     larRODMonAlg = helper.addAlgorithm(algoinstance,
'larRODMonAlg')
 
   21     from LArMonitoring.GlobalVariables 
import lArDQGlobals
 
   26     for i 
in range(0,len(lArDQGlobals.FEB_Slot)): 
 
   27        nslots.append(lArDQGlobals.FEB_Slot[lArDQGlobals.Partitions[i]][1])
 
   29     larRODMonAlg.MonGroup=GroupName
 
   30     larRODMonAlg.LArRODSubDetNames=lArDQGlobals.SubDet
 
   31     larRODMonAlg.LArRODPartitionNames=lArDQGlobals.Partitions
 
   32     larRODMonAlg.LArRODNslots=nslots
 
   34     larRODMonAlg.ADCthreshold = 0
 
   35     larRODMonAlg.peakTimeCut = 5.
 
   36     larRODMonAlg.SkipNullQT=
True  
   40        larRODMonAlg.DoCellsDump=
True 
   43        larRODMonAlg.DoDspTestDump=
True 
   45     if flags.Common.isOnline:
 
   46        larRODMonAlg.MaxEvDump=100   
 
   50     larRODMonAlg.ProblemsToMask=[
"highNoiseHG",
"highNoiseMG",
"highNoiseLG",
"deadReadout",
"deadPhys",
"almostDead",
"short",
"sporadicBurstNoise"]
 
   52     Group = helper.addGroup(
 
   60     summary_hist_path=
'Summary/' 
   62     Group.defineHistogram(
'partition,gain;Summary_E', 
 
   63                                   title=
'Summary of errors on Energy per partition and per gain',
 
   65                                   path=summary_hist_path,
 
   67                                   xbins=lArDQGlobals.N_Partitions, xmin=-0.5, xmax=lArDQGlobals.N_Partitions-0.5,
 
   68                                   ybins=lArDQGlobals.N_Gains,ymin=-0.5,ymax=lArDQGlobals.N_Gains-0.5,
 
   69                                   xlabels=lArDQGlobals.Partitions,ylabels=lArDQGlobals.Gains)
 
   71     Group.defineHistogram(
'partition,gain;Summary_Q', 
 
   72                                   title=
'Summary of errors on Quality per partition and per gain',
 
   74                                   path=summary_hist_path,
 
   76                                   xbins=lArDQGlobals.N_Partitions, xmin=-0.5, xmax=lArDQGlobals.N_Partitions-0.5,
 
   77                                   ybins=lArDQGlobals.N_Gains,ymin=-0.5,ymax=lArDQGlobals.N_Gains-0.5,
 
   78                                   xlabels=lArDQGlobals.Partitions,ylabels=lArDQGlobals.Gains)
 
   80     Group.defineHistogram(
'partition,gain;Summary_T', 
 
   81                                   title=
'Summary of errors on Time per partition and per gain',
 
   83                                   path=summary_hist_path,
 
   85                                   xbins=lArDQGlobals.N_Partitions, xmin=-0.5, xmax=lArDQGlobals.N_Partitions-0.5,
 
   86                                   ybins=lArDQGlobals.N_Gains,ymin=-0.5,ymax=lArDQGlobals.N_Gains-0.5,
 
   87                                   xlabels=lArDQGlobals.Partitions,ylabels=lArDQGlobals.Gains)
 
   89     Group.defineHistogram(
'Ediff;E_all', 
 
   90                                   title=
'E_offline - E_online for all partitions;E_offline - E_online (MeV)',
 
   92                                   path=summary_hist_path,
 
   93                                   xbins=lArDQGlobals.DSPEnergy_Bins, xmin=lArDQGlobals.DSPEnergy_Min, xmax=lArDQGlobals.DSPEnergy_Max)
 
   94     Group.defineHistogram(
'Tdiff;T_all', 
 
   95                                   title=
'T_offline - T_online for all partitions;T_offline - T_online (ps)',
 
   97                                   path=summary_hist_path,
 
   98                                   xbins=lArDQGlobals.DSPTime_Bins, xmin=lArDQGlobals.DSPTime_Min, xmax=lArDQGlobals.DSPTime_Max)
 
   99     Group.defineHistogram(
'Qdiff;Q_all', 
 
  100                                   title=
'Q_offline - Q_online / sqrt(Q_offline) for all partitions;Q_offline - Q_online / sqrt(Q_offline) (ps)',
 
  102                                   path=summary_hist_path,
 
  103                                   xbins=lArDQGlobals.DSPQuality_Bins, xmin=lArDQGlobals.DSPQuality_Min, xmax=lArDQGlobals.DSPQuality_Max)
 
  106     info_hist_path=
'Infos/' 
  107     cut = 
"#delta ADC>"+
str(larRODMonAlg.ADCthreshold)+
" and |T_offline| < "+
str(larRODMonAlg.peakTimeCut)+
" ns" 
  108     Group.defineHistogram(
'LBN,partitionI;EErrorsPerLB',
 
  109                                   title=
'Nb of errors in E per LB -' +cut+
';Luminosity Block;Partition',
 
  113                                   xbins=lArDQGlobals.LB_Bins, xmin=lArDQGlobals.LB_Min, xmax=lArDQGlobals.LB_Max,
 
  114                                   ybins=lArDQGlobals.N_Partitions, ymin=-0.5, ymax=lArDQGlobals.N_Partitions-0.5,
 
  115                                   ylabels = lArDQGlobals.Partitions
 
  117     Group.defineHistogram(
'LBN,partitionI;TErrorsPerLB',
 
  118                                   title=
'Nb of errors in T per LB - ' +cut+
';Luminosity Block;Partition',
 
  122                                   xbins=lArDQGlobals.LB_Bins, xmin=lArDQGlobals.LB_Min, xmax=lArDQGlobals.LB_Max,
 
  123                                   ybins=lArDQGlobals.N_Partitions, ymin=-0.5, ymax=lArDQGlobals.N_Partitions-0.5,
 
  124                                   ylabels = lArDQGlobals.Partitions
 
  126     Group.defineHistogram(
'LBN,partitionI;QErrorsPerLB',
 
  127                                   title=
'Nb of errors in Q per LB - ' +cut+
';Luminosity Block;Partition',
 
  131                                   xbins=lArDQGlobals.LB_Bins, xmin=lArDQGlobals.LB_Min, xmax=lArDQGlobals.LB_Max,
 
  132                                   ybins=lArDQGlobals.N_Partitions, ymin=-0.5, ymax=lArDQGlobals.N_Partitions-0.5,
 
  133                                   ylabels = lArDQGlobals.Partitions
 
  137     dqmd_hist_path=
'/LAr/DSPMonitoring/DQMD/' 
  138     darray = helper.addArray([lArDQGlobals.Partitions],larRODMonAlg,
"RODMon",topPath=
'/')
 
  139     darray.defineHistogram(
'Ediff,Erange;DE_ranges', title=
'E_offline - E_online for all ranges ; E_offline - E_online (MeV) ; Energy range',
 
  140                            type=
'TH2F', path=dqmd_hist_path,
 
  141                            xbins=lArDQGlobals.DSP1Energy_Bins, xmin=lArDQGlobals.DSP1Energy_Min, xmax=lArDQGlobals.DSP1Energy_Max,
 
  142                            ybins=lArDQGlobals.DSPRanges_Bins, ymin=lArDQGlobals.DSPRanges_Min, ymax=lArDQGlobals.DSPRanges_Max,
 
  143                            ylabels=lArDQGlobals.DSPRanges 
 
  145     Group.defineHistogram(
'Ediff,Erange;E_ranges_all', title=
'E_online - E_offline for all ranges ; E_offline - E_online (MeV) ; Energy range',
 
  146                            type=
'TH2F', path=
'DQMD/',
 
  147                            xbins=lArDQGlobals.DSP1Energy_Bins, xmin=lArDQGlobals.DSP1Energy_Min, xmax=lArDQGlobals.DSP1Energy_Max,
 
  148                            ybins=lArDQGlobals.DSPRanges_Bins, ymin=lArDQGlobals.DSPRanges_Min, ymax=lArDQGlobals.DSPRanges_Max,
 
  149                            ylabels=lArDQGlobals.DSPRanges
 
  154     part_hist_path=
'/LAr/DSPMonitoring/perPartition/' 
  155     darray.defineHistogram(
'Ediff;DE', title=
'E_offline - E_online;E_offline - E_online (MeV)',
 
  156                            type=
'TH1F', path=part_hist_path,
 
  157                            xbins=lArDQGlobals.DSPEnergy_Bins, xmin=lArDQGlobals.DSPEnergy_Min, xmax=lArDQGlobals.DSPEnergy_Max)
 
  158     darray.defineHistogram(
'Tdiff;DT', title=
'T_offline - T_online;T_offline - T_online  (ps)',
 
  159                            type=
'TH1F', path=part_hist_path,
 
  160                            xbins=lArDQGlobals.DSPTime_Bins, xmin=lArDQGlobals.DSPTime_Min, xmax=lArDQGlobals.DSPTime_Max)
 
  161     darray.defineHistogram(
'Qdiff;DQ', title=
'Q_offline - Q_online / sqrt(Q_offline);Q_offline - Q_online / sqrt(Q_offline)' ,
 
  162                            type=
'TH1F', path=part_hist_path,
 
  163                            xbins=lArDQGlobals.DSPTime_Bins, xmin=lArDQGlobals.DSPTime_Min, xmax=lArDQGlobals.DSPTime_Max)
 
  165     darray.defineHistogram(
'slot,FT;RAW_Out_E_FT_vs_SLOT',title=
'# of cells with E_offline - E_online > numerical precision ; Slot ; Feedthrough',
 
  166                            type=
'TH2I', path=part_hist_path,
 
  169                            xbins=lArDQGlobals.FEB_Slot[
"EMECA"][1], xmin=lArDQGlobals.FEB_Slot[
"EMECA"][0]-0.5, xmax=lArDQGlobals.FEB_Slot[
"EMECA"][1]+0.5,
 
  170                            ybins=lArDQGlobals.FEB_Feedthrough[
"EMBA"][1]+1, ymin=lArDQGlobals.FEB_Feedthrough[
"EMBA"][0]-0.5, ymax=lArDQGlobals.FEB_Feedthrough[
"EMBA"][1]+0.5)
 
  172     darray.defineHistogram(
'slot,FT;RAW_Out_T_FT_vs_SLOT',title=
'# of cells with T_offline - T_online > numerical precision ; Slot ; Feedthrough',
 
  173                            type=
'TH2I', path=part_hist_path,
 
  176                            xbins=lArDQGlobals.FEB_Slot[
"EMECA"][1], xmin=lArDQGlobals.FEB_Slot[
"EMECA"][0]-0.5, xmax=lArDQGlobals.FEB_Slot[
"EMECA"][1]+0.5,
 
  177                            ybins=lArDQGlobals.FEB_Feedthrough[
"EMBA"][1]+1, ymin=lArDQGlobals.FEB_Feedthrough[
"EMBA"][0]-0.5, ymax=lArDQGlobals.FEB_Feedthrough[
"EMBA"][1]+0.5)
 
  179     darray.defineHistogram(
'slot,FT;RAW_Out_Q_FT_vs_SLOT',title=
'# of cells with Q_offline - Q_online > numerical precision ; Slot ; Feedthrough',
 
  180                            type=
'TH2I', path=part_hist_path,
 
  183                            xbins=lArDQGlobals.FEB_Slot[
"EMECA"][1], xmin=lArDQGlobals.FEB_Slot[
"EMECA"][0]-0.5, xmax=lArDQGlobals.FEB_Slot[
"EMECA"][1]+0.5,
 
  184                            ybins=lArDQGlobals.FEB_Feedthrough[
"EMBA"][1]+1, ymin=lArDQGlobals.FEB_Feedthrough[
"EMBA"][0]-0.5, ymax=lArDQGlobals.FEB_Feedthrough[
"EMBA"][1]+0.5)
 
  186     darray.defineHistogram(
'Eoff,Eon;Eon_VS_Eoff', title=
'E_online VS E_offline;E_offline (MeV);E_online (MeV)',
 
  187                            type=
'TH2F', path=part_hist_path,
 
  188                            xbins=lArDQGlobals.DSPEonEoff_Bins, xmin=-lArDQGlobals.DSPEonEoff_Max, xmax=lArDQGlobals.DSPEonEoff_Max,
 
  189                            ybins=lArDQGlobals.DSPEonEoff_Bins, ymin=-lArDQGlobals.DSPEonEoff_Max, ymax=lArDQGlobals.DSPEonEoff_Max)
 
  191     darray.defineHistogram(
'Toff,Ton;Ton_VS_Toff', title=
'T_online VS T_offline;T_offline (ps);T_online (ps)',
 
  192                            type=
'TH2F', path=part_hist_path,
 
  193                            xbins=lArDQGlobals.DSPTonToff_Bins, xmin=-lArDQGlobals.DSPTonToff_Max, xmax=lArDQGlobals.DSPTonToff_Max,
 
  194                            ybins=lArDQGlobals.DSPTonToff_Bins, ymin=-lArDQGlobals.DSPTonToff_Max, ymax=lArDQGlobals.DSPTonToff_Max)
 
  196     darray.defineHistogram(
'Qoff,Qon;Qon_VS_Qoff', title=
'Q_online VS Q_offline;Q_offline ;Q_online ',
 
  197                            type=
'TH2F', path=part_hist_path,
 
  198                            xbins=lArDQGlobals.DSPQonQoff_Bins, xmin=-lArDQGlobals.DSPQonQoff_Max, xmax=lArDQGlobals.DSPQonQoff_Max,
 
  199                            ybins=lArDQGlobals.DSPQonQoff_Bins, ymin=-lArDQGlobals.DSPQonQoff_Max, ymax=lArDQGlobals.DSPQonQoff_Max)
 
  201     darray.defineHistogram(
'Sweetc;Sweet_cells', title=
'Number of sweet Cells in LAr;Sweet cells per feb',
 
  202                            type=
'TH1F', path=part_hist_path,
 
  203                            xbins=lArDQGlobals.FEB_N_channels, xmin=lArDQGlobals.FEB_channels_Min, xmax=lArDQGlobals.FEB_channels_Max)