23 #include <JANA/JApplication.h>
24 #include <JANA/JFactory.h>
54 BCALdigi =
new TTree(
"BCALdigi",
"DBCALDigiHit objects (w/ waveform samples) for each channel and event");
55 BCALdigi->Branch(
"channelnum",&channelnum,
"channelnum/i");
56 BCALdigi->Branch(
"eventnum",&eventnum,
"eventnum/i");
57 BCALdigi->Branch(
"rocid",&rocid,
"rocid/i");
58 BCALdigi->Branch(
"slot",&slot,
"slot/i");
59 BCALdigi->Branch(
"channel",&channel,
"channel/i");
60 BCALdigi->Branch(
"itrigger",&itrigger,
"itrigger/i");
61 BCALdigi->Branch(
"waveform",&waveform);
62 BCALdigi->Branch(
"nsamples",&nsamples,
"nsamples/i");
63 BCALdigi->Branch(
"w_integral",&w_integral,
"w_integral/i");
64 BCALdigi->Branch(
"w_min",&w_min,
"w_min/i");
65 BCALdigi->Branch(
"w_max",&w_max,
"w_max/i");
66 BCALdigi->Branch(
"w_samp1",&w_samp1,
"w_samp1/i");
68 BCALdigi->Branch(
"module",&module,
"module/i");
69 BCALdigi->Branch(
"layer",&
layer,
"layer/i");
70 BCALdigi->Branch(
"sector",§or,
"sector/i");
71 BCALdigi->Branch(
"end",&end,
"end/i");
75 BCALTDCdigi =
new TTree(
"BCALTDCdigi",
"DBCALTDCDigiHit objects for each channel and event");
76 BCALTDCdigi->Branch(
"channelnum",&channelnum,
"channelnum/i");
77 BCALTDCdigi->Branch(
"eventnum",&eventnum,
"eventnum/i");
78 BCALTDCdigi->Branch(
"rocid",&rocid,
"rocid/i");
79 BCALTDCdigi->Branch(
"slot",&slot,
"slot/i");
80 BCALTDCdigi->Branch(
"channel",&channel,
"channel/i");
81 BCALTDCdigi->Branch(
"itrigger",&itrigger,
"itrigger/i");
82 BCALTDCdigi->Branch(
"time",&time,
"time/i");
85 BCALTDCdigi->Branch(
"module",&module,
"module/i");
86 BCALTDCdigi->Branch(
"layer",&
layer,
"layer/i");
87 BCALTDCdigi->Branch(
"sector",§or,
"sector/i");
88 BCALTDCdigi->Branch(
"end",&end,
"end/i");
109 eventnum = eventnumber;
112 vector<const DBCALDigiHit*> bcaldigihits;
113 loop->Get(bcaldigihits);
116 vector<const DBCALTDCDigiHit*> bcaltdcdigihits;
117 loop->Get(bcaltdcdigihits);
120 japp->RootWriteLock();
123 for(
unsigned int i=0; i< bcaldigihits.size(); i++){
133 bcaldigihit->GetSingle(pulsedata);
135 pulsedata->GetSingle(windorawdata);
138 bcaldigihit->GetSingle(pulseintegral);
139 pulseintegral->GetSingle(windorawdata);
143 jerr <<
"No Df250WindowRawData objects associate with DBCALDigiHit!" << endl;
147 pulsedata->GetSingle(windorawdata);
151 rocid = windorawdata->
rocid;
152 slot = windorawdata->
slot;
153 channel = windorawdata->
channel;
157 const vector<uint16_t> &samplesvector = windorawdata->
samples;
158 nsamples=samplesvector.size();
161 for (uint16_t c_samp=0; c_samp<nsamples; c_samp++) {
162 waveform.push_back(samplesvector[c_samp]);
164 w_integral = samplesvector[0];
165 w_min = samplesvector[0];
166 w_max = samplesvector[0];
167 w_samp1 = samplesvector[0];
169 w_integral += samplesvector[c_samp];
170 if (w_min > samplesvector[c_samp]) w_min = samplesvector[c_samp];
171 if (w_max < samplesvector[c_samp]) w_max = samplesvector[c_samp];
175 module = bcaldigihit->
module;
177 sector = bcaldigihit->
sector;
178 end = bcaldigihit->
end;
188 for(
unsigned int i=0; i< bcaltdcdigihits.size(); i++){
192 bcaltdcdigihit->GetSingle(tdchit);
195 rocid = tdchit->
rocid;
200 time = bcaltdcdigihit->
time;
202 module = bcaltdcdigihit->
module;
204 sector = bcaltdcdigihit->
sector;
205 end = bcaltdcdigihit->
end;
jerror_t evnt(jana::JEventLoop *eventLoop, uint64_t eventnumber)
Called every event.
vector< uint16_t > samples
jerror_t erun(void)
Called everytime run number changes, provided brun has been called.
jerror_t brun(jana::JEventLoop *eventLoop, int32_t runnumber)
Called everytime a new run number is detected.
JEventProcessor_DAQTreeBCAL()
~JEventProcessor_DAQTreeBCAL()
jerror_t fini(void)
Called after last event of last event source has been processed.
jerror_t init(void)
Called once at program start.