Skip to content
Snippets Groups Projects
Commit 17f3b559 authored by Vardan Tadevosyan's avatar Vardan Tadevosyan Committed by Stephen A. Wood
Browse files

Move energy to track assignment from THcHallCSpectrometer to the

shower counter's FineProcess.

       Remove THcHallCSpectrometer::TrackEnergies method.
       Add GetShEnergy call for each tack in THcShower::fineProcess.
parent d7ed9e19
No related branches found
No related tags found
No related merge requests found
......@@ -65,7 +65,7 @@
; hdbg_clusters_cal call h_prt_cal_clusters
hdbg_clusters_cal = 0
; hdbg_tracks_cal call h_prt_cal_tracks
hdbg_tracks_cal = 0
hdbg_tracks_cal = 1
; hdbg_tests_cal call h_prt_cal_tests HMS_TRACK_TESTS
hdbg_tests_cal = 0
;
......
......@@ -313,48 +313,9 @@ Int_t THcHallCSpectrometer::TrackCalc()
{
// Additioal track calculations. At present, we only calculate beta here.
// cout << "THcHallCSpectrometer::TrackCalc is called xxxxxxxxxxxxxxxxx\n";
TrackEnergies(fTracks);
return TrackTimes( fTracks );
}
//_____________________________________________________________________________
Int_t THcHallCSpectrometer::TrackEnergies( TClonesArray* Tracks ) {
// Example code for track energy assignments from shower counter.
// cout << "THcHallCSpectrometer::TrackEnergies called -----------------\n" ;
if ( !Tracks ) return -1;
THaTrack *track=0;
Int_t ntrack = GetNTracks();
// cout << " number of tracks " << ntrack << endl;
for ( Int_t itrk=0; itrk < ntrack; itrk++ ) {
Double_t energy = kBig;
track = static_cast<THaTrack*>(Tracks->At(itrk));
TIter nextDet( fNonTrackingDetectors );
THaNonTrackingDetector *det;
while ((det = static_cast<THaNonTrackingDetector*>(nextDet()))) {
THcShower *sh = dynamic_cast<THcShower*>(det);
if ( sh ) energy = sh->GetShEnergy(track);
}
track->SetEnergy(energy);
// cout << "track " << itrk << " energy = " << track->GetEnergy() << endl;
}
return ntrack;
}
//_____________________________________________________________________________
Int_t THcHallCSpectrometer::TrackTimes( TClonesArray* Tracks ) {
// Do the actual track-timing (beta) calculation.
......
......@@ -21,7 +21,6 @@ public:
virtual Int_t FindVertices( TClonesArray& tracks );
virtual Int_t TrackCalc();
virtual Int_t TrackTimes( TClonesArray* tracks );
Int_t TrackEnergies( TClonesArray* tracks );
virtual Int_t ReadRunDatabase( const TDatime& date );
......
......@@ -996,14 +996,35 @@ Float_t THcShower::GetShEnergy(THaTrack* Track) {
//_____________________________________________________________________________
Int_t THcShower::FineProcess( TClonesArray& tracks )
{
// Reconstruct coordinates of particle track cross point with shower
// plane, and copy the data into the following local data structure:
// Shower energy assignment to the spectrometer tracks.
//
// Units of measurements are meters.
// Calculation of coordinates of particle track cross point with shower
// plane in the detector coordinate system. For this, parameters of track
// reconstructed in THaVDC::FineTrack() are used.
Int_t Ntracks = tracks.GetLast()+1; // Number of reconstructed tracks
if (fdbg_tracks_cal) {
cout << endl;
cout << "THcShower::FineProcess: Number of tracks = " << Ntracks << endl;
}
for (Int_t itrk=0; itrk<Ntracks; itrk++) {
THaTrack* theTrack = static_cast<THaTrack*>( tracks[itrk] );
Float_t energy = GetShEnergy(theTrack);
theTrack->SetEnergy(energy);
if (fdbg_tracks_cal) {
cout << "THcShower::FineProcess, Track " << itrk << ": "
<< " X = " << theTrack->GetX()
<< " Y = " << theTrack->GetY()
<< " Theta = " << theTrack->GetTheta()
<< " Phi = " << theTrack->GetPhi()
<< " Enegy = " << energy << endl;
}
} //over tracks
return 0;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment