ATLAS Offline Software
Public Types | Public Member Functions | List of all members
Trig::IBunchCrossingConfProvider Class Referenceabstract

Inteface for providing the bunch structure information. More...

#include <IBunchCrossingConfProvider.h>

Inheritance diagram for Trig::IBunchCrossingConfProvider:
Collaboration diagram for Trig::IBunchCrossingConfProvider:

Public Types

typedef unsigned int configid_type
 Declare the interface that this class provides. More...
 

Public Member Functions

virtual configid_type configID () const =0
 Unique identifier for the current configuration. More...
 
virtual std::vector< int > configuredBCIDs () const =0
 Function providing the BCIDs of the configured colliding bunches. More...
 
virtual std::vector< float > configuredIntensitiesBeam1 () const =0
 Function providing the intensities of the configured colliding bunches. More...
 
virtual std::vector< float > configuredIntensitiesBeam2 () const =0
 Function providing the intensities of the configured colliding bunches. More...
 
virtual std::vector< int > configuredUnpairedBCIDsBeam1 () const =0
 Function providing the BCIDs of the configured unpaired bunches. More...
 
virtual std::vector< int > configuredUnpairedBCIDsBeam2 () const =0
 Function providing the BCIDs of the configured unpaired bunches. More...
 
virtual std::vector< float > configuredUnpairedIntensitiesBeam1 () const =0
 Function providing the intensities of the configured unpaired bunches. More...
 
virtual std::vector< float > configuredUnpairedIntensitiesBeam2 () const =0
 Function providing the intensities of the configured unpaired bunches. More...
 
virtual void print () const =0
 Print the state of the tool. More...
 

Detailed Description

Inteface for providing the bunch structure information.

To make it simpler for Athena components to save the bunch structure information in a uniform way, they should use this interface. The bunch structure configuration can come from many different places. Since the package already provides code for interpreting all these sources, it makes sense that analysts wouldn't have to re-do all this themselves.

The idea is that the information that this interface provides has to be enough for fully configuring any version (especially the standalone one(s)) of the tool. The main use case at the moment being, that if someone saves this configuration into a D3PD, it will become possible to use a standalone version of the bunch crossing tool to analyse the D3PD in the same way as the analysis is done in Athena.

This interface is not split into an Athena-dependent and Athena-independent class, as I don't think this functionality would be useful outside Athena. But who knows...

All Athena tools that implement this interface have to fire an incident of type "BunchConfig" when their configuration is updated. Unfortunately I can't create a static member with this type name, because then the interface would stop being pure virtual... :-( I could define this incident type name as a pre-processor macro, but I don't like that solution. :-P

Author
Attila Krasznahorkay Attil.nosp@m.a.Kr.nosp@m.aszna.nosp@m.hork.nosp@m.ay@ce.nosp@m.rn.c.nosp@m.h
Revision
618301
Date
2014-09-24 10:53:05 +0200 (Wed, 24 Sep 2014)

Definition at line 53 of file IBunchCrossingConfProvider.h.

Member Typedef Documentation

◆ configid_type

Declare the interface that this class provides.

Type for the unique identifier

Definition at line 60 of file IBunchCrossingConfProvider.h.

Member Function Documentation

◆ configID()

virtual configid_type Trig::IBunchCrossingConfProvider::configID ( ) const
pure virtual

Unique identifier for the current configuration.

This is a tricky part of the interface. In order to be able to save the bunch pattern configuration for many different setups in a meaningful way, we have to uniquely identify each differing configuration.

For some backends this is easy. When reading the configuration from the trigger database, the unique identifier can be the bunch group key (BGK). But when reading the configuration of a MC file, the situation is a bit more tricky.

In the end the only requirement with this function is that it should return the same ID for two identical configurations, and that it should return a differiod ID with a "high enough" period for different configurations.

Returns
A unique identifier for the currently loaded configuration

Implemented in Trig::TrigConfBunchCrossingTool.

◆ configuredBCIDs()

virtual std::vector< int > Trig::IBunchCrossingConfProvider::configuredBCIDs ( ) const
pure virtual

Function providing the BCIDs of the configured colliding bunches.

This function returns the BCIDs of the colliding bunches in the current configuration.

Returns
The BCIDs of the colliding bunches

Implemented in Trig::BunchCrossingConfProviderBase.

◆ configuredIntensitiesBeam1()

virtual std::vector< float > Trig::IBunchCrossingConfProvider::configuredIntensitiesBeam1 ( ) const
pure virtual

Function providing the intensities of the configured colliding bunches.

This function returns the "intensities" of the colliding bunches. It always gives the "intensities" in the same order as the configuredBCIDs() function returns the BCIDs in. The returned values may be context specific.

Returns
The "intensities" of the colliding bunches (from beam 1)

Implemented in Trig::TrigConfBunchCrossingTool, and Trig::BunchCrossingConfProviderBase.

◆ configuredIntensitiesBeam2()

virtual std::vector< float > Trig::IBunchCrossingConfProvider::configuredIntensitiesBeam2 ( ) const
pure virtual

Function providing the intensities of the configured colliding bunches.

This function returns the "intensities" of the colliding bunches. It always gives the "intensities" in the same order as the configuredBCIDs() function returns the BCIDs in. The returned values may be context specific.

Returns
The "intensities" of the colliding bunches (from beam 2)

Implemented in Trig::TrigConfBunchCrossingTool, and Trig::BunchCrossingConfProviderBase.

◆ configuredUnpairedBCIDsBeam1()

virtual std::vector< int > Trig::IBunchCrossingConfProvider::configuredUnpairedBCIDsBeam1 ( ) const
pure virtual

Function providing the BCIDs of the configured unpaired bunches.

This function returns the BCIDs of the unpaired bunches in the current configuration.

Returns
The BCIDs of the unpaired bunches from beam 1

Implemented in Trig::BunchCrossingConfProviderBase.

◆ configuredUnpairedBCIDsBeam2()

virtual std::vector< int > Trig::IBunchCrossingConfProvider::configuredUnpairedBCIDsBeam2 ( ) const
pure virtual

Function providing the BCIDs of the configured unpaired bunches.

This function returns the BCIDs of the unpaired bunches in the current configuration.

Returns
The BCIDs of the unpaired bunches from beam 2

Implemented in Trig::BunchCrossingConfProviderBase.

◆ configuredUnpairedIntensitiesBeam1()

virtual std::vector< float > Trig::IBunchCrossingConfProvider::configuredUnpairedIntensitiesBeam1 ( ) const
pure virtual

Function providing the intensities of the configured unpaired bunches.

This function returns the "intensities" of the unpaired bunches. It always gives the "intensities" in the same order as the configuredUnpairedBCIDs() function returns the BCIDs in.

Returns
The "intensities" of the unpaired bunches from beam 1

Implemented in Trig::TrigConfBunchCrossingTool, and Trig::BunchCrossingConfProviderBase.

◆ configuredUnpairedIntensitiesBeam2()

virtual std::vector< float > Trig::IBunchCrossingConfProvider::configuredUnpairedIntensitiesBeam2 ( ) const
pure virtual

Function providing the intensities of the configured unpaired bunches.

This function returns the "intensities" of the unpaired bunches. It always gives the "intensities" in the same order as the configuredUnpairedBCIDs() function returns the BCIDs in.

Returns
The "intensities" of the unpaired bunches from beam 2

Implemented in Trig::TrigConfBunchCrossingTool, and Trig::BunchCrossingConfProviderBase.

◆ print()

virtual void asg::IAsgTool::print ( ) const
pure virtualinherited

The documentation for this class was generated from the following file: