Skip to content
Snippets Groups Projects
Commit e57d0611 authored by Hall C Online Analyzer User's avatar Hall C Online Analyzer User Committed by Eric Pooser
Browse files

Spring 2018 ver3 (#362)

* Include Dipangkar ep coin work

* Add coincidence scaler infrastructure

* Move EDTM cuts to decode block

* General updates
parent d15407b5
No related branches found
No related tags found
No related merge requests found
Showing
with 1113 additions and 23 deletions
0-99999
g_ctp_parm_filename ="DBASE/COIN/GEN/general.param"
g_ctp_kinematics_filename ="DBASE/COIN/STD/ep.kinematics"
g_ctp_calib_filename ="DBASE/COIN/GEN/default_det_calib_files.param"
#
# Need to set htheta_lab to a NEGATIVE value
# Need to set ptheta_lab to a POSITIVE value
# 1H gtargmass_amu = 1.00794
# 12C gtargmass_amu = 12.0107
# 27Al gtargmass_amu = 26.98
#
0-99999
gpbeam = 6.4
gtargmass_amu=12.0107
htheta_lab = -15.
ptheta_lab = 15.
hpcentral = 3.
ppcentral = 3.
hpartmass = 0.00051099
ppartmass = 0.00051099
1711-1721
gpbeam=2.221
hpartmass = 0.938272
ppartmass = 0.00051099
1722
gpbeam=2.221
hpartmass = 0.00051099
ppartmass = 0.938272
1711-1712
hpcentral = 0.957
ppcentral = 1.816
htheta_lab = -53.33
ptheta_lab = 25.01
1711
gtargmass_amu = 1.00794
1712
gtargmass_amu = 26.98
1713-1716
hpcentral = 1.136
ppcentral = 1.816
htheta_lab = -47.9
ptheta_lab = 30.0
1713
gtargmass_amu = 1.00794
1714-1715
gtargmass_amu = 26.98
1716
gtargmass_amu = 1.00794
1717-1718
hpcentral = 1.136
ppcentral = 1.686
htheta_lab = -47.9
ptheta_lab = 30.0
1717
gtargmass_amu = 26.98
1718
gtargmass_amu = 1.00794
1719-1720
hpcentral = 1.136
ppcentral = 1.555
htheta_lab = -47.9
ptheta_lab = 30.0
1719
gtargmass_amu = 1.00794
1720
gtargmass_amu = 26.98
1721-1722
hpcentral = 0.936
ppcentral = 2.012
htheta_lab = -65.1
ptheta_lab = 25.0
1721
gtargmass_amu = 26.98
1722
gtargmass_amu = 1.00794
1851-1867
gpbeam=6.405
hpartmass = 0.938272
ppartmass = 0.00051099
gtargmass_amu=1.00794
htheta_lab = -27.5
ptheta_lab = 27.5
hpcentral = 3.609
ppcentral = 3.609
1869-9999
gpbeam=6.405
ppartmass = 0.938272
hpartmass = 0.00051099
gtargmass_amu=1.00794
htheta_lab = -27.5
ptheta_lab = 27.5
hpcentral = 3.609
ppcentral = 3.609
...@@ -84,12 +84,32 @@ gtargmass_amu = 26.98 ...@@ -84,12 +84,32 @@ gtargmass_amu = 26.98
1722 1722
gtargmass_amu = 1.00794 gtargmass_amu = 1.00794
1851-1855 1851-1867
gpbeam = 6.405 gpbeam = 6.405
gtargmass_amu = 1.00794 gtargmass_amu = 1.00794
htheta_lab = -27.5 htheta_lab = -27.5
ptheta_lab = 27.6 ptheta_lab = 27.6
hpcentral = 3.609 hpcentral = 3.609
ppcentral = 3.609 ppcentral = 3.609*0.985
hpartmass = 0.93827231
ppartmass = 0.00051099
1884-1892
gpbeam = 6.405
gtargmass_amu = 1.00794
htheta_lab = -20.0
ptheta_lab = 20.0
hpcentral = 3.609
ppcentral = 2.5*0.985
ppartmass = 0.93827231
hpartmass = 0.00051099
1893-1910
gpbeam = 6.405
gtargmass_amu = 1.00794
htheta_lab = -27.54
ptheta_lab = 27.50
hpcentral = 3.609
ppcentral = 3.609*0.985
hpartmass = 0.93827231 hpartmass = 0.93827231
ppartmass = 0.00051099 ppartmass = 0.00051099
block T.coin.*
begin epics
IBC3H00CRCUR4
hac_bcm_average
ibcm1
ibcm2
iunser
itov3out
itov4out
end epics
block T.coin.hTRIG*
block T.coin.pTRIG*
block H.cer.npe*
block H.cal.e*
block H.hod.*time
block H.hod.*Time
block H.gtr.*
block H.kin.*
block P.hgcer.npe*
block P.cal.e*
block P.hod.*time
block P.hod.*Time
block P.gtr.*
block P.kin.*
begin epics
IBC3H00CRCUR4
hac_bcm_average
ibcm1
ibcm2
iunser
itov3out
itov4out
end epics
#include "DEF-files/COIN/PRODUCTION/GTR/coin_gtr_histos.def"
#include "DEF-files/COIN/PRODUCTION/KIN/coin_pElec_hProt_kin_histos.def"
#include "DEF-files/COIN/PRODUCTION/TRIG/coin_trig_histos.def"
#include "DEF-files/HMS/PRODUCTION/hstackana_production_cuts.def"
#include "DEF-files/SHMS/PRODUCTION/pstackana_production_cuts.def"
Block: RawDecode
Pedestal_event g.evtyp == 99
SHMS_event g.evtyp == 1
HMS_event g.evtyp == 2
BOTH_SINGLES_event g.evtyp == 3
COIN_ONLY_event g.evtyp == 4
SHMS_COIN_event g.evtyp == 5
HMS_COIN_event g.evtyp == 6
COIN_ALL_event g.evtyp == 7
ALL_events SHMS_event || HMS_event || BOTH_SINGLES_event || COIN_ONLY_event || COIN_ALL_event
RawDecode_master ALL_events
Block: Decode
goodctime ALL_events #LOOSE CUT AROUND COINTIME PEAK (3 beam buckets)
tightctime ALL_events #TIGHT CUT AROUND COINTIME PEAK (1 beam buckets)
ranctime ALL_events #CUT AWAY FROM COINTIME PEAK (4 beam buckets)
Decode_master ALL_events
Block: CoarseTracking
CoarseTracking_master ALL_events
Block: CoarseReconstruct
CoarseReconstruct_master ALL_events
Block: Tracking
Tracking_master ALL_events
Block: Reconstruct
Reconstruct_master ALL_events
hcleantrack H.gtr.index > -1
pcleantrack P.gtr.index > -1
ccleantrack hcleantrack && pcleantrack
coincut ccleantrack && goodctime
tight_coin ccleantrack && tightctime
ran_coincut ccleantrack && ranctime
e_cut_cal P.cal.etottracknorm > 0.6 && P.cal.etottracknorm < 2.0
e_cut_cer P.hgcer.npeSum > 5.0 && P.ngcer.npeSum > 15.0
select_e_cut e_cut_cal && e_cut_cer
betacut_proton H.gtr.beta > 0.6 && H.gtr.beta < 0.8
coincut_ep ccleantrack && select_e_cut && betacut_proton
block T.coin.* block T.coin.hTRIG*
block T.coin.pTRIG*
block H.cer.* block H.cer.*
block H.dc.* block H.dc.*
......
# Report file for SHMS stack
Block: RawDecode
Pedestal_event g.evtyp == 99
SHMS_event g.evtyp == 1
HMS_event g.evtyp == 2
COIN_event g.evtyp >= 4&&g.evtyp<8
SHMS_Pretrig pTRIG1_ROC2 || pTRIG2_ROC2 || pTRIG3_ROC2
HMS_Pretrig pTRIG4_ROC2
COIN_Pretrig pTRIG6_ROC2
RawDecode_master 1
Block: Decode
pTRIG1_ROC2 T.coin.pTRIG1_ROC2_tdcTimeRaw > 0
pTRIG2_ROC2 T.coin.pTRIG2_ROC2_tdcTimeRaw > 0
pTRIG3_ROC2 T.coin.pTRIG3_ROC2_tdcTimeRaw > 0
pTRIG4_ROC2 T.coin.pTRIG4_ROC2_tdcTimeRaw > 0
pTRIG5_ROC2 T.coin.pTRIG5_ROC2_tdcTimeRaw > 0
pTRIG6_ROC2 T.coin.pTRIG6_ROC2_tdcTimeRaw > 0
pTRIG1_ROC1 T.coin.pTRIG1_ROC1_tdcTimeRaw > 0
pTRIG2_ROC1 T.coin.pTRIG2_ROC1_tdcTimeRaw > 0
pTRIG3_ROC1 T.coin.pTRIG3_ROC1_tdcTimeRaw > 0
pTRIG4_ROC1 T.coin.pTRIG4_ROC1_tdcTimeRaw > 0
pTRIG5_ROC1 T.coin.pTRIG5_ROC1_tdcTimeRaw > 0
pTRIG6_ROC1 T.coin.pTRIG6_ROC1_tdcTimeRaw > 0
shms_trigs SHMS_event
SHMS_edtm_accepted T.coin.pEDTM_tdcTime != 0.0
SHMS_physics_accepted T.coin.pEDTM_tdcTime == 0.0
HMS_edtm_accepted T.coin.hEDTM_tdcTime != 0.0
HMS_physics_accepted T.coin.hEDTM_tdcTime == 0.0
Decode_master 1
Block: CoarseTracking
CoarseTracking_master 1
Block: CoarseReconstruct
CoarseReconstruct_master 1
Block: Tracking
Tracking_master 1
Block: Reconstruct
Reconstruct_master 1
Block: Physics
Physics_master 1
\ No newline at end of file
...@@ -12,6 +12,10 @@ HMS_COIN_event g.evtyp == 6 ...@@ -12,6 +12,10 @@ HMS_COIN_event g.evtyp == 6
COIN_ALL_event g.evtyp == 7 COIN_ALL_event g.evtyp == 7
ALL_events SHMS_event || HMS_event || BOTH_SINGLES_event || COIN_ONLY_event || COIN_ALL_event ALL_events SHMS_event || HMS_event || BOTH_SINGLES_event || COIN_ONLY_event || COIN_ALL_event
RawDecode_master 1
Block: Decode
hcut_TRIG1 T.hms.hTRIG1_tdcTimeRaw > 0 hcut_TRIG1 T.hms.hTRIG1_tdcTimeRaw > 0
hcut_TRIG2 T.hms.hTRIG2_tdcTimeRaw > 0 hcut_TRIG2 T.hms.hTRIG2_tdcTimeRaw > 0
hcut_TRIG3 T.hms.hTRIG3_tdcTimeRaw > 0 hcut_TRIG3 T.hms.hTRIG3_tdcTimeRaw > 0
...@@ -21,10 +25,6 @@ hms_trigs HMS_event ...@@ -21,10 +25,6 @@ hms_trigs HMS_event
hcut_edtm_accepted T.hms.hEDTM_tdcTime != 0.0 hcut_edtm_accepted T.hms.hEDTM_tdcTime != 0.0
hcut_physics_accepted T.hms.hEDTM_tdcTime == 0.0 hcut_physics_accepted T.hms.hEDTM_tdcTime == 0.0
RawDecode_master 1
Block: Decode
Decode_master ALL_events Decode_master ALL_events
Block: CoarseTracking Block: CoarseTracking
......
...@@ -7,6 +7,12 @@ HMS_event g.evtyp == 2 ...@@ -7,6 +7,12 @@ HMS_event g.evtyp == 2
SHMS_event g.evtyp == 1 SHMS_event g.evtyp == 1
COIN_event g.evtyp == 4 COIN_event g.evtyp == 4
RawDecode_master 1
Block: Decode
Decode_master HMS_event
TRIG1 T.hms.hTRIG1_tdcTimeRaw > 0 TRIG1 T.hms.hTRIG1_tdcTimeRaw > 0
TRIG2 T.hms.hTRIG2_tdcTimeRaw > 0 TRIG2 T.hms.hTRIG2_tdcTimeRaw > 0
TRIG3 T.hms.hTRIG3_tdcTimeRaw > 0 TRIG3 T.hms.hTRIG3_tdcTimeRaw > 0
...@@ -16,12 +22,6 @@ hms_trigs HMS_event ...@@ -16,12 +22,6 @@ hms_trigs HMS_event
edtm_accepted T.hms.hEDTM_tdcTime != 0.0 edtm_accepted T.hms.hEDTM_tdcTime != 0.0
physics_accepted T.hms.hEDTM_tdcTime == 0.0 physics_accepted T.hms.hEDTM_tdcTime == 0.0
RawDecode_master 1
Block: Decode
Decode_master HMS_event
Block: CoarseTracking Block: CoarseTracking
CoarseTracking_master HMS_event CoarseTracking_master HMS_event
......
...@@ -12,6 +12,10 @@ HMS_COIN_event g.evtyp == 6 ...@@ -12,6 +12,10 @@ HMS_COIN_event g.evtyp == 6
COIN_ALL_event g.evtyp == 7 COIN_ALL_event g.evtyp == 7
ALL_events SHMS_event || HMS_event || BOTH_SINGLES_event || COIN_ONLY_event || COIN_ALL_event ALL_events SHMS_event || HMS_event || BOTH_SINGLES_event || COIN_ONLY_event || COIN_ALL_event
RawDecode_master 1
Block: Decode
pcut_TRIG1 T.shms.pTRIG1_tdcTimeRaw > 0 pcut_TRIG1 T.shms.pTRIG1_tdcTimeRaw > 0
pcut_TRIG2 T.shms.pTRIG2_tdcTimeRaw > 0 pcut_TRIG2 T.shms.pTRIG2_tdcTimeRaw > 0
pcut_TRIG3 T.shms.pTRIG3_tdcTimeRaw > 0 pcut_TRIG3 T.shms.pTRIG3_tdcTimeRaw > 0
...@@ -21,10 +25,6 @@ shms_trigs SHMS_event ...@@ -21,10 +25,6 @@ shms_trigs SHMS_event
pcut_edtm_accepted T.shms.pEDTM_tdcTime != 0.0 pcut_edtm_accepted T.shms.pEDTM_tdcTime != 0.0
pcut_physics_accepted T.shms.pEDTM_tdcTime == 0.0 pcut_physics_accepted T.shms.pEDTM_tdcTime == 0.0
RawDecode_master 1
Block: Decode
pcut_good_S1_time T.shms.p1T_tdcTime > 241 && T.shms.p1T_tdcTime < 243 pcut_good_S1_time T.shms.p1T_tdcTime > 241 && T.shms.p1T_tdcTime < 243
pcut_good_S2X_time T.shms.p2X_tdcTime > 180 && T.shms.p2X_tdcTime < 220 pcut_good_S2X_time T.shms.p2X_tdcTime > 180 && T.shms.p2X_tdcTime < 220
pcut_good_S1_S2X_time pcut_good_S1_time && pcut_good_S2X_time pcut_good_S1_S2X_time pcut_good_S1_time && pcut_good_S2X_time
......
...@@ -7,6 +7,10 @@ SHMS_event g.evtyp == 1 ...@@ -7,6 +7,10 @@ SHMS_event g.evtyp == 1
HMS_event g.evtyp == 2 HMS_event g.evtyp == 2
COIN_event g.evtyp == 4 COIN_event g.evtyp == 4
RawDecode_master 1
Block: Decode
TRIG1 T.shms.pTRIG1_tdcTimeRaw > 0 TRIG1 T.shms.pTRIG1_tdcTimeRaw > 0
TRIG2 T.shms.pTRIG2_tdcTimeRaw > 0 TRIG2 T.shms.pTRIG2_tdcTimeRaw > 0
TRIG3 T.shms.pTRIG3_tdcTimeRaw > 0 TRIG3 T.shms.pTRIG3_tdcTimeRaw > 0
...@@ -16,10 +20,6 @@ shms_trigs SHMS_event ...@@ -16,10 +20,6 @@ shms_trigs SHMS_event
edtm_accepted T.shms.pEDTM_tdcTime != 0.0 edtm_accepted T.shms.pEDTM_tdcTime != 0.0
physics_accepted T.shms.pEDTM_tdcTime == 0.0 physics_accepted T.shms.pEDTM_tdcTime == 0.0
RawDecode_master 1
Block: Decode
Decode_master SHMS_event Decode_master SHMS_event
Block: CoarseTracking Block: CoarseTracking
......
void replay_production_ep (Int_t RunNumber = 0, Int_t MaxEvent = 0) {
// Get RunNumber and MaxEvent if not provided.
if(RunNumber == 0) {
cout << "Enter a Run Number (-1 to exit): ";
cin >> RunNumber;
if( RunNumber<=0 ) return;
}
if(MaxEvent == 0) {
cout << "\nNumber of Events to analyze: ";
cin >> MaxEvent;
if(MaxEvent == 0) {
cerr << "...Invalid entry\n";
exit;
}
}
// Create file name patterns.
const char* RunFileNamePattern = "coin_all_%05d.dat";
vector<TString> pathList;
pathList.push_back(".");
pathList.push_back("./raw");
pathList.push_back("./raw/../raw.copiedtotape");
pathList.push_back("./cache");
//const char* RunFileNamePattern = "raw/coin_all_%05d.dat";
const char* ROOTFileNamePattern = "ROOTfiles/ep_%d.root";
// Load global parameters
// Add variables to global list.
gHcParms->Define("gen_run_number", "Run Number", RunNumber);
gHcParms->AddString("g_ctp_database_filename", "DBASE/COIN/STD/ep.database");
// Load varibles from files to global list.
gHcParms->Load(gHcParms->GetString("g_ctp_database_filename"), RunNumber);
// g_ctp_parm_filename and g_decode_map_filename should now be defined.
gHcParms->Load(gHcParms->GetString("g_ctp_kinematics_filename"), RunNumber);
gHcParms->Load(gHcParms->GetString("g_ctp_parm_filename"));
gHcParms->Load(gHcParms->GetString("g_ctp_calib_filename"));
// Load params for SHMS trigger configuration
gHcParms->Load("PARAM/TRIG/tcoin.param");
// Load the Hall C detector map
gHcDetectorMap = new THcDetectorMap();
gHcDetectorMap->Load("MAPS/COIN/DETEC/coin.map");
gHcParms->Load("PARAM/SHMS/GEN/p_fadc_debug.param");
gHcParms->Load("PARAM/HMS/GEN/h_fadc_debug.param");
//=:=:=:=
// SHMS
//=:=:=:=
// Set up the equipment to be analyzed.
THcHallCSpectrometer* SHMS = new THcHallCSpectrometer("P", "SHMS");
SHMS->SetEvtType(1);
SHMS->AddEvtType(4);
SHMS->AddEvtType(5);
SHMS->AddEvtType(6);
SHMS->AddEvtType(7);
gHaApps->Add(SHMS);
// Add Noble Gas Cherenkov to SHMS apparatus
THcCherenkov* pngcer = new THcCherenkov("ngcer", "Noble Gas Cherenkov");
SHMS->AddDetector(pngcer);
// Add drift chambers to SHMS apparatus
THcDC* pdc = new THcDC("dc", "Drift Chambers");
SHMS->AddDetector(pdc);
// Add hodoscope to SHMS apparatus
THcHodoscope* phod = new THcHodoscope("hod", "Hodoscope");
SHMS->AddDetector(phod);
// Add Heavy Gas Cherenkov to SHMS apparatus
THcCherenkov* phgcer = new THcCherenkov("hgcer", "Heavy Gas Cherenkov");
SHMS->AddDetector(phgcer);
// Add Aerogel Cherenkov to SHMS apparatus
THcAerogel* paero = new THcAerogel("aero", "Aerogel");
SHMS->AddDetector(paero);
// Add calorimeter to SHMS apparatus
THcShower* pcal = new THcShower("cal", "Calorimeter");
SHMS->AddDetector(pcal);
// Include golden track information
THaGoldenTrack* pgtr = new THaGoldenTrack("P.gtr", "SHMS Golden Track", "P");
gHaPhysics->Add(pgtr);
// Add Rastered Beam Apparatus
THaApparatus* pbeam = new THcRasteredBeam("P.rb", "SHMS Rastered Beamline");
gHaApps->Add(pbeam);
THaReactionPoint* prp= new THaReactionPoint("P.react"," SHMS reaction point","P","P.rb");
gHaPhysics->Add(prp);
THcExtTarCor* pext = new THcExtTarCor("P.extcor"," HMS extended target corrections","P","P.react");
gHaPhysics->Add(pext);
// Add Physics Module to calculate primary (scattered) beam kinematics
THcPrimaryKine* pkin_primary = new THcPrimaryKine("P.kin.primary", "SHMS Single Arm Kinematics", "P", "P.rb");
gHaPhysics->Add(pkin_primary);
THcHodoEff* peff = new THcHodoEff("phodeff"," SHMS hodo efficiency","P.hod");
gHaPhysics->Add(peff);
// Add Physics Module to calculate secondary (scattered) beam kinematics
// THcSecondaryKine* pkin_secondary = new THcSecondaryKine("P.kin.secondary", "SHMS Single Arm Kinematics", "P", "H.kin.primary");
// gHaPhysics->Add(pkin_secondary);
// Add event handler for scaler events
// THcScalerEvtHandler* pscaler = new THcScalerEvtHandler("P", "Hall C scaler event type 1");
//pscaler->AddEvtType(1);
//pscaler->AddEvtType(4);
//pscaler->AddEvtType(5);
//pscaler->AddEvtType(6);
//pscaler->AddEvtType(7);
//pscaler->AddEvtType(129);
//pscaler->SetDelayedType(129);
//pscaler->SetUseFirstEvent(kTRUE);
//gHaEvtHandlers->Add(pscaler);
//=:=:=
// HMS
//=:=:=
// Set up the equipment to be analyzed.
THcHallCSpectrometer* HMS = new THcHallCSpectrometer("H", "HMS");
HMS->SetEvtType(2);
HMS->AddEvtType(4);
HMS->AddEvtType(5);
HMS->AddEvtType(6);
HMS->AddEvtType(7);
gHaApps->Add(HMS);
// Add drift chambers to HMS apparatus
THcDC* hdc = new THcDC("dc", "Drift Chambers");
HMS->AddDetector(hdc);
// Add hodoscope to HMS apparatus
THcHodoscope* hhod = new THcHodoscope("hod", "Hodoscope");
HMS->AddDetector(hhod);
// Add Cherenkov to HMS apparatus
THcCherenkov* hcer = new THcCherenkov("cer", "Heavy Gas Cherenkov");
HMS->AddDetector(hcer);
// Add Aerogel Cherenkov to HMS apparatus
//THcAerogel* aero = new THcAerogel("aero", "Aerogel");
//HMS->AddDetector(aero);
// Add calorimeter to HMS apparatus
THcShower* hcal = new THcShower("cal", "Calorimeter");
HMS->AddDetector(hcal);
// Include golden track information
THaGoldenTrack* hgtr = new THaGoldenTrack("H.gtr", "HMS Golden Track", "H");
gHaPhysics->Add(hgtr);
// Add Rastered Beam Apparatus
THaApparatus* hbeam = new THcRasteredBeam("H.rb", "HMS Rastered Beamline");
gHaApps->Add(hbeam);
THaReactionPoint* hrp= new THaReactionPoint("H.react"," HMS reaction point","H","H.rb");
gHaPhysics->Add(hrp);
THcExtTarCor* hext = new THcExtTarCor("H.extcor"," HMS extended target corrections","H","H.react");
gHaPhysics->Add(hext);
// Add Physics Module to calculate primary (scattered) beam kinematics
// THcPrimaryKine* hkin_primary = new THcPrimaryKine("H.kin.primary", "HMS Single Arm Kinematics", "H", "H.rb");
// gHaPhysics->Add(hkin_primary);
// Add Physics Module to calculate secondary (scattered) beam kinematics
THcSecondaryKine* hkin_secondary = new THcSecondaryKine("H.kin.secondary", "HMS Single Arm Kinematics", "H", "P.kin.primary");
gHaPhysics->Add(hkin_secondary);
THcHodoEff* heff = new THcHodoEff("hhodeff"," HMS hodo efficiency","H.hod");
gHaPhysics->Add(heff);
// Add event handler for scaler events
//THcScalerEvtHandler *hscaler = new THcScalerEvtHandler("H", "Hall C scaler event type 4");
//hscaler->AddEvtType(2);
//hscaler->AddEvtType(4);
//pscaler->AddEvtType(5);
//pscaler->AddEvtType(6);
//pscaler->AddEvtType(7);
//hscaler->AddEvtType(129);
//hscaler->SetDelayedType(129);
//hscaler->SetUseFirstEvent(kTRUE);
//gHaEvtHandlers->Add(hscaler);
//=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
// Global Objects & Event Handlers
//=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
// Add trigger apparatus
THaApparatus* TRG = new THcTrigApp("T", "TRG");
gHaApps->Add(TRG);
// Add trigger detector to trigger apparatus
THcTrigDet* coin = new THcTrigDet("coin", "Coincidence Trigger Information");
// Suppress missing reference time warnings for these event types
coin->SetEvtType(1);
coin->AddEvtType(2);
TRG->AddDetector(coin);
// Add event handler for prestart event 125.
THcConfigEvtHandler* ev125 = new THcConfigEvtHandler("HC", "Config Event type 125");
gHaEvtHandlers->Add(ev125);
// Add event handler for EPICS events
THaEpicsEvtHandler* hcepics = new THaEpicsEvtHandler("epics", "HC EPICS event type 180");
gHaEvtHandlers->Add(hcepics);
// Set up the analyzer - we use the standard one,
// but this could be an experiment-specific one as well.
// The Analyzer controls the reading of the data, executes
// tests/cuts, loops over Acpparatus's and PhysicsModules,
// and executes the output routines.
THcAnalyzer* analyzer = new THcAnalyzer;
// A simple event class to be output to the resulting tree.
// Creating your own descendant of THaEvent is one way of
// defining and controlling the output.
THaEvent* event = new THaEvent;
// Define the run(s) that we want to analyze.
// We just set up one, but this could be many.
THcRun* run = new THcRun( pathList, Form(RunFileNamePattern, RunNumber) );
// Set to read in Hall C run database parameters
run->SetRunParamClass("THcRunParameters");
// Eventually need to learn to skip over, or properly analyze
// the pedestal events
run->SetEventRange(1, MaxEvent); // Physics Event number, does not
// include scaler or control events.
run->SetNscan(1);
run->SetDataRequired(0x7);
run->Print();
// Define the analysis parameters
TString ROOTFileName = Form(ROOTFileNamePattern, RunNumber, MaxEvent);
analyzer->SetCountMode(2); // 0 = counter is # of physics triggers
// 1 = counter is # of all decode reads
// 2 = counter is event number
analyzer->SetEvent(event);
// Set EPICS event type
analyzer->SetEpicsEvtType(180);
// Define crate map
analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat");
// Define output ROOT file
analyzer->SetOutFile(ROOTFileName.Data());
// Define DEF-file+
analyzer->SetOdefFile("DEF-files/COIN/PRODUCTION/coin_production_ep.def");
// Define cuts file
analyzer->SetCutFile("DEF-files/COIN/PRODUCTION/coin_production_ep_cuts.def"); // optional
// File to record accounting information for cuts
analyzer->SetSummaryFile(Form("REPORT_OUTPUT/COIN/PRODUCTION/summary_production_ep_%d.report", RunNumber)); // optional
// Start the actual analysis.
analyzer->Process(run);
// Create report file from template
analyzer->PrintReport("TEMPLATES/COIN/PRODUCTION/coin_production_ep.template",
Form("REPORT_OUTPUT/COIN/PRODUCTION/replay_coin_production_ep_%d.report", RunNumber)); // optional
}
void replay_coin_scalers (Int_t RunNumber = 0, Int_t MaxEvent = 0) {
// Get RunNumber and MaxEvent if not provided.
if(RunNumber == 0) {
cout << "Enter a Run Number (-1 to exit): ";
cin >> RunNumber;
if( RunNumber<=0 ) return;
}
if(MaxEvent == 0) {
cout << "\nNumber of Events to analyze: ";
cin >> MaxEvent;
if(MaxEvent == 0) {
cerr << "...Invalid entry\n";
exit;
}
}
// Create file name patterns.
const char* RunFileNamePattern = "coin_all_%05d.dat";
vector<TString> pathList;
pathList.push_back(".");
pathList.push_back("./raw");
pathList.push_back("./raw/../raw.copiedtotape");
pathList.push_back("./cache");
const char* ROOTFileNamePattern = "ROOTfiles/coin_replay_scalers_%d_%d.root";
// Load global parameters
// Add variables to global list.
gHcParms->Define("gen_run_number", "Run Number", RunNumber);
gHcParms->AddString("g_ctp_database_filename", "DBASE/COIN/STD/standard.database");
// Load varibles from files to global list.
gHcParms->Load(gHcParms->GetString("g_ctp_database_filename"), RunNumber);
// g_ctp_parm_filename and g_decode_map_filename should now be defined.
gHcParms->Load(gHcParms->GetString("g_ctp_kinematics_filename"), RunNumber);
gHcParms->Load(gHcParms->GetString("g_ctp_parm_filename"));
gHcParms->Load(gHcParms->GetString("g_ctp_calib_filename"));
// Load params for SHMS coin configuration
gHcParms->Load("PARAM/TRIG/tcoin.param");
// Load the Hall C detector map
gHcDetectorMap = new THcDetectorMap();
gHcDetectorMap->Load("MAPS/COIN/DETEC/coin.map");
gHcParms->Load("PARAM/SHMS/GEN/p_fadc_debug.param");
gHcParms->Load("PARAM/HMS/GEN/h_fadc_debug.param");
// Add trigger apparatus
THaApparatus* TRG = new THcTrigApp("T", "TRG");
gHaApps->Add(TRG);
// Add trigger detector to trigger apparatus
THcTrigDet* coin = new THcTrigDet("coin", "Coincidence Trigger Information");
// Suppress missing reference time warnings for these event types
coin->SetEvtType(1);
coin->AddEvtType(2);
TRG->AddDetector(coin);
THcHallCSpectrometer* SHMS = new THcHallCSpectrometer("P", "SHMS");
SHMS->SetEvtType(1);
SHMS->AddEvtType(4);
SHMS->AddEvtType(5);
SHMS->AddEvtType(6);
SHMS->AddEvtType(7);
gHaApps->Add(SHMS);
THcHallCSpectrometer* HMS = new THcHallCSpectrometer("H", "HMS");
HMS->SetEvtType(2);
HMS->AddEvtType(4);
HMS->AddEvtType(5);
HMS->AddEvtType(6);
HMS->AddEvtType(7);
gHaApps->Add(HMS);
// Add handler for EPICS events
THaEpicsEvtHandler *hcepics = new THaEpicsEvtHandler("epics", "HC EPICS event type 180");
gHaEvtHandlers->Add(hcepics);
// Add handler for scaler events
THcScalerEvtHandler *pscaler = new THcScalerEvtHandler("P","Hall C scaler event type 1");
pscaler->AddEvtType(1);
pscaler->AddEvtType(2);
pscaler->AddEvtType(4);
pscaler->AddEvtType(5);
pscaler->AddEvtType(6);
pscaler->AddEvtType(7);
pscaler->AddEvtType(129);
pscaler->SetDelayedType(129);
pscaler->SetUseFirstEvent(kTRUE);
gHaEvtHandlers->Add(pscaler);
// Add handler for scaler events
THcScalerEvtHandler *hscaler = new THcScalerEvtHandler("H","Hall C scaler event type 1");
hscaler->AddEvtType(1);
hscaler->AddEvtType(2);
hscaler->AddEvtType(4);
hscaler->AddEvtType(5);
hscaler->AddEvtType(6);
hscaler->AddEvtType(7);
hscaler->AddEvtType(129);
hscaler->SetDelayedType(129);
hscaler->SetUseFirstEvent(kTRUE);
gHaEvtHandlers->Add(hscaler);
// Add event handler for DAQ configuration event
THcConfigEvtHandler *pconfig = new THcConfigEvtHandler("pconfig", "Hall C configuration event handler");
gHaEvtHandlers->Add(pconfig);
// Set up the analyzer - we use the standard one,
// but this could be an experiment-specific one as well.
// The Analyzer controls the reading of the data, executes
// tests/cuts, loops over Acpparatus's and PhysicsModules,
// and executes the output routines.
THcAnalyzer* analyzer = new THcAnalyzer;
// A simple event class to be output to the resulting tree.
// Creating your own descendant of THaEvent is one way of
// defining and controlling the output.
THaEvent* event = new THaEvent;
// Define the run(s) that we want to analyze.
// We just set up one, but this could be many.
THcRun* run = new THcRun( pathList, Form(RunFileNamePattern, RunNumber) );
// Eventually need to learn to skip over, or properly analyze
// the pedestal events
run->SetEventRange(1, MaxEvent); // Physics Event number, does not
// include scaler or control events.
run->SetNscan(1);
run->SetDataRequired(0x7);
run->Print();
// Define the analysis parameters
TString ROOTFileName = Form(ROOTFileNamePattern, RunNumber, MaxEvent);
analyzer->SetCountMode(2); // 0 = counter is # of physics triggers
// 1 = counter is # of all decode reads
// 2 = counter is event number
analyzer->SetEvent(event);
// Set EPICS event type
analyzer->SetEpicsEvtType(180);
// Define crate map
analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat");
// Define output ROOT file
analyzer->SetOutFile(ROOTFileName.Data());
// Define DEF-file
analyzer->SetOdefFile("DEF-files/COIN/EPICS/epics_short.def");
// Define cuts file
analyzer->SetCutFile("DEF-files/COIN/SCALERS/coinscaler_cuts.def"); // optional
// File to record accounting information for cuts
analyzer->SetSummaryFile(Form("REPORT_OUTPUT/COIN/SCALERS/summary_scalers_%d_%d.report", RunNumber, MaxEvent)); // optional
// Start the actual analysis.
analyzer->Process(run);
// Create report file from template
analyzer->PrintReport("TEMPLATES/COIN/SCALERS/coinscalers.template",
Form("REPORT_OUTPUT/COIN/SCALERS/replay_coin_scalers_%d_%d.report", RunNumber, MaxEvent)); // optional
}
Run #: {gen_run_number}
1 MhZ Pulses : {P.1Mhz.scaler}
Run Length : {P.1Mhz.scalerTime:%.3f} sec
***********
* Beamline
***********
BCM1 Current: {P.BCM1.scalerCurrent:%.3f} uA
BCM2 Current: {P.BCM2.scalerCurrent:%.3f} uA
Unser Current: {P.Unser.scalerCurrent:%.3f} uA
With no cuts on BCM{gBCM_Current_threshold_index+1}.
BCM1 Counts: {P.BCM1.scaler} Total Charge: {P.BCM1.scalerCharge:%.3f} uC
BCM2 Counts: {P.BCM2.scaler} Total Charge: {P.BCM2.scalerCharge:%.3f} uC
Unser Counts: {P.Unser.scaler} Total Charge: {P.Unser.scalerCharge:%.3f} uC
Cut on BCM{gBCM_Current_threshold_index+1} current of {gBCM_Current_threshold} uA. Beam over threshold for {P.1Mhz.scalerTimeCut:%.3f}s, or {((P.1Mhz.scalerTimeCut/P.1Mhz.scalerTime)*100.):%.3f}% of total run time.
BCM1 Counts: {P.BCM1.scalerCut} Total Charge: {P.BCM1.scalerChargeCut:%.3f} uC
BCM2 Counts: {P.BCM2.scalerCut} Total Charge: {P.BCM2.scalerChargeCut:%.3f} uC
Unser Counts: {P.Unser.scalerCut} Total Charge: {P.Unser.scalerChargeCut:%.3f} uC
HMS Singles Triggers : {HMS_event.npassed}
SHMS Singles Triggers : {SHMS_event.npassed}
Coincidence Triggers : {COIN_event.npassed}
All triggers : {ALL_events.npassed}
\ No newline at end of file
Run number: {gen_run_number}
**************************
* General Run Information
**************************
Beam energy : {gpbeam}
Target mass (amu) : {gtargmass_amu}
HMS Particle Mass : {hpartmass}
HMS P Central : {hpcentral}
HMS Angle : {htheta_lab}
SHMS Particle Mass : {ppartmass}
SHMS P Central : {ppcentral}
SHMS Angle : {ptheta_lab}
SHMS Run Length : {P.1Mhz.scalerTime:%.3f} sec
HMS Run Length : {H.1Mhz.scalerTime:%.3f} sec
***********
* Beamline
***********
SHMS BCM1 Current: {P.BCM1.scalerCharge/P.1Mhz.scalerTime:%.3f} uA
SHMS BCM2 Current: {P.BCM2.scalerCharge/P.1Mhz.scalerTime:%.3f} uA
SHMS Unser Current: {P.Unser.scalerCharge/P.1Mhz.scalerTime:%.3f} uA
With no cuts on BCM{gBCM_Current_threshold_index+1}.
SHMS BCM1 Total Charge: {P.BCM1.scalerCharge:%.3f} uC
SHMS BCM2 Total Charge: {P.BCM2.scalerCharge:%.3f} uC
SHMS BCM2 Total Charge: {P.Unser.scalerCharge:%.3f} uC
Cut on BCM{gBCM_Current_threshold_index+1} current of {gBCM_Current_threshold} uA. Beam over threshold for {P.1Mhz.scalerTimeCut:%.3f}s, or {((P.1Mhz.scalerTimeCut/P.1Mhz.scalerTime)*100.):%.3f}% of total run time.
SHMS Beam Cut Time (sec) : {P.1Mhz.scalerTimeCut:%.3f}
SHMS Beam Cut BCM1 Total Charge: {P.BCM1.scalerChargeCut:%.3f} uC
SHMS Beam Cut BCM1 Total Charge: {P.BCM2.scalerChargeCut:%.3f} uC
SHMS Beam Cut Total Charge: {P.Unser.scalerChargeCut:%.3f} uC
SHMS Beam Cut BCM1 Current: {P.BCM1.scalerChargeCut/P.1Mhz.scalerTimeCut:%.3f} uA
SHMS Beam Cut BCM2 Current: {P.BCM2.scalerChargeCut/P.1Mhz.scalerTimeCut:%.3f} uA
SHMS Beam Cut Unser Current: {P.Unser.scalerChargeCut/P.1Mhz.scalerTimeCut:%.3f} uA
HMS BCM1 Current: {H.BCM1.scalerCharge/H.1Mhz.scalerTime:%.3f} uA
HMS BCM2 Current: {H.BCM2.scalerCharge/H.1Mhz.scalerTime:%.3f} uA
HMS Unser Current: {H.Unser.scalerCharge/H.1Mhz.scalerTime:%.3f} uA
With no cuts on BCM{gBCM_Current_threshold_index+1}.
HMS BCM1 Counts: {H.BCM1.scaler}
HMS BCM1 Total Charge: {H.BCM1.scalerCharge:%.3f} uC
HMS BCM2 Counts: {H.BCM2.scaler}
HMS BCM2 Total Charge: {H.BCM2.scalerCharge:%.3f} uC
HMS BCM2 Unser Counts: {H.Unser.scaler}
HMS BCM2 Total Charge: {H.Unser.scalerCharge:%.3f} uC
Cut on BCM{gBCM_Current_threshold_index+1} current of {gBCM_Current_threshold} uA. Beam over threshold for {H.1Mhz.scalerTimeCut:%.3f}s, or {((H.1Mhz.scalerTimeCut/H.1Mhz.scalerTime)*100.):%.3f}% of total run time.
HMS Beam Cut BCM1 Counts: {H.BCM1.scalerCut}
HMS Beam Cut BCM1 Total Charge: {H.BCM1.scalerChargeCut:%.3f} uC
HMS Beam Cut BCM2 Counts: {H.BCM2.scalerCut}
HMS Beam Cut BCM1 Total Charge: {H.BCM2.scalerChargeCut:%.3f} uC
HMS Beam Cut Unser Counts: {H.Unser.scalerCut}
HMS Beam Cut Total Charge: {H.Unser.scalerChargeCut:%.3f} uC
HMS Beam Cut BCM1 Current: {H.BCM1.scalerChargeCut/H.1Mhz.scalerTime:%.3f} uA
HMS Beam Cut BCM2 Current: {H.BCM2.scalerChargeCut/H.1Mhz.scalerTime:%.3f} uA
HMS Beam Cut Unser Current: {H.Unser.scalerChargeCut/H.1Mhz.scalerTime:%.3f} uA
********************
* DAQ Configuration
********************
Ps1_factor : {gpconfig_ti_ps_factors[0]}
Ps2_factor : {gpconfig_ti_ps_factors[1]}
Ps3_factor : {gpconfig_ti_ps_factors[2]}
Ps4_factor : {gpconfig_ti_ps_factors[3]}
Ps5_factor : {gpconfig_ti_ps_factors[4]}
Ps6_factor : {gpconfig_ti_ps_factors[5]}
***********
* Triggers
***********
=:=:=:=:=:=:=:
= 3/4 Trigger
=:=:=:=:=:=:=:
Total SHMS 3/4 Triggers : {P.pTRIG1.scaler}
Pre-Scaled SHMS 3/4 Triggers : {(P.pTRIG1.scaler/gpconfig_ti_ps_factors[0]):%.0f}
Estimated SHMS 3/4 Triggers : {P.pTRIG1.scalerRate*(P.1Mhz.scaler/1000000.):%.0f}
SHMS 3/4 Trigger Rate : {P.pTRIG1.scalerRate/1000.:%.3f} kHz
Accepted SHMS Triggers : {pTRIG1_ROC2.npassed}
SHMS Event Types : {SHMS_Pretrig.npassed}
=:=:=:=:=:=:=:=:=:=:=:=:
= Physics 3/4 Triggers
=:=:=:=:=:=:=:=:=:=:=:=:
SHMS Physics 3/4 Triggers : {P.pTRIG1.scaler - P.EDTM.scaler}
SHMS Estimated Physics 3/4 Triggers : {(P.pTRIG1.scalerRate - P.EDTM.scalerRate)*(P.1Mhz.scaler/1000000.):%.0f}
SHMS Physics 3/4 Trigger Rate : {(P.pTRIG1.scalerRate - P.EDTM.scalerRate)/1000.:%.3f} kHz
SHMS Accepted Physics Triggers : {SHMS_physics_accepted.npassed}
=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
= Coin Trigger TDC Data scalers
=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
Coin ROC2 pTRIG1 passed: {pTRIG1_ROC2.npassed}
Coin ROC2 pTRIG2 passed: {pTRIG2_ROC2.npassed}
Coin ROC2 pTRIG3 passed: {pTRIG3_ROC2.npassed}
Coin ROC2 pTRIG4 passed: {pTRIG4_ROC2.npassed}
Coin ROC2 pTRIG5 passed: {pTRIG5_ROC2.npassed}
Coin ROC2 pTRIG6 passed: {pTRIG6_ROC2.npassed}
Coin ROC1 pTRIG1 passed: {pTRIG1_ROC1.npassed}
Coin ROC1 pTRIG2 passed: {pTRIG2_ROC1.npassed}
Coin ROC1 pTRIG3 passed: {pTRIG3_ROC1.npassed}
Coin ROC1 pTRIG4 passed: {pTRIG4_ROC1.npassed}
Coin ROC1 pTRIG5 passed: {pTRIG5_ROC1.npassed}
Coin ROC1 pTRIG6 passed: {pTRIG6_ROC1.npassed}
=:=:=:=:=:=:=:=:=:=:=:
= HMS Trigger Scalers
=:=:=:=:=:=:=:=:=:=:=:
HMS_hEL_LO_LO : {H.hEL_LO_LO.scaler} [ {(H.hEL_LO_LO.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
HMS_hEL_LO : {H.hEL_LO.scaler} [ {(H.hEL_LO.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
HMS_hEL_HI : {H.hEL_HI.scaler} [ {(H.hEL_HI.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
HMS_hEL_REAL : {H.hEL_REAL.scaler} [ {(H.hEL_REAL.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
HMS_hEL_CLEAN : {H.hEL_CLEAN.scaler} [ {(H.hEL_CLEAN.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
HMS_hSTOF : {H.hSTOF.scaler} [ {(H.hSTOF.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
HMS_hTRIG1 : {H.hTRIG1.scaler} [ {(H.hTRIG1.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
HMS_hTRIG2 : {H.hTRIG2.scaler} [ {(H.hTRIG2.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
HMS_hTRIG3 : {H.hTRIG3.scaler} [ {(H.hTRIG3.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
HMS_hTRIG4 : {H.hTRIG4.scaler} [ {(H.hTRIG4.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
HMS_hTRIG5 : {H.hTRIG5.scaler} [ {(H.hTRIG5.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
HMS_hTRIG6 : {H.hTRIG6.scaler} [ {(H.hTRIG6.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
HMS_pTRIG1 : {H.pTRIG1.scaler} [ {(H.pTRIG1.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
HMS_pTRIG2 : {H.pTRIG2.scaler} [ {(H.pTRIG2.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
HMS_pTRIG3 : {H.pTRIG3.scaler} [ {(H.pTRIG3.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
HMS_pTRIG4 : {H.pTRIG4.scaler} [ {(H.pTRIG4.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
HMS_pTRIG5 : {H.pTRIG5.scaler} [ {(H.pTRIG5.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
HMS_pTRIG6 : {H.pTRIG6.scaler} [ {(H.pTRIG6.scaler/H.1Mhz.scalerTime)/1000.:%.3f} kHz ]
=:=:=:=:=:=:=:=:=:=:=:=:
= SHMS Trigger Scalers
=:=:=:=:=:=:=:=:=:=:=:=:
SHMS_pEL_LO_LO : {P.pEL_LO_LO.scaler} [ {(P.pEL_LO_LO.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
SHMS_pEL_LO : {P.pEL_LO.scaler} [ {(P.pEL_LO.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
SHMS_pEL_HI : {P.pEL_HI.scaler} [ {(P.pEL_HI.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
SHMS_pEL_REAL : {P.pEL_REAL.scaler} [ {(P.pEL_REAL.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
SHMS_pEL_CLEAN : {P.pEL_CLEAN.scaler} [ {(P.pEL_CLEAN.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
SHMS_pSTOF : {P.pSTOF.scaler} [ {(P.pSTOF.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
SHMS_pTRIG1 : {P.pTRIG1.scaler} [ {(P.pTRIG1.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
SHMS_pTRIG2 : {P.pTRIG2.scaler} [ {(P.pTRIG2.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
SHMS_pTRIG3 : {P.pTRIG3.scaler} [ {(P.pTRIG3.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
SHMS_pTRIG4 : {P.pTRIG4.scaler} [ {(P.pTRIG4.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
SHMS_pTRIG5 : {P.pTRIG5.scaler} [ {(P.pTRIG5.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
SHMS_pTRIG6 : {P.pTRIG6.scaler} [ {(P.pTRIG6.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
SHMS_hTRIG1 : {P.hTRIG1.scaler} [ {(P.hTRIG1.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
SHMS_hTRIG2 : {P.hTRIG2.scaler} [ {(P.hTRIG2.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
SHMS_hTRIG3 : {P.hTRIG3.scaler} [ {(P.hTRIG3.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
SHMS_hTRIG4 : {P.hTRIG4.scaler} [ {(P.hTRIG4.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
SHMS_hTRIG5 : {P.hTRIG5.scaler} [ {(P.hTRIG5.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
SHMS_hTRIG6 : {P.hTRIG6.scaler} [ {(P.hTRIG6.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
=:=:=:=:
= EDTM
=:=:=:=:
SHMS EDTM Triggers : {P.EDTM.scaler}
SHMS Estimated EDTM Triggers : {P.EDTM.scalerRate*(P.1Mhz.scaler/1000000.):%.0f}
SHMS EDTM Trigger Rate : {P.EDTM.scalerRate/1000.:%.3f} kHz
SHMS Accepted EDTM Triggers : {SHMS_edtm_accepted.npassed}
HMS EDTM Triggers : {H.EDTM.scaler}
HMS Estimated EDTM Triggers : {H.EDTM.scalerRate*(H.1Mhz.scaler/1000000.):%.0f}
HMS EDTM Trigger Rate : {H.EDTM.scalerRate/1000.:%.3f} kHz
HMS Accepted EDTM Triggers : {HMS_edtm_accepted.npassed}
=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
= Live/Dead Time Calculations
=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
ROC2 Pre-Scaled Ps1 ROC2 Computer Live Time : {(pTRIG1_ROC2.npassed / (P.pTRIG1.scaler/gpconfig_ti_ps_factors[0]))*100.0:%3.4f} %
ROC2 Pre-Scaled Ps1 ROC2 Computer Dead Time : {100.0 - (pTRIG1_ROC2.npassed / (P.pTRIG1.scaler/gpconfig_ti_ps_factors[0]))*100.0:%3.4f} %
ROC2 Pre-Scaled Ps2 ROC2 Computer Live Time : {(pTRIG2_ROC2.npassed / (P.pTRIG2.scaler/gpconfig_ti_ps_factors[1]))*100.0:%3.4f} %
ROC2 Pre-Scaled Ps2 ROC2 Computer Dead Time : {100.0 - (pTRIG2_ROC2.npassed / (P.pTRIG2.scaler/gpconfig_ti_ps_factors[1]))*100.0:%3.4f} %
ROC2 Pre-Scaled Ps3 ROC2 Computer Live Time : {(pTRIG3_ROC2.npassed / (P.pTRIG3.scaler/gpconfig_ti_ps_factors[2]))*100.0:%3.4f} %
ROC2 Pre-Scaled Ps3 ROC2 Computer Dead Time : {100.0 - (pTRIG3_ROC2.npassed / (P.pTRIG3.scaler/gpconfig_ti_ps_factors[2]))*100.0:%3.4f} %
ROC2 Pre-Scaled Ps4 ROC2 Computer Live Time : {(pTRIG4_ROC2.npassed / (P.pTRIG4.scaler/gpconfig_ti_ps_factors[3]))*100.0:%3.4f} %
ROC2 Pre-Scaled Ps4 ROC2 Computer Dead Time : {100.0 - (pTRIG4_ROC2.npassed / (P.pTRIG4.scaler/gpconfig_ti_ps_factors[3]))*100.0:%3.4f} %
ROC2 Pre-Scaled Ps6 ROC2 Computer Live Time : {(pTRIG6_ROC2.npassed / (P.pTRIG6.scaler/gpconfig_ti_ps_factors[5]))*100.0:%3.4f} %
ROC2 Pre-Scaled Ps6 ROC2 Computer Dead Time : {100.0 - (pTRIG6_ROC2.npassed / (P.pTRIG6.scaler/gpconfig_ti_ps_factors[5]))*100.0:%3.4f} %
ROC2 Pre-Scaled Ps1 Total Live Time (EDTM) : {(SHMS_edtm_accepted.npassed / (P.EDTM.scaler/gpconfig_ti_ps_factors[0]))*100.0:%3.4f} %
ROC2 Pre-Scaled Ps1 Total Dead Time (EDTM) : {100.0 - (SHMS_edtm_accepted.npassed / (P.EDTM.scaler/gpconfig_ti_ps_factors[0]))*100.0:%3.4f} %
ROC2 Pre-Scaled Ps2 Total Live Time (EDTM) : {(SHMS_edtm_accepted.npassed / (P.EDTM.scaler/gpconfig_ti_ps_factors[1]))*100.0:%3.4f} %
ROC2 Pre-Scaled Ps2 Total Dead Time (EDTM) : {100.0 - (SHMS_edtm_accepted.npassed / (P.EDTM.scaler/gpconfig_ti_ps_factors[1]))*100.0:%3.4f} %
ROC2 Pre-Scaled Ps3 Total Live Time (EDTM) : {(SHMS_edtm_accepted.npassed / (P.EDTM.scaler/gpconfig_ti_ps_factors[2]))*100.0:%3.4f} %
ROC2 Pre-Scaled Ps3 Total Dead Time (EDTM) : {100.0 - (SHMS_edtm_accepted.npassed / (P.EDTM.scaler/gpconfig_ti_ps_factors[2]))*100.0:%3.4f} %
ROC2 Pre-Scaled Ps4 Total Live Time (EDTM) : {(SHMS_edtm_accepted.npassed / (P.EDTM.scaler/gpconfig_ti_ps_factors[3]))*100.0:%3.4f} %
ROC2 Pre-Scaled Ps4 Total Dead Time (EDTM) : {100.0 - (SHMS_edtm_accepted.npassed / (P.EDTM.scaler/gpconfig_ti_ps_factors[3]))*100.0:%3.4f} %
ROC2 Pre-Scaled Ps6 Total Live Time (EDTM) : {(SHMS_edtm_accepted.npassed / (P.EDTM.scaler/gpconfig_ti_ps_factors[5]))*100.0:%3.4f} %
ROC2 Pre-Scaled Ps6 Total Dead Time (EDTM) : {100.0 - (SHMS_edtm_accepted.npassed / (P.EDTM.scaler/gpconfig_ti_ps_factors[5]))*100.0:%3.4f} %
ROC2 OG 6 GeV Electronic Live Time (100, 150) : {100.0 - ((P.pPRE100.scaler - P.pPRE150.scaler)/P.pPRE100.scaler):%3.4f} %
ROC2 OG 6 GeV Electronic Dead Time (100, 150) : {((P.pPRE100.scaler - P.pPRE150.scaler)/P.pPRE100.scaler):%3.4f} %
ROC2 OG 6 GeV Electronic Live Time (100, 200) : {100.0 - ((P.pPRE100.scaler - P.pPRE200.scaler)/P.pPRE100.scaler):%3.4f} %
ROC2 OG 6 GeV Electronic Dead Time (100, 200) : {((P.pPRE100.scaler - P.pPRE200.scaler)/P.pPRE100.scaler):%3.4f} %
ROC2 OG 6 GeV Electronic Live Time (150, 200) : {100.0 - ((P.pPRE150.scaler - P.pPRE200.scaler)/P.pPRE150.scaler):%3.4f} %
ROC2 OG 6 GeV Electronic Dead Time (150, 200) : {((P.pPRE150.scaler - P.pPRE200.scaler)/P.pPRE150.scaler):%3.4f} %
=:=:=:=:=:=:=:=:=:
= SHMS Hodoscopes
=:=:=:=:=:=:=:=:=:
P1X : {P.S1X.scaler} [ {(P.S1X.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ] AND between + and - sides of P1X
P1Y : {P.S1Y.scaler} [ {(P.S1Y.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ] AND between + and - sides of P1Y
P2X : {P.S2X.scaler} [ {(P.S2X.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ] AND between + and - sides of P2X
P2Y : {P.S2Y.scaler} [ {(P.S2Y.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ] AND between + and - sides of P2Y
P1XP1Y : {P.S1XS1Y.scaler} [ {(P.S1XS1Y.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ] AND between P1X and P1Y planes
P2XP2Y : {P.S2XS2Y.scaler} [ {(P.S2XS2Y.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ] AND between P2X and P2Y planes
=:=:=:=:=:=:=:=:=:=:=:=:=
= Aerogel, HGC, NGC, CAL
=:=:=:=:=:=:=:=:=:=:=:=:=
AERO : {P.AERO.scaler} [ {(P.AERO.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ] Aerogel sum currently not available
HGC : {P.HCER.scaler} [ {(P.HCER.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
NGC : {P.NCER.scaler} [ {(P.NCER.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
PRLO : {P.PRLO.scaler} [ {(P.PRLO.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
PRHI : {P.PRHI.scaler} [ {(P.PRHI.scaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
*******************
* Hardware Scalers
*******************
=:=:=:=:=:=:=:
= HODOSCOPES
=:=:=:=:=:=:=:
Scint Counts Rate
P1X1+: {P.hod.1x1.posScaler} [ {(P.hod.1x1.posScalerRate/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1X2+: {P.hod.1x2.posScaler} [ {(P.hod.1x2.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1X3+: {P.hod.1x3.posScaler} [ {(P.hod.1x3.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1X4+: {P.hod.1x4.posScaler} [ {(P.hod.1x4.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1X5+: {P.hod.1x5.posScaler} [ {(P.hod.1x5.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1X6+: {P.hod.1x6.posScaler} [ {(P.hod.1x6.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1X7+: {P.hod.1x7.posScaler} [ {(P.hod.1x7.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1X8+: {P.hod.1x8.posScaler} [ {(P.hod.1x8.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1X9+: {P.hod.1x9.posScaler} [ {(P.hod.1x9.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1X10+: {P.hod.1x10.posScaler} [ {(P.hod.1x10.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1X11+: {P.hod.1x11.posScaler} [ {(P.hod.1x11.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1X12+: {P.hod.1x12.posScaler} [ {(P.hod.1x12.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1X13+: {P.hod.1x13.posScaler} [ {(P.hod.1x13.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1X1-: {P.hod.1x1.negScaler} [ {(P.hod.1x1.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1X2-: {P.hod.1x2.negScaler} [ {(P.hod.1x2.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1X3-: {P.hod.1x3.negScaler} [ {(P.hod.1x3.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1X4-: {P.hod.1x4.negScaler} [ {(P.hod.1x4.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1X5-: {P.hod.1x5.negScaler} [ {(P.hod.1x5.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1X6-: {P.hod.1x6.negScaler} [ {(P.hod.1x6.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1X7-: {P.hod.1x7.negScaler} [ {(P.hod.1x7.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1X8-: {P.hod.1x8.negScaler} [ {(P.hod.1x8.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1X9-: {P.hod.1x9.negScaler} [ {(P.hod.1x9.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1X10-: {P.hod.1x10.negScaler} [ {(P.hod.1x10.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1X11-: {P.hod.1x11.negScaler} [ {(P.hod.1x11.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1X12-: {P.hod.1x12.negScaler} [ {(P.hod.1x12.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1X13-: {P.hod.1x13.negScaler} [ {(P.hod.1x13.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1Y1+: {P.hod.1y1.posScaler} [ {(P.hod.1y1.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1Y2+: {P.hod.1y2.posScaler} [ {(P.hod.1y2.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1Y3+: {P.hod.1y3.posScaler} [ {(P.hod.1y3.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1Y4+: {P.hod.1y4.posScaler} [ {(P.hod.1y4.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1Y5+: {P.hod.1y5.posScaler} [ {(P.hod.1y5.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1Y6+: {P.hod.1y6.posScaler} [ {(P.hod.1y6.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1Y7+: {P.hod.1y7.posScaler} [ {(P.hod.1y7.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1Y8+: {P.hod.1y8.posScaler} [ {(P.hod.1y8.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1Y9+: {P.hod.1y9.posScaler} [ {(P.hod.1y9.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1Y10+: {P.hod.1y10.posScaler} [ {(P.hod.1y10.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1Y11+: {P.hod.1y11.posScaler} [ {(P.hod.1y11.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1Y12+: {P.hod.1y12.posScaler} [ {(P.hod.1y12.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1Y13+: {P.hod.1y13.posScaler} [ {(P.hod.1y13.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1Y1-: {P.hod.1y1.negScaler} [ {(P.hod.1y1.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1Y2-: {P.hod.1y2.negScaler} [ {(P.hod.1y2.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1Y3-: {P.hod.1y3.negScaler} [ {(P.hod.1y3.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1Y4-: {P.hod.1y4.negScaler} [ {(P.hod.1y4.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1Y5-: {P.hod.1y5.negScaler} [ {(P.hod.1y5.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1Y6-: {P.hod.1y6.negScaler} [ {(P.hod.1y6.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1Y7-: {P.hod.1y7.negScaler} [ {(P.hod.1y7.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1Y8-: {P.hod.1y8.negScaler} [ {(P.hod.1y8.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1Y9-: {P.hod.1y9.negScaler} [ {(P.hod.1y9.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1Y10-: {P.hod.1y10.negScaler} [ {(P.hod.1y10.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1Y11-: {P.hod.1y11.negScaler} [ {(P.hod.1y11.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1Y12-: {P.hod.1y12.negScaler} [ {(P.hod.1y12.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P1Y13-: {P.hod.1y13.negScaler} [ {(P.hod.1y13.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2X1+: {P.hod.2x1.posScaler} [ {(P.hod.2x1.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2X2+: {P.hod.2x2.posScaler} [ {(P.hod.2x2.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2X3+: {P.hod.2x3.posScaler} [ {(P.hod.2x3.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2X4+: {P.hod.2x4.posScaler} [ {(P.hod.2x4.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2X5+: {P.hod.2x5.posScaler} [ {(P.hod.2x5.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2X6+: {P.hod.2x6.posScaler} [ {(P.hod.2x6.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2X7+: {P.hod.2x7.posScaler} [ {(P.hod.2x7.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2X8+: {P.hod.2x8.posScaler} [ {(P.hod.2x8.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2X9+: {P.hod.2x9.posScaler} [ {(P.hod.2x9.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2X10+: {P.hod.2x10.posScaler} [ {(P.hod.2x10.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2X11+: {P.hod.2x11.posScaler} [ {(P.hod.2x11.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2X12+: {P.hod.2x12.posScaler} [ {(P.hod.2x12.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2X13+: {P.hod.2x13.posScaler} [ {(P.hod.2x13.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2X14+: {P.hod.2x14.posScaler} [ {(P.hod.2x14.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2X1-: {P.hod.2x1.negScaler} [ {(P.hod.2x1.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2X2-: {P.hod.2x2.negScaler} [ {(P.hod.2x2.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2X3-: {P.hod.2x3.negScaler} [ {(P.hod.2x3.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2X4-: {P.hod.2x4.negScaler} [ {(P.hod.2x4.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2X5-: {P.hod.2x5.negScaler} [ {(P.hod.2x5.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2X6-: {P.hod.2x6.negScaler} [ {(P.hod.2x6.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2X7-: {P.hod.2x7.negScaler} [ {(P.hod.2x7.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2X8-: {P.hod.2x8.negScaler} [ {(P.hod.2x8.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2X9-: {P.hod.2x9.negScaler} [ {(P.hod.2x9.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2X10-: {P.hod.2x10.negScaler} [ {(P.hod.2x10.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2X11-: {P.hod.2x11.negScaler} [ {(P.hod.2x11.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2X12-: {P.hod.2x12.negScaler} [ {(P.hod.2x12.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2X13-: {P.hod.2x13.negScaler} [ {(P.hod.2x13.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2X14-: {P.hod.2x14.negScaler} [ {(P.hod.2x14.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y1+: {P.hod.2y1.posScaler} [ {(P.hod.2y1.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y2+: {P.hod.2y2.posScaler} [ {(P.hod.2y2.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y3+: {P.hod.2y3.posScaler} [ {(P.hod.2y3.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y4+: {P.hod.2y4.posScaler} [ {(P.hod.2y4.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y5+: {P.hod.2y5.posScaler} [ {(P.hod.2y5.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y6+: {P.hod.2y6.posScaler} [ {(P.hod.2y6.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y7+: {P.hod.2y7.posScaler} [ {(P.hod.2y7.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y8+: {P.hod.2y8.posScaler} [ {(P.hod.2y8.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y9+: {P.hod.2y9.posScaler} [ {(P.hod.2y9.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y10+: {P.hod.2y10.posScaler} [ {(P.hod.2y10.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y11+: {P.hod.2y11.posScaler} [ {(P.hod.2y11.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y12+: {P.hod.2y12.posScaler} [ {(P.hod.2y12.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y13+: {P.hod.2y13.posScaler} [ {(P.hod.2y13.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y14+: {P.hod.2y14.posScaler} [ {(P.hod.2y14.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y15+: {P.hod.2y15.posScaler} [ {(P.hod.2y15.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y16+: {P.hod.2y16.posScaler} [ {(P.hod.2y16.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y17+: {P.hod.2y17.posScaler} [ {(P.hod.2y17.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y18+: {P.hod.2y18.posScaler} [ {(P.hod.2y18.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y19+: {P.hod.2y19.posScaler} [ {(P.hod.2y19.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y20+: {P.hod.2y20.posScaler} [ {(P.hod.2y20.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y21+: {P.hod.2y21.posScaler} [ {(P.hod.2y21.posScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y1-: {P.hod.2y1.negScaler} [ {(P.hod.2y1.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y2-: {P.hod.2y2.negScaler} [ {(P.hod.2y2.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y3-: {P.hod.2y3.negScaler} [ {(P.hod.2y3.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y4-: {P.hod.2y4.negScaler} [ {(P.hod.2y4.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y5-: {P.hod.2y5.negScaler} [ {(P.hod.2y5.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y6-: {P.hod.2y6.negScaler} [ {(P.hod.2y6.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y7-: {P.hod.2y7.negScaler} [ {(P.hod.2y7.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y8-: {P.hod.2y8.negScaler} [ {(P.hod.2y8.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y9-: {P.hod.2y9.negScaler} [ {(P.hod.2y9.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y10-: {P.hod.2y10.negScaler} [ {(P.hod.2y10.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y11-: {P.hod.2y11.negScaler} [ {(P.hod.2y11.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y12-: {P.hod.2y12.negScaler} [ {(P.hod.2y12.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y13-: {P.hod.2y13.negScaler} [ {(P.hod.2y13.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y14-: {P.hod.2y14.negScaler} [ {(P.hod.2y14.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y15-: {P.hod.2y15.negScaler} [ {(P.hod.2y15.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y16-: {P.hod.2y16.negScaler} [ {(P.hod.2y16.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y17-: {P.hod.2y17.negScaler} [ {(P.hod.2y17.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y18-: {P.hod.2y18.negScaler} [ {(P.hod.2y18.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y19-: {P.hod.2y19.negScaler} [ {(P.hod.2y19.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y20-: {P.hod.2y20.negScaler} [ {(P.hod.2y20.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
P2Y21-: {P.hod.2y21.negScaler} [ {(P.hod.2y21.negScaler/P.1Mhz.scalerTime)/1000.:%.3f} kHz ]
\ No newline at end of file
protorootfile ../ROOTfiles/shms_replay_scalers_XXXXX_10000.root protorootfile ../ROOTfiles/shms_coin_replay_production_XXXXX_50000.root
guicolor orange guicolor orange
canvassize 1600 800 canvassize 800 800
newpage 2 3 newpage 2 3
title Trig rates title Trig rates
macro UTIL/SHMS/SCALERS/plot_shms_scalers.C("uhScalTrigS1X","none") macro UTIL/SHMS/SCALERS/plot_shms_scalers.C("uhScalTrigS1X","none")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment