diff --git a/DEF-files/HMS/PRODUCTION/RASTER/hraster_histos.def b/DEF-files/HMS/PRODUCTION/RASTER/hraster_histos.def new file mode 100644 index 0000000000000000000000000000000000000000..f0aee556a14b175e272f09fd08577163a3debf1e --- /dev/null +++ b/DEF-files/HMS/PRODUCTION/RASTER/hraster_histos.def @@ -0,0 +1,22 @@ +#************* +# Fast Raster +#************* + +# Assume FADC range is set to 1V and the integration is 25 channels +# Offset in the FADC is about 0.122V or 500 channels. + +formula FRXA_V H.rb.raster.frxaRawAdc*(1./4096.)/25. +formula FRXB_V H.rb.raster.frxbRawAdc*(1./4096.)/25. +formula FRYA_V H.rb.raster.fryaRawAdc*(1./4096.)/25. +formula FRYB_V H.rb.raster.frybRawAdc*(1./4096.)/25. + +TH1F pFRXA 'SHMS FRXA; FRXA RAW ADC (chan); Counts' H.rb.raster.frxaRawAdc 1000 0 100000 +TH1F pFRXA_V 'SHMS FRXA; FRXA RAW ADC (Volts); Counts' FRXA_V 1000 0 1.0 +TH1F pFRXB 'SHMS FRXB; FRXB RAW ADC (chan); Counts' H.rb.raster.frxbRawAdc 1000 0 100000 +TH1F pFRXB_V 'SHMS FRXB; FRXB RAW ADC (Volts); Counts' FRXB_V 1000 0 1.0 +TH1F pFRYA 'SHMS FRYA; FRYA RAW ADC (chan); Counts' H.rb.raster.fryaRawAdc 1000 0 100000 +TH1F pFRYA_V 'SHMS FRYA; FRYA RAW ADC (Volts); Counts' FRYA_V 1000 0 1.0 +TH1F pFRYB 'SHMS FRYB; FRYB RAW ADC (chan); Counts' H.rb.raster.frybRawAdc 1000 0 100000 +TH1F pFRYB_V 'SHMS FRYB; FRYB RAW ADC (Volts); Counts' FRYB_V 1000 0 1.0 +TH2F pFRA_XvsY 'SHMS FRA X vs Y; FRXA RAW ADC (Volts); FRYA RAW ADC (Volts)' FRXA_V FRYA_V 1000 0 1.0 1000 0 1.0 +TH2F pFRB_XvsY 'SHMS FRB X vs Y; FRXB RAW ADC (Volts); FRYB RAW ADC (Volts)' FRXB_V FRYB_V 1000 0 1.0 1000 0 1.0 diff --git a/DEF-files/HMS/RASTER/hms_raster_simple.def b/DEF-files/HMS/RASTER/hms_raster_simple.def index 40b70735716483132670b68271e3b2581a992753..62956cc02d1e3b4d69d6ec2ea8b91873deff9def 100644 --- a/DEF-files/HMS/RASTER/hms_raster_simple.def +++ b/DEF-files/HMS/RASTER/hms_raster_simple.def @@ -1,20 +1,51 @@ -# See $ANALYZER/examples/output_example.def for examples -# -block T.hms.* +#************* +# Fast Raster +#************* + # Assume FADC range is set to 1V and the integration is 25 channels # Offset in the FADC is about 0.122V or 500 channels. -formula FRXA_V T.hms.hFRXA_adcPulseIntRaw*(1./4096.)/25. -formula FRXB_V T.hms.hFRXB_adcPulseIntRaw*(1./4096.)/25. -formula FRYA_V T.hms.hFRYA_adcPulseIntRaw*(1./4096.)/25. -formula FRYB_V T.hms.hFRYB_adcPulseIntRaw*(1./4096.)/25. -TH1F hFRXA 'HMS FRXA; FRXA RAW ADC (chan); Counts' T.hms.hFRXA_adcPulseIntRaw 1000 0 100000 -TH1F hFRXA_V 'HMS FRXA; FRXA RAW ADC (Volts); Counts' FRXA_V 1000 0 1.0 -TH1F hFRXB 'HMS FRXB; FRXB RAW ADC (chan); Counts' T.hms.hFRXB_adcPulseIntRaw 1000 0 100000 -TH1F hFRXB_V 'HMS FRXB; FRXB RAW ADC (Volts); Counts' FRXB_V 1000 0 1.0 -TH1F hFRYA 'HMS FRYA; FRYA RAW ADC (chan); Counts' T.hms.hFRYA_adcPulseIntRaw 1000 0 100000 -TH1F hFRYA_V 'HMS FRYA; FRYA RAW ADC (Volts); Counts' FRYA_V 1000 0 1.0 -TH1F hFRYB 'HMS FRYB; FRYB RAW ADC (chan); Counts' T.hms.hFRYB_adcPulseIntRaw 1000 0 100000 -TH1F hFRYB_V 'HMS FRYB; FRYB RAW ADC (Volts); Counts' FRYB_V 1000 0 1.0 -TH2F hFRA_XvsY 'HMSFRA_XvsY ; FRXA RAW ADC (Volts); FRYA RAW ADC (Volts)' FRXA_V FRYA_V 1000 0 1.0 1000 0 1.0 -TH2F hFRB_XvsY 'HMSFRB_XvsY ; FRXB RAW ADC (Volts); FRYB RAW ADC (Volts)' FRXB_V FRYB_V 1000 0 1.0 1000 0 1.0 + +formula FRXA_V H.rb.raster.frxaRawAdc*(1./4096.)/25. +formula FRXB_V H.rb.raster.frxbRawAdc*(1./4096.)/25. +formula FRYA_V H.rb.raster.fryaRawAdc*(1./4096.)/25. +formula FRYB_V H.rb.raster.frybRawAdc*(1./4096.)/25. + +TH1F pFRXA 'SHMS FRXA; FRXA RAW ADC (chan); Counts' H.rb.raster.frxaRawAdc 1000 0 100000 +TH1F pFRXA_V 'SHMS FRXA; FRXA RAW ADC (Volts); Counts' FRXA_V 1000 0 1.0 +TH1F pFRXB 'SHMS FRXB; FRXB RAW ADC (chan); Counts' H.rb.raster.frxbRawAdc 1000 0 100000 +TH1F pFRXB_V 'SHMS FRXB; FRXB RAW ADC (Volts); Counts' FRXB_V 1000 0 1.0 +TH1F pFRYA 'SHMS FRYA; FRYA RAW ADC (chan); Counts' H.rb.raster.fryaRawAdc 1000 0 100000 +TH1F pFRYA_V 'SHMS FRYA; FRYA RAW ADC (Volts); Counts' FRYA_V 1000 0 1.0 +TH1F pFRYB 'SHMS FRYB; FRYB RAW ADC (chan); Counts' H.rb.raster.frybRawAdc 1000 0 100000 +TH1F pFRYB_V 'SHMS FRYB; FRYB RAW ADC (Volts); Counts' FRYB_V 1000 0 1.0 +TH2F pFRA_XvsY 'SHMS FRA X vs Y; FRXA RAW ADC (Volts); FRYA RAW ADC (Volts)' FRXA_V FRYA_V 1000 0 1.0 1000 0 1.0 +TH2F pFRB_XvsY 'SHMS FRB X vs Y; FRXB RAW ADC (Volts); FRYB RAW ADC (Volts)' FRXB_V FRYB_V 1000 0 1.0 1000 0 1.0 +#****************** +# EPICS VARIABLES * +#****************** + +begin epics + +IBC3H00CRCUR4 +hac_bcm_average +ibcm1 +ibcm2 +iunser +itov3out +itov4out +IPM3H07A.XPOS +IPM3H07A.YPOS +IPM3H07B.XPOS +IPM3H07B.YPOS +IPM3H07C.XPOS +IPM3H07C.YPOS +IPM3H07A.XRAW +IPM3H07A.YRAW +IPM3H07B.XRAW +IPM3H07B.YRAW +IPM3H07C.XRAW +IPM3H07C.YRAW + + +end epics diff --git a/DEF-files/SHMS/RASTER/shms_raster_simple.def b/DEF-files/SHMS/RASTER/shms_raster_simple.def index c8d3aff7bdefb10303af6f773f460cd0331a9d43..b720e8f66b41404c3f53eec95f105e7fabf33719 100644 --- a/DEF-files/SHMS/RASTER/shms_raster_simple.def +++ b/DEF-files/SHMS/RASTER/shms_raster_simple.def @@ -1,20 +1,44 @@ -# See $ANALYZER/examples/output_example.def for examples -# -block T.shms.* +#************* +# Fast Raster +#************* + # Assume FADC range is set to 1V and the integration is 25 channels # Offset in the FADC is about 0.122V or 500 channels. -formula FRXA_V T.shms.pFRXA_adcPulseIntRaw*(1./4096.)/25. -formula FRXB_V T.shms.pFRXB_adcPulseIntRaw*(1./4096.)/25. -formula FRYA_V T.shms.pFRYA_adcPulseIntRaw*(1./4096.)/25. -formula FRYB_V T.shms.pFRYB_adcPulseIntRaw*(1./4096.)/25. -TH1F pFRXA 'SHMS FRXA; FRXA RAW ADC (chan); Counts' T.shms.pFRXA_adcPulseIntRaw 1000 0 100000 + +formula FRXA_V P.rb.raster.frxaRawAdc*(1./4096.)/25. +formula FRXB_V P.rb.raster.frxbRawAdc*(1./4096.)/25. +formula FRYA_V P.rb.raster.fryaRawAdc*(1./4096.)/25. +formula FRYB_V P.rb.raster.frybRawAdc*(1./4096.)/25. + +TH1F pFRXA 'SHMS FRXA; FRXA RAW ADC (chan); Counts' P.rb.raster.frxaRawAdc 1000 0 100000 TH1F pFRXA_V 'SHMS FRXA; FRXA RAW ADC (Volts); Counts' FRXA_V 1000 0 1.0 -TH1F pFRXB 'SHMS FRXB; FRXB RAW ADC (chan); Counts' T.shms.pFRXB_adcPulseIntRaw 1000 0 100000 +TH1F pFRXB 'SHMS FRXB; FRXB RAW ADC (chan); Counts' P.rb.raster.frxbRawAdc 1000 0 100000 TH1F pFRXB_V 'SHMS FRXB; FRXB RAW ADC (Volts); Counts' FRXB_V 1000 0 1.0 -TH1F pFRYA 'SHMS FRYA; FRYA RAW ADC (chan); Counts' T.shms.pFRYA_adcPulseIntRaw 1000 0 100000 +TH1F pFRYA 'SHMS FRYA; FRYA RAW ADC (chan); Counts' P.rb.raster.fryaRawAdc 1000 0 100000 TH1F pFRYA_V 'SHMS FRYA; FRYA RAW ADC (Volts); Counts' FRYA_V 1000 0 1.0 -TH1F pFRYB 'SHMS FRYB; FRYB RAW ADC (chan); Counts' T.shms.pFRYB_adcPulseIntRaw 1000 0 100000 +TH1F pFRYB 'SHMS FRYB; FRYB RAW ADC (chan); Counts' P.rb.raster.frybRawAdc 1000 0 100000 TH1F pFRYB_V 'SHMS FRYB; FRYB RAW ADC (Volts); Counts' FRYB_V 1000 0 1.0 -TH2F pFRA_XvsY 'HMSFRA_XvsY ; FRXA RAW ADC (Volts); FRYA RAW ADC (Volts)' FRXA_V FRYA_V 1000 0 1.0 1000 0 1.0 -TH2F pFRB_XvsY 'HMSFRB_XvsY ; FRXB RAW ADC (Volts); FRYB RAW ADC (Volts)' FRXB_V FRYB_V 1000 0 1.0 1000 0 1.0 +TH2F pFRA_XvsY 'SHMS FRA X vs Y; FRXA RAW ADC (Volts); FRYA RAW ADC (Volts)' FRXA_V FRYA_V 1000 0 1.0 1000 0 1.0 +TH2F pFRB_XvsY 'SHMS FRB X vs Y; FRXB RAW ADC (Volts); FRYB RAW ADC (Volts)' FRXB_V FRYB_V 1000 0 1.0 1000 0 1.0 +#****************** +# EPICS VARIABLES * +#****************** + +begin epics + +IBC3H00CRCUR4 +hac_bcm_average +ibcm1 +ibcm2 +iunser +itov3out +itov4out +IPM3H07A.XPOS +IPM3H07A.YPOS +IPM3H07B.XPOS +IPM3H07B.YPOS +IPM3H07C.XPOS +IPM3H07C.YPOS + +end epics \ No newline at end of file diff --git a/SCRIPTS/HMS/RASTER/replay_hms_raster_simple.C b/SCRIPTS/HMS/RASTER/replay_hms_raster_simple.C index 360c8b70b75c5e5fbc2fb7ce9f69912bc38bea80..b61d4e1677741ea799cd921d7d70874989a869d0 100644 --- a/SCRIPTS/HMS/RASTER/replay_hms_raster_simple.C +++ b/SCRIPTS/HMS/RASTER/replay_hms_raster_simple.C @@ -35,20 +35,19 @@ void replay_hms_raster_simple(Int_t RunNumber=0, Int_t MaxEvent=0) { gHcParms->Load(gHcParms->GetString("g_ctp_parm_filename")); gHcParms->Load(gHcParms->GetString("g_ctp_calib_filename")); // Load params for HMS trigger configuration - gHcParms->Load("PARAM/TRIG/thms_raster.param"); // Load the Hall C style detector map gHcDetectorMap = new THcDetectorMap(); - gHcDetectorMap->Load("MAPS/HMS/DETEC/RASTER/hraster_simple.map"); + gHcDetectorMap->Load("MAPS/HMS/DETEC/RASTER/hraster.map"); - // Add trigger apparatus - THaApparatus* TRG = new THcTrigApp("T", "TRG"); - gHaApps->Add(TRG); - // Add trigger detector to trigger apparatus - THcTrigDet* hms = new THcTrigDet("hms", "HMS Trigger Information"); - TRG->AddDetector(hms); - + // Add handler for EPICS events + THaEpicsEvtHandler *hcepics = new THaEpicsEvtHandler("epics", "HC EPICS event type 180"); + gHaEvtHandlers->Add(hcepics); + // Add Rastered Beam Apparatus + THaApparatus* beam = new THcRasteredBeam("H.rb", "Rastered Beamline"); + gHaApps->Add(beam); + // 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 @@ -63,7 +62,7 @@ void replay_hms_raster_simple(Int_t RunNumber=0, Int_t MaxEvent=0) { // Define the run(s) that we want to analyze. // We just set up one, but this could be many. - THaRun* run = new THaRun( pathList, Form(RunFileNamePattern, RunNumber) ); + THcRun* run = new THcRun( pathList, Form(RunFileNamePattern, RunNumber) ); // Eventually need to learn to skip over, or properly analyze // the pedestal events @@ -79,6 +78,8 @@ void replay_hms_raster_simple(Int_t RunNumber=0, Int_t MaxEvent=0) { // 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 diff --git a/SCRIPTS/SHMS/RASTER/replay_shms_raster_simple.C b/SCRIPTS/SHMS/RASTER/replay_shms_raster_simple.C index 10f0a284b0d82de35834eab2e7ec0d1ef0885716..fc8af9e30c4c3fe751c5a33600f34727529743e9 100644 --- a/SCRIPTS/SHMS/RASTER/replay_shms_raster_simple.C +++ b/SCRIPTS/SHMS/RASTER/replay_shms_raster_simple.C @@ -34,20 +34,18 @@ void replay_shms_raster_simple (Int_t RunNumber = 0, Int_t MaxEvent = 0) { // 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")); - // Load params for HMS trigger configuration - gHcParms->Load("PARAM/TRIG/tshms_raster.param"); // Load the Hall C detector map gHcDetectorMap = new THcDetectorMap(); - gHcDetectorMap->Load("MAPS/SHMS/DETEC/RASTER/praster_simple.map"); + gHcDetectorMap->Load("MAPS/SHMS/DETEC/RASTER/praster.map"); + + // Add handler for EPICS events + THaEpicsEvtHandler *hcepics = new THaEpicsEvtHandler("epics", "HC EPICS event type 180"); + gHaEvtHandlers->Add(hcepics); + // Add Rastered Beam Apparatus + THaApparatus* beam = new THcRasteredBeam("P.rb", "Rastered Beamline"); + gHaApps->Add(beam); - // Add trigger apparatus - THaApparatus* TRG = new THcTrigApp("T", "TRG"); - gHaApps->Add(TRG); - // Add trigger detector to trigger apparatus - THcTrigDet* shms = new THcTrigDet("shms", "SHMS Trigger Information"); - TRG->AddDetector(shms); - // 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 @@ -62,7 +60,7 @@ void replay_shms_raster_simple (Int_t RunNumber = 0, Int_t MaxEvent = 0) { // Define the run(s) that we want to analyze. // We just set up one, but this could be many. - THaRun* run = new THaRun( pathList, Form(RunFileNamePattern, RunNumber) ); + THcRun* run = new THcRun( pathList, Form(RunFileNamePattern, RunNumber) ); // Eventually need to learn to skip over, or properly analyze // the pedestal events @@ -80,6 +78,8 @@ void replay_shms_raster_simple (Int_t RunNumber = 0, Int_t MaxEvent = 0) { analyzer->SetEvent(event); // Define crate map analyzer->SetCrateMapFileName("MAPS/db_cratemap.dat"); + // Set EPICS event type + analyzer->SetEpicsEvtType(180); // Define output ROOT file analyzer->SetOutFile(ROOTFileName.Data()); // Define DEF-file