From 6b31b0ecf4ebc5fc6f3e0b815150b5a28344f81a Mon Sep 17 00:00:00 2001 From: hallc-online <hallconline@gmail.com> Date: Fri, 8 Dec 2017 08:38:15 -0500 Subject: [PATCH] Modify THcHallCSpectrometer Fix mistake of add target offsets twice. Fix mistake in units for the HMS Q3 correction --- src/THcHallCSpectrometer.cxx | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/THcHallCSpectrometer.cxx b/src/THcHallCSpectrometer.cxx index f735da2..0c4cfe7 100644 --- a/src/THcHallCSpectrometer.cxx +++ b/src/THcHallCSpectrometer.cxx @@ -318,7 +318,7 @@ Int_t THcHallCSpectrometer::ReadDatabase( const TDatime& date ) ,&fReconTerms[fNReconTerms].Exp[2] ,&fReconTerms[fNReconTerms].Exp[3] ,&fReconTerms[fNReconTerms].Exp[4]); - fNReconTerms++; + fNReconTerms++; good = getline(ifile,line).good(); } cout << "Read " << fNReconTerms << " matrix element terms" << endl; @@ -367,10 +367,8 @@ Int_t THcHallCSpectrometer::FindVertices( TClonesArray& tracks ) //; but for unknown reasons the yp offset is named htheta_offset //; and the xp offset is named hphi_offset - track->SetTarget(0.0, ytar*100.0, xptar+fPhiOffset, yptar+fThetaOffset); - track->SetDp(delta*100.0+fDeltaOffset); // Percent. (Don't think podd cares if it is % or fraction) - // There is an hpcentral_offset that needs to be applied somewhere. - // (happly_offs) + track->SetTarget(0.0, ytar*100.0, xptar, yptar); + track->SetDp(delta*100.0); // Percent. Double_t ptemp = fPcentral*(1+track->GetDp()/100.0); track->SetMomentum(ptemp); TVector3 pvect_temp; @@ -431,23 +429,21 @@ void THcHallCSpectrometer::CalculateTargetQuantities(THaTrack* track,Double_t& g ytar=sum[1]; yptar=sum[2] + fThetaOffset; delta=sum[3] + fDeltaOffset; - if (fSatCorr == 2000) { + if (fSatCorr == 2000) { Double_t p0corr = 0.82825*fPcentral-1.223 ; - delta = delta + p0corr*xptar; + delta = delta + p0corr*xptar/100.; } } // //_____________________________________________________________________________ Int_t THcHallCSpectrometer::TrackCalc() { - if( fNtracks > 0 ) { Int_t hit_gold_track=0; // find track with index =0 which is best track for (Int_t itrack = 0; itrack < fNtracks; itrack++ ){ THaTrack* aTrack = static_cast<THaTrack*>( fTracks->At(itrack) ); if (aTrack->GetIndex()==0) hit_gold_track=itrack; } - fDC->SetFocalPlaneBestTrack(hit_gold_track); fGoldenTrack = static_cast<THaTrack*>( fTracks->At(hit_gold_track) ); fTrkIfo = *fGoldenTrack; -- GitLab