From 118c5e2678a71dc5588855d20a36d482080d02e4 Mon Sep 17 00:00:00 2001 From: hallc-online <hallc-online@jlab.org> Date: Tue, 21 Mar 2017 09:37:58 -0400 Subject: [PATCH] Add E(Tail)%E(PR) 2-dim. plot for the HMS calorimeter. --- CALIBRATION/hms_cal_calib/THcShTrack.h | 41 ++++++++++++++++++++++ CALIBRATION/hms_cal_calib/THcShowerCalib.h | 6 +++- CALIBRATION/hms_cal_calib/hcal_calib.cpp | 5 +++ 3 files changed, 51 insertions(+), 1 deletion(-) diff --git a/CALIBRATION/hms_cal_calib/THcShTrack.h b/CALIBRATION/hms_cal_calib/THcShTrack.h index ffd11b71..f5c6d20d 100644 --- a/CALIBRATION/hms_cal_calib/THcShTrack.h +++ b/CALIBRATION/hms_cal_calib/THcShTrack.h @@ -50,6 +50,8 @@ class THcShTrack { void SetEs(Double_t* alpha); Double_t Enorm(); + Double_t EPRnorm(); + Double_t ETAnorm(); Double_t GetP() {return P*1000.;} //MeV @@ -210,6 +212,45 @@ Double_t THcShTrack::Enorm() { //------------------------------------------------------------------------------ +Double_t THcShTrack::EPRnorm() { + + // Normalized to the track momentum energy depostion in Preshower. + + Double_t sum = 0; + + for (THcShHitIt iter = Hits.begin(); iter != Hits.end(); iter++) { + UInt_t nblk = (*iter)->GetBlkNumber(); + Int_t ncol=(nblk-1)/fNrows+1; + if (ncol==1) { + sum += (*iter)->GetEpos(); + sum += (*iter)->GetEneg(); + } + } + + return sum/P/1000.; //Momentum in MeV. +} +//------------------------------------------------------------------------------ + +Double_t THcShTrack::ETAnorm() { + + // Normalized to the track momentum energy depostion in Preshower. + + Double_t sum = 0; + + for (THcShHitIt iter = Hits.begin(); iter != Hits.end(); iter++) { + UInt_t nblk = (*iter)->GetBlkNumber(); + Int_t ncol=(nblk-1)/fNrows+1; + if (ncol!=1) { + sum += (*iter)->GetEpos(); + sum += (*iter)->GetEneg(); + } + } + + return sum/P/1000.; //Momentum in MeV. +} + +//------------------------------------------------------------------------------ + //Coordinate correction for single PMT modules. //PMT attached at right (positive) side. diff --git a/CALIBRATION/hms_cal_calib/THcShowerCalib.h b/CALIBRATION/hms_cal_calib/THcShowerCalib.h index 654f0c49..b9606624 100644 --- a/CALIBRATION/hms_cal_calib/THcShowerCalib.h +++ b/CALIBRATION/hms_cal_calib/THcShowerCalib.h @@ -60,6 +60,7 @@ class THcShowerCalib { TH1F* hEuncSel; TH1F* hEcal; TH2F* hDPvsEcal; + TH2F* hETAvsEPR; private: //// Int_t fRunNumber; @@ -155,6 +156,9 @@ void THcShowerCalib::Init() { hEcal = new TH1F("hEcal", "Edep/P calibrated", 150, 0., 1.5); hDPvsEcal = new TH2F("hDPvsEcal", "#DeltaP versus Edep/P ", 150,0.,1.5, 250,-12.5,12.5); + hETAvsEPR = new TH2F("hETAvsEPR", "E_{TA} versus E_{PR}", + 300,0.,1.5, 300,0.,1.5); + // Initialize qumulative quantities. @@ -689,7 +693,7 @@ void THcShowerCalib::FillHEcal() { //// fTree->SetBranchAddress("H.tr.tg_dp",&delta); hDPvsEcal->Fill(Enorm,delta,1.); - // hESHvsEPR->Fill(trk.EPRnorm(), trk.ESHnorm()); + hETAvsEPR->Fill(trk.EPRnorm(), trk.ETAnorm()); output << Enorm*P/1000. << " " << P/1000. << " " << delta << " " << trk.GetX() << " " << trk.GetY() << endl; diff --git a/CALIBRATION/hms_cal_calib/hcal_calib.cpp b/CALIBRATION/hms_cal_calib/hcal_calib.cpp index b0747461..f789bae4 100644 --- a/CALIBRATION/hms_cal_calib/hcal_calib.cpp +++ b/CALIBRATION/hms_cal_calib/hcal_calib.cpp @@ -40,6 +40,11 @@ void hcal_calib(string RunNumber) { theShowerCalib.hEuncSel->SetFillColor(kGreen); theShowerCalib.hEuncSel->DrawCopy("same"); + // E(Tail)%E(Preshower). + + Canvas->cd(2); + theShowerCalib.hETAvsEPR->Draw(); + // Normalized energy deposition after calibration. Canvas->cd(3); -- GitLab