Skip to Content.
Sympa Menu

sphenix-tracking-l - Re: [Sphenix-tracking-l] [EXTERNAL] Re: Need to update software and macros

sphenix-tracking-l AT lists.bnl.gov

Subject: sPHENIX tracking discussion

List archive

Chronological Thread  
  • From: "Osborn, Joe" <osbornjd AT ornl.gov>
  • To: Marzia Rosati <marziarosati AT gmail.com>, Anthony Frawley <afrawley AT fsu.edu>, Alex Lebedev <lebedev AT iastate.edu>
  • Cc: "sphenix-tracking-l AT lists.bnl.gov" <sphenix-tracking-l AT lists.bnl.gov>, sphenix-hf-jets-l <sphenix-hf-jets-l AT lists.bnl.gov>
  • Subject: Re: [Sphenix-tracking-l] [EXTERNAL] Re: Need to update software and macros
  • Date: Wed, 13 Jul 2022 15:11:37 +0000

Hi all,

 

After the discussion today in the HF/Q meeting, here is the code that previously did the track->calo cluster matching:

 

https://github.com/sPHENIX-Collaboration/coresoftware/blob/76596713170fe38d1262f7300a0a9e99838b06f8/offline/packages/trackreco/PHActsTrackProjection.cc#L191

 

Previously the code took the Acts projection and used that to do the calo matching. Now, the Acts projection is saved in the SvtxTrackState, so any matching code now would just take the state information and then do the calo cluster matching from there.

 

Let me know if there is anything I can do to help. If there is broader collaboration interest, I can develop a module that runs at the analysis level that does this matching and puts a track->cluster map on the node tree (not to be run in production, but at the analysis level).

 

Joe

 

---------------------------

 

Joe Osborn, Ph.D.

Associate Research Scientist

Oak Ridge National Laboratory

osbornjd AT ornl.gov

(859)-433-8738

 

 

From: sPHENIX-tracking-l <sphenix-tracking-l-bounces AT lists.bnl.gov> on behalf of Osborn, Joe via sPHENIX-tracking-l <sphenix-tracking-l AT lists.bnl.gov>
Date: Wednesday, July 13, 2022 at 8:22 AM
To: Marzia Rosati <marziarosati AT gmail.com>, Anthony Frawley <afrawley AT fsu.edu>, Alex Lebedev <lebedev AT iastate.edu>
Cc: sphenix-tracking-l AT lists.bnl.gov <sphenix-tracking-l AT lists.bnl.gov>
Subject: Re: [Sphenix-tracking-l] [EXTERNAL] Re: Need to update software and macros

Hi Marzia,

 

This would have to be done at the analysis level (e.g. not in the default track reconstruction), and we’d have to think about how to package things. What we could consider doing is having an analysis module that users could choose to run if they need that puts a std::map<track, cluster> on the node tree. This could be the “blessed” sPHENIX version, and if an analysis needs something more complicated then they can use the track state information that is provided in the tracks.

 

Would that be sufficient? Presumably this would not be a huge memory cost as we could just use the pointers in the map, so as to not duplicate memory.

 

Joe

 

---------------------------

 

Joe Osborn, Ph.D.

Associate Research Scientist

Oak Ridge National Laboratory

osbornjd AT ornl.gov

(859)-433-8738

 

 

From: Marzia Rosati <marziarosati AT gmail.com>
Date: Wednesday, July 13, 2022 at 8:09 AM
To: Anthony Frawley <afrawley AT fsu.edu>, Alex Lebedev <lebedev AT iastate.edu>, Osborn, Joe <osbornjd AT ornl.gov>
Cc: sphenix-tracking-l AT lists.bnl.gov <sphenix-tracking-l AT lists.bnl.gov>
Subject: [EXTERNAL] Re: [Sphenix-tracking-l] Need to update software and macros

Joe,
Is there an example on how to do the matching? In any case it seems to me that such a standard task deserves  a common analysis function to match the closest cluster to the track, then analyzer can choose which energy to save: ecore e3x3 etc. 
Best regards
Marzia

On Jul 13, 2022, 6:59 AM -0500, Osborn, Joe via sPHENIX-tracking-l <sphenix-tracking-l AT lists.bnl.gov>, wrote:


Hi Sasha,

 

In addition to what Tony said about accessing the cluster keys, the interface for accessing calo matching information has also changed as a means of conserving memory. The functions get_cal_energy_3x3 and the like have all been deprecated in favor of saving the 6D track state information in the calo itself. This is to provide more flexibility to analyzers and basically punt the matching to the analysis level, so that analyzers can match as they need to. It also reduces our memory footprint in the reconstruction, which is something we just had to do.

 

The tracks are projected to the calo and the state information is saved at the calo radius. The state methods for the SvtxTrack are here, where you will have to get the track state information at the calo layer and then explicitly do the cluster matching yourself now.

 

Joe Osborn

 

---------------------------

 

Joe Osborn, Ph.D.

Associate Research Scientist

Oak Ridge National Laboratory

osbornjd AT ornl.gov

(859)-433-8738

 

 

From: sPHENIX-tracking-l <sphenix-tracking-l-bounces AT lists.bnl.gov> on behalf of Anthony Frawley via sPHENIX-tracking-l <sphenix-tracking-l AT lists.bnl.gov>
Date: Tuesday, July 12, 2022 at 7:48 PM
To: Alex Lebedev <lebedev AT iastate.edu>
Cc: sphenix-tracking-l AT lists.bnl.gov <sphenix-tracking-l AT lists.bnl.gov>
Subject: [EXTERNAL] Re: [Sphenix-tracking-l] Need to update software and macros

Hi Sasha,

 

The way that cluster keys are stored for tracks has changed with the new seeding scheme. The track is now composed of two track seeds that keep their own list of clusters, and the track has pointers to the track seeds. To get the clusters you have to do something like this:

 

 

        std::vector<TrkrDefs::cluskey> clusters;

        auto siseed = track->get_silicon_seed();

        for (auto iter = siseed->begin_cluster_keys();

             iter != siseed->end_cluster_keys();

             ++iter)

          {

            TrkrDefs::cluskey cluster_key = *iter;

            clusters.push_back(cluster_key);

          }

        auto tpcseed = track->get_tpc_seed();

        for (auto iter = tpcseed->begin_cluster_keys();

             iter != tpcseed->end_cluster_keys();

             ++iter)

          {

            TrkrDefs::cluskey cluster_key = *iter;

            clusters.push_back(cluster_key);

          }

 

I am not sure about the association with the CEMC, I have emailed Joe about it.

 

Tony


From: Alex Lebedev <lebedev AT iastate.edu>
Sent: Tuesday, July 12, 2022 6:46 PM
To: Anthony Frawley <afrawley AT fsu.edu>
Cc: sphenix-tracking-l AT lists.bnl.gov <sphenix-tracking-l AT lists.bnl.gov>
Subject: Re: [Sphenix-tracking-l] Need to update software and macros

 

Hi Tony, everyone,

I've updated my macros and generated some Pythia6 events with Upsilons. 

But there seems to be something wrong with tracking.

 

I can clearly see reconstructed electron/positron tracks from Upsilons (they make 

correct invariant mass together), but E/p ratios for them are less than 0.1.

This is true for booth CEMC cluster energy and 3x3 energy around track projection.

Has someone checked that recently? It used to work a few weeks ago.

 

Also, When I look at number of hits in mvtx and tpc like this:

 

    int nmvtx = 0; int nintt = 0; int ntpc = 0;
    for (SvtxTrack::ConstClusterKeyIter iter = track->begin_cluster_keys();
                                        iter != track->end_cluster_keys(); ++iter)
    {
      TrkrDefs::cluskey cluster_key = *iter;
      int trackerid = TrkrDefs::getTrkrId(cluster_key);
      if(trackerid==0) nmvtx++;
      if(trackerid==1) nintt++;
      if(trackerid==2) ntpc++;
    }

 

I get zero number of mvtx and tpc hits.

 

Can someone check this?

 

Sasha.

 

P.S. The macro I run is

/sphenix/user/sphnxpro/embed_new/Fun4All_G4_sPHENIX_pythiaupsilons.C

 

 

On Wed, Jul 6, 2022 at 10:45 AM Anthony Frawley via sPHENIX-tracking-l <sphenix-tracking-l AT lists.bnl.gov> wrote:

Hi All,

 

This is a heads-up for trackers.

 

Chris has just merged coresoftware PR#1555 and macros PR#529. These modify the TPC clustering to use (and store in the cluster) arrival time instead of z as the local coordinate.  That is how the real data will be handled. The details of converting time to global z value are all handled internally by the ActsGeometry class. That change required that the TpcDefs class be moved from packages/tpc to packages/trackbase, since ActsGeometry needs to get the side from the cluster key. You will need to update your coresoftware and rebuild, or your tracking code will break. Also update your macros area to get changes to G4_TPC.C, G4_Tracking.C, and G4_Input.C.

 

Conversion of TPC cluster time to z position needs the drift velocity. I decided to make ActGeometry the keeper of the (reconstruction, see below) drift velocity, and have any module that needs it request it from ActsGeometry. This is to avoid having the drift velocity be defined in multiple places. The only exception is the utility class tpc/TpcClusterZCrossingCorrection, where I have not yet figured out how to get the (static) drift velocity from ActsGeometry, so it is set from the macro.

 

When we have data, the drift velocity used in reconstruction will be determined from the data and will not be the same as the one we use in simulations. Following PR#529, the TPC macro defines different drift velocities for the simulations and reconstruction modules. Currently they are set at 8 cm/ns for both, but they can be specified independently in the macro.

 

 Cheers

Tony

 

_______________________________________________
sPHENIX-tracking-l mailing list
sPHENIX-tracking-l AT lists.bnl.gov
hxxps://lists.bnl.gov/mailman/listinfo/sphenix-tracking-l

_______________________________________________
sPHENIX-tracking-l mailing list
sPHENIX-tracking-l AT lists.bnl.gov
hxxps://lists.bnl.gov/mailman/listinfo/sphenix-tracking-l




Archive powered by MHonArc 2.6.24.

Top of Page