ATLAS Offline Software
IJetStream.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TRIGHLTJETHYPO_IJETSTREAM_H
6 #define TRIGHLTJETHYPO_IJETSTREAM_H
7 
8 /*
9  * PABC Interface to trigger jet hypo JetStream classes
10  * In this context, jets are represented by integer indices.
11  * a jet stream steps through the available indices in a manner
12  * that is implemnented in the concrete classes. The selected
13  * indices are returned in a vector.
14  *
15  * Checks on the validity of the stream can be made after construction
16  *
17  * Concrete implementations a pointer to a right neighbor
18  * of typeIJetStream object, and so can be an element of a linked list.
19  *
20  * Cycling is used by the left neighbor to decide whether the left
21  * neigbor should be bumped.
22  *
23  * When the state of all elements of the list is cycled, the caller is
24  * informed, and will normally stop the iteration,
25  *
26  */
27 
28 #include <vector>
29 #include <string>
30 
31 class IJetStream {
32  public:
33  virtual ~IJetStream(){}
34  virtual std::vector<std::size_t> get() = 0;
35  virtual bool valid() const = 0;
36  virtual bool bump() = 0;
37  virtual std::string dump() const= 0;
38 };
39 
40 #endif
IJetStream::~IJetStream
virtual ~IJetStream()
Definition: IJetStream.h:33
IJetStream::bump
virtual bool bump()=0
IJetStream::dump
virtual std::string dump() const =0
IJetStream
Definition: IJetStream.h:31
IJetStream::valid
virtual bool valid() const =0
IJetStream::get
virtual std::vector< std::size_t > get()=0