Skip to content
Snippets Groups Projects

ctau seeding

Closed Nicola Orlando requested to merge orlando/athena:ctau_iso into 22.0

Implementation of ctau HLT seeding based on L1Topo ctau multiplicity class. The implementation is just a draft, need to check

  • Granularity of the used coordinates and pTs
  • Is overall this as expected for HLT? @rbielski

#ATR-25307, related to open issue here ATR-25462 (isolation cut is currently hard coded in the L1Topo sim)

@asonay @paulama @iriu @jmharris

Edited by Nicola Orlando

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Tim Martin
  • Thanks @orlando !

  • 20 20 virtual uint64_t getPattern(const xAOD::eFexTauRoI& eTau,
    21 21 const ThrVec& menuThresholds,
    22 22 const TrigConf::L1ThrExtraInfoBase& menuExtraInfo) const override;
    23
    24 // Simple function used to apply the isolation score cut
    25 inline bool isocut(const std::string& threshold, const unsigned int bit) const {
  • 33 unsigned int eFexEt = eTau.etTOB();
    34 unsigned int jFexIso = jTau->iso();
    35 ATH_MSG_DEBUG("eFex et = " << eFexEt << ", jFex iso = " << jFexIso);
    41 // Found a matched tau, not check for isolation and thresholds that are passed
    42
    43 if( isMatched ) {
    44
    45 // Iterate through thresholds and see which ones are passed
    46 for (const std::shared_ptr<TrigConf::L1Threshold>& thrBase : menuThresholds) {
    47
    48 std::shared_ptr<TrigConf::L1Threshold_cTAU> thr = std::static_pointer_cast<TrigConf::L1Threshold_cTAU>(thrBase);
    49 //const auto& thr = dynamic_cast<const TrigConf::L1Threshold_cTAU &>(thrBase);
    50 // Checking et and isolation thresholds
    51 unsigned int isolation_score = TCS::cTauMultiplicity::convertIsoToBit( float(jFexIso) , float(eFexEt) );
    52 //float isolation = static_cast<float>(jTau->tobIso()) / static_cast<float>(eTau.etTOB());
    53 isIsolated = isocut( TrigConf::Selection::wpToString(thr->isolation()), isolation_score );
    • Does checking the isolation threshold really require converting WP to string and then converting the string to int? Why not compare the TrigConf::Selection::WP enum directly? Faster and much less error-prone.

      Edited by Rafal Bielski
    • Nicola Orlando changed this line in version 3 of the diff

      changed this line in version 3 of the diff

    • This comment wasn't addressed. This code is still allocating a string O(100) times per event and doing a few string comparisons for each of them.

      The ideal solution would be for TCS::cTauMultiplicity to provide conversion to TrigConf::Selection::WP directly. If you want to postpone / avoid this change, you could at least do enum comparisons instead of string comparisons in this isocut function. This requires simple changes in only six lines in this file and nothing else.

    • Please register or sign in to reply
  • 34 unsigned int jFexIso = jTau->iso();
    35 ATH_MSG_DEBUG("eFex et = " << eFexEt << ", jFex iso = " << jFexIso);
    41 // Found a matched tau, not check for isolation and thresholds that are passed
    42
    43 if( isMatched ) {
    44
    45 // Iterate through thresholds and see which ones are passed
    46 for (const std::shared_ptr<TrigConf::L1Threshold>& thrBase : menuThresholds) {
    47
    48 std::shared_ptr<TrigConf::L1Threshold_cTAU> thr = std::static_pointer_cast<TrigConf::L1Threshold_cTAU>(thrBase);
    49 //const auto& thr = dynamic_cast<const TrigConf::L1Threshold_cTAU &>(thrBase);
    50 // Checking et and isolation thresholds
    51 unsigned int isolation_score = TCS::cTauMultiplicity::convertIsoToBit( float(jFexIso) , float(eFexEt) );
    52 //float isolation = static_cast<float>(jTau->tobIso()) / static_cast<float>(eTau.etTOB());
    53 isIsolated = isocut( TrigConf::Selection::wpToString(thr->isolation()), isolation_score );
    54 bool passPt = eFexEt > thr->thrValue100MeV(eFexEta/4);
  • Rafal Bielski
  • Nicola Orlando changed the description

    changed the description

  • Tim Martin changed target branch from master to 22.0

    changed target branch from master to 22.0

  • removed master label

  • added 22.0 label

  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Please register or sign in to reply
    Loading