diff --git a/CALIBRATION/hms_cal_calib/THcShTrack.h b/CALIBRATION/hms_cal_calib/THcShTrack.h index ffd11b71c393acabca51c05003dc4ad87b7c18c6..f5c6d20dfd48378d271e6750295008ab906a487d 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 654f0c493e24a4e59b85fa1866ab3e054ca9c316..b9606624a636aeeca7e8011f288d4c5cc59c012c 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 b07474614024c1bd1ac5d737fd2705c3782f5dfd..f789bae44ac1c7a5e850c778abd954c0cc9593cf 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);