63 (
const char **)decay_ana_param_str,
74 #define POS_FLAG_LD (1<<0)
75 #define POS_FLAG_TD (1<<1)
76 #define POS_FLAG_RD (1<<2)
77 #define POS_FLAG_BD (1<<3)
78 #define POS_FLAG_LU (1<<4)
79 #define POS_FLAG_TU (1<<5)
80 #define POS_FLAG_RU (1<<6)
81 #define POS_FLAG_BU (1<<7)
95 char title[256], name[256];
101 if ( i > N_DECAY_HISTS-1)
104 sprintf(name,
"hDecay%03d", i+1);
110 hDecHist[i] = H1_BOOK(name, title, nbin, xlow, xhigh);
115 if ( i > 3*N_DECAY_HISTS-1)
124 hDecHist[i] = H1_BOOK(name, title, nbin, xlow, xhigh);
156 sprintf(title,
"%s, Ext. ON, Run %s_%04d", decay_ana_param.
histotitles.
decaytitles.titles[i-2*N_DECAY_HISTS],
197 n = bk_locate(pevent,
"TDC0", &ptdc);
211 memset(&counter, 0x00,
sizeof(counter));
212 memset(&tdc_data, 0x00,
sizeof(tdc_data));
214 for (i = 1; i < n; i++){
220 tdc_data[channel][counter[channel]] = lem_data->
data;
265 if ( !foundTD && !foundMCP2 )
return SUCCESS;
266 if ( !foundTD ) masterCH =
MCP2F;
270 if ( tdc_data[
POSLDI][0] > 0 && tdc_data[
POSLDO][0] > 0 ) {
271 difftime_last = tdc_data[
POSLDI][0] - tdc_data[masterCH][0];
277 if ( tdc_data[
POSTDI][0] > 0 && tdc_data[
POSTDO][0] > 0 ) {
278 difftime_last = tdc_data[
POSTDI][0] - tdc_data[masterCH][0];
284 if ( tdc_data[
POSRDI][0] > 0 && tdc_data[
POSRDO][0] > 0 ) {
285 difftime_last = tdc_data[
POSRDI][0] - tdc_data[masterCH][0];
291 if ( tdc_data[
POSBDI][0] > 0 && tdc_data[
POSBDO][0] > 0 ) {
292 difftime_last = tdc_data[
POSBDI][0] - tdc_data[masterCH][0];
300 if ( tdc_data[
POSLUI][0] > 0 && tdc_data[
POSLUO][0] > 0 ) {
301 difftime_last = tdc_data[
POSLUI][0] - tdc_data[masterCH][0];
307 if ( tdc_data[
POSTUI][0] > 0 && tdc_data[
POSTUO][0] > 0 ) {
308 difftime_last = tdc_data[
POSTUI][0] - tdc_data[masterCH][0];
314 if ( tdc_data[
POSRUI][0] > 0 && tdc_data[
POSRUO][0] > 0 ) {
315 difftime_last = tdc_data[
POSRUI][0] - tdc_data[masterCH][0];
321 if ( tdc_data[
POSBUI][0] > 0 && tdc_data[
POSBUO][0] > 0 ) {
322 difftime_last = tdc_data[
POSBUI][0] - tdc_data[masterCH][0];
330 if ( tdc_data[masterCH][1] != 0 &&
338 if ( tdc_data[
POSLDI][1] != 0 ){
340 abs(tdc_data[
POSLDI][1]-tdc_data[
POSLDO][1]) < 50 )
return SUCCESS;
345 hDecHist[24]->Fill( (
float)(tdc_data[
POSLDI][0] - tdc_data[masterCH][0]) + t0shift_param.
delta_t0[0], 1.);
349 if ( tdc_data[
POSLUI][1] != 0 ){
351 abs(tdc_data[
POSLUI][1]-tdc_data[
POSLUO][1]) < 50 )
return SUCCESS;
354 hDecHist[12]->Fill( (
float)(tdc_data[
POSLUI][0] - tdc_data[masterCH][0]) + t0shift_param.
delta_t0[4], 1.);
356 hDecHist[28]->Fill( (
float)(tdc_data[
POSLUI][0] - tdc_data[masterCH][0]) + t0shift_param.
delta_t0[4], 1.);
362 if ( tdc_data[
POSTDI][1] != 0 ){
364 abs(tdc_data[
POSTDI][1]-tdc_data[
POSTDO][1]) < 50)
return SUCCESS;
369 hDecHist[25]->Fill( (
float)(tdc_data[
POSTDI][0] - tdc_data[masterCH][0]) + t0shift_param.
delta_t0[1], 1.);
373 if ( tdc_data[
POSTUI][1] != 0 ){
375 abs(tdc_data[
POSTUI][1]-tdc_data[
POSTUO][1]) < 50)
return SUCCESS;
378 hDecHist[13]->Fill( (
float)(tdc_data[
POSTUI][0] - tdc_data[masterCH][0]) + t0shift_param.
delta_t0[5], 1.);
380 hDecHist[29]->Fill( (
float)(tdc_data[
POSTUI][0] - tdc_data[masterCH][0]) + t0shift_param.
delta_t0[5], 1.);
386 if ( tdc_data[
POSRDI][1] != 0 ){
388 abs(tdc_data[
POSRDI][1]-tdc_data[
POSRDO][1]) < 50)
return SUCCESS;
391 hDecHist[10]->Fill( (
float)(tdc_data[
POSRDI][0] - tdc_data[masterCH][0]) + t0shift_param.
delta_t0[2], 1.);
393 hDecHist[26]->Fill( (
float)(tdc_data[
POSRDI][0] - tdc_data[masterCH][0]) + t0shift_param.
delta_t0[2], 1.);
397 if ( tdc_data[
POSRUI][1] != 0 ){
399 abs(tdc_data[
POSRUI][1]-tdc_data[
POSRUO][1]) < 50)
return SUCCESS;
402 hDecHist[14]->Fill( (
float)(tdc_data[
POSRUI][0] - tdc_data[masterCH][0]) + t0shift_param.
delta_t0[6], 1.);
404 hDecHist[30]->Fill( (
float)(tdc_data[
POSRUI][0] - tdc_data[masterCH][0]) + t0shift_param.
delta_t0[6], 1.);
410 if ( tdc_data[
POSBDI][1] != 0 ){
412 abs(tdc_data[
POSBDI][1]-tdc_data[
POSBDO][1]) < 50)
return SUCCESS;
415 hDecHist[11]->Fill( (
float)(tdc_data[
POSBDI][0] - tdc_data[masterCH][0]) + t0shift_param.
delta_t0[3], 1.);
417 hDecHist[27]->Fill( (
float)(tdc_data[
POSBDI][0] - tdc_data[masterCH][0]) + t0shift_param.
delta_t0[3], 1.);
421 if ( tdc_data[
POSBUI][1] != 0 ){
423 abs(tdc_data[
POSBUI][1]-tdc_data[
POSBUO][1]) < 50)
return SUCCESS;
426 hDecHist[15]->Fill( (
float)(tdc_data[
POSBUI][0] - tdc_data[masterCH][0]) + t0shift_param.
delta_t0[7], 1.);
428 hDecHist[31]->Fill( (
float)(tdc_data[
POSBUI][0] - tdc_data[masterCH][0]) + t0shift_param.
delta_t0[7], 1.);
struct DECAYANAMODULE_PARAM::@1::@3 decaybin
static DWORD dataWindowMuonDecay
struct TRIGGER_SETTINGS::@20 event_2_settings
#define N_OFFSET_PPC_HISTOGRAMS
ID offset of postpileup-rejected histograms.
DECAYANAMODULE_PARAM decay_ana_param
struct DECAYANAMODULE_PARAM::@0 histotitles
T0SHIFT_PARAM t0shift_param
#define EXTON1_FLAG
flag for "red/green", "on/off" mode: ON
DECAYANAMODULE_PARAM_STR(decay_ana_param_str)
struct DECAYANAMODULE_PARAM::@1 histobinning
RUNINFO runinfo
/Runinfo ODB key, defined in from midas.h
struct DECAYANAMODULE_PARAM::@0::@2 decaytitles
INT decay_eor(INT run_number)
struct TRIGGER_SETTINGS::@17 events
static TH1F * hDecHist[4 *N_DECAY_HISTS]
struct TRIGGER_SETTINGS::@19 event_1_settings
#define DATA_N_HITS
max. of DATA_N_HITS in data file
TObjArray * gHistoFolderStack
#define EXTOFF1_FLAG
flag for "red/green", "on/off" mode: OFF
ANA_MODULE decay_ana_module
TRIGGER_SETTINGS trigger_settings
/Equipment/Trigger/Settings
#define N_TDC_CHANNELS
number of TDC channels
INT decay_bor(INT run_number)
#define N_OFFSET_ONOFF_HISTOGRAMS
ID offset for "on/off", "red/green" histograms: no offset means "off".
#define N_DECAY_HISTS
number of LE-uSR npp decay histograms
#define EVENT_0_TYPE
EVENT type 0 = BC-MCP1-(e+)
INT decay_ana(EVENT_HEADER *, void *)
TFolder * gManaHistosFolder