ATLAS Offline Software
Namespaces | Classes | Typedefs | Functions
D3PD Namespace Reference

Block filler tool for noisy FEB information. More...

Namespaces

 Root
 
 Version2
 Private namespace for version 2 of the code generator code.
 

Classes

class  AddVariable
 Common implementation of IAddVariable. More...
 
class  AuxDataFillerTool
 Copy aux data to D3PD. More...
 
class  BlockFillerTool
 Type-safe wrapper for block filler tools. More...
 
class  BlockFillerTool< Types< T0 > >
 A specialization of BlockFillerTool that can accept one of several types. More...
 
class  BlockFillerTool< void >
 Type-safe wrapper for block filler tools, for tools taking no input. More...
 
class  BlockFillerToolImpl
 Non-template parts of BlockFillerTool. More...
 
struct  ButFirstType
 
struct  ButFirstType< Types< T0, TYPES... > >
 
class  CaloCalibHitFillerTool
 Block filler tool for EM samplings from a CaloCluster. More...
 
class  CaloCalibrationHitContainerGetterTool
 define a special getter More...
 
class  CaloCellDetailsFillerTool
 Block filler tool for EM samplings from a CaloCluster. More...
 
class  CaloCellRawFillerTool
 Block filler tool for calo cell raw eta/phi. More...
 
class  CaloClusterCellAssociationTool
 Associate from a CaloCluster to CaloCell. More...
 
class  CaloInfoFillerTool
 Block filler tool for EM samplings from a CaloCluster. More...
 
class  ClusterEMSamplingFillerTool
 Block filler tool for EM samplings from a CaloCluster. More...
 
class  ClusterPositionInCaloFillerTool
 Block filler tool for eta/phi positions in calo coordinate from a CaloCluster. More...
 
class  ClusterSamplingFillerTool
 Block filler tool for EM samplings from a CaloCluster. More...
 
class  CollectionGetterFilterTool
 A collection getter that filters the results of another. More...
 
class  CollectionGetterFilterToolImpl
 Non-template parts of CollectionGetterFilterTool. More...
 
class  CollectionGetterRegistryTool
 Tool to keep a registry of collection getter tools. More...
 
class  CollectionGetterTool
 Type-safe wrapper for ICollectionGetterTool. More...
 
class  CollectionGetterToolImpl
 Non-template parts of CollectionGetterTool. More...
 
class  ContainedAssociationFillerTool
 Represent a single association by containment. More...
 
class  ContainedMultiAssociationFillerTool
 Represent a multiple association by containment. More...
 
class  ContainedVectorMultiAssociationFillerTool
 Represent a multiple association by containment inside vectors. More...
 
class  ContainerFlagFillerTool
 Flag objects that are present in other containers. More...
 
class  ConversionVertexAssociationTool
 Associate from a conversion to its vertex. More...
 
class  CovarianceFillerTool
 Block filler tool for error and covariance matrix. More...
 
class  D3PDMCTruthClassifier
 Work around MCTruthClassifier brain-damage. More...
 
class  DRAssociationTool
 Associate to particle closest in DR. More...
 
class  DRConeAssociationTool
 Associate all particles within a DR cut. More...
 
class  DummyInitAlg
 Work around initialization ordering problems. More...
 
class  DummyVarFillerTool
 Create an empty variable in the D3PD. More...
 
class  egammaClusterAssociationTool
 Associate from an egamma to its CaloCluster. More...
 
class  egammaConversion0FillerTool
 Block filler tool for photon conversion information, for LOD 0. More...
 
class  egammaConversionFillerTool
 Block filler tool for photon conversion information. More...
 
class  egammaDeltaEmax2Alg
 Calculate deltaEmax2 for egamma objects and store as UD. More...
 
class  egammaGenParticleAssociationTool
 Associate from an electron/photon to a matched GenParticle via classification tool. More...
 
class  egammaLayer1ExtraFillerTool
 
class  egammaMaxECellAlg
 Find most energetic cell in the middle layer for an egamma object and store in UserData. More...
 
class  egammaNbCellsGainAlg
 Count the number of cells in each gain, layer by layer. More...
 
class  egammaRetaphiFillerTool
 
class  egammaSumCellsGainAlg
 Find most energetic cell in the middle layer for an egamma object and store in UserData. More...
 
class  egammaTraversedMaterialFillerTool
 Block filler tool for the material traversed by a photon/electron until the entrance of the calorimeter (in X0) More...
 
class  egammaTruthAlg
 Select egtruth particles. More...
 
class  egammaTruthClassificationFillerTool
 Fill in type/origin from MC classifier tool for an egamma. More...
 
class  ElectronJetDRAssociator
 For every electron find jets in a cone and store lifetime, signed IP, and PTRel of relation. More...
 
class  ElectronTrackParticleAssociationTool
 Associate from an egamma to its TrackParticle. More...
 
class  EventErrorStateFillerTool
 Block filler tool for event error state from EventInfo. More...
 
struct  EventFlagNames
 
class  EventTrigInfoFillerTool
 Tool writing the stream decisions to D3PDs. More...
 
class  EventTypeFillerTool
 Block filler tool for the event type from EventInfo. More...
 
class  EventWeightFillerTool
 Block filler tool for the event weight from EventInfo. More...
 
class  FakeProxy
 Proxy class for storing any kind of object. More...
 
class  FirstAssociationTool
 Choose the first result from a multiple association. More...
 
class  FourMomFillerTool
 Block filler tool for a four-momentum. More...
 
class  IAddVariable
 Common interface for adding a variable to a tuple. More...
 
class  IBlockFillerTool
 Abstract interface for tool to fill a block in the D3PD. More...
 
class  ICollectionGetterRegistryTool
 Abstract interface to keep a registry of collection getter tools. More...
 
class  ICollectionGetterTool
 Abstract interface to get a collection of objects and iterate over it. More...
 
class  ID3PD
 Define an abstract interface for building a D3PD tree. More...
 
class  ID3PDSvc
 Abstract interface for service to create D3PD trees. More...
 
class  IdentityAssociationTool
 A generic identity association; i.e., one that simply returns its input. More...
 
class  IIteration
 Abstract interface for iterating over a set of things. More...
 
class  IMetadataTool
 Write metadata to a D3PD. More...
 
class  ImpactSigmaFillerTool
 Fill d0/z0 uncertainties from an ErrorMatrix. More...
 
class  IMultiAssociationTool
 Abstract interface to form a multi-way association. More...
 
class  INav4MomLinkContainerGetterTool
 Getter tool to retrieve an INav4MomLinkContainer from SG. More...
 
class  IndexAssociationFillerTool
 Represent a single association by index. More...
 
class  IndexFillerTool
 Fill an index of an object within a container. More...
 
class  IndexMap
 
class  IndexMultiAssociationFillerTool
 Represent a multiple association by index. More...
 
class  IObjFillerTool
 Abstract interface for tool to fill an object in the D3PD. More...
 
class  IObjGetterTool
 Abstract interface to get an object to put in the tuple. More...
 
class  IParticleLinksCollectionGetterTool
 
class  IReaderD3PD
 Common interface for the code generator D3PD classes. More...
 
class  ISingleAssociationTool
 Abstract interface to form a single association. More...
 
class  LArCollisionTimeFillerTool
 Block filler tool for collision time information. More...
 
class  LArDigitFillerTool
 Block filler tool for EM samplings from a CaloCluster. More...
 
class  LArHitContainerGetterTool
 define a special getter More...
 
class  LArHitFillerTool
 Block filler tool for EM samplings from a CaloCluster. More...
 
class  LArNoisyROFillerTool
 
class  LArRawChannelContainerGetterTool
 
class  LArRawChannelFillerTool
 
class  LArSCHitFillerTool
 Block filler tool for EM samplings from a CaloCluster. More...
 
class  LBMetadataTool
 Add luminosity metadata info to a D3PD. More...
 
class  MakerAlg
 Algorithm to create a D3PD tree. More...
 
class  MBTSFillerTool
 Block filler tool for MBTS information. More...
 
class  MBTSTimeFillerTool
 Block filler tool for combined MBTS time information. More...
 
class  MDTSimHitFillerTool
 Filler tool for the basic properties of MDTSimHit. More...
 
class  MultiAssociationTool
 Type-safe wrapper for multiple-target associator tools. More...
 
class  MultiAssociationTool< Types< T0 >, TO_T >
 A specialization of MultiAssociationTool that can accept one of several types. More...
 
class  MultiAssociationTool< Types< T0 >, Types< U0 > >
 A specialization of MultiAssociationTool that can accept one of several types, mapping to multiple output types. More...
 
class  MultiAssociationToolImpl
 Non-template parts of MultiAssociationTool. More...
 
class  MultiAssociationToolTo
 Helper for MultiAssociationTool. More...
 
class  MultiReaderAlg
 Algorithm used for generating D3PDReader sources. More...
 
class  MuonGenParticleAssociationTool
 Associate from an electron/photon to a matched GenParticle via classification tool. More...
 
class  MuonNumberOfSegmentsFillerTool
 Fill number of muon segments. More...
 
class  MuonTrackParticleAssociationTool
 Associate from an Muon to its primary TrackParticle. More...
 
class  MuonTrkHitFillerTool
 
class  MuonTruthClassificationFillerTool
 
class  MuonTruthHitsFillerTool
 Fill truth hit information for muons. More...
 
class  NoType
 Placeholder for empty type. More...
 
class  ObjectMetadata
 D3PD variable metadata handling class. More...
 
class  ObjFillerTool
 Object filler tool for a single object. More...
 
class  ObjGetterTool
 This is a type-safe wrapper for the IObjGetterTool interface. More...
 
class  ObjGetterToolImpl
 Non-template parts of ObjGetterTool. More...
 
class  PerigeeBLPredictionFillerTool
 Fill expectHitInBLayer from a Perigee. More...
 
class  PerigeeCovarianceAssociationTool
 Associate from a Perigee to its ErrorMatrix. More...
 
class  PerigeeFillerTool
 
struct  PerigeePair
 
class  PerigeePairOldPerigeeAssociationTool
 Associate from a PerigeePair to the perigee for the original track. More...
 
class  PhotonTruthAlg
 Analyze GenParticle's matching photons and made UD decorations. More...
 
class  PhotonTruthTool
 
class  ReaderAlg
 Algorithm used for generating D3PDReader sources. More...
 
class  RootD3PD
 Root-based D3PD tree. More...
 
class  RootD3PDSvc
 Service to create a root-based D3PD. More...
 
class  RootObjectMetadata
 Extension of the ObjectMetadata class for reading D3PD files. More...
 
class  RootReaderD3PD_v1
 D3PD class used for generating ROOT D3PDReader classes. More...
 
class  RootReaderD3PD_v2
 D3PD class used for generating ROOT D3PDReader classes. More...
 
class  RootReaderD3PDBase
 Base class for all ROOT-based code generators. More...
 
class  RootReaderD3PDSvc
 A very simple D3PDSvc which produces RootReaderD3PD objects. More...
 
class  SCFillerTool
 Block filler tool for EM samplings from a CaloCluster. More...
 
class  SelectedParticlesFilterTool
 A collection getter that filters the results of another based on the contents of a SelectedParticles object. More...
 
struct  SelectType
 Select one type out of the tuple. More...
 
struct  SelectType< Types< TYPES... >, N >
 SelectType used of Types. More...
 
class  SGCollectionGetterTool
 Collection getter tool retrieving a container from StoreGate. More...
 
class  SGDataVectorGetterTool
 Getter tool to retrieve DataVector/List collections from StoreGate. More...
 
class  SGGetterImpl
 Common object getter code for retrieving from StoreGate. More...
 
class  SGKeyResolver
 Helper to resolve the SG key to use. More...
 
class  SGObjGetterTool
 Getter tool to retrieve single objects from StoreGate. More...
 
class  SGTileDigitsGetterTool
 
class  SGTileHitGetterTool
 
class  SGTileModuleBitsGetterTool
 
class  SGTileRawChannelGetterTool
 
class  SingleAssociationTool
 Type-safe wrapper for single associator tools. More...
 
class  SingleAssociationTool< Types< T0 >, TO_T >
 A specialization of SingleAssociationTool that can accept one of several types. More...
 
class  SingleAssociationToolImpl
 Non-template parts of SingleAssociationTool. More...
 
class  SingleAssociationToolTo
 Helper for SingleAssociationTool. More...
 
class  SkimDecisionFillerTool
 Block filler tool for SkimDecisions. More...
 
class  TileAssocFillerTool
 
class  TileCellDetailsFillerTool
 
class  TileCellDigitAssociationTool
 
class  TileCellFillerTool
 
class  TileCellRawAssociationTool
 
class  TileClusterFillerTool
 
class  TileCosmicMuonFillerTool
 
class  TileCosmicMuonTileCellAssociationTool
 
class  TileDigitFillerTool
 
class  TileEventFillerTool
 
class  TileHitFillerTool
 
class  TileHitInfoFillerTool
 Block filler tool for total TileHit energy. More...
 
class  TileL2FillerTool
 
class  TileModuleBitsFillerTool
 
class  TileMuFillerTool
 
class  TileMuonFillerTool
 
class  TileRawChannelFillerTool
 
class  TileTrackFillerTool
 
class  TileTriggerFillerTool
 
class  TileTTL1FillerTool
 
class  TowerFillerTool
 
class  TrackParticleChargeFillerTool
 
class  TrackParticlePerigeeAtBSAssociationTool
 Associate from a VxCandidate to its perigee at the beam spot. More...
 
class  TrackParticlePerigeeAtOOAssociationTool
 Associate from a TrackParticle to its default Perigee. More...
 
class  TrackParticlePerigeeAtPVAssociationTool
 Associate from a VxCandidate to its perigee at primary vertex. More...
 
class  TrackParticlePerigeePairAtOOAssociationTool
 Associate from a VxCandidate to its Position ErrorMatrix. More...
 
class  TrackParticleVertexAssociationTool
 Associate from a TrackParticle to its reconstructed vertex. More...
 
class  TrackRecordCollectionGetterTool
 
class  TrackRecordFillerTool
 Filler tool for the basic properties of TrackRecord. More...
 
class  TruthMuonsToSG
 
class  TruthParticleBremFillerTool
 Fill the hasHardBrem flag. More...
 
class  TruthParticleChildAssociationTool
 Associate all particles within a DR cut. More...
 
class  TruthParticleClassificationFillerTool
 
class  TruthParticleFillerTool
 
class  TruthParticleParentAssociationTool
 Associate all particles within a DR cut. More...
 
class  TruthParticleProdVertexAssociationTool
 Associate from a TruthParticle to its GenVertex production vertex. More...
 
class  TypeConverter
 This is helper for converting between pointers of different types, given dynamically by std::type_info. More...
 
struct  Variable
 Structure describing one D3PD variable. More...
 
class  VectorFillerTool
 Object filler tool for a collection of objects, saved as vectors. More...
 
class  VectorFillerToolBase
 Common code for wrapping filled variables up into a vector. More...
 
class  VertexCovarianceAssociationTool
 Associate from a VxCandidate to its Position ErrorMatrix. More...
 
class  VertexKineFillerTool
 Block filler tool for vertex kinematics, from attached tracks. More...
 
class  VertexTrackParticleAssociationTool
 
class  VoidObjFillerTool
 Object filler tool for tools taking no input. More...
 
struct  WrapType
 Helper so that Types<> will be an empty class. More...
 

Typedefs

template<class... TYPES>
using Types = std::tuple< WrapType< TYPES >... >
 A simple tuple of multiple types. More...
 
template<class T >
using ButFirstType_t = typename ButFirstType< T >::type
 

Functions

StatusCode DummyInitAlg::initialize ATLAS_NOT_THREAD_SAFE ()
 Standard Gaudi initialize method. More...
 
bool isPrimitive (const std::string &type)
 This function is used in the code generator to determine from a type name if it's a primitive type or not. More...
 
ObjectMetadata operator+ (const ObjectMetadata &obj1, const ObjectMetadata &obj2)
 Operator for creating the sum of two metadata objects. More...
 
StatusCode nameToTypeinfo (const std::string &name, std::type_info const *&ti, const std::string &context, ServiceHandle< IClassIDSvc > clidsvc=ServiceHandle< IClassIDSvc >("ClassIDSvc", "TypeNameConversions"))
 Convert from a class name to a type_info. More...
 
StatusCode nameToCLID (const std::string &name, CLID &clid, const std::string &context, ServiceHandle< IClassIDSvc > clidsvc=ServiceHandle< IClassIDSvc >("ClassIDSvc", "TypeNameConversions"))
 Convert from a class name to a CLID. More...
 
StatusCode clidToTypeinfo (CLID clid, const std::string &nmae, std::type_info const *&ti, const std::string &context)
 Convert from a CLID to a type_info; we also already know the name. More...
 
std::string typeinfoToName (const std::type_info &ti)
 Convert from a type_info to a name. More...
 
template<class T0 >
const std::type_info & multiTypeInfo (Types< T0 > *, size_t which)
 Return one type_info from a tuple. More...
 
template<class T0 , class... TYPES>
const std::type_info & multiTypeInfo (Types< T0, TYPES... > *, size_t which)
 
template<class T >
const std::type_info & multiTypeInfo (T *, size_t)
 
std::string ObjectMetadata::genSuffix ATLAS_NOT_THREAD_SAFE (const std::string &name, size_t length)
 Generate a unique suffix for a metadata object name. More...
 
const AmgSymMatrix (5) *PerigeeCovarianceAssociationTool
 Return the target object. More...
 
const AmgSymMatrix (3) *VertexCovarianceAssociationTool
 Return the target object. More...
 

Detailed Description

Block filler tool for noisy FEB information.

=========================== BEGIN OF COMMENTS ================================ Implementation of TileEventFillerTool, which is responsible for retrieving EventInfo and feeding the D3PD with event-by-event information.

Private namespace for the local functions.

Author
Laurent Duflot <duflot at lal.in2p3.fr>

Level of details can be set as follows:

Typedef Documentation

◆ ButFirstType_t

template<class T >
using D3PD::ButFirstType_t = typedef typename ButFirstType<T>::type

◆ Types

template<class... TYPES>
using D3PD::Types = typedef std::tuple<WrapType<TYPES>...>

A simple tuple of multiple types.

This can be used as the type argument of BlockFillerTool and related templates in order to define a tool that can take one of a set of types as input. Eg,

Definition at line 61 of file PhysicsAnalysis/D3PDMaker/D3PDMakerUtils/D3PDMakerUtils/Types.h.

Function Documentation

◆ AmgSymMatrix() [1/2]

const D3PD::AmgSymMatrix ( )

Return the target object.

Parameters
pThe source object for the association.

Return the target of the association, or 0.

Definition at line 39 of file VertexCovarianceAssociationTool.cxx.

40 {
41  return &(p.recVertex().covariancePosition());
42 }

◆ AmgSymMatrix() [2/2]

const D3PD::AmgSymMatrix ( )

Return the target object.

Parameters
pThe source object for the association.

Return the target of the association, or 0.

Definition at line 43 of file PerigeeCovarianceAssociationTool.cxx.

44 {
45  // cast to MeasuredPerigee
46  //const Trk::MeasuredPerigee *measPerigee = dynamic_cast<const Trk::MeasuredPerigee *>(&p);
47  const AmgSymMatrix(5) * cov = p.covariance();
48  if (cov) {
49  // return pointer to Covariance Matrix
50  return cov;
51  }else{
52  REPORT_MESSAGE (MSG::WARNING) << "Could not cast Trk::Perigee to Trk::MeasuredPerigee";
53  }
54 
55  return 0;
56 }

◆ ATLAS_NOT_THREAD_SAFE() [1/2]

std::string ObjectMetadata::metadataName D3PD::ATLAS_NOT_THREAD_SAFE ( ) const

Standard Gaudi initialize method.

When saving the "serialized" version of the object as metadata into a D3PD file, this function should be used to construct the name of the metadata object.

The name receives a "random component" to make sure that when a single job uses the same D3PDObject multiple times, possibly with different detail levels, we would save the variable definitions for both into the output file.

Returns
A unique name, containing the D3PDObject's name

Definition at line 69 of file DummyInitAlg.cxx.

70 {
72 
73  // THistSvc has a bug whereby if it opens output files,
74  // then it leaves the root directory pointing at the last output
75  // file when initialize returns. This means that other root
76  // objects that are meant to be transient can end up in this file.
77  // Worse, we can get a double-delete, as these transient objects
78  // will then be deleted when the file is closed.
79  //
80  // We do this here in the hope that we're the first to call THistSvc.
81  // Maybe we should also bash the current directory back to TROOT?
82  //
83  // This can be removed once this is fixed in THistSvc.
84  // https://savannah.cern.ch/bugs/index.php?60162
85  {
86  DirectoryRestore save;
87  CHECK( m_histSvc.retrieve() );
88  }
89 
90  CHECK( detStore().retrieve() );
91  return StatusCode::SUCCESS;
92 }

◆ ATLAS_NOT_THREAD_SAFE() [2/2]

std::string ObjectMetadata::genSuffix D3PD::ATLAS_NOT_THREAD_SAFE ( const std::string &  name,
size_t  length 
)

Generate a unique suffix for a metadata object name.

Parameters
nameThe metadata object name.
lengthThe length of the suffix to add.

We used to do this by generating a random string. However, this is very bad for regression testing, as adding or removing one variable can then change the names of all subsequent variables. Instead, we generate the suffix based on a count of the number of times we've seen a particular name.

Definition at line 406 of file ObjectMetadata.cxx.

408  {
409 
410  // Count of the number of times a given name was used,
411  // in order to assign them a unique suffix.
412  static std::unordered_map<std::string, size_t> namecount;
413 
414  const size_t count = ++namecount[name];
415  std::ostringstream os;
416  os << std::setw(length) << std::setprecision(length) << std::setfill('0')
417  << count;
418  return os.str();
419  }

◆ clidToTypeinfo()

StatusCode D3PD::clidToTypeinfo ( CLID  clid,
const std::string &  name,
std::type_info const *&  ti,
const std::string &  context 
)

Convert from a CLID to a type_info; we also already know the name.

Parameters
clidThe CLID to convert.
nameThe name of the class to convert.
ti[out]The resulting type_info.
contextContext name, for error reporting.

Definition at line 99 of file TypeNameConversions.cxx.

103 {
104  ti = 0;
105  const SG::BaseInfoBase* bib = SG::BaseInfoBase::find (clid);
106  if (bib) {
107  ti = &bib->typeinfo();
108  return StatusCode::SUCCESS;
109  }
110 
111  // Hmm.. no BaseInfo. Maybe Root knows it.
112  const TClass* cls = TClass::GetClass (name.c_str());
113  if (cls){
114  ti = cls->GetTypeInfo();
115  if (ti)
116  return StatusCode::SUCCESS;
117  }
118 
119  REPORT_MESSAGE_WITH_CONTEXT (MSG::ERROR, context)
120  << "Can't find typeinfo for CLID "
121  << clid << " (type " << name << ").";
122  return StatusCode::FAILURE;
123 }

◆ isPrimitive()

bool D3PD::isPrimitive ( const std::string &  type)

This function is used in the code generator to determine from a type name if it's a primitive type or not.

Function deciding if a given type name is a primitive or not.

Some parts of the generated code have to be written differently for primitive and complex types.

Parameters
typeThe type name that we want to evaluate
Returns
true if the type name is a known primitive type, false otherwise

Definition at line 24 of file isPrimitive.cxx.

24  {
25 
26  //
27  // Create an internal list of primitive type names. This
28  // only has to be done once.
29  //
30  static const std::vector< std::string > primitives = {
31  // Normal C++ type names:
32  "bool",
33  "char",
34  "unsigned char",
35  "short",
36  "unsigned short",
37  "int",
38  "unsigned int",
39  "long",
40  "unsigned long",
41  "long long",
42  "unsigned long long",
43  "float",
44  "double",
45  // ROOT type names:
46  "Bool_t",
47  "Char_t",
48  "UChar_t",
49  "Short_t",
50  "UShort_t",
51  "Int_t",
52  "UInt_t",
53  "Long_t",
54  "ULong_t",
55  "Long64_t",
56  "ULong64_t",
57  "Float_t",
58  "Double_t",
59  };
60 
61  return ( std::find( primitives.begin(), primitives.end(), type ) ==
62  primitives.end() ? false : true );
63  }

◆ multiTypeInfo() [1/3]

template<class T >
const std::type_info& D3PD::multiTypeInfo ( T *  ,
size_t   
)

Definition at line 108 of file PhysicsAnalysis/D3PDMaker/D3PDMakerUtils/D3PDMakerUtils/Types.h.

109 {
110  return typeid (T);
111 }

◆ multiTypeInfo() [2/3]

template<class T0 >
const std::type_info& D3PD::multiTypeInfo ( Types< T0 > *  ,
size_t  which 
)

Return one type_info from a tuple.

If T is Types<T0, ...>, then multiTypeInfo (T*, which) will return typeid(Twhich). Otherwise, it will return typeid(T).

Definition at line 92 of file PhysicsAnalysis/D3PDMaker/D3PDMakerUtils/D3PDMakerUtils/Types.h.

93 {
94  if (which == 0) return typeid (T0);
95  std::abort();
96 }

◆ multiTypeInfo() [3/3]

template<class T0 , class... TYPES>
const std::type_info& D3PD::multiTypeInfo ( Types< T0, TYPES... > *  ,
size_t  which 
)

Definition at line 100 of file PhysicsAnalysis/D3PDMaker/D3PDMakerUtils/D3PDMakerUtils/Types.h.

101 {
102  if (which == 0) return typeid (T0);
103  return multiTypeInfo (static_cast<Types<TYPES...>*>(nullptr), which-1);
104 }

◆ nameToCLID()

StatusCode D3PD::nameToCLID ( const std::string &  name,
CLID clid,
const std::string &  context,
ServiceHandle< IClassIDSvc >  clidsvc = ServiceHandle<IClassIDSvc>("ClassIDSvc",                                                    "TypeNameConversions") 
)

Convert from a class name to a CLID.

Parameters
nameThe class name to convert.
ti[out]The resulting type_info.
contextContext name, for error reporting.
clidsvcHandle to the CLID service.
nameThe class name to convert.
clid[out]The resulting CLID.
contextContext name, for error reporting.
clidsvcHandle to the CLID service.

Definition at line 72 of file TypeNameConversions.cxx.

77 {
78  clid = CLID_NULL;
79  CHECK_WITH_CONTEXT( clidsvc.retrieve(), context );
80 
81  if (clidsvc->getIDOfTypeName (name, clid).isSuccess())
82  return StatusCode::SUCCESS;
83  if (clidsvc->getIDOfTypeInfoName (name, clid).isSuccess())
84  return StatusCode::SUCCESS;
85 
86  REPORT_MESSAGE_WITH_CONTEXT (MSG::ERROR, context)
87  << "Can't find CLID for type name " << name;
88  return StatusCode::FAILURE;
89 }

◆ nameToTypeinfo()

StatusCode D3PD::nameToTypeinfo ( const std::string &  name,
std::type_info const *&  ti,
const std::string &  context,
ServiceHandle< IClassIDSvc >  clidsvc = ServiceHandle<IClassIDSvc>("ClassIDSvc",                                                        "TypeNameConversions") 
)

Convert from a class name to a type_info.

Parameters
nameThe class name to convert.
ti[out]The resulting type_info..
contextContext name, for error reporting.
clidsvcHandle to the CLID service.

Definition at line 33 of file TypeNameConversions.cxx.

38 {
39  ti = 0;
40 
41  // See if root knows the type.
42  const TClass* cls = TClass::GetClass (name.c_str());
43  if (cls) {
44  ti = cls->GetTypeInfo();
45  if (ti) return StatusCode::SUCCESS;
46  }
47 
48  // Try to look it up using BaseInfo. First need to convert to a CLID.
49  CLID clid;
50  if (nameToCLID (name, clid, context, clidsvc).isSuccess()) {
51  const SG::BaseInfoBase* bib = SG::BaseInfoBase::find (clid);
52  if (bib) {
53  ti = &bib->typeinfo();
54  return StatusCode::SUCCESS;
55  }
56  }
57 
58  REPORT_MESSAGE_WITH_CONTEXT (MSG::ERROR, context)
59  << "Can't convert type name " << name << " to type_info.";
60 
61  return StatusCode::FAILURE;
62 }

◆ operator+()

ObjectMetadata D3PD::operator+ ( const ObjectMetadata obj1,
const ObjectMetadata obj2 
)

Operator for creating the sum of two metadata objects.

Definition at line 582 of file ObjectMetadata.cxx.

583  {
584 
585  ObjectMetadata result( obj1 );
586  return result += obj2;
587  }

◆ typeinfoToName()

std::string D3PD::typeinfoToName ( const std::type_info &  ti)

Convert from a type_info to a name.

Parameters
tiThe type_info to convert.

Definition at line 130 of file TypeNameConversions.cxx.

131 {
132  // Handle fundamental types.
133  if (ti == typeid(float))
134  return "float";
135  else if (ti == typeid(double))
136  return "double";
137  else if (ti == typeid(int))
138  return "int";
139  else if (ti == typeid(bool))
140  return "bool";
141  else if (ti == typeid(char))
142  return "char";
143  else if (ti == typeid(signed char))
144  return "signed char";
145  else if (ti == typeid(unsigned char))
146  return "unsigned char";
147  else if (ti == typeid(short))
148  return "short";
149  else if (ti == typeid(unsigned short))
150  return "unsigned short";
151  else if (ti == typeid(unsigned int))
152  return "unsigned int";
153  else if (ti == typeid(long))
154  return "long";
155  else if (ti == typeid(unsigned long))
156  return "unsigned long";
157  else if (ti == typeid(long long))
158  return "long long";
159  else if (ti == typeid(unsigned long long))
160  return "unsigned long long";
161  else if (ti == typeid(long double))
162  return "long double";
163  else if (ti == typeid(wchar_t))
164  return "wchar_t";
165 
166  // Otherwise try to look it up with root.
167  std::string eltname;
168  TClass* eltcls = TClass::GetClass (ti);
169  if (eltcls) {
170  eltname = eltcls->GetName();
171  }
172  else {
173  std::string eltname = System::typeinfoName (ti);
174  eltcls = TClass::GetClass (eltname.c_str());
175  if (eltcls)
176  eltname = eltcls->GetName();
177  }
178  return eltname;
179 }
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
CHECK_WITH_CONTEXT
#define CHECK_WITH_CONTEXT(...)
Evaluate an expression and check for errors, with an explicitly specified context name.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:396
get_generator_info.result
result
Definition: get_generator_info.py:21
find
std::string find(const std::string &s)
return a remapped string
Definition: hcg.cxx:135
initialize
void initialize()
Definition: run_EoverP.cxx:894
plotBeamSpotVxVal.cov
cov
Definition: plotBeamSpotVxVal.py:201
CaloClusterListBadChannel.cls
cls
Definition: CaloClusterListBadChannel.py:8
ReadCellNoiseFromCoolCompare.obj2
obj2
Definition: ReadCellNoiseFromCoolCompare.py:303
D3PD::multiTypeInfo
const std::type_info & multiTypeInfo(T *, size_t)
Definition: PhysicsAnalysis/D3PDMaker/D3PDMakerUtils/D3PDMakerUtils/Types.h:108
D3PD::Types
std::tuple< WrapType< TYPES >... > Types
A simple tuple of multiple types.
Definition: PhysicsAnalysis/D3PDMaker/D3PDMakerUtils/D3PDMakerUtils/Types.h:61
XMLtoHeader.count
count
Definition: XMLtoHeader.py:85
D3PD::AmgSymMatrix
const AmgSymMatrix(5) *PerigeeCovarianceAssociationTool
Return the target object.
Definition: PerigeeCovarianceAssociationTool.cxx:43
checkTP.save
def save(self, fileName="./columbo.out")
Definition: checkTP.py:178
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
Athena::typeinfoName
std::string typeinfoName(const std::type_info &ti)
Convert a type_info to a demangled string.
Definition: AthenaKernel/src/ClassName.cxx:23
D3PD::nameToCLID
StatusCode nameToCLID(const std::string &name, CLID &clid, const std::string &context, ServiceHandle< IClassIDSvc > clidsvc=ServiceHandle< IClassIDSvc >("ClassIDSvc", "TypeNameConversions"))
Convert from a class name to a CLID.
Definition: TypeNameConversions.cxx:72
CHECK
#define CHECK(...)
Evaluate an expression and check for errors.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:422
python.Utils.unixtools.which
def which(filename, env=os.environ)
UNIX-style which ---------------------------------------------------------—.
Definition: unixtools.py:39
CLID
uint32_t CLID
The Class ID type.
Definition: Event/xAOD/xAODCore/xAODCore/ClassID_traits.h:47
ReadFromCoolCompare.os
os
Definition: ReadFromCoolCompare.py:231
REPORT_MESSAGE_WITH_CONTEXT
#define REPORT_MESSAGE_WITH_CONTEXT(LVL, CONTEXT_NAME)
Report a message, with an explicitly specified context name.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:345
python.PyKernel.detStore
detStore
Definition: PyKernel.py:41
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
SG::BaseInfoBase::find
static const BaseInfoBase * find(CLID clid)
Find the BaseInfoBase instance for clid.
Definition: BaseInfo.cxx:569
REPORT_MESSAGE
#define REPORT_MESSAGE(LVL)
Report a message.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:365
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
SG::BaseInfoBase
The non-template portion of the BaseInfo implementation.
Definition: Control/AthenaKernel/AthenaKernel/BaseInfo.h:451
SG::BaseInfoBase::typeinfo
const std::type_info & typeinfo() const
Return the std::type_info for this class.
Definition: BaseInfo.cxx:151
length
double length(const pvec &v)
Definition: FPGATrackSimLLPDoubletHoughTransformTool.cxx:26
TSU::T
unsigned long long T
Definition: L1TopoDataTypes.h:35