MIDAS
Loading...
Searching...
No Matches
AdcCalib Struct Reference
Inheritance diagram for AdcCalib:
Collaboration diagram for AdcCalib:

Public Member Functions

 AdcCalib (TARunInfo *runinfo)
 
 ~AdcCalib ()
 
void BeginRun (TARunInfo *runinfo)
 
void EndRun (TARunInfo *runinfo)
 
TAFlowEventAnalyze (TARunInfo *runinfo, TMEvent *event, TAFlags *flags, TAFlowEvent *flow)
 

Public Attributes

TH1DfAdcHists [N_ADC]
 

Detailed Description

Definition at line 123 of file adccalib_module.cxx.

Constructor & Destructor Documentation

◆ AdcCalib()

AdcCalib::AdcCalib ( TARunInfo runinfo)
inline

Definition at line 127 of file adccalib_module.cxx.

128 : TARunObject(runinfo)
129 {
130 printf("AdcCalib::ctor!\n");
131
132 runinfo->fRoot->fOutputFile->cd(); // select correct ROOT directory
133
134 char name[256];
135 int i;
136
137 /* book CADC histos */
138
139 for (i = 0; i < N_ADC; i++) {
140 char title[256];
141
142 sprintf(name, "CADC%02d", i);
143 sprintf(title, "ADC %d", i);
144
146 }
147 }
RUNINFO runinfo
Definition analyzer.cxx:49
#define ADC_N_BINS
#define ADC_X_LOW
#define ADC_X_HIGH
#define N_ADC
Definition deferredfe.c:49
INT i
Definition mdump.cxx:32
#define name(x)
Definition midas_macro.h:24
TH1X EXPRT * h1_book(const char *name, const char *title, int bins, double min, double max)
Definition rmidas.h:24
TH1D * fAdcHists[N_ADC]
Here is the call graph for this function:

◆ ~AdcCalib()

AdcCalib::~AdcCalib ( )
inline

Definition at line 149 of file adccalib_module.cxx.

150 {
151 printf("AdcCalib::dtor!\n");
152 }
Here is the call graph for this function:

Member Function Documentation

◆ Analyze()

TAFlowEvent * AdcCalib::Analyze ( TARunInfo runinfo,
TMEvent event,
TAFlags flags,
TAFlowEvent flow 
)
inline

Definition at line 164 of file adccalib_module.cxx.

165 {
166 printf("Analyze, run %d, event serno %d, id 0x%04x, data size %d\n", runinfo->fRunNo, event->serial_number, (int)event->event_id, event->data_size);
167
168 TMBank* badc0 = event->FindBank("ADC0");
169 if (!badc0)
170 return flow;
171
172 WORD* pdata = (WORD*)event->GetBankData(badc0);
173 if (!pdata)
174 return flow;
175
176 float cadc[N_ADC];
177
178 /* zero cadc bank */
179 for (int i = 0; i < N_ADC; i++)
180 cadc[i] = 0.f;
181
182 /* subtract pedestal */
183 for (int i = 0; i < N_ADC; i++)
184 cadc[i] = (float) ((double) pdata[i] - adccalib_param.pedestal[i] + 0.5);
185
186 /* apply software gain calibration */
187 for (int i = 0; i < N_ADC; i++)
189
190 /* fill ADC histos if above threshold */
191 for (int i = 0; i < N_ADC; i++)
192 if (cadc[i] > (float) adccalib_param.histo_threshold)
193 fAdcHists[i]->Fill(cadc[i], 1);
194
195 /* create calibrated ADC bank */
196 event->AddBank("CADC", TID_FLOAT, (char*)cadc, sizeof(cadc));
197
198 return flow;
199 }
ADC_CALIBRATION_PARAM adccalib_param
unsigned short int WORD
Definition mcstd.h:49
#define TID_FLOAT
Definition midas.h:341
float software_gain[8]
Definition experim.h:42
Here is the call graph for this function:

◆ BeginRun()

void AdcCalib::BeginRun ( TARunInfo runinfo)
inline

Definition at line 154 of file adccalib_module.cxx.

155 {
156 printf("BeginRun, run %d, file %s\n", runinfo->fRunNo, runinfo->fFileName.c_str());
157 }
Here is the call graph for this function:

◆ EndRun()

void AdcCalib::EndRun ( TARunInfo runinfo)
inline

Definition at line 159 of file adccalib_module.cxx.

160 {
161 printf("EndRun, run %d\n", runinfo->fRunNo);
162 }
Here is the call graph for this function:

Member Data Documentation

◆ fAdcHists

TH1D* AdcCalib::fAdcHists[N_ADC]

Definition at line 125 of file adccalib_module.cxx.


The documentation for this struct was generated from the following file: