1 #ifndef __JRUNHISTOGRAMS__ 
    2 #define __JRUNHISTOGRAMS__ 
   27 #include "TProfile2D.h" 
   30 #include "TPaveText.h" 
   35 #include "TDirectory.h" 
   37 #include "TObjArray.h" 
   38 #include "TObjString.h" 
   41 using namespace KM3NETDAQ ;
 
   42 using namespace JLANG ;   
 
   44 using namespace JSUPPORT ;
 
   46 double binsToT[] = {-0.5 , 0.5 , 1.5 , 2.5 , 3.5 , 4.5 , 5.5 , 6.5 , 7.5 , 8.5 , 9.5 , 10.5 , 11.5 , 12.5 , 13.5 , 14.5 , 15.5 , 
 
   47                     16.5 , 17.5 , 18.5 , 19.5 , 20.5 , 21.5 , 22.5 , 23.5 , 24.5 , 25.5 , 26.5 , 27.5 , 28.5 , 30.5 , 32.5 , 34.5 , 
 
   48                     36.5 , 38.5 , 40.5 , 45.5 , 50.5 , 55.5 , 60.5 , 65.5 , 70.5 , 75.5 , 80.5 , 85.5 , 90.5 , 95.5 , 100.5 , 120.5 , 140.5 , 
 
   49                     160.5 , 180.5 , 200.5 , 254.5 , 255.5 , 256.5}; 
 
   62   for(
int i=0 ; i < h->GetNbinsX() ; i++){
 
   64     double width = h -> GetXaxis() -> GetBinWidth(i);
 
   66     h -> SetBinContent(i , h -> GetBinContent(i) / width);
 
   67     h -> SetBinError  (i , h -> GetBinError(i)   / width);
 
   92     h_fifo_per_dom                   = NULL;
 
   93     h_daq_status_per_dom             = NULL;
 
   95     h_rate_summary                   = NULL;
 
   96     h_pmt_rate_distribution          = NULL;
 
   97     h_dom_rate_distribution          = NULL;
 
   98     m_mean_summary_rate              = NULL;
 
   99     m_mean_summary_rate_distribution = NULL;
 
  100     m_summary_rate_distribution      = NULL;
 
  108     init_h_fifo_per_dom                   (du_ids , modules_per_string);
 
  109     init_h_daq_status_per_dom             (du_ids , modules_per_string);
 
  110     init_h_hrv_per_dom                    (du_ids , modules_per_string);
 
  111     init_h_rate_summary                   (du_ids , modules_per_string);
 
  112     init_h_pmt_rate_distribution          ();
 
  113     init_h_dom_rate_distribution          ();
 
  114     init_m_mean_summary_rate              (modules_per_string);
 
  115     init_m_mean_summary_rate_distribution ();
 
  116     init_m_summary_rate_distribution      ();
 
  128     string title = 
MAKE_STRING (
" FIFO ; String ; Floor ; Number of slices with FIFO almost full x number of PMTs ");
 
  130     h_fifo_per_dom = 
new TH2D (name.c_str() , title.c_str() , *du_ids.rbegin() , 0.5 , *du_ids.rbegin() + 0.5 , modules_per_string , 0.5 , modules_per_string + 0.5 );
 
  142     string title = 
MAKE_STRING (
" DAQ Status ; String ; Floor ; Number of slices with wrong DAQ status of packets ");
 
  144     h_daq_status_per_dom = 
new TH2D (name.c_str() , title.c_str() , *du_ids.rbegin() , 0.5 , *du_ids.rbegin() + 0.5 , modules_per_string , 0.5 , modules_per_string + 0.5 );
 
  156     string title = 
MAKE_STRING (
"HRV ; String ; Floor ; Number of slices x number of PMTs in HRV");
 
  158     h_hrv_per_dom = 
new TH2D (name.c_str() , title.c_str() , *du_ids.rbegin() , 0.5 , *du_ids.rbegin() + 0.5 , modules_per_string , 0.5 , modules_per_string + 0.5 );
 
  170     string title = 
MAKE_STRING (
"Summary slices ; String ; Floor ; Mean rate over all summary slices [kHz]");
 
  172     h_rate_summary = 
new TH2D (name.c_str() , title.c_str() , *du_ids.rbegin() , 0.5 , *du_ids.rbegin() + 0.5 , modules_per_string , 0.5 , modules_per_string + 0.5 );
 
  181     string title = 
MAKE_STRING (
"PMT rate distribution from summary slices ; rate [kHz] ; Counts");    
 
  183     h_pmt_rate_distribution = 
new TH1D (name.c_str() , title.c_str() , 
JDAQRate::getN(), JDAQRate::getData(1.0e-4));
 
  193     string title = 
MAKE_STRING (
"DOM rate distribution from summary slices ; rate [kHz] ; Counts");    
 
  195     h_dom_rate_distribution = 
new TH1D (name.c_str() , title.c_str() , 50 , 
log10(50) , 
log10(2000));
 
  210     string title = 
MAKE_STRING (
" ; rate [kHz] ; # PMTs");
 
  212     TH1D* h = 
new TH1D(name.c_str() , title.c_str() , 40 , 0 , 
log10(1000));
 
  227     string title = 
MAKE_STRING (
" ; TDC Channel ; Floor ; rate [kHz]");
 
  239       string title = 
MAKE_STRING (
"Summaryslice ; TDC channel ; rate [kHz] ; counts");    
 
  241       TH2D* h_summary_rate_distribution = 
new TH2D (name.c_str() , title.c_str(),
 
  243                                                     100 , -1 , 
log10(10000));
 
  284     h_dom_mean_rates         .resize (number_of_timeslice_types , NULL);
 
  285     m_mean_ToT               .resize (number_of_timeslice_types , NULL);
 
  286     m_mean_ToT_distribution  .resize (number_of_timeslice_types , NULL);
 
  287     m_pmt_tot_distributions  .resize (number_of_timeslice_types , NULL);
 
  288     m_pmt_rate_distributions .resize (number_of_timeslice_types , NULL);
 
  301     init_h_dom_mean_rates          (ts_type , du_ids , modules_per_string , ts_name);
 
  302     init_m_mean_ToT                (ts_type , modules_per_string , ts_name);
 
  303     init_m_mean_ToT_distribution   (ts_type , ts_name);
 
  304     init_m_pmt_tot_distributions   (ts_type , ts_name);
 
  305     init_m_pmt_rate_distributions  (ts_type , ts_name);
 
  319     for (
typename vector < 
JManager < string , TH2D >* >::const_iterator it = m_pmt_tot_distributions.begin() ; it != m_pmt_tot_distributions.end() ; ++it , ++i){
 
  326           TPRegexp 
r (
"(\\w+)/(\\DU)(\\d+)/(F)(\\d+)");
 
  328           TObjArray* 
o = r.MatchS(s);
 
  330           int String = ((TObjString *)o->At(3))->GetString().Atoi();
 
  331           int Floor  = ((TObjString *)o->At(5))->GetString().Atoi();
 
  333           for (
int pmt = 1 ; pmt <= (
j -> second) -> GetXaxis() -> GetNbins() ; pmt++){
 
  335             (*m_mean_ToT[i])[
MAKE_STRING(
"Detector/DU" + 
to_string(String))] -> Fill((
j->second) -> GetXaxis() -> GetBinCenter(pmt) , Floor , (
j -> second) -> ProjectionY (
"" , pmt , pmt) -> GetMean () );
 
  336             (*m_mean_ToT_distribution[i])[
MAKE_STRING(
"Detector/DU" + 
to_string(String))] -> Fill((
j -> second) -> ProjectionY (
"" , pmt , pmt) -> GetMean () );            
 
  353     string title = 
MAKE_STRING (ts_name + 
" ; DU number ; Floor number ; time slice averaged rate [Hz]");
 
  355     h_dom_mean_rates[ts_type] = 
new TH2D (name.c_str() , title.c_str() , *du_ids.rbegin() , 0.5 , *du_ids.rbegin() + 0.5 , modules_per_string , 0.5 , 0.5 + modules_per_string);
 
  368     string title = 
MAKE_STRING (ts_name + 
" ; TDC channel ; Floor number ; mean ToT [ns] ");
 
  383     string title = 
MAKE_STRING (ts_name + 
" ; ToT [ns] ; # PMTS ");
 
  385     m_mean_ToT_distribution[ts_type] = 
new JManager < string , TH1D > (
new TH1D (name.c_str() , title.c_str() , 255 , 0.5 , 255.5));
 
  397     string title = 
MAKE_STRING (ts_name + 
" ; TDC channel ; ToT [ns] ; counts");
 
  416       string title = 
MAKE_STRING (ts_name + 
" ; TDC channel ; rate [kHz] ; counts ");    
 
  418       TH2D* h_pmt_rate_distributions = 
new TH2D (name.c_str() , title.c_str(),
 
  420                                                  60 , -6 , 
log10(1000));
 
  457     h_Trigger_bit_event                 = NULL;
 
  458     h_Trigger_bit_hit                   = NULL;
 
  459     h_Snapshot_hits                     = NULL;
 
  460     h_Triggered_hits                    = NULL;
 
  461     h_Triggered_hits_3dmuon             = NULL;
 
  462     h_Triggered_hits_3dmuon_per_module  = NULL;
 
  463     h_Triggered_over_Snapshot_hits      = NULL;
 
  464     h_Number_of_overlays                = NULL;
 
  465     h_Snapshot_hits_per_module          = NULL;
 
  466     h_Triggered_hits_per_module         = NULL;
 
  467     m_Snapshot_hits_per_pmt             = NULL;
 
  468     h_pmt_distribution_triggered_hits   = NULL;
 
  469     h_tot_distribution_triggered_hits   = NULL;
 
  470     h_pmt_distribution_snapshot_hits    = NULL;
 
  471     h_tot_distribution_snapshot_hits    = NULL;
 
  482     init_h_Trigger_bit_event                ();
 
  483     init_h_Trigger_bit_hit                  ();
 
  484     init_h_Snapshot_hits                    ();
 
  485     init_h_Triggered_hits                   ();
 
  486     init_h_Triggered_hits_3dmuon            ();
 
  487     init_h_Triggered_hits_3dmuon_per_module (modules_per_string , du_ids);
 
  488     init_h_Triggered_over_Snapshot_hits     ();
 
  489     init_h_Number_of_overlays               ();
 
  490     init_h_Snapshot_hits_per_module         (modules_per_string , du_ids);
 
  491     init_h_Triggered_hits_per_module        (modules_per_string , du_ids);
 
  492     init_m_Snapshot_hits_per_pmt            (modules_per_string);
 
  493     init_h_pmt_distribution_triggered_hits  ();
 
  494     init_h_tot_distribution_triggered_hits  ();
 
  495     init_h_pmt_distribution_snapshot_hits   ();
 
  496     init_h_tot_distribution_snapshot_hits   ();
 
  505     string title = 
MAKE_STRING (
"Number of events as a function of trigger bit in event ; Trigger Bit ; Counts ");
 
  513         h_Trigger_bit_event -> GetXaxis() -> SetBinLabel(i+1 , 
getTriggerName(i) );
 
  517         h_Trigger_bit_event -> GetXaxis() -> SetBinLabel(i+1 , 
"" );
 
  521      h_Trigger_bit_event -> GetXaxis() -> LabelsOption(
"v"); 
 
  531     string title = 
MAKE_STRING (
"Number of hits per event as a function of trigger bit in hit ; Trigger Bit ; #Events ");
 
  539         h_Trigger_bit_hit -> GetXaxis() -> SetBinLabel(i+1 , 
getTriggerName(i) );
 
  542         h_Trigger_bit_hit -> GetXaxis() -> SetBinLabel(i+1 , 
"" );
 
  546      h_Trigger_bit_hit -> GetXaxis() -> LabelsOption(
"v"); 
 
  556     string title = 
MAKE_STRING (
" ; Number of snapshot hits; Events ");
 
  558     h_Snapshot_hits = 
new TH1D (name.c_str() , title.c_str() , 50, 0, 4 );
 
  569     string title = 
MAKE_STRING (
" ; Number of triggered hits; Events ");
 
  571     h_Triggered_hits = 
new TH1D (name.c_str() , title.c_str() , 50 , 0, 4 );
 
  582     string title = 
MAKE_STRING (
" ; Number of triggered hits for JTRIGGER3DMUON; Events ");
 
  584     h_Triggered_hits_3dmuon = 
new TH1D (name.c_str() , title.c_str() , 50 , 0, 3 );
 
  595     string title = 
MAKE_STRING (
"Number of triggered hits for JTRIGGER3DMUON; String ; Floor ; Number of JTRIGGER3DMUON hits");
 
  597     h_Triggered_hits_3dmuon_per_module = 
new TH2D (name.c_str() , title.c_str() , *du_ids.rbegin() , 0.5 , *du_ids.rbegin() + 0.5 , modules_per_string , 0.5 , modules_per_string + 0.5 );
 
  607     string title = 
MAKE_STRING (
" ; Triggered/Snapshot hits; Events ");
 
  609     h_Triggered_over_Snapshot_hits = 
new TH1D (name.c_str() , title.c_str() , 100 , 0, 0.5 );
 
  619     string title = 
MAKE_STRING (
" ; Number of overlays; Events ");
 
  621     int MAX_OVERLAYS = 1000;
 
  623     h_Number_of_overlays = 
new TH1D (name.c_str() , title.c_str() , MAX_OVERLAYS , -0.5, MAX_OVERLAYS - 0.5 );
 
  634     string title = 
MAKE_STRING (
" ; String ; Floor ; Number of snapshot hits ");
 
  636     h_Snapshot_hits_per_module = 
new TH2D (name.c_str() , title.c_str() ,
 
  637                                            *du_ids.rbegin() , 0.5 , *du_ids.rbegin() + 0.5 ,
 
  638                                            modules_per_string , 0.5 , modules_per_string + 0.5 );
 
  649     string title = 
MAKE_STRING (
" ; String ; Floor ; Number of triggered hits ");
 
  651     h_Triggered_hits_per_module = 
new TH2D (name.c_str() , title.c_str() ,
 
  652                                            *du_ids.rbegin() , 0.5 , *du_ids.rbegin() + 0.5 ,
 
  653                                            modules_per_string , 0.5 , modules_per_string + 0.5 );
 
  664     string title = 
MAKE_STRING (
" ; TDC Channel ; Floor ; Number of snapshot hits ");
 
  667                                                                          modules_per_string , 0.5 , modules_per_string + 0.5 ) );
 
  678     string title = 
MAKE_STRING (
" ; TDC Channel ; Counts [a.u.]");
 
  689     string title = 
MAKE_STRING (
" ; ToT [ns] ; Counts [a.u.]");
 
  691     h_tot_distribution_triggered_hits = 
new TH1D (name.c_str() , title.c_str() , 
nbinsToT , 
binsToT);
 
  701     string title = 
MAKE_STRING (
" ; TDC Channel ; Counts [a.u.]");
 
  713     string title = 
MAKE_STRING (
" ; ToT [ns] ; Counts [a.u.]");
 
  715     h_tot_distribution_snapshot_hits = 
new TH1D (name.c_str() , title.c_str() , 
nbinsToT , 
binsToT);
 
  751     h_summary.initialize(du_ids , modules_per_string);
 
  764     const string   prefix = 
"KM3NETDAQ::JDAQ" ;
 
  765     string        ts_name = T::Class_Name();
 
  766     string::size_type pos = ts_name.find(prefix);
 
  768     if (pos != string::npos) ts_name.replace(ts_name.find(prefix) , prefix.length() , 
"");
 
  770     h_timeslice.initialize(du_ids , modules_per_string , index , ts_name);
 
  778     h_trigger.initialize (du_ids , modules_per_string);
 
  791     if(f.GetDirectory(dirname.c_str()) == 0) f.mkdir (dirname.c_str());
 
  793     f.cd (dirname.c_str());
 
  795     for (
int i=0 ; i < (int)table.size(); i++){
 
  797       for (
int j=0 ; 
j< (int)table[i].size(); 
j++){
 
  799         if (table[i][
j]) table [i][
j] -> Write();
 
  814     if(f.GetDirectory(dirname.c_str()) == 0) f.mkdir (dirname.c_str());
 
  816     f.cd (dirname.c_str());
 
  818     for (
int i=0 ; i < (int)table.size(); i++){
 
  820       if (table[i]) table[i] -> Write();
 
  831   template <
class T , 
class V>
 
  834     if(f.GetDirectory(dirname.c_str()) == 0) f.mkdir (dirname.c_str());
 
  836     f.cd (dirname.c_str());
 
  840       i -> second -> Write();
 
  849   template <
class T , 
class V>
 
  854       if (i -> second -> GetTitle()){
 
  856         std::string     buffer = i -> second -> GetTitle();
 
  857         string::size_type ipos = buffer.find(wc);
 
  859         if (ipos!=std::string::npos){
 
  865           buffer.replace(ipos, 1, os.str());
 
  867           i -> second -> SetTitle(buffer.c_str());
 
  878   template < 
class T , 
class V >
 
  883       std::string fullpath = 
MAKE_STRING(i->second->GetName());
 
  885       int          pos = fullpath.rfind (
'/');
 
  886       std::string 
name = fullpath.substr (pos + 1);
 
  887       std::string 
path = fullpath.substr (0 , pos);
 
  889       if (f.GetDirectory(path.c_str()) == 0) f.mkdir (path.c_str());
 
  893       i -> second -> SetName(name.c_str());
 
  894       i -> second -> Write();
 
  903   template < 
class T , 
class V >
 
  912           std::string fullpath = 
MAKE_STRING(
j-> second -> GetName());
 
  914           int          pos = fullpath.rfind  (
'/');
 
  915           std::string 
name = fullpath.substr (pos + 1);
 
  916           std::string 
path = fullpath.substr (0 , pos);
 
  918           if (f.GetDirectory(path.c_str()) == 0) f.mkdir (path.c_str());
 
  922           j -> second -> SetName(name.c_str());
 
  923           j -> second -> Write();
 
  938     if (h_summary.h_fifo_per_dom)          h_summary.h_fifo_per_dom          -> Write();
 
  939     if (h_summary.h_daq_status_per_dom)    h_summary.h_daq_status_per_dom    -> Write();
 
  940     if (h_summary.h_hrv_per_dom)           h_summary.h_hrv_per_dom           -> Write();
 
  941     if (h_summary.h_rate_summary)          h_summary.h_rate_summary          -> Write();
 
  942     if (h_summary.h_pmt_rate_distribution) h_summary.h_pmt_rate_distribution -> Write();
 
  943     if (h_summary.h_dom_rate_distribution) h_summary.h_dom_rate_distribution -> Write();
 
  945     Write_histogram_table_to_file(f , 
MAKE_STRING(
"Detector"), h_timeslice.h_dom_mean_rates);
 
  947     for (
typename vector < 
JManager < string , TH2D >* >::const_iterator i = h_timeslice.m_pmt_tot_distributions.begin() ; i != h_timeslice.m_pmt_tot_distributions.end() ; ++i){
 
  953           for(
int k=1 ; 
k < 
j -> second -> GetNbinsX() ; ++
k){
 
  955             for(
int t=1 ; t < 
j -> second -> GetNbinsY() ; ++t){
 
  957               double width = 
j -> second -> GetYaxis() -> GetBinWidth(t);
 
  959               j -> second -> SetBinContent(
k,t,
j -> second -> GetBinContent(
k,t) / width);
 
  960               j -> second -> SetBinError(
k,t,
j -> second -> GetBinError(
k,t) / width);
 
  967     Write_manager_table_in_key_dir (f , h_timeslice.m_pmt_tot_distributions);
 
  968     Write_manager_table_in_key_dir (f , h_timeslice.m_pmt_rate_distributions);
 
  969     if (h_summary.m_summary_rate_distribution) Write_manager_in_key_dir (f , h_summary.m_summary_rate_distribution);
 
  971     if (h_summary.m_mean_summary_rate)              Write_manager_in_key_dir( f , h_summary.m_mean_summary_rate);
 
  972     if (h_summary.m_mean_summary_rate_distribution) Write_manager_in_key_dir( f , h_summary.m_mean_summary_rate_distribution);
 
  974     h_timeslice.Fill_mean_ToT_histograms();
 
  976     Write_manager_table_in_key_dir (f , h_timeslice.m_mean_ToT);
 
  977     Write_manager_table_in_key_dir (f , h_timeslice.m_mean_ToT_distribution);
 
  982     if (h_trigger.h_Trigger_bit_event) h_trigger.h_Trigger_bit_event -> Write(); 
 
  983     if (h_trigger.h_Trigger_bit_hit)   h_trigger.h_Trigger_bit_hit   -> Write(); 
 
  984     if (h_trigger.h_Triggered_hits)        h_trigger.h_Triggered_hits        -> Write(); 
 
  985     if (h_trigger.h_Triggered_hits_3dmuon) h_trigger.h_Triggered_hits_3dmuon -> Write(); 
 
  986     if (h_trigger.h_Triggered_hits_3dmuon_per_module) h_trigger.h_Triggered_hits_3dmuon_per_module -> Write(); 
 
  987     if (h_trigger.h_Snapshot_hits)         h_trigger.h_Snapshot_hits         -> Write();
 
  988     if (h_trigger.h_Triggered_over_Snapshot_hits)       h_trigger.h_Triggered_over_Snapshot_hits  -> Write();
 
  989     if (h_trigger.h_Number_of_overlays)  h_trigger.h_Number_of_overlays -> Write();
 
  990     if (h_trigger.h_pmt_distribution_triggered_hits) {h_trigger.h_pmt_distribution_triggered_hits -> Write();}
 
  991     if (h_trigger.h_pmt_distribution_snapshot_hits)  {h_trigger.h_pmt_distribution_snapshot_hits  -> Write();}
 
  992     if (h_trigger.h_tot_distribution_triggered_hits) {
normalizeBW1D (h_trigger.h_tot_distribution_triggered_hits) ; h_trigger.h_tot_distribution_triggered_hits-> Write();}
 
  993     if (h_trigger.h_tot_distribution_snapshot_hits)  {
normalizeBW1D (h_trigger.h_tot_distribution_snapshot_hits)  ; h_trigger.h_tot_distribution_snapshot_hits -> Write();}
 
  994     if (h_trigger.h_Triggered_hits_per_module) { h_trigger.h_Triggered_hits_per_module-> Write();}
 
  995     if (h_trigger.h_Snapshot_hits_per_module)  { h_trigger.h_Snapshot_hits_per_module -> Write();}    
 
  996     if (h_trigger.m_Snapshot_hits_per_pmt) Write_manager_in_key_dir(f , h_trigger.m_Snapshot_hits_per_pmt);
 
TH1D * h_pmt_distribution_snapshot_hits
 
void init_h_dom_mean_rates(int ts_type, std::set< int > du_ids, int modules_per_string, std::string ts_name)
 
TH2D * h_Snapshot_hits_per_module
 
then fatal No hydrophone data file $HYDROPHONE_TXT fi sort gr k
 
void init_h_rate_summary(set< int > &du_ids, int modules_per_string)
 
void init_h_fifo_per_dom(std::set< int > &du_ids, int modules_per_string)
 
ROOT TTree parameter settings of various packages. 
 
static const unsigned int NUMBER_OF_TRIGGER_BITS
Number of trigger bits. 
 
TH1D * h_pmt_distribution_triggered_hits
 
vector< JManager< string, TH2D > * > m_pmt_tot_distributions
 
JManager< string, TH1D > * m_mean_summary_rate_distribution
 
void Write_histogram_table_to_file(TFile &f, string dirname, vector< T * > table)
 
vector< TH2D * > h_dom_mean_rates
 
void init_h_Trigger_bit_event()
 
TH1D * h_Number_of_overlays
 
void init_h_Triggered_hits_per_module(int modules_per_string, std::set< int > &du_ids)
 
TH2D * h_Triggered_hits_per_module
 
void init_h_Snapshot_hits_per_module(int modules_per_string, std::set< int > &du_ids)
 
std::set< int > getStringIDs(const JDetector &detector)
Get list of strings identifiers. 
 
void initialize(std::set< int > &du_ids, int modules_per_string)
 
then echo Enter input within $TIMEOUT_S seconds echo n User name
 
o $QUALITY_ROOT d $DEBUG!JPlot1D f
 
void init_h_Triggered_hits_3dmuon()
 
void init_h_Triggered_over_Snapshot_hits()
 
void initialize(std::set< int > &du_ids, int modules_per_string)
 
TH2D * h_daq_status_per_dom
 
Dynamic ROOT object management. 
 
void initialize_summary_histograms()
 
JManager< string, TH2D > * m_mean_summary_rate
 
void init_m_mean_ToT_distribution(int ts_type, string ts_name)
 
then echo The file $DIR KM3NeT_00000001_00000000 root already please rename or remove it first
 
TH1D * h_dom_rate_distribution
 
#define MAKE_STRING(A)
Make string. 
 
void Fill_mean_ToT_histograms()
 
void init_h_pmt_distribution_snapshot_hits()
 
void Write_to_file(TFile &f)
 
void init_m_summary_rate_distribution()
 
void init_h_tot_distribution_triggered_hits()
 
Auxiliary class to manage set of compatible ROOT objects (e.g. histograms) using unique keys...
 
TimesliceHistograms h_timeslice
 
void init_m_mean_summary_rate(int modules_per_string)
 
void setLogarithmicX(TList *list)
Make x-axis of objects in list logarithmic (e.g. after using log10()). 
 
TH1D * h_tot_distribution_snapshot_hits
 
void init_h_Number_of_overlays()
 
TriggerHistograms h_trigger
 
set_variable E_E log10(E_{fit}/E_{#mu})"
 
void Replace_wildcard_in_name(JManager< T, V > *manager, char wc= '%')
 
void Write_manager_table_in_key_dir(TFile &f, vector< JManager< T, V > * > table)
 
JRA_Histograms(const JDetector &detector)
 
void init_m_pmt_rate_distributions(int ts_type, string ts_name)
 
TH1D * h_pmt_rate_distribution
 
void init_h_Triggered_hits_3dmuon_per_module(int modules_per_string, std::set< int > &du_ids)
 
$WORKDIR driver txt done cat $WORKDIR driver txt<< EOFprocess ${DATAFILTER}$FILTER_HOST csh-c '(setenv ROOTSYS $ROOTSYS &&source $JPP_DIR/setenv.csh $JPP_DIR &&(JDataFilter-H\$SERVER\$-M\$LOGGER\$-d $DEBUG-u ${DATAFILTER}-P $PORT</dev/null > &/dev/null &))';process ${DATAWRITER}$WRITER_HOST csh-c '(setenv ROOTSYS $ROOTSYS &&source $JPP_DIR/setenv.csh $JPP_DIR &&(JDataWriter-H\$SERVER\$-M\$LOGGER\$-d $DEBUG-u ${DATAWRITER}</dev/null > &/dev/null &))';print enterevent ev_init{RC_CMD}event ev_reset{RC_CMD}event ev_init{RC_CMD}event ev_configure{RC_DFLTR%<$WORKDIR/ev_configure_datafilter.txt > RC_DOM<$WORKDIR/ev_configure_domsimulator.txt > RC_DWRT path
 
void Write_histogram_table_to_file(TFile &f, string dirname, vector< vector< T * > > table)
 
then JConvertDetectorFormat a $DETECTOR[1] o
 
TH1D * h_Trigger_bit_event
 
void init_h_Snapshot_hits()
 
static const JStringCounter getNumberOfStrings
Function object to count unique strings. 
 
void init_m_Snapshot_hits_per_pmt(int modules_per_string)
 
vector< JManager< string, TH1D > * > m_mean_ToT_distribution
 
void setLogarithmicY(TList *list)
Make y-axis of objects in list logarithmic (e.g. after using log10()). 
 
void init_h_Triggered_hits()
 
SummaryHistograms h_summary
 
Direct access to module in detector data structure. 
 
void init_m_mean_ToT(int ts_type, int modules_per_string, string ts_name)
 
void init_h_dom_rate_distribution()
 
JManager< string, TH2D > * m_summary_rate_distribution
 
const char * getTriggerName(JTriggerbit_t bit)
Get trigger name. 
 
void Write_manager_in_key_dir(TFile &f, JManager< T, V > *manager)
 
General purpose string class. 
 
std::string to_string(const T &value)
Convert value to string. 
 
vector< JManager< string, TH2D > * > m_mean_ToT
 
vector< JManager< string, TH2D > * > m_pmt_rate_distributions
 
void init_h_tot_distribution_snapshot_hits()
 
TH1D * h_tot_distribution_triggered_hits
 
void init_h_pmt_distribution_triggered_hits()
 
TH1D * h_Triggered_hits_3dmuon
 
void normalizeBW1D(TH1D *h)
 
void initialize(std::set< int > du_ids, int modules_per_string, int ts_type, std::string ts_name)
 
void init_m_mean_summary_rate_distribution()
 
TH2D * h_Triggered_hits_3dmuon_per_module
 
Indexing of data type in type list. 
 
KM3NeT DAQ constants, bit handling, etc. 
 
static const int NUMBER_OF_PMTS
Total number of PMTs in module. 
 
void init_h_daq_status_per_dom(std::set< int > &du_ids, int modules_per_string)
 
int getNumberOfModules(const JDetector &detector)
Get number of modules. 
 
void init_h_Trigger_bit_hit()
 
void initialize_trigger_histograms()
 
void init_h_hrv_per_dom(set< int > &du_ids, int modules_per_string)
 
JManager< string, TH2D > * m_Snapshot_hits_per_pmt
 
void initialize_timeslice_histograms()
 
void Write_manager_to_file(TFile &f, string dirname, JManager< T, V > *table)
 
TH1D * h_Triggered_over_Snapshot_hits
 
void init_h_pmt_rate_distribution()
 
void init_m_pmt_tot_distributions(int ts_type, string ts_name)