Interface for all the bunch crossing tools. More...
#include <IBunchCrossingTool.h>
Public Types | |
enum | BeamType { Beam1 = 0, Beam2 = 1, Crossing = 2 } |
Types of the return values of the bcIntensity function. More... | |
enum | BunchCrossingType { Empty = 0, FirstEmpty = 1, MiddleEmpty = 2, Single = 100, Front = 200, Middle = 201, Tail = 202, Unpaired = 300 } |
Simplified type for a given bunch crossing. More... | |
enum | BunchDistanceType { NanoSec, BunchCrossings, FilledBunches } |
Enumeration specifying the units in which to expect the bunch distance type. More... | |
enum | BunchFillType { CollidingBunch = 0, UnpairedBunch = 1, EmptyBunch = 2, UnpairedBeam1 = 3, UnpairedBeam2 = 4 } |
Enumeration specifying what kind of bunch to use in the gap functions. More... | |
typedef unsigned int | bcid_type |
Declare the interface that this class provides. | |
Public Member Functions | |
virtual bool | isFilled (bcid_type bcid=0) const =0 |
The simplest query: Is the bunch crossing filled or not? | |
virtual bool | isInTrain (bcid_type bcid=0) const =0 |
Function deciding if a given bunch crossing is in a filled train. | |
virtual bool | isUnpaired (bcid_type bcid=0) const =0 |
Function deciding if a given bunch crossing has an unpaired bunch. | |
virtual bool | isBeam1 (bcid_type bcid=0) const =0 |
Function deciding if there was a bunch from "beam 1" in this bunch crossing. | |
virtual bool | isBeam2 (bcid_type bcid=0) const =0 |
Function deciding if there was a bunch from "beam 2" in this bunch crossing. | |
virtual float | bcIntensity (bcid_type bcid=0, BeamType type=Crossing) const =0 |
Function returning the "intensity" of a given bunch(-crossing). | |
virtual BunchCrossingType | bcType (bcid_type bcid=0) const =0 |
Get the type of the specific bunch crossing. | |
virtual int | distanceFromFront (bcid_type bcid=0, BunchDistanceType type=NanoSec) const =0 |
The distance of the specific bunch crossing from the front of the train. | |
virtual int | distanceFromTail (bcid_type bcid=0, BunchDistanceType type=NanoSec) const =0 |
The distance of the specific bunch crossing from the tail of the train. | |
virtual int | gapBeforeTrain (bcid_type bcid=0, BunchDistanceType type=NanoSec) const =0 |
Gap before the train this BCID is in. | |
virtual int | gapAfterTrain (bcid_type bcid=0, BunchDistanceType type=NanoSec) const =0 |
Gap after the train this BCID is in. | |
virtual int | gapBeforeBunch (bcid_type bcid=0, BunchDistanceType dtype=NanoSec, BunchFillType ftype=CollidingBunch) const =0 |
Gap before a particular bunch. | |
virtual int | gapAfterBunch (bcid_type bcid=0, BunchDistanceType dtype=NanoSec, BunchFillType ftype=CollidingBunch) const =0 |
Gap after a particular bunch. | |
virtual std::vector< bool > | bunchesInFront (bcid_type bcid=0, int bunches=10) const =0 |
Function returning whether the previous bunches were filled, and how. | |
virtual std::vector< bool > | bunchesAfter (bcid_type bcid=0, int bunches=10) const =0 |
Function returning whether the following bunches were filled, and how. | |
virtual std::vector< float > | bunchIntInFront (bcid_type bcid=0, int bunches=10, BeamType type=Crossing) const =0 |
virtual std::vector< float > | bunchIntAfter (bcid_type bcid=0, int bunches=10, BeamType type=Crossing) const =0 |
virtual unsigned int | numberOfFilledBunches () const =0 |
Get the number of filled bunches in the current configuration. | |
virtual unsigned int | numberOfUnpairedBunches () const =0 |
Get the number of unpaired bunches in the current configuration. | |
virtual unsigned int | numberOfBunchTrains () const =0 |
Get the number of the bunch trains in the current configuration. | |
virtual int | bunchTrainSpacing (BunchDistanceType type=NanoSec) const =0 |
Get the bunch spacing in the trains. |
Interface for all the bunch crossing tools.
This is the dual-use inteface of all the bunch crossing tools. It no longer uses the framework independent IIBunchCrossingTool class...
typedef unsigned int Trig::IBunchCrossingTool::bcid_type |
Declare the interface that this class provides.
Convenience type definition
Types of the return values of the bcIntensity function.
The different information sources provide the "bunch intensity" information in quite different ways, and the information can mean different things actually. This enumeration is used to specify what exact type of information the user is looking for.
Simplified type for a given bunch crossing.
This enumeration can specify what kind of bunch crossing one BCID belongs to. The types could easily be extended later on.
Enumeration specifying the units in which to expect the bunch distance type.
To make it clear for the following functions what units to interpret their return values in, it is possible to request their return values in different units.
Enumeration specifying what kind of bunch to use in the gap functions.
The following functions can be used to calculate the gap before and after a specific BCID to some other bunch type. The gap can actually be wrt. two different types of bunches. The user may be interested between the space of two filled bunches, the space between an unpaired bunch and the previous filled bunch, the space between two unpaired bunches, or the space between a filled bunch and the previous unpaired bunch.
The empty type is just put here for completeness. Maybe once we'll be using 25 ns spacing in the bunch trains, this will be a useful parameter as well.
This enumeration helps in answeing all of these questions.
virtual float Trig::IBunchCrossingTool::bcIntensity | ( | bcid_type | bcid = 0 , |
|
BeamType | type = Crossing | |||
) | const [pure virtual] |
Function returning the "intensity" of a given bunch(-crossing).
Some imeplementations are able to return an "intensity" per BCID. The exact meaning of this intensity is actually context sensitive, as it could mean quite different things for pile-up MC and data samples.
The tool implementations that don't know about the bunch intensities will return 1.0 for filled bunch crossings and 0.0 for empty ones.
bcid | The bcid that should be checked |
Implemented in Trig::MCBunchCrossingTool, Trig::BunchCrossingToolBase, and Trig::D3PDBunchCrossingTool.
virtual BunchCrossingType Trig::IBunchCrossingTool::bcType | ( | bcid_type | bcid = 0 |
) | const [pure virtual] |
Get the type of the specific bunch crossing.
This function could be used as a single entry point to this tool in principle. It gives a summary about a specific BCID. Remember however that the exact meaning of many of the return values of this function are configuration dependent.
bcid | The bcid that should be checked |
Implemented in Trig::MCBunchCrossingTool, Trig::BunchCrossingToolBase, and Trig::D3PDBunchCrossingTool.
virtual std::vector< bool > Trig::IBunchCrossingTool::bunchesAfter | ( | bcid_type | bcid = 0 , |
|
int | bunches = 10 | |||
) | const [pure virtual] |
Function returning whether the following bunches were filled, and how.
This function is here to provide uniformity between the python and C++ implementations. It works pretty much like the bunchesInFron(...) function.
The indexing is such that return[0]
means the reference bunch, return[1]
means the first bunch after that one, etc. The boolean value true
means that the bunch was filled, false
means that is was empty.
It's really just another way of getting the same information as what isFilled(...) is providing...
bcid | The bcid that should be checked | |
bunches | The number of bunches about which the return value should have info |
Implemented in Trig::MCBunchCrossingTool, Trig::BunchCrossingToolBase, and Trig::D3PDBunchCrossingTool.
virtual std::vector< bool > Trig::IBunchCrossingTool::bunchesInFront | ( | bcid_type | bcid = 0 , |
|
int | bunches = 10 | |||
) | const [pure virtual] |
Function returning whether the previous bunches were filled, and how.
To get a concrete idea of how the bunch structure looks like in front of the bcid under investigation, this function returns a vector representing the previous bunches.
The indexing is such that return[0]
means the reference bunch, return[1]
means the first bunch before that one, etc. The boolean value true
means that the bunch was filled, false
means that is was empty.
It's really just another way of getting the same information as what isFilled(...) is providing...
bcid | The bcid that should be checked | |
bunches | The number of bunches about which the return value should have info |
Implemented in Trig::MCBunchCrossingTool, Trig::BunchCrossingToolBase, and Trig::D3PDBunchCrossingTool.
virtual std::vector< float > Trig::IBunchCrossingTool::bunchIntAfter | ( | bcid_type | bcid = 0 , |
|
int | bunches = 10 , |
|||
BeamType | type = Crossing | |||
) | const [pure virtual] |
Function returning the intensities of the bunch crossings after the reference In some cases one does not only want to know if the following bunches were filled, but also their intensities. This intensity has a context sensitive meaning, as the MC and data bunch intensities can't be directly compared in general, but in both cases the intensities are described by floating point numbers.
The indexing is the same as with the bunchesAfter(...) function.
bcid | The bcid that should be checked | |
bunches | The number of bunches about which the return value should have info | |
type | The intensity "type" the user is interested in |
Implemented in Trig::MCBunchCrossingTool, Trig::BunchCrossingToolBase, and Trig::D3PDBunchCrossingTool.
virtual std::vector< float > Trig::IBunchCrossingTool::bunchIntInFront | ( | bcid_type | bcid = 0 , |
|
int | bunches = 10 , |
|||
BeamType | type = Crossing | |||
) | const [pure virtual] |
Function returning the intensities of the bunch crossings before the reference In some cases one does not only want to know if the previous bunches were filled, but also their intensities. This intensity has a context sensitive meaning, as the MC and data bunch intensities can't be directly compared in general, but in both cases the intensities are described by floating point numbers.
The indexing is the same as with the bunchesInFront(...) function.
bcid | The bcid that should be checked | |
bunches | The number of bunches about which the return value should have info | |
type | The intensity "type" the user is interested in |
Implemented in Trig::MCBunchCrossingTool, Trig::BunchCrossingToolBase, and Trig::D3PDBunchCrossingTool.
virtual int Trig::IBunchCrossingTool::bunchTrainSpacing | ( | BunchDistanceType | type = NanoSec |
) | const [pure virtual] |
Get the bunch spacing in the trains.
This function can be used to easily find out what was the bunch spacing in the bunch trains. This could come in handy in some circumstances.
Note that a return value type of FilledBunches
makes no sense, so the code will complain if you request the value with that parameter.
type | The type of the requested return value |
Implemented in Trig::BunchCrossingToolBase.
virtual int Trig::IBunchCrossingTool::distanceFromFront | ( | bcid_type | bcid = 0 , |
|
BunchDistanceType | type = NanoSec | |||
) | const [pure virtual] |
The distance of the specific bunch crossing from the front of the train.
Get the distance of the specified bunch crossing from the front of the bunch train. If the specified bunch crossing is not part of a bunch train, then the function returns -1.
The distance can be returned in multiple units. By default it is returned in nanoseconds. If one specifies BunchCrossings, then the distance is returned in nanosec_distance / 25. Finally, if one specifies FilledBunches, then the distance is returned in the units of the bunch spacing within the train.
bcid | The bcid that should be checked | |
type | The type of the requested return value |
Implemented in Trig::BunchCrossingToolBase.
virtual int Trig::IBunchCrossingTool::distanceFromTail | ( | bcid_type | bcid = 0 , |
|
BunchDistanceType | type = NanoSec | |||
) | const [pure virtual] |
The distance of the specific bunch crossing from the tail of the train.
Get the distance of the specified bunch crossing from the tail of the bunch train. If the specified bunch crossing is not part of a bunch train, then the function returns -1.
The distance can be returned in multiple units. By default it is returned in nanoseconds. If one specifies BunchCrossings, then the distance is returned in nanosec_distance / 25. Finally, if one specifies FilledBunches, then the distance is returned in the units of the bunch spacing within the train.
bcid | The bcid that should be checked | |
type | The type of the requested return value |
Implemented in Trig::BunchCrossingToolBase.
virtual int Trig::IBunchCrossingTool::gapAfterBunch | ( | bcid_type | bcid = 0 , |
|
BunchDistanceType | dtype = NanoSec , |
|||
BunchFillType | ftype = CollidingBunch | |||
) | const [pure virtual] |
Gap after a particular bunch.
The function tells you how far the BCID in question is from the next colliding bunch crossing.
bcid | The bcid that should be investigated | |
dtype | The type of the requested return value | |
ftype | The type of the previous bunch to consider |
Implemented in Trig::MCBunchCrossingTool, Trig::BunchCrossingToolBase, and Trig::D3PDBunchCrossingTool.
virtual int Trig::IBunchCrossingTool::gapAfterTrain | ( | bcid_type | bcid = 0 , |
|
BunchDistanceType | type = NanoSec | |||
) | const [pure virtual] |
Gap after the train this BCID is in.
Get the gap that's between the train that the specified BCID is in, and the next train. This is a useful number for some jet/MET studies.
Note that the function doesn't work with the FilledBunches type, as the size of the gaps doesn't have to be a multiple of the bunch distance within the trains.
Returns "-1" when there's no right answer to the question. (BCID not part of a train.)
bcid | The bcid whose train should be investigated | |
type | The type of the requested return value |
Implemented in Trig::BunchCrossingToolBase.
virtual int Trig::IBunchCrossingTool::gapBeforeBunch | ( | bcid_type | bcid = 0 , |
|
BunchDistanceType | dtype = NanoSec , |
|||
BunchFillType | ftype = CollidingBunch | |||
) | const [pure virtual] |
Gap before a particular bunch.
The function tells you how far the BCID in question is from the previous colliding bunch crossing.
bcid | The bcid that should be investigated | |
dtype | The type of the requested return value | |
ftype | The type of the previous bunch to consider |
Implemented in Trig::MCBunchCrossingTool, Trig::BunchCrossingToolBase, and Trig::D3PDBunchCrossingTool.
virtual int Trig::IBunchCrossingTool::gapBeforeTrain | ( | bcid_type | bcid = 0 , |
|
BunchDistanceType | type = NanoSec | |||
) | const [pure virtual] |
Gap before the train this BCID is in.
Get the gap that's between the train that the specified BCID is in, and the previous train. This is a useful number for some jet/MET studies.
Note that the function doesn't work with the FilledBunches type, as the size of the gaps doesn't have to be a multiple of the bunch distance within the trains.
Returns "-1" when there's no right answer to the question. (BCID not part of a train.)
bcid | The bcid whose train should be investigated | |
type | The type of the requested return value |
Implemented in Trig::BunchCrossingToolBase.
virtual bool Trig::IBunchCrossingTool::isBeam1 | ( | bcid_type | bcid = 0 |
) | const [pure virtual] |
Function deciding if there was a bunch from "beam 1" in this bunch crossing.
This function is useful for differentiating the unpaired bunch crossings based on which beam provided the unpaired bunch.
bcid | The bcid that should be checked |
true
if the bcid contained a bunch from beam 1, false
otherwise Implemented in Trig::MCBunchCrossingTool, Trig::BunchCrossingToolBase, and Trig::D3PDBunchCrossingTool.
virtual bool Trig::IBunchCrossingTool::isBeam2 | ( | bcid_type | bcid = 0 |
) | const [pure virtual] |
Function deciding if there was a bunch from "beam 2" in this bunch crossing.
This function is useful for differentiating the unpaired bunch crossings based on which beam provided the unpaired bunch.
bcid | The bcid that should be checked |
true
if the bcid contained a bunch from beam 2, false
otherwise Implemented in Trig::MCBunchCrossingTool, Trig::BunchCrossingToolBase, and Trig::D3PDBunchCrossingTool.
virtual bool Trig::IBunchCrossingTool::isFilled | ( | bcid_type | bcid = 0 |
) | const [pure virtual] |
The simplest query: Is the bunch crossing filled or not?
This is the simplest question that one can ask the configuration: Was the current BCID coming from a collision or not? If people properly use the triggers to select their events, then this function is not too useful, but for some special analyses it might be a good idea to have it.
bcid | The bcid that should be checked |
true
if the bcid was a collision bunch crossing, false
otherwise Implemented in Trig::MCBunchCrossingTool, Trig::BunchCrossingToolBase, and Trig::D3PDBunchCrossingTool.
virtual bool Trig::IBunchCrossingTool::isInTrain | ( | bcid_type | bcid = 0 |
) | const [pure virtual] |
Function deciding if a given bunch crossing is in a filled train.
Most of the functionality of the interface only makes sense for bunches which were in trains. So this function can be checked at the beginning of the analysis code, to make sure that the BC in question is interesting.
bcid | The bcid that should be checked |
true
if the bcid is part of a bunch train, false
otherwise Implemented in Trig::BunchCrossingToolBase, and Trig::D3PDBunchCrossingTool.
virtual bool Trig::IBunchCrossingTool::isUnpaired | ( | bcid_type | bcid = 0 |
) | const [pure virtual] |
Function deciding if a given bunch crossing has an unpaired bunch.
This function can be used to quickly decide whether the current event came from an unpaired bunch. Note that the function doesn't make a difference between "isolated" and "non isolated" unpaired bunches. You have to use the gapBeforeBunch
function to decide how isolated an unpaired bunch is.
bcid | The bcid that should be checked |
true
if the bcid belongs to an unpaired bunch, false
otherwise Implemented in Trig::BunchCrossingToolBase, and Trig::D3PDBunchCrossingTool.
virtual unsigned int Trig::IBunchCrossingTool::numberOfBunchTrains | ( | ) | const [pure virtual] |
Get the number of the bunch trains in the current configuration.
This function gives the total number of bunch trains that were identified in the current configuration. This could come in handy in some circumstances.
Implemented in Trig::BunchCrossingToolBase.
virtual unsigned int Trig::IBunchCrossingTool::numberOfFilledBunches | ( | ) | const [pure virtual] |
Get the number of filled bunches in the current configuration.
This function gives the total number of filled (colliding) bunches in the current configuration. This could come in handy in some circumstances.
Implemented in Trig::MCBunchCrossingTool, Trig::BunchCrossingToolBase, and Trig::D3PDBunchCrossingTool.
virtual unsigned int Trig::IBunchCrossingTool::numberOfUnpairedBunches | ( | ) | const [pure virtual] |
Get the number of unpaired bunches in the current configuration.
This function gives the total number of unpaired bunches in the current configuration. This could come in handy in some circumstances.
Implemented in Trig::BunchCrossingToolBase.