adcsum.c File Reference

Go to the source code of this file.

Defines

#define DEFINE_TESTS
#define PI   3.14159265359

Functions

 DEF_TEST (low_sum)
 DEF_TEST (high_sum)
INT adc_summing (EVENT_HEADER *, void *)
INT adc_summing_init (void)
INT adc_summing_bor (INT run_number)
 ADC_SUMMING_PARAM_STR (adc_summing_param_str)

Variables

ADC_SUMMING_PARAM adc_summing_param
ANA_MODULE adc_summing_module
static TH1D * hAdcSum
static TH1D * hAdcAvg


Define Documentation

#define DEFINE_TESTS

Definition at line 22 of file adcsum.c.

#define PI   3.14159265359

Definition at line 33 of file adcsum.c.


Function Documentation

INT adc_summing ( EVENT_HEADER ,
void *   
)

Definition at line 87 of file adcsum.c.

00088 {
00089    INT i, j, n_adc;
00090    float *cadc;
00091    ASUM_BANK *asum;
00092 
00093    /* look for CADC bank, return if not present */
00094    n_adc = bk_locate(pevent, "CADC", &cadc);
00095    if (n_adc == 0)
00096       return 1;
00097 
00098    /* create ADC sum bank */
00099    bk_create(pevent, "ASUM", TID_STRUCT, &asum);
00100 
00101    /* sum all channels above threashold */
00102    asum->sum = 0.f;
00103    for (i = j = 0; i < n_adc; i++)
00104       if (cadc[i] > adc_summing_param.adc_threshold) {
00105          asum->sum += cadc[i];
00106          j++;
00107       }
00108 
00109    /* calculate ADC average */
00110    asum->average = j > 0 ? asum->sum / j : 0;
00111 
00112    /* evaluate tests */
00113    SET_TEST(low_sum, asum->sum < 1000);
00114    SET_TEST(high_sum, asum->sum > 1000);
00115 
00116    /* fill sum histo */
00117    hAdcSum->Fill(asum->sum, 1);
00118 
00119    /* fill average histo */
00120    hAdcAvg->Fill(asum->average);
00121 
00122    /* close calculated bank */
00123    bk_close(pevent, asum + 1);
00124 
00125    return SUCCESS;
00126 }

INT adc_summing_bor ( INT  run_number  ) 

INT adc_summing_init ( void   ) 

Definition at line 72 of file adcsum.c.

00073 {
00074    /* book ADC sum histo */
00075    hAdcSum = h1_book<TH1D>("ADCSUM", "ADC sum", 500, 0, 10000);
00076 
00077    /* book ADC average in separate subfolder */
00078    open_subfolder("Average");
00079    hAdcAvg = h1_book<TH1D>("ADCAVG", "ADC average", 500000, 0, 10000);
00080    close_subfolder();
00081 
00082    return SUCCESS;
00083 }

ADC_SUMMING_PARAM_STR ( adc_summing_param_str   ) 

DEF_TEST ( high_sum   ) 

DEF_TEST ( low_sum   ) 


Variable Documentation

ANA_MODULE adc_summing_module

Initial value:

 {
   "ADC summing",               
   "Stefan Ritt",               
   adc_summing,                 
   NULL,                        
   NULL,                        
   adc_summing_init,            
   NULL,                        
   &adc_summing_param,          
   sizeof(adc_summing_param),   
   adc_summing_param_str,       
}

Definition at line 53 of file adcsum.c.

ADC_SUMMING_PARAM adc_summing_param

Definition at line 38 of file adcsum.c.

TH1D * hAdcAvg [static]

Definition at line 68 of file adcsum.c.

TH1D* hAdcSum [static]

Definition at line 68 of file adcsum.c.


Midas DOC Version 3.0.0 ---- PSI Stefan Ritt ----
Contributions: Pierre-Andre Amaudruz - Sergio Ballestrero - Suzannah Daviel - Doxygen - Peter Green - Qing Gu - Greg Hackman - Gertjan Hofman - Paul Knowles - Exaos Lee - Rudi Meier - Glenn Moloney - Dave Morris - John M O'Donnell - Konstantin Olchanski - Renee Poutissou - Tamsen Schurman - Andreas Suter - Jan M.Wouters - Piotr Adam Zolnierczuk