AlcapDAQ  1
Functions | Variables
MMuPC1AnalysisC.cpp File Reference
#include <stdio.h>
#include <stdlib.h>
#include "midas.h"
#include "TH1.h"
#include "TH2.h"
#include "TH3.h"
#include "common.h"
#include "ucb_common.h"

Go to the source code of this file.

Functions

INT MMuPC1AnalysisC_init (void)
 
INT MMuPC1AnalysisC (EVENT_HEADER *, void *)
 

Variables

static TH2 * muPC1_Xwire_successive_tdiffs
 
static TH2 * muPC1_XwireVStime_2D
 
static TH2 * muPC1_Ywire_successive_tdiffs
 
static TH2 * muPC1_YwireVStime_2D
 
ANA_MODULE MMuPC1AnalysisC_module
 

Function Documentation

INT MMuPC1AnalysisC ( EVENT_HEADER *  pheader,
void *  pevent 
)

Definition at line 92 of file MMuPC1AnalysisC.cpp.

References i, kMuPC1NumXWires, kMuPC1NumYWires, muPC1_Xwire_successive_tdiffs, muPC1_Ywire_successive_tdiffs, channel_hit::parameter, SUCCESS, and time.

93 {
94  /* ############################################### */
95  // Open up the bank "HITS" (contains CAEN & COMP hits by parameter #)
96  channel_hit *hit_bank;
97  int hit_bank_size = bk_locate(pevent, "HITS", (DWORD *) &hit_bank);
98  hit_bank_size = hit_bank_size * sizeof(DWORD) / sizeof(channel_hit);
99  if(hit_bank == NULL) {
100  fprintf(stderr, "MMuPC1AnalysisC: Could not find bank HITS.\n");
101  return !SUCCESS;
102  }
103 
104  /* ############################################### */
105 
106  // Initialize the "previous hit" indices
107  int prev_hit_index_muPC1_Xwire[kMuPC1NumXWires+1];
108  for (int j=1; j<=kMuPC1NumXWires; j++) {
109  prev_hit_index_muPC1_Xwire[j] = -1;
110  }
111  int prev_hit_index_muPC1_Ywire[kMuPC1NumYWires+1];
112  for (int j=1; j<=kMuPC1NumYWires; j++) {
113  prev_hit_index_muPC1_Ywire[j] = -1;
114  }
115 
116  // Loop over hits within hit_bank and fill muPC1 raw data histograms
117  for (int i=0; i<hit_bank_size; i++) {
118  int par = hit_bank[i].parameter;
119 
120  // Xwires
121  if ((par >= 4001) && (par <= (4000+kMuPC1NumXWires))) {
122  int wire = (par-4000);
123  // tdiffs between successive Xwire hits, per wire
124  if (prev_hit_index_muPC1_Xwire[wire] >= 0) {
125  muPC1_Xwire_successive_tdiffs->Fill((hit_bank[i].time -
126  hit_bank[prev_hit_index_muPC1_Xwire[wire]].time),
127  wire);
128  }
129  prev_hit_index_muPC1_Xwire[wire] = i;
130  // 2D Xwire hits vs. time
131  // muPC1_XwireVStime_2D->Fill(hit_bank[i].time, wire);
132  }
133 
134  // Ywires
135  if ((par >= 4051) && (par <= (4050+kMuPC1NumYWires))) {
136  int wire = (par-4050);
137  // tdiffs between successive Ywire hits, per wire
138  if (prev_hit_index_muPC1_Ywire[wire] >= 0) {
139  muPC1_Ywire_successive_tdiffs->Fill((hit_bank[i].time -
140  hit_bank[prev_hit_index_muPC1_Ywire[wire]].time),
141  wire);
142  }
143  prev_hit_index_muPC1_Ywire[wire] = i;
144  // 2D Ywire hits vs. time
145  // muPC1_YwireVStime_2D->Fill(hit_bank[i].time, wire);
146  }
147  }
148 
149  /* ############################################### */
150 
151  return SUCCESS;
152 }
INT MMuPC1AnalysisC_init ( void  )

Definition at line 61 of file MMuPC1AnalysisC.cpp.

References kMuPC1NumXWires, kMuPC1NumYWires, muPC1_Xwire_successive_tdiffs, muPC1_Ywire_successive_tdiffs, sprintf(), and SUCCESS.

62 {
63  /****** Construct histograms ******/
64  char hist_name[256];
65  char hist_title[256];
66 
67  // muPC1 Xwire histograms
68  sprintf(hist_name, "muPC1_X_raw_successive_tdiffs");
69  sprintf(hist_title, "Tdiffs between successive raw #muPC1 Xwire hits");
70  muPC1_Xwire_successive_tdiffs = new TH2D(hist_name, hist_title, 1451, -252.5, 7002.5, kMuPC1NumXWires, 0.5, (kMuPC1NumXWires+0.5));
71  /*
72  sprintf(hist_name, "muPC1_XwireVStime_2D");
73  sprintf(hist_title, "#muPC1 raw Xwire hits vs.time 2D");
74  muPC1_XwireVStime_2D = new TH2D(hist_name, hist_title, 1000, 0, 50000000, kMuPC1NumXWires, 0.5, (kMuPC1NumXWires+0.5));
75  */
76 
77  // muPC1 Ywire histograms
78  sprintf(hist_name, "muPC1_Y_raw_successive_tdiffs");
79  sprintf(hist_title, "Tdiffs between successive raw #muPC1 Ywire hits");
80  muPC1_Ywire_successive_tdiffs = new TH2D(hist_name, hist_title, 1451, -252.5, 7002.5, kMuPC1NumYWires, 0.5, (kMuPC1NumYWires+0.5));
81  /*
82  sprintf(hist_name, "muPC1_YwireVStime_2D");
83  sprintf(hist_title, "#muPC1 raw Ywire hits vs.time 2D");
84  muPC1_YwireVStime_2D = new TH2D(hist_name, hist_title, 1000, 0, 50000000, kMuPC1NumYWires, 0.5, (kMuPC1NumYWires+0.5));
85  */
86 
87  return SUCCESS;
88 }

Variable Documentation

ANA_MODULE MMuPC1AnalysisC_module
Initial value:
= {
"MMuPC1AnalysisC",
"Tom Banks",
NULL,
NULL,
NULL,
NULL,
0,
NULL,
}

Definition at line 46 of file MMuPC1AnalysisC.cpp.

TH2* muPC1_Xwire_successive_tdiffs
static

Definition at line 36 of file MMuPC1AnalysisC.cpp.

Referenced by MMuPC1AnalysisC(), and MMuPC1AnalysisC_init().

TH2* muPC1_XwireVStime_2D
static

Definition at line 37 of file MMuPC1AnalysisC.cpp.

TH2* muPC1_Ywire_successive_tdiffs
static

Definition at line 38 of file MMuPC1AnalysisC.cpp.

Referenced by MMuPC1AnalysisC(), and MMuPC1AnalysisC_init().

TH2* muPC1_YwireVStime_2D
static

Definition at line 39 of file MMuPC1AnalysisC.cpp.