24 #include <JANA/JApplication.h>
25 #include <JANA/JFactory.h>
26 #include <TDirectory.h>
138 const double Ebw_PS = 0.1;
139 const double Ebl_PS = 5.0;
const double Ebl_PSarm = 2.0;
140 const double Ebh_PS = 13.0;
const double Ebh_PSarm = 7.0;
141 const int NEb_PS = int((Ebh_PS-Ebl_PS)/Ebw_PS);
const int NEb_PSarm = int((Ebh_PSarm-Ebl_PSarm)/Ebw_PS);
142 const double Ebw_TAG = 0.1;
143 const double Ebl_TAG = 2.5;
144 const double Ebh_TAG = 10.5;
145 const int NEb_TAG = int((Ebh_TAG-Ebl_TAG)/Ebw_TAG);
147 const double Tbw = 0.06;
148 const double Tbl_PS = -4.5;
149 const double Tbh_PS = 4.5;
150 const int NTb_PS = int((Tbh_PS-Tbl_PS)/Tbw);
151 const double Tbl_TAG = -200.0;
152 const double Tbh_TAG = 200.0;
153 const int NTb_TAG = 1000;
155 const int NEdb = 200;
const double Edbl = -1.0;
const double Edbh = 1.0;
158 TDirectory *
mainDir = gDirectory;
159 TDirectory *psPairDir = gDirectory->mkdir(
"PSPair");
162 pspair_num_events =
new TH1I(
"pspair_num_events",
"PS pair number of events",1,0.5,1.5);
163 hPSC_NHitPairs =
new TH1I(
"PSC_NHitPairs",
"PSC pair multiplicity",8,0.5,8.5);
164 hPS_NHitPairs =
new TH1I(
"PS_NHitPairs",
"PS pair multiplicity",8,0.5,8.5);
166 gDirectory->mkdir(
"PSC")->cd();
168 gDirectory->mkdir(
"PSCRightArmTimeOffsets")->cd();
169 for (
int i=0;i<
NC_PSC;i++) {
170 stringstream ss; ss << i+1;
171 TString
id = ss.str();
172 TString strN =
"_L" + id;
173 hPSC_tdiffVsPSCIDRight[i] =
new TH2I(
"PSC_tdiffVsPSCIDRight"+strN,
"PSC pair: TDC time difference vs. right arm module, fixed left arm module "+
id+
";module(right arm);time(module "+
id+
", left arm) - time(right arm) [ns]",NC_PSC,0.5,0.5+NC_PSC,NTb_PS,Tbl_PS,Tbh_PS);
175 gDirectory->cd(
"../");
176 gDirectory->mkdir(
"PSCLeftArmTimeOffsets")->cd();
177 for (
int i=0;i<
NC_PSC;i++) {
178 stringstream ss; ss << i+1;
179 TString
id = ss.str();
180 TString strN =
"_R" + id;
181 hPSC_tdiffVsPSCIDLeft[i] =
new TH2I(
"PSC_tdiffVsPSCIDLeft"+strN,
"PSC pair: TDC time difference vs. left arm module, fixed right arm module "+
id+
";module(left arm);time(left arm) - time(module "+
id+
", right arm) [ns]",NC_PSC,0.5,0.5+NC_PSC,NTb_PS,Tbl_PS,Tbh_PS);
185 gDirectory->mkdir(
"PSC_PS")->cd();
186 hPS_PSCIDLeftVsIDRight =
new TH2F(
"PS_PSCIDLeftVsIDRight",
"PS pair: Coarse PS ID left arm vs. ID right arm;module(right arm);module(left arm)",NC_PSC,0.5,0.5+NC_PSC,NC_PSC,0.5,0.5+NC_PSC);
188 hPS_ElVsEr =
new TH2F(
"PS_ElVsEr",
"PS pair: left-arm energy vs. right-arm energy;energy(right arm) [GeV];energy(left arm) [GeV]",NEb_PSarm,Ebl_PSarm,Ebh_PSarm,NEb_PSarm,Ebl_PSarm,Ebh_PSarm);
189 hPS_E =
new TH1F(
"PS_E",
"PS pair energy;PS pair energy [GeV];events",NEb_PS,Ebl_PS,Ebh_PS);
190 hPS_Ediff =
new TH1F(
"PS_Ediff",
"PS pair energy difference;PS pair energy difference [GeV];events",80,-4.0,4.0);
191 hPS_tdiffVsE =
new TH2F(
"PS_tdiffVsE",
"PSC pair time difference vs. PS pair energy;PS pair energy [GeV];PSC pair time difference [ns]",NEb_PS,Ebl_PS,Ebh_PS,200,-10.0,10.0);
192 hPS_PStdiffVsE =
new TH2F(
"PS_PStdiffVsE",
"PS pair time difference vs. PS pair energy;PS pair energy [GeV];PS pair time difference [ns]",NEb_PS,Ebl_PS,Ebh_PS,200,-10.0,10.0);
193 hPS_PSCPStdiffVsE =
new TH2F(
"PS_PSCPStdiffVsE",
"PSC/PS pair time difference of differences vs. PS pair energy;PS pair energy [GeV];PSC/PS pair time difference of differences [ns]",NEb_PS,Ebl_PS,Ebh_PS,200,-10.0,10.0);
195 hPS_PSIDLeftVsPSCIDLeft =
new TH2I(
"PS_PSIDLeftVsPSCIDLeft",
"PS pair: Fine PS ID left arm vs. Coarse PS ID left arm;coarse PS module(left arm);fine PS column(left arm)",NC_PSC,0.5,0.5+NC_PSC,
NC_PS,0.5,0.5+
NC_PS);
196 hPS_PSIDRightVsPSCIDRight =
new TH2I(
"PS_PSIDRightVsPSCIDRight",
"PS pair: Fine PS ID right arm vs. Coarse PS ID right arm;coarse PS module(right arm);fine PS column(right arm)",NC_PSC,0.5,0.5+NC_PSC,
NC_PS,0.5,0.5+
NC_PS);
197 hPS_ElVsPSCIDLeft =
new TH2I(
"PS_ElVsPSCIDLeft",
"PS pair: PS left-arm energy vs. Coarse PS ID left arm;coarse PS module(left arm);PS energy(left arm)",NC_PSC,0.5,0.5+NC_PSC,NEb_PSarm,Ebl_PSarm,Ebh_PSarm);
198 hPS_ErVsPSCIDRight =
new TH2I(
"PS_ErVsPSCIDRight",
"PS pair: PS right-arm energy vs. Coarse PS ID right arm;coarse PS module(right arm);PS energy(right arm)",NC_PSC,0.5,0.5+NC_PSC,NEb_PSarm,Ebl_PSarm,Ebh_PSarm);
200 gDirectory->mkdir(
"TAGX_AllHits")->cd();
202 hPS_Etagh =
new TH1F(
"PS_Etagh",
"PS pair: TAGH photon energy, all hits;TAGH photon energy [GeV];hits",NEb_TAG,Ebl_TAG,Ebh_TAG);
203 hPS_timeVsEtagh =
new TH2F(
"PS_timeVsEtagh",
"PS pair: TAGH time vs. photon energy, all hits;TAGH photon energy [GeV];time [ns]",NEb_TAG,Ebl_TAG,Ebh_TAG,NTb_TAG,Tbl_TAG,Tbh_TAG);
205 hPS_Etagm =
new TH1F(
"PS_Etagm",
"PS pair: TAGM photon energy, all hits;TAGM photon energy [GeV];hits",NEb_PS,Ebl_PS,Ebh_PS);
206 hPS_timeVsEtagm =
new TH2F(
"PS_timeVsEtagm",
"PS pair: TAGM time vs. photon energy, all hits;TAGM photon energy [GeV];time [ns]",NEb_PS,Ebl_PS,Ebh_PS,NTb_TAG,Tbl_TAG,Tbh_TAG);
209 gDirectory->mkdir(
"PSC_PS_TAGH")->cd();
210 hPSTAGH_tdiffVsEdiff =
new TH2F(
"PSTAGH_tdiffVsEdiff",
"PS pair - TAGH: PS-TAGH time difference vs. PS-TAGH energy difference;E(PS) - E(TAGH) [GeV];PSC/TAGH time difference [ns]",NEdb,Edbl,Edbh,NTb_TAG,Tbl_TAG,Tbh_TAG);
212 hPSTAGH_Etagh =
new TH1F(
"PSTAGH_Etagh",
"PS pair - TAGH: TAGH photon energy;TAGH photon energy [GeV];events",NEb_TAG,Ebl_TAG,Ebh_TAG);
213 hPSTAGH_timeVsEtagh =
new TH2F(
"PSTAGH_timeVsEtagh",
"PS pair - TAGH: TAGH time vs. photon energy;TAGH photon energy [GeV];time [ns]",NEb_TAG,Ebl_TAG,Ebh_TAG,NTb_TAG,Tbl_TAG,Tbh_TAG);
214 hPSTAGH_EVsEtagh =
new TH2I(
"PSTAGH_EVsEtagh",
"PS pair - TAGH: PS energy vs. TAGH energy;TAGH energy [GeV];PS energy [GeV]",NEb_PS,Ebl_PS,Ebh_PS,NEb_PS,Ebl_PS,Ebh_PS);
215 hPSTAGH_EdiffVsEtagh =
new TH2I(
"PSTAGH_EdiffVsEtagh",
"PS pair - TAGH: PS-TAGH energy difference vs. TAGH energy;TAGH energy [GeV];E(PS) - E(TAGH) [GeV]",NEb_TAG,Ebl_TAG,Ebh_TAG,NEdb,Edbl,Edbh);
216 hPSTAGH_EdiffVsTAGHCounterID =
new TH2I(
"PSTAGH_EdiffVsTAGHCounterID",
"PS pair - TAGH: PS-TAGH energy difference vs. TAGH counter ID;TAGH counter ID;E(PS) - E(TAGH) [GeV]",
NC_TAGH,0.5,0.5+
NC_TAGH,NEdb,Edbl,Edbh);
217 hPSTAGH_PSCIDLeftVsIDRight =
new TH2F(
"PSTAGH_PSCIDLeftVsIDRight",
"PS pair - TAGH: Coarse PS ID left arm vs. ID right arm;module(right arm);module(left arm)",NC_PSC,0.5,0.5+NC_PSC,NC_PSC,0.5,0.5+NC_PSC);
219 hPSTAGH_ElVsEr =
new TH2F(
"PSTAGH_ElVsEr",
"PS pair - TAGH: left-arm energy vs. right-arm energy;energy(right arm) [GeV];energy(left arm) [GeV]",NEb_PSarm,Ebl_PSarm,Ebh_PSarm,NEb_PSarm,Ebl_PSarm,Ebh_PSarm);
220 hPSTAGH_E =
new TH1F(
"PSTAGH_E",
"PS pair - TAGH: PS pair energy;PS pair energy [GeV];events",NEb_PS,Ebl_PS,Ebh_PS);
221 hPSTAGH_timeVsE =
new TH2F(
"PSTAGH_timeVsE",
"PSC/TAGH time difference vs. PS pair energy;PS pair energy [GeV];PSC/TAGH time difference [ns]",NEb_PS,Ebl_PS,Ebh_PS,NTb_TAG,Tbl_TAG,Tbh_TAG);
222 gDirectory->mkdir(
"PSTAGHTimeOffsets_L")->cd();
223 for (
int i=0; i<
NC_PSC; i++) {
224 stringstream ss; ss << i+1;
225 TString
id = ss.str();
226 hPSTAGH_tdiffVsTAGHCounterID_L[i] =
new TH2I(
"PSTAGH_tdiffVsTAGHCounterID_L"+
id,
"PS-TAGH TDC time difference vs. TAGH counter ID, fixed left arm PSC module "+
id+
";TAGH counter ID;time(PSC module "+
id+
", left arm) - time(TAGH) [ns]",
NC_TAGH,0.5,0.5+
NC_TAGH,NTb_TAG,Tbl_TAG,Tbh_TAG);
228 gDirectory->cd(
"../");
229 gDirectory->mkdir(
"PSTAGHTimeOffsets_R")->cd();
230 for (
int i=0; i<
NC_PSC; i++) {
231 stringstream ss; ss << i+1;
232 TString
id = ss.str();
233 hPSTAGH_tdiffVsTAGHCounterID_R[i] =
new TH2I(
"PSTAGH_tdiffVsTAGHCounterID_R"+
id,
"PS-TAGH TDC time difference vs. TAGH counter ID, fixed right arm PSC module "+
id+
";TAGH counter ID;time(PSC module "+
id+
", right arm) - time(TAGH) [ns]",
NC_TAGH,0.5,0.5+
NC_TAGH,NTb_TAG,Tbl_TAG,Tbh_TAG);
237 gDirectory->mkdir(
"PSC_PS_TAGM")->cd();
238 hPSTAGM_tdiffVsEdiff =
new TH2F(
"PSTAGM_tdiffVsEdiff",
"PS pair - TAGM: PS-TAGM time difference vs. PS-TAGM energy difference;E(PS) - E(TAGM) [GeV];PSC/TAGM time difference [ns]",NEdb,Edbl,Edbh,NTb_TAG,Tbl_TAG,Tbh_TAG);
240 hPSTAGM_Etagm =
new TH1F(
"PSTAGM_Etagm",
"PS pair - TAGM: TAGM photon energy;TAGM photon energy [GeV];events",NEb_PS,Ebl_PS,Ebh_PS);
241 hPSTAGM_timeVsEtagm =
new TH2F(
"PSTAGM_timeVsEtagm",
"PS pair - TAGM: TAGM time vs. photon energy;TAGM photon energy [GeV];time [ns]",NEb_PS,Ebl_PS,Ebh_PS,NTb_TAG,Tbl_TAG,Tbh_TAG);
242 hPSTAGM_EVsEtagm =
new TH2I(
"PSTAGM_EVsEtagm",
"PS pair - TAGM: PS energy vs. TAGM energy;TAGM energy [GeV];PS energy [GeV]",NEb_PS,Ebl_PS,Ebh_PS,NEb_PS,Ebl_PS,Ebh_PS);
243 hPSTAGM_EdiffVsEtagm =
new TH2I(
"PSTAGM_EdiffVsEtagm",
"PS pair - TAGM: PS-TAGM energy difference vs. TAGM energy;TAGM energy [GeV];E(PS) - E(TAGM) [GeV]",NEb_PS,Ebl_PS,Ebh_PS,NEdb,Edbl,Edbh);
244 hPSTAGM_EdiffVsTAGMColumn =
new TH2I(
"PSTAGM_EdiffVsTAGMColumn",
"PS pair - TAGM: PS-TAGM energy difference vs. TAGM column;TAGM column;E(PS) - E(TAGM) [GeV]",
NC_TAGM,0.5,0.5+
NC_TAGM,NEdb,Edbl,Edbh);
245 hPSTAGM_PSCIDLeftVsIDRight =
new TH2F(
"PSTAGM_PSCIDLeftVsIDRight",
"PS pair - TAGM: Coarse PS ID left arm vs. ID right arm;module(right arm);module(left arm)",NC_PSC,0.5,0.5+NC_PSC,NC_PSC,0.5,0.5+NC_PSC);
247 hPSTAGM_ElVsEr =
new TH2F(
"PSTAGM_ElVsEr",
"PS pair - TAGM: left-arm energy vs. right-arm energy;energy(right arm) [GeV];energy(left arm) [GeV]",NEb_PSarm,Ebl_PSarm,Ebh_PSarm,NEb_PSarm,Ebl_PSarm,Ebh_PSarm);
248 hPSTAGM_E =
new TH1F(
"PSTAGM_E",
"PS pair - TAGM: PS pair energy;PS pair energy [GeV];events",NEb_PS,Ebl_PS,Ebh_PS);
249 hPSTAGM_timeVsE =
new TH2F(
"PSTAGM_timeVsE",
"PSC/TAGM time difference vs. PS pair energy;PS pair energy [GeV];PSC/TAGM time difference [ns]",NEb_PS,Ebl_PS,Ebh_PS,NTb_TAG,Tbl_TAG,Tbh_TAG);
250 gDirectory->mkdir(
"PSTAGMTimeOffsets_L")->cd();
251 for (
int i=0; i<
NC_PSC; i++) {
252 stringstream ss; ss << i+1;
253 TString
id = ss.str();
254 hPSTAGM_tdiffVsTAGMColumn_L[i] =
new TH2I(
"PSTAGM_tdiffVsTAGMColumn_L"+
id,
"PS-TAGM TDC time difference vs. TAGM column, fixed left arm PSC module "+
id+
";TAGM column;time(PSC module "+
id+
", left arm) - time(TAGM) [ns]",
NC_TAGM,0.5,0.5+
NC_TAGM,NTb_TAG,Tbl_TAG,Tbh_TAG);
256 gDirectory->cd(
"../");
257 gDirectory->mkdir(
"PSTAGMTimeOffsets_R")->cd();
258 for (
int i=0; i<
NC_PSC; i++) {
259 stringstream ss; ss << i+1;
260 TString
id = ss.str();
261 hPSTAGM_tdiffVsTAGMColumn_R[i] =
new TH2I(
"PSTAGM_tdiffVsTAGMColumn_R"+
id,
"PS-TAGM TDC time difference vs. TAGM column, fixed right arm PSC module "+
id+
";TAGM column;time(PSC module "+
id+
", right arm) - time(TAGM) [ns]",
NC_TAGM,0.5,0.5+
NC_TAGM,NTb_TAG,Tbl_TAG,Tbh_TAG);
265 gDirectory->mkdir(
"PSC_PS_TPOL")->cd();
266 hPSTPOL_NHits =
new TH1I(
"PSTPOL_NHits",
"TPOL hit multiplicity;hits;events",5,0.5,5.5);
268 hPSTPOL_phi =
new TH1F(
"PSTPOL_phi",
"TPOL azimuthal angle;triplet azimuthal angle [degrees];hits / sector",
NS_TPOL,0.0,360.0);
269 hPSTPOL_peak =
new TH1I(
"PSTPOL_peak",
"TPOL fADC pulse peak;pulse peak;hits",410,0.0,4100.0);
271 hPSTPOL_time =
new TH1I(
"PSTPOL_time",
"TPOL time;time [ns];hits / 2 ns",400,-400.0,400.0);
273 hPSTPOL_timeVsPhi =
new TH2F(
"PSTPOL_timeVsPhi",
"TPOL time vs. phi;#phi [degrees];time [ns]",
NS_TPOL,0.0,360.0,400,-400.0,400.0);
274 hPSTPOL_timeVsPeak =
new TH2I(
"PSTPOL_timeVsPeak",
"TPOL time vs. peak;pulse peak;time [ns]",410,0.0,4100.0,400,-400.0,400.0);
288 vector<const DPSGeometry*> psGeomVect;
289 eventLoop->Get(psGeomVect);
290 if (psGeomVect.size() == 0)
return OBJECT_NOT_AVAILABLE;
294 double wl_min=0.05,wr_min = 0.05;
295 for (
int i=0;i<
NC_PS;i++) {
296 Elows_PSarm[0][i] = psGeom.
getElow(0,i+1);
297 Elows_PSarm[1][i] = psGeom.
getElow(1,i+1);
301 if (wl<wl_min) wl_min = wl;
302 if (wr<wr_min) wr_min = wr;
308 double Ebw_PS = wl_min + wr_min;
311 double range = fabs(Ebh_PS-Ebl_PS);
312 int NEb_PS = range/Ebw_PS-int(range/Ebw_PS) < 0.5 ? int(range/Ebw_PS) : int(range/Ebw_PS) + 1;
313 double Elows_PS[NEb_PS+1];
314 for (
int i=0;i<NEb_PS+1;i++) {
315 Elows_PS[i] = Ebl_PS + i*
Ebw_PS;
318 vector<const DTAGHGeometry*> taghGeomVect;
319 eventLoop->Get(taghGeomVect);
320 if (taghGeomVect.size() == 0)
return OBJECT_NOT_AVAILABLE;
325 Elows_TAGH[i] = taghGeom.
getElow(NC_TAGH-i);
330 vector<const DTAGMGeometry*> tagmGeomVect;
331 eventLoop->Get(tagmGeomVect);
332 if (tagmGeomVect.size() < 1)
333 return OBJECT_NOT_AVAILABLE;
338 Elows_TAGM[i] = tagmGeom.
getElow(NC_TAGM-i);
343 const int NEdiff = 200;
344 double EdiffLows[NEdiff+1];
345 for (
int i=0;i<NEdiff+1;i++) {
346 EdiffLows[i] = -1.0 + i*0.01;
349 for (
int i=0;i<=
NC_PSC;i++) {
352 const int NTb = 2000;
354 for (
int i=0;i<=NTb;i++) {
355 Tlows[i] = -400.0+i*0.4;
357 const int NTb_PS = 200;
358 double Tlows_PS[NTb_PS+1];
359 for (
int i=0;i<=NTb_PS;i++) {
360 Tlows_PS[i] = -10.0+i*0.1;
364 japp->RootFillLock(
this);
368 if (
hPS_ElVsEr->GetEntries()==0)
hPS_ElVsEr->SetBins(NC_PS,Elows_PSarm[1],NC_PS,Elows_PSarm[0]);
373 if (
hPS_E->GetEntries()==0)
hPS_E->SetBins(NEb_PS,Elows_PS);
396 japp->RootFillUnLock(
this);
413 vector<const DPSCPair*> cpairs;
416 vector<const DPSPair*> fpairs;
419 vector<const DTAGHHit*> taghhits;
421 vector<const DTAGMHit*> tagmhits;
424 vector<const DTPOLHit*> tpolhits;
429 japp->RootFillLock(
this);
434 if (cpairs.size()>=1) {
436 const DPSCHit* clhit = cpairs[0]->ee.first;
437 const DPSCHit* crhit = cpairs[0]->ee.second;
439 double PSC_tdiff = clhit->
t-crhit->
t;
443 if (fpairs.size()>=1) {
448 double E_pair = flhit->
E+frhit->
E;
451 double PS_Ediff = flhit->
E-frhit->
E;
452 double PS_tdiff = flhit->
t-frhit->
t;
465 double EdiffMax = 0.3;
466 for (
unsigned int i=0; i < taghhits.size(); i++) {
472 double Ediff = E_pair-tag->
E;
474 if (fabs(Ediff) > EdiffMax)
continue;
490 for (
unsigned int i=0; i < tagmhits.size(); i++) {
493 if (tag->
row!=0)
continue;
497 double Ediff = E_pair-tag->
E;
499 if (fabs(Ediff) > EdiffMax)
continue;
515 if (fabs(PS_Ediff) > 1.75) {
japp->RootFillUnLock(
this);
return NOERROR;}
516 if (fabs(PSC_tdiff) > 1.3) {
japp->RootFillUnLock(
this);
return NOERROR;}
517 if (E_pair < 8.4 || E_pair > 9.0) {
japp->RootFillUnLock(
this);
return NOERROR;}
518 double ph_cut = 100.0;
520 for(
unsigned int i=0; i<tpolhits.size(); i++) {
521 if (tpolhits[i]->pulse_peak>=ph_cut) N_TPOL++;
524 if (N_TPOL>1) {
japp->RootFillUnLock(
this);
return NOERROR;}
525 for(
unsigned int i=0; i<tpolhits.size(); i++) {
540 japp->RootFillUnLock(
this);
static TH2F * hPSTAGH_timeVsEtagh
jerror_t init(void)
Called once at program start.
double getElow(unsigned int counter) const
static TH2I * hPSTAGH_tdiffVsTAGHCounterID_L[NC_PSC]
static TH2F * hPSTAGM_tdiffVsEdiff
static TH2I * hPSC_tdiffVsPSCIDRight[NC_PSC]
static TH2F * hPS_PStdiffVsE
static TH2I * hPSTAGH_EVsEtagh
static const int NUM_ARMS
~JEventProcessor_PSPair_online()
static TH1I * hPSTPOL_peak
static TH1I * hPSTPOL_NHits
static TH2F * hPSTAGH_tdiffVsEdiff
static TH2F * hPSC_PSCIDLeftVsIDRight
static TH1I * hPSTPOL_sector
static TH2F * hPS_timeVsEtagm
static TH2F * hPS_timeVsEtagh
static TH2F * hPSTPOL_timeVsPhi
static TH1I * hPSTPOL_time
static TH1I * hPSC_NHitPairs
static TH2F * hPSTAGH_PSCIDLeftVsIDRight
static TH2F * hPSTAGM_timeVsE
static TH2F * hPSTAGH_PSIDLeftVsIDRight
static TH2F * hPS_tdiffVsE
static TH2F * hPSTAGH_timeVsE
static TH1F * hPSTAGM_Etagm
double getEhigh(int arm, int column) const
static TH2I * hPSC_tdiffVsPSCIDLeft[NC_PSC]
static TH2F * hPSTAGM_PSCIDLeftVsIDRight
static TH2F * hPSTAGH_ElVsEr
double getEhigh(unsigned int column) const
static TH2I * hPSTAGM_tdiffVsTAGMColumn_R[NC_PSC]
static TH1F * hPS_TAGMColumn
static TH2I * hPSTAGH_EdiffVsEtagh
static TH1F * hPSTAGH_TAGHCounterID
static TH1F * hPSTAGM_TAGMColumn
static TH1I * pspair_num_events
static TH1I * hPS_NHitPairs
static TH2F * hPS_PSIDLeftVsIDRight
static TH2I * hPSTAGM_EdiffVsTAGMColumn
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 const int NUM_COARSE_COLUMNS
double getElow(unsigned int column) const
static TH1F * hPSTAGH_Etagh
static TH2I * hPSTAGH_EdiffVsTAGHCounterID
static TH2I * hPSTPOL_timeVsSector
static TH2I * hPS_PSIDLeftVsPSCIDLeft
static TH2F * hPSTAGM_ElVsEr
double getEhigh(unsigned int counter) const
JEventProcessor_PSPair_online()
static TH2F * hPS_PSCIDLeftVsIDRight
static TH2F * hPSTAGM_PSIDLeftVsIDRight
static TH2F * hPS_PSCPStdiffVsE
static TH2I * hPS_PSIDRightVsPSCIDRight
static TH2F * hPSTAGM_timeVsEtagm
static TH1F * hPS_TAGHCounterID
static TH2I * hPSTAGM_EVsEtagm
jerror_t erun(void)
Called everytime run number changes, provided brun has been called.
static TH2I * hPSTAGH_tdiffVsTAGHCounterID_R[NC_PSC]
static const unsigned int kColumnCount
jerror_t evnt(jana::JEventLoop *eventLoop, uint64_t eventnumber)
Called every event.
static TH2I * hPS_ElVsPSCIDLeft
static TH1F * hPSTPOL_phi
static TH2I * hPSTAGM_tdiffVsTAGMColumn_L[NC_PSC]
static const int NUM_FINE_COLUMNS
static const unsigned int kCounterCount
static TH2I * hPS_ErVsPSCIDRight
static TH2I * hPSTPOL_timeVsPeak
static TH2I * hPSTAGM_EdiffVsEtagm
double getElow(int arm, int column) const
static TH2I * hPSTPOL_peakVsSector
static const int NSECTORS