ATLAS Offline Software
IBarcodeSvc.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef BARCODEINTERFACES_IBARCODESVC_H
6 #define BARCODEINTERFACES_IBARCODESVC_H 1
7 
8 // Barcode includes
10 
11 // Include Files
12 #include "GaudiKernel/IInterface.h"
13 #include "GaudiKernel/StatusCode.h"
14 #include "GaudiKernel/ToolHandle.h"
15 #include "GaudiKernel/ServiceHandle.h"
16 
17 namespace Barcode {
18 
23  class IBarcodeSvc : virtual public IInterface {
24 
25  public:
26 
27  //TODO not fully implemented in Generic, Global, and Validation BarcodeSvcs
28  //only fully implemented in LegacyBarcodeSvc (only barcode service used in production)
29  virtual StatusCode initializeBarcodes(int, int) { return StatusCode::SUCCESS; };
30  virtual StatusCode resetBarcodes(int, int) { return StatusCode::SUCCESS; };
31 
34 
35 
37  virtual int newSecondaryParticle(int parentBC) = 0;
38 
40  virtual int newGeneratedParticle(int parentBC) = 0;
41 
43  virtual int newSimulationVertex() = 0;
44 
46  virtual int newGeneratedVertex() = 0;
47 
50  virtual void registerLargestGeneratedParticleBC( int bc) = 0;
51  virtual void registerLargestGeneratedVtxBC( int bc) = 0;
52  virtual void registerLargestSecondaryParticleBC( int bc) = 0;
53  virtual void registerLargestSimulationVtxBC( int bc) = 0;
54 
56  virtual int secondaryParticleBcOffset() const = 0;
57  virtual int secondaryVertexBcOffset() const = 0;
58  };
59 
60 }
61 
62 #endif //> !BARCODEINTERFACES_IBARCODESVC_H
Barcode::IBarcodeSvc::initializeBarcodes
virtual StatusCode initializeBarcodes(int, int)
Definition: IBarcodeSvc.h:29
Barcode
Definition: IBarcodeSvc.h:17
Barcode::IBarcodeSvc::newSecondaryParticle
virtual int newSecondaryParticle(int parentBC)=0
Generate a new unique barcode for a secondary particle above the simulation offset.
Barcode::IBarcodeSvc::registerLargestGeneratedVtxBC
virtual void registerLargestGeneratedVtxBC(int bc)=0
Barcode::IBarcodeSvc::registerLargestSecondaryParticleBC
virtual void registerLargestSecondaryParticleBC(int bc)=0
Barcode::IBarcodeSvc::secondaryVertexBcOffset
virtual int secondaryVertexBcOffset() const =0
Barcode::IBarcodeSvc
Definition: IBarcodeSvc.h:23
Barcode::IBarcodeSvc::newSimulationVertex
virtual int newSimulationVertex()=0
Generate a new unique vertex barcode above the simulation offset.
Barcode::IBarcodeSvc::registerLargestGeneratedParticleBC
virtual void registerLargestGeneratedParticleBC(int bc)=0
Inform the BarcodeSvc about the largest particle and vertex Barcodes in the event input.
Barcode::IBarcodeSvc::secondaryParticleBcOffset
virtual int secondaryParticleBcOffset() const =0
Return the secondary particle and vertex offsets.
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Barcode::IBarcodeSvc::DeclareInterfaceID
DeclareInterfaceID(IBarcodeSvc, 1, 0)
Creates the InterfaceID and interfaceID() method.
Barcode::IBarcodeSvc::resetBarcodes
virtual StatusCode resetBarcodes(int, int)
Definition: IBarcodeSvc.h:30
MagicNumbers.h
Barcode::IBarcodeSvc::registerLargestSimulationVtxBC
virtual void registerLargestSimulationVtxBC(int bc)=0
Barcode::IBarcodeSvc::newGeneratedParticle
virtual int newGeneratedParticle(int parentBC)=0
Generate a new unique particle barcode below the simulation offset (for particles from pre-defined de...
Barcode::IBarcodeSvc::newGeneratedVertex
virtual int newGeneratedVertex()=0
Generate a new unique vertex barcode below the simulation offset.