13 #include <JANA/JApplication.h>
14 #include <JANA/JFactory.h>
25 #include <TDirectory.h>
29 #include <TProfile2D.h>
71 gPARMS->SetDefaultParameter(
"pedestal_online:VERBOSE",
VERBOSE,
"pedestal_online verbosity level");
88 if (
VERBOSE>=1)
printf(
"JEventProcessor_pedestal_online::init()\n");
92 peddir = maindir->mkdir(
"pedestal");
124 vector<const DEPICSvalue*> depicsvalue;
125 loop->Get(depicsvalue);
126 if (depicsvalue.size()>0) {
138 vector<const Df250PulseData*> f250PDs;
139 vector<const Df250PulseIntegral*> f250PIs;
140 vector<const Df125PulseIntegral*> f125PIs;
147 japp->RootWriteLock();
149 if (peddir!=NULL) peddir->cd();
152 for(
unsigned int i=0; i<f250PIs.size(); i++) {
154 int rocid = hit->
rocid;
156 if(rocid>=0 && rocid<100) {
157 char cratename[255],title[255];
161 if (
VERBOSE>=1)
printf(
"JEventProcessor_pedestal_online::evnt creating time tree and histogram for crate %i\n",rocid);
162 sprintf(cratename,
"pedestal_vtime_tree_crate%i",rocid);
163 sprintf(title,
"Crate %i avg pedestal (F250)",rocid);
170 sprintf(cratename,
"pedestal_vtime_hist_crate%i",rocid);
177 if (
VERBOSE>=3)
printf(
"JEventProcessor_pedestal_online::evnt filling tree crate %i\n",rocid);
182 if (
VERBOSE>=3)
printf(
"\t\t%li %li %li %li %8.4f %8.4f %7i\n",
197 if (
VERBOSE>=1)
printf(
"JEventProcessor_pedestal_online::evnt creating event histogram for crate %i\n",rocid);
198 sprintf(cratename,
"pedestal_vevent_crate%i",rocid);
199 sprintf(title,
"Crate %i avg pedestal (F250);event num;pedestal (all chan avg)",rocid);
200 pedestal_vevent[rocid] =
new TProfile(cratename,title,200,0.0,10000.0);
202 #if ROOT_VERSION_CODE >= ROOT_VERSION(6,0,0)
213 for(
unsigned int i=0; i<f250PDs.size(); i++) {
215 int rocid = hit->
rocid;
216 if(rocid>=0 && rocid<100) {
217 char cratename[255],title[255];
221 if (
VERBOSE>=1)
printf(
"JEventProcessor_pedestal_online::evnt creating time tree and histogram for crate %i\n",rocid);
222 sprintf(cratename,
"pedestal_vtime_tree_crate%i",rocid);
223 sprintf(title,
"Crate %i avg pedestal (F250)",rocid);
230 sprintf(cratename,
"pedestal_vtime_hist_crate%i",rocid);
237 if (
VERBOSE>=3)
printf(
"JEventProcessor_pedestal_online::evnt filling tree crate %i\n",rocid);
243 if (
VERBOSE>=3)
printf(
"\t\t%li %li %li %li %8.4f %8.4f %7i\n",
258 if (
VERBOSE>=1)
printf(
"JEventProcessor_pedestal_online::evnt creating event histogram for crate %i\n",rocid);
259 sprintf(cratename,
"pedestal_vevent_crate%i",rocid);
260 sprintf(title,
"Crate %i avg pedestal (F250);event num;pedestal (all chan avg)",rocid);
261 pedestal_vevent[rocid] =
new TProfile(cratename,title,200,0.0,10000.0);
263 #if ROOT_VERSION_CODE >= ROOT_VERSION(6,0,0)
278 for(
unsigned int i=0; i<f125PIs.size(); i++) {
280 int rocid = hit->
rocid;
282 if(rocid>=0 && rocid<100) {
283 char cratename[255],title[255];
287 if (
VERBOSE>=1)
printf(
"JEventProcessor_pedestal_online::evnt creating time tree and histogram for crate %i\n",rocid);
288 sprintf(cratename,
"pedestal_vtime_tree_crate%i",rocid);
289 sprintf(title,
"Crate %i avg pedestal (F250)",rocid);
296 sprintf(cratename,
"pedestal_vtime_hist_crate%i",rocid);
303 if (
VERBOSE>=3)
printf(
"JEventProcessor_pedestal_online::evnt filling tree crate %i\n",rocid);
322 if (
VERBOSE>=1)
printf(
"JEventProcessor_pedestal_online::evnt creating event histogram for crate %i\n",rocid);
323 sprintf(cratename,
"pedestal_vevent_crate%i",rocid);
324 sprintf(title,
"Crate %i avg pedestal (F125);event num;pedestal (all chan avg)",rocid);
325 pedestal_vevent[rocid] =
new TProfile(cratename,title,200,0.0,10000.0);
327 #if ROOT_VERSION_CODE >= ROOT_VERSION(6,0,0)
355 japp->RootWriteLock();
359 char cratename[255],title[255];
367 sprintf(title,
"Crate %i avg pedestal (F250)",i);
368 sprintf(cratename,
"pedestal_vtime_hist_crate%i",i);
376 for (Int_t event=0;
event<nevent;
event++) {
uint32_t pedestal
from Pulse Integral Data word (future)
static const time_t periodlength
sprintf(text,"Post KinFit Cut")
static const int highcratenum
static TProfile * pedestal_vevent[highcratenum]
static TH1F * pedestal_vtime_hist[highcratenum]
jerror_t fini(void)
Called after last event of last event source has been processed.
jerror_t brun(jana::JEventLoop *eventLoop, int32_t runnumber)
Called everytime a new run number is detected.
static TTree * pedestal_vtime_tree[highcratenum]
float treepedestal[highcratenum]
jerror_t init(void)
Called once at program start.
uint32_t pedestal
from Pulse Integral Data word (future)
~JEventProcessor_pedestal_online()
uint32_t nsamples_pedestal
number of samples used in pedestal
jerror_t erun(void)
Called everytime run number changes, provided brun has been called.
uint32_t nsamples_pedestal
number of samples used in pedestal
JEventProcessor_pedestal_online()
long int periodstarttime[highcratenum]
printf("string=%s", string)
jerror_t evnt(jana::JEventLoop *eventLoop, uint64_t eventnumber)
Called every event.