ATLAS Offline Software
Loading...
Searching...
No Matches
D3PD Namespace Reference

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

Namespaces

namespace  Root

Classes

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  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  LArCollisionTimeFillerTool
 Block filler tool for collision time information. More...
class  MBTSFillerTool
 Block filler tool for MBTS information. More...
class  MBTSTimeFillerTool
 Block filler tool for combined MBTS time information. More...
class  CaloCalibrationHitContainerGetterTool
 define a special getter More...
class  CaloCalibHitFillerTool
 Block filler tool for EM samplings from a CaloCluster. More...
class  CaloInfoFillerTool
 Block filler tool for EM samplings from a CaloCluster. 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  SCFillerTool
 Block filler tool for EM samplings from a CaloCluster. More...
class  SGTileDigitsGetterTool
class  SGTileHitGetterTool
class  SGTileModuleBitsGetterTool
class  SGTileRawChannelGetterTool
class  TileCellDetailsFillerTool
class  TileCellDigitAssociationTool
class  TileCellRawAssociationTool
class  TileCosmicMuonFillerTool
class  TileCosmicMuonTileCellAssociationTool
class  TileDigitFillerTool
class  TileHitFillerTool
class  TileHitInfoFillerTool
 Block filler tool for total TileHit energy. More...
class  TileL2FillerTool
class  TileModuleBitsFillerTool
class  TileMuFillerTool
class  TileRawChannelFillerTool
class  TileTriggerFillerTool
class  TileTTL1FillerTool
class  TowerFillerTool
class  AuxDataFillerTool
 Copy aux data to D3PD. More...
class  CollectionGetterRegistryTool
 Tool to keep a registry of collection getter tools. More...
class  ContainedAssociationFillerTool
 Represent a single association by containment. More...
class  ContainedMultiAssociationFillerTool
 Represent a multiple association by containment. More...
class  ContainerFlagFillerTool
 Flag objects that are present in other containers. More...
class  DummyInitAlg
 Work around initialization ordering problems. More...
class  DummyVarFillerTool
 Create an empty variable in the D3PD. More...
class  FirstAssociationTool
 Choose the first result from a multiple association. More...
class  IdentityAssociationTool
 A generic identity association; i.e., one that simply returns its input. More...
class  IndexFillerTool
 Fill an index of an object within a container. More...
class  MakerAlg
 Algorithm to create a D3PD tree. More...
class  ObjFillerTool
 Object filler tool for a single object. More...
class  SelectedParticlesFilterTool
 A collection getter that filters the results of another based on the contents of a SelectedParticles object. More...
class  SGDataVectorGetterTool
 Getter tool to retrieve DataVector/List collections from StoreGate. More...
class  SGObjGetterTool
 Getter tool to retrieve single objects from StoreGate. More...
class  VoidObjFillerTool
 Object filler tool for tools taking no input. More...
class  IAddVariable
 Common interface for adding a variable to a tuple. 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  IIteration
 Abstract interface for iterating over a set of things. More...
class  IMetadataTool
 Write metadata to a D3PD. More...
class  IMultiAssociationTool
 Abstract interface to form a multi-way association. More...
class  IObjGetterTool
 Abstract interface to get an object to put in the tuple. More...
class  ISingleAssociationTool
 Abstract interface to form a single association. More...
class  FakeProxy
 Proxy class for storing any kind of object. More...
class  RootD3PD
 Root-based D3PD tree. More...
class  RootD3PDSvc
 Service to create a root-based D3PD. More...
class  AddVariable
 Common implementation of IAddVariable. More...
class  BlockFillerTool
 Type-safe wrapper for block filler tools. More...
class  BlockFillerToolImpl
 Non-template parts of BlockFillerTool. More...
class  BlockFillerTool< Types< T0 > >
 A specialization of BlockFillerTool that can accept one of several types. More...
class  CollectionGetterFilterTool
 A collection getter that filters the results of another. More...
class  CollectionGetterFilterToolImpl
 Non-template parts of CollectionGetterFilterTool. More...
class  CollectionGetterTool
 Type-safe wrapper for ICollectionGetterTool. More...
class  CollectionGetterToolImpl
 Non-template parts of CollectionGetterTool. More...
class  IndexMap
class  MultiAssociationToolTo
 Helper for MultiAssociationTool. More...
class  MultiAssociationTool
 Type-safe wrapper for multiple-target associator tools. More...
class  MultiAssociationToolImpl
 Non-template parts of MultiAssociationTool. 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...
 D3PD variable metadata handling class. More...
class  ObjGetterTool
 This is a type-safe wrapper for the IObjGetterTool interface. More...
class  ObjGetterToolImpl
 Non-template parts of ObjGetterTool. More...
class  SGCollectionGetterTool
 Collection getter tool retrieving a container 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  SingleAssociationToolTo
 Helper for SingleAssociationTool. More...
class  SingleAssociationTool
 Type-safe wrapper for single associator tools. More...
class  SingleAssociationToolImpl
 Non-template parts of SingleAssociationTool. More...
class  SingleAssociationTool< Types< T0 >, TO_T >
 A specialization of SingleAssociationTool that can accept one of several types. More...
class  TypeConverter
 This is helper for converting between pointers of different types, given dynamically by std::type_info. More...
class  NoType
 Placeholder for empty type. More...
struct  WrapType
 Helper so that Types<> will be an empty class. More...
struct  SelectType
 Select one type out of the tuple. More...
struct  SelectType< Types< TYPES... >, N >
 SelectType used of Types. More...
struct  ButFirstType
struct  ButFirstType< Types< T0, TYPES... > >
class  Var
 Description for a single variable. More...
struct  Vars
 Description for the list of variables. More...
class  BlockFillerTool< void >
 Type-safe wrapper for block filler tools, for tools taking no input. More...
class  egammaDeltaEmax2Alg
 Calculate deltaEmax2 for egamma objects and store as UD. More...
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  egammaSumCellsGainAlg
 Find most energetic cell in the middle layer for an egamma object and store in UserData. More...
class  egammaTruthAlg
 Select egtruth particles. More...
class  PhotonTruthAlg
 Analyze GenParticle's matching photons and made UD decorations. More...
class  PhotonTruthTool
class  ConversionVertexAssociationTool
 Associate from a conversion to its vertex. 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  egammaGenParticleAssociationTool
 Associate from an electron/photon to a matched GenParticle via classification tool. More...
class  egammaLayer1ExtraFillerTool
class  egammaRetaphiFillerTool
class  egammaTraversedMaterialFillerTool
 Block filler tool for the material traversed by a photon/electron until the entrance of the calorimeter (in X0). 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  DRConeAssociationTool
 Associate all particles within a DR cut. 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  FourMomFillerTool
 Block filler tool for a four-momentum. More...
class  INav4MomLinkContainerGetterTool
 Getter tool to retrieve an INav4MomLinkContainer from SG. More...
class  IParticleLinksCollectionGetterTool
class  LBMetadataTool
 Add luminosity metadata info to a D3PD. More...
class  SkimDecisionFillerTool
 Block filler tool for SkimDecisions. More...
class  MDTSimHitFillerTool
 Filler tool for the basic properties of MDTSimHit. 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  TrackRecordCollectionGetterTool
class  TrackRecordFillerTool
 Filler tool for the basic properties of TrackRecord. More...
class  TruthMuonsToSG
class  TileAssocFillerTool
class  TileCellFillerTool
class  TileClusterFillerTool
class  TileEventFillerTool
class  TileMuonFillerTool
class  TileTrackFillerTool
class  CovarianceFillerTool
 Block filler tool for error and covariance matrix. More...
class  ImpactSigmaFillerTool
 Fill d0/z0 uncertainties from an ErrorMatrix. More...
class  PerigeeBLPredictionFillerTool
 Fill expectHitInBLayer from a Perigee. More...
class  PerigeeCovarianceAssociationTool
 Associate from a Perigee to its ErrorMatrix. More...
class  PerigeeFillerTool
class  PerigeePairOldPerigeeAssociationTool
 Associate from a PerigeePair to the perigee for the original track. More...
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  VertexCovarianceAssociationTool
 Associate from a VxCandidate to its Position ErrorMatrix. More...
class  VertexKineFillerTool
 Block filler tool for vertex kinematics, from attached tracks. More...
class  VertexTrackParticleAssociationTool
struct  PerigeePair
class  D3PDMCTruthClassifier
 Work around MCTruthClassifier brain-damage. More...
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...

Typedefs

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

Functions

StatusCode scout (EMPTY)
 Fill one block.
 if (pout)
m_associator releaseObjectUntyped (pout)
return againok (scout)
 for (size_t i=0;i< m_blockFillers.size();i++)
 Fill one block.
m_associator releaseElementUntyped (m_next)
 if (m_next||!again) return StatusCode(AGAIN)
 CHECK (doFill(*m_associator, 0))
 Fill one block.
 ContainedVectorMultiAssociationFillerTool (const std::string &type, const std::string &name, const IInterface *parent)
 Represent a multiple association by containment inside vectors.
virtual StatusCode initialize ()
 Standard Gaudi initialize method.
virtual StatusCode configureD3PD (IAddVariable *tree, const std::type_info &ti)
 Configure during initialization: type-check.
virtual StatusCode book ()
 Declare tuple variables.
StatusCode DummyInitAlg::initialize ATLAS_NOT_THREAD_SAFE ()
 Standard Gaudi initialize method.
 if (m_index) *m_index
 Fill one block.
 IndexAssociationFillerTool (const std::string &type, const std::string &name, const IInterface *parent)
 Represent a single association by index.
 CHECK (m_associator->resetUntyped(p))
 Fill one block.
 while (const void *pout=m_associator->nextUntyped())
 IndexMultiAssociationFillerTool (const std::string &type, const std::string &name, const IInterface *parent)
 Represent a multiple association by index.
 VectorFillerTool (const std::string &type, const std::string &name, const IInterface *parent)
 Object filler tool for a collection of objects, saved as vectors.
virtual StatusCode configureD3PD (IAddVariable *tree)
 Configure the tool.
virtual StatusCode fill ()
 Fill one object.
virtual bool isContainerFiller () const
 Find out if the filler handles containers or single objects.
virtual void handle (const Incident &inc)
 Handle end of run incidents to save the metadata at that point.
static StatusCode againok (StatusCode sc)
 Fill one block.
static StatusCode againok (StatusCode sc, StatusCode &scout)
 StatusCode check helper: change AGAIN or EMPTY to SUCCESS.
ObjectMetadata operator+ (const ObjectMetadata &obj1, const ObjectMetadata &obj2)
 Operator for creating the sum of two metadata objects.
StatusCode nameToTypeinfo (const std::string &name, std::type_info const *&ti, const std::string &context, const ServiceHandle< IClassIDSvc > &clidsvc=ServiceHandle< IClassIDSvc >("ClassIDSvc", "TypeNameConversions"))
 Convert from a class name to a type_info.
StatusCode nameToCLID (const std::string &name, CLID &clid, const std::string &context, const ServiceHandle< IClassIDSvc > &clidsvc=ServiceHandle< IClassIDSvc >("ClassIDSvc", "TypeNameConversions"))
 Convert from a class name to a CLID.
StatusCode 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.
std::string typeinfoToName (const std::type_info &ti)
 Convert from a type_info to a name.
template<class T0>
const std::type_info & multiTypeInfo (Types< T0 > *, size_t which)
 Return one type_info from a tuple.
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)
 VectorFillerToolBase (const std::string &type, const std::string &name, const IInterface *parent)
 Common code for wrapping filled variables up into a vector.
virtual StatusCode finalize ()
 Standard Gaudi finalize method.
virtual StatusCode addVariable (const std::string &name, const std::type_info &ti, void *&ptr, const std::string &docstring="", const void *defval=0)
 Add a variable to the tuple.
virtual StatusCode addDimensionedVariable (const std::string &name, const std::type_info &ti, void *&ptr, const std::string &dim, const std::string &docstring="", const void *defval=0)
 Add a variable to the tuple.
StatusCode doConfigure (IAddVariable *tree, IIteration &it)
 Configure the tool.
StatusCode doBook ()
 Declare tuple variables.
StatusCode doFill (IIteration &it, size_t sizeHint)
 Fill objects from an IIteration.
void maybeExtend (size_t &n, size_t &sz)
 Extend vectors if needed.
StatusCode fillOnce (const void *obj, size_t objndx, size_t &n, size_t &sz, const std::vector< unsigned long > &codes_in, std::vector< unsigned long > &codes_out)
 Make one loop over block filler tools.
std::string ObjectMetadata::genSuffix ATLAS_NOT_THREAD_SAFE (const std::string &name, size_t length)
 Generate a unique suffix for a metadata object name.
 DRAssociationTool (const std::string &type, const std::string &name, const IInterface *parent)
 Associate to particle closest in DR.
virtual const INavigable4Momentumget (const INavigable4Momentum &p) override
 Return the target object.
virtual const xAOD::IParticleget (const xAOD::IParticle &p) override
 Return the target object.
const AmgSymMatrix (5) *PerigeeCovarianceAssociationTool
 Return the target object.
const AmgSymMatrix (3) *VertexCovarianceAssociationTool
 Return the target object.

Variables

 scout = StatusCode(scout.getCode())
 m_next = m_associator->nextUntyped()
const void * pout = m_associator->getUntyped (p)
std::string m_targetLabel
 Fill one block.
std::string m_prefix
 Property: The variable name prefix.
std::string m_blockName
 Property: the name of this block.
ToolHandle< ICollectionGetterRegistryToolm_registry
 Property: The ICollectionGetterRegistryTool instance.
bool m_allowMissing
 Property: Don't give an error if the target getter fails to find the input objects.
int * m_index
 Index variable.
TypeConverter m_converter
 Helper to convert from pointer returned by the associator to pointer into the index container.
IndexMap m_map
 Map from objects to indices.
ToolHandle< ICollectionGetterToolm_getter
 Property: The collection getter tool.
std::string m_objectName
 Property: the name of the D3PDObject that created this tool.
bool m_saveMetadata
 Property: If true, the metadata about the variables is saved.
ID3PDm_tree
 Pointer to the ID3PD object used.
ObjectMetadata m_metadata
 Metadata about the variables created by this tool.
ToolHandleArray< IBlockFillerTool > m_blockFillers
 Property: The list of block filler tools.
std::string m_nrowName
 Property: Name of the variable for the count of rows. Omitted if empty.
std::string m_nobjName
 Property: Name of the variable for the count of objects. Omitted if empty.
std::string m_objIndexName
 Property: Name of the variable for the object index. Omitted if empty.
int * m_nrow
 Variable for the row count.
int * m_nobj
 Variable for the object count.
int * m_objIndex
 Variable for the object index.
Vars m_vars
 All booked variables.
bool again
float m_drcut
 Property: DR cut.
float * m_dr
 Variable: DR to associated object.
static const EventFlagNames eventFlagNames []
static constexpr size_t nEventFlagNames

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.

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

Level of details can be set as follows:

  • 0 NO INFORMATION
  • 1 RUN AND EVENT NUMBERS, TIMESTAMP
  • 2 NUMBER OF STACO/MUID MUONS
  • 3 ELABORATE EVENT INFORMATION
  • 4 TRIGGER DECISIONS
  • 5 BASIC MISSING ENERGY
  • 6 CALORIMETRIC MISSING ENERGY
  • 7 ELABORATE MISSING ENERGY
  • 8 INVARIANT MASS

Typedef Documentation

◆ ButFirstType_t

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

◆ Types

template<class... TYPES>
using D3PD::Types = 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,

std::tuple< WrapType< TYPES >... > Types
A simple tuple of multiple types.

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

Function Documentation

◆ addDimensionedVariable()

virtual StatusCode D3PD::addDimensionedVariable ( const std::string & name,
const std::type_info & ti,
void *& ptr,
const std::string & dim,
const std::string & docstring = "",
const void * defval = 0 )
virtual

Add a variable to the tuple.

Parameters
nameThe name of the variable.
typeThe type of the variable.
ptrPointer to the type of the variable. The pointer need not be initialized; the D3PD software will set the pointer prior to calling fill().
dimDimension for the variable. (Presently unimplemented!)
docstringDocumentation string for this variable.
defvalPointer to the default value to use for this variable. Null for no default (generally means to fill with zeros). Of the type given by ti. Only works for basic types.

◆ addVariable()

virtual StatusCode D3PD::addVariable ( const std::string & name,
const std::type_info & ti,
void *& ptr,
const std::string & docstring = "",
const void * defval = 0 )
virtual

Add a variable to the tuple.

Parameters
nameThe name of the variable.
typeThe type of the variable.
ptrPointer to the type of the variable. The pointer need not be initialized; the D3PD software will set the pointer prior to calling fill().
docstringDocumentation string for this variable.
defvalPointer to the default value to use for this variable. Null for no default (generally means to fill with zeros). Of the type given by ti. Only works for basic types.

If called from the constructor, the only effect is to clear ptr.

◆ againok() [1/3]

return D3PD::againok ( scout )

◆ againok() [2/3]

StatusCode D3PD::againok ( StatusCode sc)
static

Fill one block.

Parameters
pThe input object.
againSet if this is a subsequent call requested by an AGAIN return

This is called once per object. The type of the object at which p points is given by the ti argument to configure. The caller is responsible for arranging that all the pointers for booked variables are set appropriately upon entry.

If the return status is the special code AGAIN (defined above), then this filler tool wants to make multiple entries. The parent should set up to capture a new `row' and run through the list of block filler tools again, but for this tool call fillAgainUntyped instead of fillUntyped. This should be repeated as long as fillAgainUntyped returns AGAIN.

Once fillUntyped returns AGAIN, the parent should call fillUntyped with the same p argument and again set to true. This continues until fillUntyped returns something other than AGAIN.

Not all parents may support this. In that case, returning AGAIN will be treated as an error.

The return code may also be EMPTY if this tool did not fill in anything. If all tools return empty, the parent may omit the row. */ virtual StatusCode fillUntyped (const void* p, bool again = false) = 0;

/**

StatusCode check helper: change AGAIN or EMPTY to SUCCESS.

Parameters
scThe StatusCode to check.

If sc is AGAIN or EMPTY, then return SUCCESS. Otherwise, return sc.

◆ againok() [3/3]

StatusCode D3PD::againok ( StatusCode sc,
StatusCode & scout )
static

StatusCode check helper: change AGAIN or EMPTY to SUCCESS.

Parameters
scThe StatusCode to check.
scout[out]Accumulated status code.

If sc is AGAIN or EMPTY, then return SUCCESS. Otherwise, return sc.

If sc is AGAIN, then scout will be set to AGAIN. Otherwise, if sc is not EMPTY, then scout will be set to sc.

◆ AmgSymMatrix() [1/2]

const D3PD::AmgSymMatrix ( 3 )

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 ( 5 )

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}
#define REPORT_MESSAGE(LVL)
Report a message.
#define AmgSymMatrix(dim)

◆ ATLAS_NOT_THREAD_SAFE() [1/2]

std::string ObjectMetadata::metadataName D3PD::ATLAS_NOT_THREAD_SAFE ( void ) 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{
71 CHECK( AthAlgorithm::initialize() );
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}
#define CHECK(...)
Evaluate an expression and check for errors.

◆ 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 }
double length(const pvec &v)
int count(std::string s, const std::string &regx)
count how many occurances of a regx are in a string
Definition hcg.cxx:148

◆ book()

StatusCode D3PD::book ( )
overridevirtual

Declare tuple variables.

Create any needed tuple variables.

This is called at the start of the first event.

◆ CHECK() [1/2]

D3PD::CHECK ( doFill *, 0m_associator)

Fill one block.

Parameters
pThe input object.
againSet if this is a subsequent call requested by an AGAIN return

This is called once per object. The type of the object at which p points is given by the ti argument to configureD3PD. The caller is responsible for arranging that all the pointers for booked variables are set appropriately upon entry.

If the return status is the special code AGAIN (defined above), then this filler tool wants to make multiple entries. The parent should set up to capture a new `row' and run through the list of block filler tools again, but for this tool call fillAgainUntyped instead of fillUntyped. This should be repeated as long as fillAgainUntyped returns AGAIN.

Once fillUntyped returns AGAIN, the parent should call fillUntyped with the same p argument and again set to true. This continues until fillUntyped returns something other than AGAIN.

Not all parents may support this. In that case, returning AGAIN will be treated as an error. */ StatusCode ContainedVectorMultiAssociationFillerTool::fillUntyped (const void* p, bool /*again = false

◆ CHECK() [2/2]

D3PD::CHECK ( m_associator-> resetUntypedp)

Fill one block.

Parameters
pThe input object.
againSet if this is a subsequent call requested by an AGAIN return

This is called once per object. The type of the object at which p points is given by the ti argument to configureD3PD. The caller is responsible for arranging that all the pointers for booked variables are set appropriately upon entry.

If the return status is the special code AGAIN (defined above), then this filler tool wants to make multiple entries. The parent should set up to capture a new `row' and run through the list of block filler tools again, but for this tool call fillAgainUntyped instead of fillUntyped. This should be repeated as long as fillAgainUntyped returns AGAIN.

Once fillUntyped returns AGAIN, the parent should call fillUntyped with the same p argument and again set to true. This continues until fillUntyped returns something other than AGAIN.

Not all parents may support this. In that case, returning AGAIN will be treated as an error. */ StatusCode IndexMultiAssociationFillerTool::fillUntyped (const void* p, bool /*again = false

◆ 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 98 of file TypeNameConversions.cxx.

102{
103 ti = 0;
104 const SG::BaseInfoBase* bib = SG::BaseInfoBase::find (clid);
105 if (bib) {
106 ti = &bib->typeinfo();
107 return StatusCode::SUCCESS;
108 }
109
110 // Hmm.. no BaseInfo. Maybe Root knows it.
111 const TClass* cls = TClass::GetClass (name.c_str());
112 if (cls){
113 ti = cls->GetTypeInfo();
114 if (ti)
115 return StatusCode::SUCCESS;
116 }
117
118 REPORT_MESSAGE_WITH_CONTEXT (MSG::ERROR, context)
119 << "Can't find typeinfo for CLID "
120 << clid << " (type " << name << ").";
121 return StatusCode::FAILURE;
122}
#define REPORT_MESSAGE_WITH_CONTEXT(LVL, CONTEXT_NAME)
Report a message, with an explicitly specified context name.
The non-template portion of the BaseInfo implementation.
static const BaseInfoBase * find(CLID clid)
Find the BaseInfoBase instance for clid.
Definition BaseInfo.cxx:570
const std::type_info & typeinfo() const
Return the std::type_info for this class.
Definition BaseInfo.cxx:151

◆ configureD3PD() [1/2]

StatusCode D3PD::configureD3PD ( IAddVariable * tree)
virtual

Configure the tool.

Abstract interface for tool to fill an object in the D3PD.

Parameters
treeThe parent D3PD tree.

This is called during initialization.

Each tree consists of a set of objects. Each of these will generally correspond to one C++ object, or set of objects in a container. Each object is filled by a tool of type IObjFillerTool. (These tools are intended to be generic; the object-specific code is in block filling). For the case of objects in a container, all the filled tuple leaves should start with a common prefix (e.g., `el_'), and a count leaf will be automatically added (`el_n'). For single objects not in a container, a prefix is optional; but if present should be common to all the leaves of the object.

Inputs to object filler tools are provided by `getter' tools. */ class IObjFillerTool : virtual public IAlgTool { public: / Gaudi interface definition. DeclareInterfaceID(IObjFillerTool, 1, 0);

/**

Configure the tool.

Parameters
treeThe parent D3PD tree.

This is called during initialization.

◆ configureD3PD() [2/2]

StatusCode D3PD::configureD3PD ( IAddVariable * tree,
const std::type_info & ti )
overridevirtual

Configure during initialization: type-check.

Abstract interface for tool to fill a block in the D3PD.

Parameters
treeOur parent for tuple making.
tiGives the type of the object being passed to fillUntyped.

configureD3PD should check that the type of the object coming as input is compatible with what it expects, and raise an error otherwise.

Each object consists of a set of blocks. A block is a small set of related tuple variables for some object. Blocks represent the intended granularity for enabling or disabling variables (though it should be possible to control individual variables through the remapping mechanism). Blocks are filled by tools of type IBlockFillerTool. Blocks (and the associated tools) will generally be specific for a particular object type (i.e., fill the egamma PID variables) A few, however, will be more generic: for example, there should be one block tool for filling 4-vector information that's used by all object types (that implement 4-vectors).

Each block is associated with a specific `level of detail' in job configuration. This allows enabling a preselected set of blocks.

Each block has a default variable name for each leaf filled. This is concatenated with the object prefix (if any) to produce the full name for the leaf. It will be possible to configure the filler tools to change the names of the tuple leaves (this should be implemented with generic code in a base class). The same mechanism may be used to disable specific leaves entirely by remapping to a null name. (Remapping is not yet implemented.)

User-written code will generally not implement this interface directly, but will instead use the type-safe wrappers provided by BlockFillerTool. */ class IBlockFillerTool : virtual public IAlgTool { public: / Gaudi interface definition. DeclareInterfaceID(IBlockFillerTool, 1, 0);

/ Special status code to indicate that we want fillAgainUntyped / to be called; see below. enum { AGAIN = 1001, EMPTY = 1002 };

/**

Configure during initialization: type-check.

Parameters
treeOur parent for tuple making.
tiGives the type of the object being passed to fillUntyped.

configureD3PD should check that the type of the object coming as input is compatible with what it expects, and raise an error otherwise.

◆ ContainedVectorMultiAssociationFillerTool()

D3PD::ContainedVectorMultiAssociationFillerTool::ContainedVectorMultiAssociationFillerTool ( const std::string & type,
const std::string & name,
const IInterface * parent )

Represent a multiple association by containment inside vectors.

Standard Gaudi tool constructor.

This is a block filler tool which represents a multiple association by containment; the variables in the contained blocks will appear inside of vectors. (This implies that if this block itself is used with, say, VectorFillerTool, then we'll end up with nested vectors.)

It takes as a property an IMultiAssociationTool. For each input object, it asks the association tool which objects are associated with it; the result is a collection of 0 or more objects. This tool also has a list of block filler tools; these tools are called for the result of the association.

Properties:

Associator - The IMultiAssociationTool.

Properties inherited from VectorFillerToolBase:

BlockFillers - List of IBlockFillerTool instances. Prefix - Prefix to add to variable names for this block. NrowName - Name of the variable for the count of rows. Omitted if empty. Default: `n'. NobjName - Name of the variable for the count of objects. (May be less than the number of rows if AGAIN is used.) Omitted if empty (default). ObjIndexName - Name of the variable for the object index. Omitted if empty (default). */ class ContainedVectorMultiAssociationFillerTool : public extends<VectorFillerToolBase, IBlockFillerTool> { public: /**

Standard Gaudi tool constructor.

Parameters
typeThe name of the tool type.
nameThe tool name.
parentThe tool's Gaudi parent.
typeThe name of the tool type.
nameThe tool name.
parentThe tool's Gaudi parent.

Definition at line 27 of file ContainedVectorMultiAssociationFillerTool.cxx.

31 : base_class (type, name, parent),
32 m_associator (this)
33{
34 declareProperty ("Associator", m_associator,
35 "The IMultiAssociationTool instance.");
36}

◆ doBook()

StatusCode D3PD::VectorFillerToolBase::doBook ( )
protected

Declare tuple variables.

This is called at the start of the first event.

Definition at line 112 of file VectorFillerToolBase.cxx.

113{
114 // Create the count/index variables.
115 if (!m_nrowName.empty()) {
116 CHECK( m_metadata.addVariable (m_prefix + m_nrowName, m_nrow,
117 "Number of ntuple rows.") );
118 CHECK( m_tree->addVariable (m_prefix + m_nrowName, m_nrow,
119 "Number of ntuple rows.") );
120 }
121 if (!m_nobjName.empty()) {
123 "Number of objects.") );
125 "Number of objects.") );
126 }
127 if (!m_objIndexName.empty())
129 "Index of this object.") );
130
131 // Book child variables.
132 for (size_t i = 0; i < m_blockFillers.size(); i++)
133 CHECK( m_blockFillers[i]->book() );
134
135 return StatusCode::SUCCESS;
136}
StatusCode addVariable(const std::string &name, T *&ptr, const std::string &docstring="")
Add a variable to the tuple.
virtual StatusCode addVariable(const std::string &name, const std::type_info &ti, void *&ptr, const std::string &docstring="", const void *defval=0)
This function can be used to save the metadata about a D3PD variable.
std::string m_nobjName
Property: Name of the variable for the count of objects. Omitted if empty.
std::string m_nrowName
Property: Name of the variable for the count of rows. Omitted if empty.
virtual StatusCode book()
Declare tuple variables.
ID3PD * m_tree
Pointer to the ID3PD object used.
std::string m_objIndexName
Property: Name of the variable for the object index. Omitted if empty.
std::string m_prefix
Property: The variable name prefix.
int * m_objIndex
Variable for the object index.
int * m_nobj
Variable for the object count.
int * m_nrow
Variable for the row count.
ToolHandleArray< IBlockFillerTool > m_blockFillers
Property: The list of block filler tools.
ObjectMetadata m_metadata
Metadata about the variables created by this tool.

◆ doConfigure()

StatusCode D3PD::VectorFillerToolBase::doConfigure ( IAddVariable * tree,
IIteration & it )
protected

Configure the tool.

Parameters
treeThe parent D3PD tree.
itThe iteration object we'll use. (Used to get the elt type.)

This is called during initialization.

Definition at line 147 of file VectorFillerToolBase.cxx.

148{
149 m_tree = tree;
150
151 // Get the type of object we'll get from the iteration.
152 const std::type_info& ti = it.elementTypeinfo();
153
154 // Configure all child tools.
155 for (size_t i = 0; i < m_blockFillers.size(); i++)
156 CHECK( m_blockFillers[i]->configureD3PD (this, ti) );
157
158 return StatusCode::SUCCESS;
159}
virtual StatusCode configureD3PD(IAddVariable *tree, const std::type_info &ti)
Configure during initialization: type-check.
TChain * tree

◆ doFill()

StatusCode D3PD::VectorFillerToolBase::doFill ( IIteration & it,
size_t sizeHint )
protected

Fill objects from an IIteration.

Parameters
itIteration object. Must have already been reset.
sizeHintHint for the expected size of the iteration.

This will loop over the objects in the iteration; for each object, it will loop over the contained block filler tools.

Parameters
itIteration object. Must have already been reset.

This will loop over the objects in the iteration; for each object, it will loop over the contained block filler tools.

Definition at line 244 of file VectorFillerToolBase.cxx.

245{
246 // Set variable vectors to the expected size.
247 m_vars.resize_all (sizeHint);
248 size_t n = 0;
249 size_t nobj = 0;
250 size_t sz = sizeHint;
251
252 std::vector<unsigned long> codes_in;
253 std::vector<unsigned long> codes_out;
254
255 // Loop over objects.
256 // Note: @c nextUntyped may try to fill variables. Make sure there's space.
257 maybeExtend (n, sz);
258 while (const void* obj = it.nextUntyped() ) {
259 // AGAIN processing.
260 codes_in.clear();
261 codes_in.resize (m_blockFillers.size(), StatusCode(StatusCode::SUCCESS).getCode());
262 CHECK( fillOnce (obj, nobj, n, sz, codes_in, codes_out) );
263 codes_in = codes_out;
264 while (std::find (codes_out.begin(), codes_out.end(),
265 (unsigned long)IBlockFillerTool::AGAIN)
266 != codes_out.end())
267 {
268 CHECK( fillOnce (obj, nobj, n, sz, codes_in, codes_out) );
269 }
270
271 ++nobj;
272
273 it.releaseElementUntyped (obj);
274 maybeExtend (n, sz);
275 }
276
277 // Set vectors to the proper final size.
278 if (sz != n)
279 m_vars.resize_all (n);
280
281 // Save the counts.
282 if (m_nrow)
283 *m_nrow = n;
284 if (m_nobj)
285 *m_nobj = nobj;
286
287 return StatusCode::SUCCESS;
288}
static Double_t sz
void maybeExtend(size_t &n, size_t &sz)
Extend vectors if needed.
StatusCode fillOnce(const void *obj, size_t objndx, size_t &n, size_t &sz, const std::vector< unsigned long > &codes_in, std::vector< unsigned long > &codes_out)
Make one loop over block filler tools.
Vars m_vars
All booked variables.

◆ DRAssociationTool()

D3PD::DRAssociationTool::DRAssociationTool ( const std::string & type,
const std::string & name,
const IInterface * parent )

Associate to particle closest in DR.

Standard Gaudi tool constructor.

This is a single association tool. Given an INavigable4Momentum object and a container of such objects, return the object in the container closest in DR to the input object. Optionally, a DR cut may be set; the association fails if there are no objects within that cut.

Parameters: Getter - ICollectionGetterTool instance defining the target collection. DRCut - DR cut for the association. (default: 999)

This tool will create a tuple variable `dr' giving the distance in DR to the associated object. */ class DRAssociationTool : public SingleAssociationTool<Types<INavigable4Momentum, xAOD::IParticle> > { public: typedef SingleAssociationTool<Types<INavigable4Momentum, xAOD::IParticle> > Base;

/**

Standard Gaudi tool constructor.

Parameters
typeThe name of the tool type.
nameThe tool name.
parentThe tool's Gaudi parent.
typeThe name of the tool type.
nameThe tool name.
parentThe tool's Gaudi parent.

Definition at line 33 of file DRAssociationTool.cxx.

36 : Base (type, name, parent),
37 m_getter (this)
38{
39 declareProperty ("Getter", m_getter,
40 "ICollectionGetterTool instance defining "
41 "the target collection");
42 declareProperty ("DRCut", m_drcut = 999,
43 "DR cut for the association");
44
45 DRAssociationTool::book().ignore(); // Avoid coverity warnings.
46}
doing TRTHTH Hypo selection
ToolHandle< ICollectionGetterTool > m_getter
Property: The collection getter tool.
float m_drcut
Property: DR cut.

◆ fill()

return D3PD::fill ( )
virtual

Fill one object.

This is called once per event. It should:

  • Fetch the input.
  • If it's a container, loop over the contents.
  • Loop over the contained block filler tools.

◆ fillOnce()

StatusCode D3PD::VectorFillerToolBase::fillOnce ( const void * obj,
size_t objndx,
size_t & n,
size_t & sz,
const std::vector< unsigned long > & codes_in,
std::vector< unsigned long > & codes_out )
private

Make one loop over block filler tools.

Parameters
objObject being processed.
objndxThe index of the object we're currently processing.
nNumber of entries currently made in the vectors.
szCurrent size of the vectors.
codes_inVector of status returns for each tool from the first fill call.
codes_out[out]Vector of status returns for each tool from this fill call.

This function may be called more than once for an object if AGAIN was requested.

We loop over all block filler tools. For each, we call fillUntyped with the again parameter set depending on whether codes_in for this tool is AGAIN. We collect the return codes from each tool in codes_out.

Definition at line 196 of file VectorFillerToolBase.cxx.

202{
203 codes_out.resize (m_blockFillers.size());
204
205 // Extend vectors if needed.
206 maybeExtend (n, sz);
207
208 // Loop over block fillers.
209 bool all_empty = true;
210 for (size_t j = 0; j < m_blockFillers.size(); j++) {
211 StatusCode scode =
212 m_blockFillers[j]->fillUntyped(obj,
213 codes_in[j] == IBlockFillerTool::AGAIN);
214 codes_out[j] = scode.getCode();
215 if (codes_out[j] != IBlockFillerTool::EMPTY)
216 all_empty = false;
217 CHECK( IBlockFillerTool::againok (scode) );
218 }
219
220 // If all tools returned empty, then ignore this row.
221 // But don't ignore it if there are no block fillers at all
222 // (it may be that an associator tool will be filling variables).
223 if (!all_empty || m_blockFillers.empty()) {
224 if (m_objIndex)
225 *m_objIndex = objndx;
226
227 // Count rows and update variable pointers.
228 ++n;
230 }
231
232 return StatusCode::SUCCESS;
233}
void next_all()
Move all variable pointers to the next element.

◆ finalize()

virtual StatusCode D3PD::finalize ( )
virtual

Standard Gaudi finalize method.

◆ for()

D3PD::for ( )

Fill one block.

Parameters
pThe input object.
againSet if this is a subsequent call requested by an AGAIN return

This is called once per object. The type of the object at which p points is given by the ti argument to configureD3PD. The caller is responsible for arranging that all the pointers for booked variables are set appropriately upon entry.

If the return status is the special code AGAIN (defined above), then this filler tool wants to make multiple entries. The parent should set up to capture a new `row' and run through the list of block filler tools again, but for this tool call fillAgainUntyped instead of fillUntyped. This should be repeated as long as fillAgainUntyped returns AGAIN.

Once fillUntyped returns AGAIN, the parent should call fillUntyped with the same p argument and again set to true. This continues until fillUntyped returns something other than AGAIN.

Not all parents may support this. In that case, returning AGAIN will be treated as an error.

The return code may also be EMPTY if this tool did not fill in anything. If all tools return empty, the parent may omit the row. */ StatusCode ContainedMultiAssociationFillerTool::fillUntyped (const void* p, bool again /*= false

Definition at line 164 of file ContainedMultiAssociationFillerTool.cxx.

164 {
165 StatusCode sc = m_blockFillers[i]->fillUntyped (m_next);
166 CHECK( IBlockFillerTool::againok (sc) );
167 if (!sc.isSuccess()) {
168 REPORT_MESSAGE (MSG::WARNING)
169 << "Got AGAIN/EMPTY: "
170 << "Nested ContainedMultiAssociationFillerTool not supported.";
171 }
172 }
static Double_t sc

◆ get() [1/2]

virtual const INavigable4Momentum * D3PD::get ( const INavigable4Momentum & p)
overridevirtual

Return the target object.

Parameters
pThe source object for the association.

Return the target of the association, or 0.

◆ get() [2/2]

virtual const xAOD::IParticle * D3PD::get ( const xAOD::IParticle & p)
overridevirtual

Return the target object.

Parameters
pThe source object for the association.

Return the target of the association, or 0.

◆ handle()

virtual void D3PD::handle ( const Incident & inc)
virtual

Handle end of run incidents to save the metadata at that point.

◆ if() [1/3]

D3PD::if ( m_index )

Fill one block.

Parameters
pThe input object.
againSet if this is a subsequent call requested by an AGAIN return

This is called once per object. The type of the object at which p points is given by the ti argument to configureD3PD. The caller is responsible for arranging that all the pointers for booked variables are set appropriately upon entry.

If the return status is the special code AGAIN (defined above), then this filler tool wants to make multiple entries. The parent should set up to capture a new `row' and run through the list of block filler tools again, but for this tool call fillAgainUntyped instead of fillUntyped. This should be repeated as long as fillAgainUntyped returns AGAIN.

Once fillUntyped returns AGAIN, the parent should call fillUntyped with the same p argument and again set to true. This continues until fillUntyped returns something other than AGAIN.

Not all parents may support this. In that case, returning AGAIN will be treated as an error. */ StatusCode IndexAssociationFillerTool::fillUntyped (const void* p, bool /*again = false

◆ if() [2/3]

D3PD::if ( m_next||! again)

◆ if() [3/3]

D3PD::if ( pout )

Definition at line 141 of file ContainedAssociationFillerTool.cxx.

141 {
142 if (!m_matchedName.empty())
143 *m_matched = true;
144 for (size_t i = 0; i < m_blockFillers.size(); i++) {
145 // Set checked flag on scout.
146 // Otherwise, if we get an exception in the child, all we'll see
147 // is an unchecked status code error with no mention of the
148 // actual exception...
149 scout.ignore();
150 CHECK( againok (m_blockFillers[i]->fillUntyped (pout, again), scout) );
151 }
152 }
return againok(scout)

◆ IndexAssociationFillerTool()

D3PD::IndexAssociationFillerTool::IndexAssociationFillerTool ( const std::string & type,
const std::string & name,
const IInterface * parent )

Represent a single association by index.

Standard Gaudi tool constructor.

This is a block filler tool which represents a single association by index.

It takes as a property an ISingleAssociationTool. For each input object, it asks the association tool which object is associated with it. It also takes as a property a collection getter label. This defines an `index' collection. The tool searches this collection for the target of the association and finds the index of that object within that collection. That index is then booked as a variable.

The index is set to -1 if the association fails or if the object isn't found in the index container.

Properties: Associator - The ISingleAssociationTool instance. Target - Label of the collection getter defining the collection within which to index. Prefix - Variable name prefix for the contained blocks. CollectionGetterRegistry - The ICollectionGetterRegistryTool instance. */ class IndexAssociationFillerTool : public extends<AthAlgTool, IBlockFillerTool>, public AddVariable { public: /**

Standard Gaudi tool constructor.

Parameters
typeThe name of the tool type.
nameThe tool name.
parentThe tool's Gaudi parent.
typeThe name of the tool type.
nameThe tool name.
parentThe tool's Gaudi parent.

Definition at line 28 of file IndexAssociationFillerTool.cxx.

32 : base_class (type, name, parent),
34 m_associator (this),
35 m_index (0),
37{
38 declareProperty ("Associator", m_associator,
39 "The ISingleAssociationTool instance.");
40 declareProperty ("Target", m_targetLabel,
41 "Label of the collection getter defining the collection "
42 "within which to index.");
43 declareProperty ("Prefix", m_prefix,
44 "Variable name prefix for the index variable.");
45 declareProperty ("BlockName", m_blockName = this->name(),
46 "The name of this block.");
47 declareProperty ("CollectionGetterRegistry", m_registry,
48 "The ICollectionGetterRegistryTool instance.");
49 declareProperty ("AllowMissing", m_allowMissing = false,
50 "If true, then it is not considered an error for the "
51 "target getter to fail to find the input objects.");
52}
Common implementation of IAddVariable.
Definition AddVariable.h:38
ToolHandle< ICollectionGetterRegistryTool > m_registry
Property: The ICollectionGetterRegistryTool instance.
bool m_allowMissing
Property: Don't give an error if the target getter fails to find the input objects.
IndexMap m_map
Map from objects to indices.
std::string m_blockName
Property: the name of this block.
int * m_index
Index variable.
std::string m_targetLabel
Fill one block.

◆ IndexMultiAssociationFillerTool()

D3PD::IndexMultiAssociationFillerTool::IndexMultiAssociationFillerTool ( const std::string & type,
const std::string & name,
const IInterface * parent )

Represent a multiple association by index.

Standard Gaudi tool constructor.

This is a block filler tool which represents a multiple association by a collection of indices.

It takes as a property an IMultiAssociationTool. For each input object, it asks the association tool which objects are associated with it; the result is a collection of 0 or more objects. It also takes as a property a collection getter label. This defines an `index' collection. The tool searches this collection for each target of the association and finds the index of that object within that collection. The result is booked as a vector of ints.

Objects that aren't found in the index collection are omitted from the index vector.

Properties: Associator - The IMultiAssociationTool instance. Target - Label of the collection getter defining the collection within which to index. Prefix - Variable name prefix for the contained blocks. CollectionGetterRegistry - The ICollectionGetterRegistryTool instance. */ class IndexMultiAssociationFillerTool : public extends<AthAlgTool, IBlockFillerTool>, public AddVariable { public: /**

Standard Gaudi tool constructor.

Parameters
typeThe name of the tool type.
nameThe tool name.
parentThe tool's Gaudi parent.
typeThe name of the tool type.
nameThe tool name.
parentThe tool's Gaudi parent.

Definition at line 28 of file IndexMultiAssociationFillerTool.cxx.

32 : base_class (type, name, parent),
34 m_associator (this),
35 m_index (0),
37{
38 declareProperty ("Associator", m_associator,
39 "The ISingleAssociationTool instance.");
40 declareProperty ("Target", m_targetLabel,
41 "Label of the collection getter defining the collection "
42 "within which to index.");
43 declareProperty ("Prefix", m_prefix,
44 "Variable name prefix for the index variable.");
45 declareProperty ("BlockName", m_blockName = this->name(),
46 "The name of this block.");
47 declareProperty ("CollectionGetterRegistry", m_registry,
48 "The ICollectionGetterRegistryTool instance.");
49 declareProperty ("AllowMissing", m_allowMissing = false,
50 "If true, then it is not considered an error for the "
51 "target getter to fail to find the input objects.");
52}

◆ initialize()

StatusCode D3PD::initialize ( )
overridevirtual

Standard Gaudi initialize method.

Standard Gaudi initialize method.

◆ isContainerFiller()

bool D3PD::isContainerFiller ( ) const
virtual

Find out if the filler handles containers or single objects.

This is used by the D3PDReader code generator to know how to create the generated source files exactly.

◆ maybeExtend()

void D3PD::VectorFillerToolBase::maybeExtend ( size_t & n,
size_t & sz )
private

Extend vectors if needed.

Parameters
nNumber of entries currently made in the vectors.
szCurrent size of the vectors.

Definition at line 167 of file VectorFillerToolBase.cxx.

168{
169 if (n >= sz) {
170 sz = std::max(static_cast<size_t>(16), 2*sz);
171 m_vars.resize_all (sz, n);
172 }
173}

◆ 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}
const std::type_info & multiTypeInfo(Types< T0 > *, size_t which)
Return one type_info from a tuple.

◆ nameToCLID()

StatusCode D3PD::nameToCLID ( const std::string & name,
CLID & clid,
const std::string & context,
const 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 71 of file TypeNameConversions.cxx.

76{
77 clid = CLID_NULL;
78 CHECK_WITH_CONTEXT( clidsvc.retrieve(), context );
79
80 if (clidsvc->getIDOfTypeName (name, clid).isSuccess())
81 return StatusCode::SUCCESS;
82 if (clidsvc->getIDOfTypeInfoName (name, clid).isSuccess())
83 return StatusCode::SUCCESS;
84
85 REPORT_MESSAGE_WITH_CONTEXT (MSG::ERROR, context)
86 << "Can't find CLID for type name " << name;
87 return StatusCode::FAILURE;
88}
#define CHECK_WITH_CONTEXT(...)
Evaluate an expression and check for errors, with an explicitly specified context name.

◆ nameToTypeinfo()

StatusCode D3PD::nameToTypeinfo ( const std::string & name,
std::type_info const *& ti,
const std::string & context,
const 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 32 of file TypeNameConversions.cxx.

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

◆ 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 }
D3PD variable metadata handling class.

◆ releaseElementUntyped()

m_associator D3PD::releaseElementUntyped ( m_next )

◆ releaseObjectUntyped()

m_associator D3PD::releaseObjectUntyped ( pout )

◆ scout()

StatusCode D3PD::scout ( EMPTY )

Fill one block.

Parameters
pThe input object.
againSet if this is a subsequent call requested by an AGAIN return

This is called once per object. The type of the object at which p points is given by the ti argument to configureD3PD. The caller is responsible for arranging that all the pointers for booked variables are set appropriately upon entry.

If the return status is the special code AGAIN (defined above), then this filler tool wants to make multiple entries. The parent should set up to capture a new `row' and run through the list of block filler tools again, but for this tool call fillAgainUntyped instead of fillUntyped. This should be repeated as long as fillAgainUntyped returns AGAIN.

Once fillUntyped returns AGAIN, the parent should call fillUntyped with the same p argument and again set to true. This continues until fillUntyped returns something other than AGAIN.

Not all parents may support this. In that case, returning AGAIN will be treated as an error.

The return code may also be EMPTY if this tool did not fill in anything. If all tools return empty, the parent may omit the row. */ StatusCode ContainedAssociationFillerTool::fillUntyped (const void* p, bool again /*= false

◆ 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 129 of file TypeNameConversions.cxx.

130{
131 // Handle fundamental types.
132 if (ti == typeid(float))
133 return "float";
134 else if (ti == typeid(double))
135 return "double";
136 else if (ti == typeid(int))
137 return "int";
138 else if (ti == typeid(bool))
139 return "bool";
140 else if (ti == typeid(char))
141 return "char";
142 else if (ti == typeid(signed char))
143 return "signed char";
144 else if (ti == typeid(unsigned char))
145 return "unsigned char";
146 else if (ti == typeid(short))
147 return "short";
148 else if (ti == typeid(unsigned short))
149 return "unsigned short";
150 else if (ti == typeid(unsigned int))
151 return "unsigned int";
152 else if (ti == typeid(long))
153 return "long";
154 else if (ti == typeid(unsigned long))
155 return "unsigned long";
156 else if (ti == typeid(long long))
157 return "long long";
158 else if (ti == typeid(unsigned long long))
159 return "unsigned long long";
160 else if (ti == typeid(long double))
161 return "long double";
162 else if (ti == typeid(wchar_t))
163 return "wchar_t";
164
165 // Otherwise try to look it up with root.
166 std::string eltname;
167 TClass* eltcls = TClass::GetClass (ti);
168 if (eltcls) {
169 eltname = eltcls->GetName();
170 }
171 else {
172 std::string eltname = System::typeinfoName (ti);
173 eltcls = TClass::GetClass (eltname.c_str());
174 if (eltcls)
175 eltname = eltcls->GetName();
176 }
177 return eltname;
178}

◆ VectorFillerTool()

D3PD::VectorFillerTool::VectorFillerTool ( const std::string & type,
const std::string & name,
const IInterface * parent )

Object filler tool for a collection of objects, saved as vectors.

Standard Gaudi tool constructor.

This is an object filler tool for a collection of objects. The object variables are saved as vectors. I.e., if a block books a variable of type int', the variable we actually create is of type vector<int>'. An additional variable giving the object count is added automatically (can be controlled via the NrowName property).

This tool has the following properties:

Getter - ICollectionGetterTool instance. AllowMissing - If true, then it is not considered an error for the requested input object to be missing.

and the following inherited from VectorFillerToolBase:

BlockFillers - List of IBlockFillerTool instances. Prefix - Prefix to add to variable names for this block. NrowName - Name of the variable for the count of rows. Omitted if empty. Default: `n'. NobjName - Name of the variable for the count of objects. (May be less than the number of rows if AGAIN is used.) Omitted if empty (default). ObjIndexName - Name of the variable for the object index. Omitted if empty (default).

For each event, we call the getter to retrieve the collection. We then loop over the objects in the collection. For each object, we set the variable pointers to point to the proper locations within the vectors. Then we loop over all block filler tools, passing the object to each. */ class VectorFillerTool : public extends<VectorFillerToolBase, IObjFillerTool, IIncidentListener> { public: /**

Standard Gaudi tool constructor.

Parameters
typeThe name of the tool type.
nameThe tool name.
parentThe tool's Gaudi parent.
typeThe name of the tool type.
nameThe tool name.
parentThe tool's Gaudi parent.

Definition at line 30 of file VectorFillerTool.cxx.

33 : base_class (type, name, parent),
34 m_getter (this),
35 m_tree (0)
36{
37 declareProperty ("Getter", m_getter,
38 "The ICollectionGetterTool instance.");
39 declareProperty ("ObjectName", m_objectName = "",
40 "Name of the D3PDObject that created this filler.");
41 declareProperty ("AllowMissing", m_allowMissing = false,
42 "If true, then it is not considered an error for the "
43 "requested input object to be missing.");
44 declareProperty ("SaveMetadata", m_saveMetadata = false,
45 "Set to true to get metadata into the output D3PD "
46 "about the variables created by this tool");
47}
std::string m_objectName
Property: the name of the D3PDObject that created this tool.
bool m_saveMetadata
Property: If true, the metadata about the variables is saved.

◆ VectorFillerToolBase()

D3PD::VectorFillerToolBase::VectorFillerToolBase ( const std::string & type,
const std::string & name,
const IInterface * parent )

Common code for wrapping filled variables up into a vector.

Standard Gaudi tool constructor.

In several places we want to be able to run a set of block filler tools over a set of objects and wrap the results up in vectors. This is used at least in VectorFillerTool and ContainedVectorMultiAssociationFillerTool. This class factors out the common behavior involved in wrapping results up in vectors.

The actual iteration over a set of objects is expressed by the interface IIteration. The way this class is used is as follows:

  • Call doConfigure from your configureD3PD method. Pass in the IIteration instance.
  • Call doBook from your book method.
  • To do a fill, first do whatever's needed to prepare the IIteration instance to iterate over the desired object set. Then pass it to doFill.

    doFill will iterate over the objects in the IIteration; for each of these, it will loop over the block filler tools.

    The results will be collected inside of vectors.

This tool has the following properties:

BlockFillers - List of IBlockFillerTool instances. Prefix - Prefix to add to variable names for this block. NrowName - Name of the variable for the count of rows. Omitted if empty. Default: `n'. NobjName - Name of the variable for the count of objects. (May be less than the number of rows if AGAIN is used.) Omitted if empty (default). ObjIndexName - Name of the variable for the object index. Omitted if empty (default). */ class VectorFillerToolBase : public AthAlgTool, public IAddVariable { public: /**

Standard Gaudi tool constructor.

Parameters
typeThe name of the tool type.
nameThe tool name.
parentThe tool's Gaudi parent.
typeThe name of the tool type.
nameThe tool name.
parentThe tool's Gaudi parent.

Definition at line 56 of file VectorFillerToolBase.cxx.

59 : AthAlgTool (type, name, parent),
60 m_metadata (),
61 m_prefix (),
62 m_blockFillers (this),
63 m_tree (0),
64 m_nrow (0),
65 m_nobj (0),
66 m_objIndex (0)
67{
68 declareProperty ("BlockFillers", m_blockFillers,
69 "List of contained block filler tools.");
70 declareProperty ("Prefix", m_prefix = "",
71 "Variable name prefix for the contained blocks.");
72 declareProperty ("NrowName", m_nrowName = "n",
73 "Name of the variable for the count of rows. "
74 "Omitted if empty.");
75 declareProperty ("NobjName", m_nobjName = "",
76 "Name of the variable for the count of objects. "
77 "Omitted if empty.");
78 declareProperty ("ObjIndexName", m_objIndexName = "",
79 "Name of the variable for the object index. "
80 "Omitted if empty.");
81}

◆ while()

D3PD::while ( const void * pout = m_associator->nextUntyped ())

Definition at line 158 of file IndexMultiAssociationFillerTool.cxx.

159 {
160 if (m_index) {
161 // Convert to the proper pointer type to search in the container.
162 const void* pnew = m_converter.convertUntyped (pout);
163 if (!pnew)
164 {
165 REPORT_MESSAGE (MSG::WARNING)
166 << "Pointer conversion from " << m_converter.srcName() << " to "
167 << m_converter.dstName() << "failed.";
168 m_associator->releaseElementUntyped (pout);
169 continue;
170 }
171
172 m_index->push_back (m_map.findIndex (pnew));
173 }
174 m_associator->releaseElementUntyped (pout);
175 }
int findIndex(const void *p)
Find the index corresponding to an element.
Definition IndexMap.cxx:255
TypeConverter m_converter
Helper to convert from pointer returned by the associator to pointer into the index container.

Variable Documentation

◆ again

bool D3PD::again
Initial value:
{
if (again)
return fillAgain()

Definition at line 78 of file VoidBlockFillerTool.cxx.

◆ eventFlagNames

const EventFlagNames D3PD::eventFlagNames[]
static
Initial value:
= {
{ xAOD::EventInfo::Pixel, "pixel" },
{ xAOD::EventInfo::Tile, "tile" },
{ xAOD::EventInfo::Muon, "muon" },
{ xAOD::EventInfo::Core, "core" },
}
@ Tile
The Tile calorimeter.
@ Muon
The muon spectrometer.
@ Core
Core flags describing the event.
@ Pixel
The pixel tracker.
@ ForwardDet
The forward detectors.
@ LAr
The LAr calorimeter.

Definition at line 31 of file EventFlagNames.h.

31 {
32 { xAOD::EventInfo::Pixel, "pixel" },
33 { xAOD::EventInfo::SCT, "sct" },
34 { xAOD::EventInfo::TRT, "trt" },
35 { xAOD::EventInfo::LAr, "lar" },
36 { xAOD::EventInfo::Tile, "tile" },
37 { xAOD::EventInfo::Muon, "muon" },
39 { xAOD::EventInfo::Core, "core" },
40};

◆ m_allowMissing

bool D3PD::m_allowMissing

Property: Don't give an error if the target getter fails to find the input objects.

Property: If true, the input object is allowed to be missing.

Definition at line 149 of file IndexAssociationFillerTool.h.

◆ m_blockFillers

ToolHandleArray<IBlockFillerTool> D3PD::m_blockFillers
private

Property: The list of block filler tools.

Definition at line 189 of file VectorFillerToolBase.h.

◆ m_blockName

std::string D3PD::m_blockName

Property: the name of this block.

Definition at line 142 of file IndexAssociationFillerTool.h.

◆ m_converter

TypeConverter D3PD::m_converter

Helper to convert from pointer returned by the associator to pointer into the index container.

Definition at line 156 of file IndexAssociationFillerTool.h.

◆ m_dr

float* D3PD::m_dr
private

Variable: DR to associated object.

Definition at line 112 of file DRAssociationTool.h.

◆ m_drcut

float D3PD::m_drcut
private

Property: DR cut.

Definition at line 109 of file DRAssociationTool.h.

◆ m_getter

ToolHandle< ICollectionGetterTool > D3PD::m_getter
private

Property: The collection getter tool.

Property: The getter for the target collection.

Definition at line 135 of file VectorFillerTool.h.

◆ m_index

std::vector< int > * D3PD::m_index

Index variable.

Index collection variable.

Definition at line 152 of file IndexAssociationFillerTool.h.

◆ m_map

IndexMap D3PD::m_map

Map from objects to indices.

Definition at line 159 of file IndexAssociationFillerTool.h.

◆ m_metadata

ObjectMetadata D3PD::m_metadata
protected

Metadata about the variables created by this tool.

Definition at line 180 of file VectorFillerToolBase.h.

◆ m_next

D3PD::m_next = m_associator->nextUntyped()

Definition at line 175 of file ContainedMultiAssociationFillerTool.cxx.

◆ m_nobj

int* D3PD::m_nobj
private

Variable for the object count.

Definition at line 210 of file VectorFillerToolBase.h.

◆ m_nobjName

std::string D3PD::m_nobjName
private

Property: Name of the variable for the count of objects. Omitted if empty.

Definition at line 197 of file VectorFillerToolBase.h.

◆ m_nrow

int* D3PD::m_nrow
private

Variable for the row count.

Definition at line 207 of file VectorFillerToolBase.h.

◆ m_nrowName

std::string D3PD::m_nrowName
private

Property: Name of the variable for the count of rows. Omitted if empty.

Definition at line 193 of file VectorFillerToolBase.h.

◆ m_objectName

std::string D3PD::m_objectName
private

Property: the name of the D3PDObject that created this tool.

Definition at line 138 of file VectorFillerTool.h.

◆ m_objIndex

int* D3PD::m_objIndex
private

Variable for the object index.

Definition at line 213 of file VectorFillerToolBase.h.

◆ m_objIndexName

std::string D3PD::m_objIndexName
private

Property: Name of the variable for the object index. Omitted if empty.

Definition at line 201 of file VectorFillerToolBase.h.

◆ m_prefix

std::string D3PD::m_prefix

Property: The variable name prefix.

Property: Variable prefix for this block.

Definition at line 139 of file IndexAssociationFillerTool.h.

◆ m_registry

ToolHandle< ICollectionGetterRegistryTool > D3PD::m_registry

Property: The ICollectionGetterRegistryTool instance.

Definition at line 145 of file IndexAssociationFillerTool.h.

◆ m_saveMetadata

bool D3PD::m_saveMetadata
private

Property: If true, the metadata about the variables is saved.

Definition at line 144 of file VectorFillerTool.h.

◆ m_targetLabel

std::string D3PD::m_targetLabel

Fill one block.

Parameters
pThe input object.
againSet if this is a subsequent call requested by an AGAIN return

This is called once per object. The type of the object at which p points is given by the ti argument to configureD3PD. The caller is responsible for arranging that all the pointers for booked variables are set appropriately upon entry.

If the return status is the special code AGAIN (defined above), then this filler tool wants to make multiple entries. The parent should set up to capture a new `row' and run through the list of block filler tools again, but for this tool call fillAgainUntyped instead of fillUntyped. This should be repeated as long as fillAgainUntyped returns AGAIN.

Once fillUntyped returns AGAIN, the parent should call fillUntyped with the same p argument and again set to true. This continues until fillUntyped returns something other than AGAIN.

Not all parents may support this. In that case, returning AGAIN will be treated as an error. */ virtual StatusCode fillUntyped (const void* p, bool again = false) override;

private: / Property: The association tool instance. ToolHandle<ISingleAssociationTool> m_associator;

/** Property: The label of the collection getter defining the collection within which to index.

Parameters
pThe input object.
againSet if this is a subsequent call requested by an AGAIN return

This is called once per object. The type of the object at which p points is given by the ti argument to configureD3PD. The caller is responsible for arranging that all the pointers for booked variables are set appropriately upon entry.

If the return status is the special code AGAIN (defined above), then this filler tool wants to make multiple entries. The parent should set up to capture a new `row' and run through the list of block filler tools again, but for this tool call fillAgainUntyped instead of fillUntyped. This should be repeated as long as fillAgainUntyped returns AGAIN.

Once fillUntyped returns AGAIN, the parent should call fillUntyped with the same p argument and again set to true. This continues until fillUntyped returns something other than AGAIN.

Not all parents may support this. In that case, returning AGAIN will be treated as an error. */ virtual StatusCode fillUntyped (const void* p, bool again = false) override;

private: / Property: The association tool instance. ToolHandle<IMultiAssociationTool> m_associator;

/** Property: The label of the collection getter defining the collection within which to index.

Definition at line 136 of file IndexAssociationFillerTool.h.

◆ m_tree

IAddVariable * D3PD::m_tree
private

Pointer to the ID3PD object used.

The parent tree.

Definition at line 147 of file VectorFillerTool.h.

◆ m_vars

Vars D3PD::m_vars
private

All booked variables.

Definition at line 346 of file VectorFillerToolBase.h.

◆ nEventFlagNames

size_t D3PD::nEventFlagNames
staticconstexpr
Initial value:
=
sizeof(eventFlagNames) / sizeof(eventFlagNames[0])
static const EventFlagNames eventFlagNames[]

Definition at line 42 of file EventFlagNames.h.

◆ pout

const void* D3PD::pout = m_associator->getUntyped (p)

Definition at line 161 of file IndexAssociationFillerTool.cxx.

◆ scout

D3PD::scout = StatusCode(scout.getCode())

Definition at line 155 of file ContainedAssociationFillerTool.cxx.