Skip to content
Snippets Groups Projects

CandidateMatchHelpers: Try to transform the cluster calo position vector wrt to (0,0,0) to a position vector wrt to track perigee position

All threads resolved!

Mentioning @amorley as this tries to tackle of the issues he brough up.

The issue is that for large track r/d0 or z0 one needs to approximate "transform" the position of the cluster from something wrt to (0,0,0) to something wrt track perigee position (x0,y0,z0) before performing the quick and dirty candidate match.

Edited by Christos Anastopoulos

Merge request reports

Pipeline #1179405 passed

Pipeline passed for 4eaf3644 on ATLAS-EGamma:CandidateMatchHelpers_add_r_for_correct_eta

Merged by Walter LamplWalter Lampl 5 years ago (Oct 28, 2019 4:05pm UTC)

Merge details

  • Changes merged into master with ff045d2f (commits were squashed).
  • Deleted the source branch.

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Christos Anastopoulos marked as a Work In Progress

    marked as a Work In Progress

  • Christos Anastopoulos changed the description

    changed the description

  • Removing the review-approved label since this is a WIP MR.

  • yea it is not urgent , but indeed for RPVLL non-pointing large R , we need to change the candidateMatch logic ... If the extrapolation was not a bit slow prb we could just extrapolate but then it will be too many tracks so we need to add a bit more elaborate geometrical cases.

  • Hi so updating the indent, I can work on it next week prb 1st thing when the cluster here is back up ...

    The idea is that perhaps is better/easier for maintenance to do this candidate broad matching in a bit more explicit way. It will be not more efficient but prb easier to understand.

    More or less one can make it explicit in translating the cluster calo position from origin at (0,0,0) to (x,y,z) track perigee. And do it for all x,y,z etc.

    So perhaps this will be cleaner . In semi-pseudocode

    ///Get x,y,z of the perigee
    Amg::Vector3D XYZOfPerigeeTrack(candidatePerigee.position().x(),candidatePerigee.position().y(), candidatePerigee.position().z());
    ///Get an approximation of the RClus,Zclus this we can do in the helper which now will reurn a ///Amg::vector3D
    
    ................. helper code
    CandidateMatchHelper::GetApproxXYZAtlas(....
    //===========================================================//
      //These are at the face of the calorimeter
      const  double Rcalo = 1500;
      const  double Zcalo = 3700;
      double Rclus=Rcalo;
      double Zclus=Zcalo;    
      if(clusterEta!=0){
        //eta !=0
        double tanthetaclus=(1/cosh(clusterEta))/tanh(clusterEta); 
        if (isEndCap) {
          Rclus=fabs(Zcalo*(tanthetaclus));
          //Negative Eta ---> negative Z
          if(clusterEta<0){
            Zclus = -Zclus;
          }
        } 	  
        else{
          if(tanthetaclus!=0){
            Zclus=Rcalo/(tanthetaclus);
          }
        }
      }
      else{
        //eta 0
        Zclus=0;
      }
    
    return Amg::Vector3D(Rclus*cos(cluster->phi), Rclus*sin(cluster->phi(),Zclus)
    .....................
    ///Then the above is named like 
     
    Amg::Vector3D XYZClusterWrtATLASFrame= CandidateMatchHelper::GetApproxXYZAtlasF(....);
    Amg::Vector3D XYZClusterWrtTrackPerigee= XYZClusterWrtATLASFrame-XYZOfPerigeeTrack;
    
    ///
    /*
    Now in principle we can compare the
    XYZClusterWrtTrackPerigee->eta(), XYZClusterWrtTrackPerigee->phi() which should be the
    cluster eta,phi as viewed from the track perigee with the track eta,phi at that perigee.
    We can add the approximate rotation due to the magnetic field as we do 
    */
    Edited by Christos Anastopoulos
  • added 1451 commits

    • 5ce15913...9c82ba2c - 1450 commits from branch atlas:master
    • 7a749422 - Merge remote-tracking branch 'upstream/master' into CandidateMatchHelpers_add_r_for_correct_eta

    Compare with previous version

  • Christos Anastopoulos unmarked as a Work In Progress

    unmarked as a Work In Progress

  • Christos Anastopoulos resolved all threads

    resolved all threads

  • added 1 commit

    • 4eaf3644 - Try to transorm cluster calo position vector wrt to (0,0,0) to a position...

    Compare with previous version

  • Christos Anastopoulos changed title from CandidateMatchHelpers add r of perigee for broad candidate matching to CandidateMatchHelpers: Try to transorm cluster calo position vector wrt to (0,0,0) to a position vector wrt to track perigee position

    changed title from CandidateMatchHelpers add r of perigee for broad candidate matching to CandidateMatchHelpers: Try to transorm cluster calo position vector wrt to (0,0,0) to a position vector wrt to track perigee position

  • Christos Anastopoulos changed the description

    changed the description

  • This merge request affects 3 packages:

    • Reconstruction/egamma/egammaAlgs
    • Reconstruction/egamma/egammaTools
    • Reconstruction/egamma/egammaUtils
  • This merge request affects 3 packages:

    • Reconstruction/egamma/egammaAlgs
    • Reconstruction/egamma/egammaTools
    • Reconstruction/egamma/egammaUtils
  • Christos Anastopoulos changed title from CandidateMatchHelpers: Try to transorm cluster calo position vector wrt to (0,0,0) to a position vector wrt to track perigee position to CandidateMatchHelpers: Try to transform the cluster calo position vector wrt to (0,0,0) to a position vector wrt to track perigee position

    changed title from CandidateMatchHelpers: Try to transorm cluster calo position vector wrt to (0,0,0) to a position vector wrt to track perigee position to CandidateMatchHelpers: Try to transform the cluster calo position vector wrt to (0,0,0) to a position vector wrt to track perigee position

  • :white_check_mark: CI Result SUCCESS (hash 4eaf3644)

    Athena AthSimulation
    externals :white_check_mark: :white_check_mark:
    cmake :white_check_mark: :white_check_mark:
    make :white_check_mark: :white_check_mark:
    required tests :white_check_mark: :white_check_mark:
    optional tests :white_check_mark: :white_check_mark:

    Full details available on this CI monitor view
    :white_check_mark: Athena: number of compilation errors 0, warnings 0
    :white_check_mark: AthSimulation: number of compilation errors 0, warnings 0
    :pencil: For experts only: Jenkins output [CI-MERGE-REQUEST-CC7 4805]

  • :white_check_mark: CI Result SUCCESS (hash 7a749422)

    Athena AthSimulation
    externals :white_check_mark: :white_check_mark:
    cmake :white_check_mark: :white_check_mark:
    make :white_check_mark: :white_check_mark:
    required tests :white_check_mark: :white_check_mark:
    optional tests :white_check_mark: :white_check_mark:

    Full details available on this CI monitor view
    :white_check_mark: Athena: number of compilation errors 0, warnings 0
    :white_check_mark: AthSimulation: number of compilation errors 0, warnings 0
    :pencil: For experts only: Jenkins output [CI-MERGE-REQUEST-CC7 4803]

  • On the face of it looks good to me - i guess we need to check the performance in more detail

  • Substantial changes across the board, escalating to L2. --L1

  • Expert reviewed it and it also looks good to me from the L2 point of view. Approving. Best, -- Ric. (L2)

  • merged

  • Walter Lampl mentioned in commit ff045d2f

    mentioned in commit ff045d2f

  • mentioned in merge request !28159 (merged)

  • Please register or sign in to reply
    Loading