Skip to Content.
Sympa Menu

sphenix-tracking-l - [Sphenix-tracking-l] phi position détermination in TpcClusterizer

sphenix-tracking-l AT lists.bnl.gov

Subject: sPHENIX tracking discussion

List archive

Chronological Thread  
  • From: Christof Roland <Christof.Roland AT cern.ch>
  • To: Anthony Frawley via sPHENIX-tracking-l <sphenix-tracking-l AT lists.bnl.gov>
  • Cc: "evgeny.shulga AT stonybrook.edu" <evgeny.shulga AT stonybrook.edu>
  • Subject: [Sphenix-tracking-l] phi position détermination in TpcClusterizer
  • Date: Wed, 22 May 2024 08:53:19 +0000

Hi Everybody, Evgeny,

after the discussion we had in the calibrations meeting yesterday I checked
again how the phi position calculation in the TpcClusterizer is performed.
See workflow below. We are currently still using a hardwired parametric
approach in PHG4TpcCylinderGeom, I dont think this is what we want to
proceed.
We need to replace all the plethora of PHG4TpcCylinderGeom::get_phi* methods
to use the pad plane coordinate lookup Evgeny is implementing.

int PHG4TpcCylinderGeom::get_phibins() const
PHG4TpcCylinderGeom::get_phistep() const
PHG4TpcCylinderGeom::get_phimin() const
PHG4TpcCylinderGeom::get_phibounds(const int ibin) const
int PHG4TpcCylinderGeom::get_phibin_new(const double phi) const
int PHG4TpcCylinderGeom::get_phibin(const double phi, int side) const
PHG4TpcCylinderGeom::get_phicenter_new(const int ibin) const
PHG4TpcCylinderGeom::get_phicenter(const int ibin) const
PHG4TpcCylinderGeom::get_phi(const float ibin) const


A cleaner way would probably be to keep the local x coordinate of the cluster
in pad number coordinates and do the phi and global coordinate conversion
in the ACTS measuremenet conversion.

We should discuss this in the next tracking meeting.

Cheers

Christof

Clusterizer Position extraction sketch:

double clusiphi = iphi_sum / adc_sum; <= weighted mean of pad number
coordinates
double clusphi = my_data.layergeom->get_phi(clusiphi);

thread_pair.data.layergeom = PHG4TpcCylinderGeom

PHG4TpcCylinderGeom::get_phi(const float ibin) const
{
// double phi_center = -999;
if (ibin < 0 || ibin > nphibins)
{
std::cout << PHWHERE << "Asking for invalid bin in phi: " << ibin <<
std::endl;
exit(1);
}

check_binning_method_phi();

const int side = 0;
unsigned int pads_per_sector = nphibins / 12;
unsigned int sector = ibin / pads_per_sector;
double phi = (sector_max_Phi[side][sector] - (ibin + 0.5 - sector *
pads_per_sector) * phistep);
if (phi <= -M_PI)
{
phi += 2 * M_PI;
}
return phi;
}


  • [Sphenix-tracking-l] phi position détermination in TpcClusterizer, Christof Roland, 05/22/2024

Archive powered by MHonArc 2.6.24.

Top of Page