diff --git a/Makefile b/Makefile index 0b86cf7a6e7325acd369ee1caa32f80635ca3f15..b03e0e4f67b0d80ed064d2b00925d75663d1be07 100644 --- a/Makefile +++ b/Makefile @@ -23,6 +23,7 @@ SRC = src/THcInterface.cxx src/THcParmList.cxx src/THcAnalyzer.cxx \ src/THcShower.cxx src/THcShowerPlane.cxx \ src/THcRawShowerHit.cxx \ src/THcAerogel.cxx src/THcAerogelHit.cxx \ + src/THcCherenkov.cxx src/THcCherenkovHit.cxx \ src/THcFormula.cxx # Name of your package. diff --git a/SConscript.py b/SConscript.py index 52beeebe4ae81fa9f21e01cad33bed7bb334822d..79197c4e87aedb713be06cd6996cb4b612415f4d 100644 --- a/SConscript.py +++ b/SConscript.py @@ -16,8 +16,8 @@ hcheaders = Split(""" src/THcScintillatorPlane.h src/THcHodoscopeHit.h src/THcDC.h src/THcDriftChamberPlane.h src/THcDriftChamber.h src/THcRawDCHit.h src/THcDCHit.h src/THcDCWire.h src/THcSpacePoint.h src/THcDCLookupTTDConv.h src/THcDCTimeToDistConv.h src/THcShower.h src/THcShowerPlane.h - src/THcRawShowerHit.h src/THcAerogel.h src/THcAerogelHit.h src/THcGlobals.h src/THcDCTrack.h - src/THcFormula.h + src/THcRawShowerHit.h src/THcAerogel.h src/THcAerogelHit.h src/THcCherenkov.h src/THcCherenkovHit.h + src/THcGlobals.h src/THcDCTrack.h src/THcFormula.h src/HallC_LinkDef.h """) pbaseenv.RootCint(roothcdict,hcheaders) diff --git a/examples/PARAM/hcana.param b/examples/PARAM/hcana.param index 1f9e393f0b67fed0ccc4079beadd84ae881bd61b..87352735a9009cfca828f64088e88b744c479292 100644 --- a/examples/PARAM/hcana.param +++ b/examples/PARAM/hcana.param @@ -17,6 +17,7 @@ hcal_c_cor = 64.36 hcal_d_cor = 1.66 haero_num_pairs = 8 +hcher_num_pairs = 2 # Names of planes so that parameter names can be constructed hdc_plane_names = "1x1 1y1 1u1 1v1 1y2 1x2 2x1 2y1 2u1 2v1 2y2 2x2" diff --git a/examples/PARAM/hcer.param b/examples/PARAM/hcer.param index adaa5654d28d1041ff4ae86cbfa993d8001dcb73..5c7cfc8f1ab7b73c8d9015b8622a4c0b9005a0c3 100644 --- a/examples/PARAM/hcer.param +++ b/examples/PARAM/hcer.param @@ -17,7 +17,7 @@ hcer_width = 50, 50 ; tube: bot top ;hcer_adc_to_npe = 1/93., 1/120. ; DJG June 21 2007: Quick and dirty online calibration. -hcer_adc_to_npe = 1/149.6, 1/166.0. +hcer_adc_to_npe = 1/149.6, 1/166.0 hcer_chi2max = 50. hcer_beta_min = 0.8 diff --git a/examples/hodtest.C b/examples/hodtest.C index cd4d937a257d7a3a3fc9fe75979631b106c06cda..37703cc1ec8bead47b1651aab03b9f72d8e35b98 100644 --- a/examples/hodtest.C +++ b/examples/hodtest.C @@ -5,8 +5,8 @@ // Steering script to test hodoscope decoding // - Int_t RunNumber=50017; - char* RunFileNamePattern="daq04_%d.log.0"; + Int_t RunNumber=52949; + char* RunFileNamePattern="/cache/mss/hallc/daq04/raw/daq04_%d.log.0"; gHcParms->Define("gen_run_number", "Run Number", RunNumber); gHcParms->AddString("g_ctp_database_filename", "DBASE/test.database"); @@ -41,6 +41,8 @@ HMS->AddDetector( new THcDC("dc", "Drift Chambers" )); THcAerogel* aerogel = new THcAerogel("aero", "Aerogel Cerenkov" ); HMS->AddDetector( aerogel ); + THcCherenkov* cherenkov = new THcCherenkov("cher", "Gas Cerenkov" ); + HMS->AddDetector( cherenkov ); // Set up the analyzer - we use the standard one, // but this could be an experiment-specific one as well. @@ -63,7 +65,7 @@ // Eventually need to learn to skip over, or properly analyze // the pedestal events - run->SetEventRange(1,2000);// Physics Event number, does not + run->SetEventRange(1,20000);// Physics Event number, does not // include scaler or control events // Define the analysis parameters diff --git a/examples/hodtest_cuts.def b/examples/hodtest_cuts.def index 8d0581f60b0568bcad842814e83ce58d74803e4c..b98813f6ec77fd92424d996776c49cd53ad924cd 100644 --- a/examples/hodtest_cuts.def +++ b/examples/hodtest_cuts.def @@ -10,60 +10,60 @@ Decode_master !Pedestal_event Block: CoarseTracking -hfoundtrack H.dc.ntrack != 0 -hfound1track H.dc.ntrack == 1 -hfound2track H.dc.ntrack == 2 -hfound3track H.dc.ntrack == 3 -hfound4track H.dc.ntrack == 4 +#hfoundtrack H.dc.ntrack != 0 +#hfound1track H.dc.ntrack == 1 +#hfound2track H.dc.ntrack == 2 +#hfound3track H.dc.ntrack == 3 +#hfound4track H.dc.ntrack == 4 -goodhdc1x1 (H.dc.1x1.nhit > 0) && (H.dc.1x1.nhit < 3) -goodhdc1y1 (H.dc.1y1.nhit > 0) && (H.dc.1y1.nhit < 3) -goodhdc1u1 (H.dc.1u1.nhit > 0) && (H.dc.1u1.nhit < 3) -goodhdc1v1 (H.dc.1v1.nhit > 0) && (H.dc.1v1.nhit < 3) -goodhdc1y2 (H.dc.1y2.nhit > 0) && (H.dc.1y2.nhit < 3) -goodhdc1x2 (H.dc.1x2.nhit > 0) && (H.dc.1x2.nhit < 3) +#goodhdc1x1 (H.dc.1x1.nhit > 0) && (H.dc.1x1.nhit < 3) +#goodhdc1y1 (H.dc.1y1.nhit > 0) && (H.dc.1y1.nhit < 3) +#goodhdc1u1 (H.dc.1u1.nhit > 0) && (H.dc.1u1.nhit < 3) +#goodhdc1v1 (H.dc.1v1.nhit > 0) && (H.dc.1v1.nhit < 3) +#goodhdc1y2 (H.dc.1y2.nhit > 0) && (H.dc.1y2.nhit < 3) +#goodhdc1x2 (H.dc.1x2.nhit > 0) && (H.dc.1x2.nhit < 3) -goodhdc2x1 (H.dc.2x1.nhit > 0) && (H.dc.2x1.nhit < 3) -goodhdc2y1 (H.dc.2y1.nhit > 0) && (H.dc.2y1.nhit < 3) -goodhdc2u1 (H.dc.2u1.nhit > 0) && (H.dc.2u1.nhit < 3) -goodhdc2v1 (H.dc.2v1.nhit > 0) && (H.dc.2v1.nhit < 3) -goodhdc2y2 (H.dc.2y2.nhit > 0) && (H.dc.2y2.nhit < 3) -goodhdc2x2 (H.dc.2x2.nhit > 0) && (H.dc.2x2.nhit < 3) +#goodhdc2x1 (H.dc.2x1.nhit > 0) && (H.dc.2x1.nhit < 3) +#goodhdc2y1 (H.dc.2y1.nhit > 0) && (H.dc.2y1.nhit < 3) +#goodhdc2u1 (H.dc.2u1.nhit > 0) && (H.dc.2u1.nhit < 3) +#goodhdc2v1 (H.dc.2v1.nhit > 0) && (H.dc.2v1.nhit < 3) +#goodhdc2y2 (H.dc.2y2.nhit > 0) && (H.dc.2y2.nhit < 3) +#goodhdc2x2 (H.dc.2x2.nhit > 0) && (H.dc.2x2.nhit < 3) -goodhdc1 goodhdc1x1 && goodhdc1y1 && goodhdc1u1 && goodhdc1v1 && goodhdc1y2 && goodhdc1x2 -goodhdc2 goodhdc2x1 && goodhdc2y1 && goodhdc2u1 && goodhdc2v1 && goodhdc2y2 && goodhdc2x2 -bothgoodhdc goodhdc1 && goodhdc2 +#goodhdc1 goodhdc1x1 && goodhdc1y1 && goodhdc1u1 && goodhdc1v1 && goodhdc#1y2 && goodhdc1x2 +#goodhdc2 goodhdc2x1 && goodhdc2y1 && goodhdc2u1 && goodhdc2v1 && goodhdc#2y2 && goodhdc2x2 +#bothgoodhdc goodhdc1 && goodhdc2 -realhdc1x1 goodhdc1x1 && (H.dc.nsp != 0) -realhdc1y1 goodhdc1y1 && (H.dc.nsp != 0) -realhdc1u1 goodhdc1u1 && (H.dc.nsp != 0) -realhdc1v1 goodhdc1v1 && (H.dc.nsp != 0) -realhdc1y2 goodhdc1y2 && (H.dc.nsp != 0) -realhdc1x2 goodhdc1x2 && (H.dc.nsp != 0) -realhdc2x1 goodhdc2x1 && (H.dc.nsp != 0) -realhdc2y1 goodhdc2y1 && (H.dc.nsp != 0) -realhdc2u1 goodhdc2u1 && (H.dc.nsp != 0) -realhdc2v1 goodhdc2v1 && (H.dc.nsp != 0) -realhdc2y2 goodhdc2y2 && (H.dc.nsp != 0) -realhdc2x2 goodhdc2x2 && (H.dc.nsp != 0) +#realhdc1x1 goodhdc1x1 && (H.dc.nsp != 0) +#realhdc1y1 goodhdc1y1 && (H.dc.nsp != 0) +#realhdc1u1 goodhdc1u1 && (H.dc.nsp != 0) +#realhdc1v1 goodhdc1v1 && (H.dc.nsp != 0) +#realhdc1y2 goodhdc1y2 && (H.dc.nsp != 0) +#realhdc1x2 goodhdc1x2 && (H.dc.nsp != 0) +#realhdc2x1 goodhdc2x1 && (H.dc.nsp != 0) +#realhdc2y1 goodhdc2y1 && (H.dc.nsp != 0) +#realhdc2u1 goodhdc2u1 && (H.dc.nsp != 0) +#realhdc2v1 goodhdc2v1 && (H.dc.nsp != 0) +#realhdc2y2 goodhdc2y2 && (H.dc.nsp != 0) +#realhdc2x2 goodhdc2x2 && (H.dc.nsp != 0) #hlowchi2 (hschi2perdeg<10) && hcleantrack -hlowchi2 1 +#hlowchi2 1 -hdcres_1 (H.dc.residual[0] < 1000) && hlowchi2 -hdcres_2 (H.dc.residual[1] < 1000) && hlowchi2 -hdcres_3 (H.dc.residual[2] < 1000) && hlowchi2 -hdcres_4 (H.dc.residual[3] < 1000) && hlowchi2 -hdcres_5 (H.dc.residual[4] < 1000) && hlowchi2 -hdcres_6 (H.dc.residual[5] < 1000) && hlowchi2 -hdcres_7 (H.dc.residual[6] < 1000) && hlowchi2 -hdcres_8 (H.dc.residual[7] < 1000) && hlowchi2 -hdcres_9 (H.dc.residual[8] < 1000) && hlowchi2 -hdcres_10 (H.dc.residual[9] < 1000) && hlowchi2 -hdcres_11 (H.dc.residual[10] < 1000) && hlowchi2 -hdcres_12 (H.dc.residual[11] < 1000) && hlowchi2 +#hdcres_1 (H.dc.residual[0] < 1000) && hlowchi2 +#hdcres_2 (H.dc.residual[1] < 1000) && hlowchi2 +#hdcres_3 (H.dc.residual[2] < 1000) && hlowchi2 +#hdcres_4 (H.dc.residual[3] < 1000) && hlowchi2 +#hdcres_5 (H.dc.residual[4] < 1000) && hlowchi2 +#hdcres_6 (H.dc.residual[5] < 1000) && hlowchi2 +#hdcres_7 (H.dc.residual[6] < 1000) && hlowchi2 +#hdcres_8 (H.dc.residual[7] < 1000) && hlowchi2 +#hdcres_9 (H.dc.residual[8] < 1000) && hlowchi2 +#hdcres_10 (H.dc.residual[9] < 1000) && hlowchi2 +#hdcres_11 (H.dc.residual[10] < 1000) && hlowchi2 +#hdcres_12 (H.dc.residual[11] < 1000) && hlowchi2 -Block: CoarseReconstruct -CourseReconstruct 1 +#Block: CoarseReconstruct +#CourseReconstruct 1 diff --git a/examples/output.def b/examples/output.def index 9797fc3f001a509dfecd0f59fefa1958a7177c2d..756e297e8b7fa9358f5e1b8676a2d1002847b953 100644 --- a/examples/output.def +++ b/examples/output.def @@ -4,9 +4,24 @@ block H.dc.* block H.hod.* block H.cal.* block H.aero.* +block H.cher.* block H.tr.* block g.evtyp +# Cherenkov histograms +TH1F h_cher_aneg 'Cherenkov Aneg' H.cher.aneg 100 0 6000 +TH1F h_cher_aneg_p 'Cherenkov Aneg_p' H.cher.aneg_p 100 0 6000 +TH1F h_cher_aneg_p 'Cherenkov Apos' H.cher.apos 100 0 6000 +TH1F h_cher_apos_p 'Cherenkov Apos' H.cher.apos_p 100 0 60000 +TH1F h_cher_neg_npe 'Cherenkov Neg NPE' H.cher.neg_npe 100 0 100 +TH1F h_cher_pos_npe 'Cherenkov neg tdc hits' H.cher.pos_npe 100 0 100 +TH1F h_cher_negadchits 'Cherenkov neg adc hits' H.cher.negadchits 100 0 100 +TH1F h_cher_negtdchits 'Cherenkov neg tdc hits' H.cher.negtdchits 10 -2 2 +TH1F h_cher_posadchits 'Cherenkov neg tdc hits' H.cher.posadchits 10 -0 2.2 +TH1F h_cher_postdchits 'Cherenkov pos tdc hits' H.cher.postdchits 10 -0 2.2 +TH1F h_cher_tneg 'Cherenkov tneg' H.cher.tneg 10 -0.2 2.2 +TH1F h_cher_tpos 'Cherenkov tpos' H.cher.tpos 10 -0.2 2.2 + # TDC hits per paddle TH1F hpostdc1 'HMS s1x+ TDC hits' H.hod.1x.postdchits 16 0.5 16.5 TH1F hnegtdc1 'HMS s1x- TDC hits' H.hod.1x.negtdchits 16 0.5 16.5 diff --git a/src/HallC_LinkDef.h b/src/HallC_LinkDef.h index 6ee4f49d0ca86d0614c9093cb12d39ef977e37ce..4992343bc16dc271e64850f7183247e04558678d 100644 --- a/src/HallC_LinkDef.h +++ b/src/HallC_LinkDef.h @@ -45,6 +45,8 @@ #pragma link C++ class THcRawShowerHit+; #pragma link C++ class THcAerogel+; #pragma link C++ class THcAerogelHit+; +#pragma link C++ class THcCherenkov+; +#pragma link C++ class THcCherenkovHit+; #pragma link C++ class THcFormula+; #endif diff --git a/src/SConscript.py b/src/SConscript.py index 5cd9253d890bb38ab2103dfd102051dea3d47848..9a327b6b142af9e5d22637b9ce9043a3817c9783 100644 --- a/src/SConscript.py +++ b/src/SConscript.py @@ -22,7 +22,8 @@ THcSpacePoint.cxx THcDCTrack.cxx \ THcDCLookupTTDConv.cxx THcDCTimeToDistConv.cxx \ THcShower.cxx THcShowerPlane.cxx \ THcRawShowerHit.cxx \ -THcAerogel.cxx THcAerogelHit.cxx +THcAerogel.cxx THcAerogelHit.cxx \ +THcCherenkov.cxx THcCherenkovHit.cxx \ THcFormula.cxx """)