ATLAS Offline Software
ClassNameManips.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
2 
3 # Helper functions for class name manipulations
4 
5 # For some of the finding
6 import re
7 
8 # For logging errors and warnings
9 from AthenaCommon import Logging
10 cnm_log = Logging.logging.getLogger('ClassNameManips')
11 
13  # Baseline: transient name is identical
14  t = p
15  # Let's look for a version in the name
16  vers = re.findall( r'_v\d+',t )
17  if len(vers)>1:
18  cnm_log.warning('Input name '+p+' seems to have multiple version numbers: '+str(vers)+' - will wipe them all')
19  for v in vers:
20  # Wipe out the version
21  t = t.replace(v,'')
22  # Now convert data vectors
23  if 'DataVector<' in t:
24  t = t.replace('DataVector<','').replace('>','')
25  t = 'Container#'.join(t.split('#'))
26  cnm_log.debug('Translated '+p+' to '+t)
27  return t
replace
std::string replace(std::string s, const std::string &s2, const std::string &s3)
Definition: hcg.cxx:307
python.ClassNameManips.pers_to_trans_name
def pers_to_trans_name(p)
Definition: ClassNameManips.py:12
TCS::join
std::string join(const std::vector< std::string > &v, const char c=',')
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/Root/StringUtils.cxx:10
str
Definition: BTagTrackIpAccessor.cxx:11