ATLAS Offline Software
Loading...
Searching...
No Matches
JetMapBase.h
Go to the documentation of this file.
1// -*- C++ -*-
2
3/*
4 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
5*/
6
7#ifndef JETEVENT_JETMAPBASE_H
8#define JETEVENT_JETMAPBASE_H
9
11#include <vector>
12#include <map>
13#include <memory>
14
15template<class P>
17{
18public:
19
21 typedef P data_t;
23 typedef std::vector<data_t> record_t;
24
35 public:
37 bool isValid()const{return m_ptr !=NULL;}
38 const record_t& operator*() const {return *m_ptr;}
39 const record_t* operator->() const {return m_ptr;}
40 const record_t* get() const {return m_ptr;}
41 record_t& operator*() {return *m_ptr;}
43 record_t* get() {return m_ptr;}
44 void destroy() {if (isValid()) delete m_ptr; m_ptr=NULL;}
45 void set(record_t *r){m_ptr = r;}
46 protected:
48 };
49
50 typedef size_t key_t;
52 typedef std::map<key_t, record_ptr_t> map_t;
53
54
58 JetMapBase(const JetMapBase& base) = delete;
61 virtual ~JetMapBase();
62
72 virtual bool addRecord(size_t jetIndex) const;
73
78 virtual const record_t* getRecord(size_t jetIndex) const;
79
88 virtual void assignRecord(size_t jetIndex, record_t* rec) const;
89
101 virtual void addData(size_t jetIndex,size_t keyIndex,const data_t& data)
102 const;
117 virtual bool retrieveData(size_t jetIndex,size_t keyIndex,data_t& data)
118 const;
119
120 virtual const data_t& accessData(size_t jetIndex,size_t keyIndex) const;
121
122 virtual size_t numberOfMoments(size_t jetIndex) const;
123
124 virtual void clear();
125 virtual void clear(SG::OwnershipPolicy ){clear();}
126
128
129protected:
130
137 virtual void removeRecord(size_t jetIndex) const;
138
146 virtual void transferRecord(const JetMapBase<P> *fromMap, size_t oldIndex, size_t newIndex ) const;
147
148 friend class Jet;
149 template <class T>
151
153 const map_t& map() const;
154
155
156#if !defined(__REFLEX__) && !defined(__CLING__)
157 // /*! @brief Store last valid record index */
158 // mutable size_t m_lastIndex; not used so remove it for simplicity
160 mutable map_t m_store;
162 static const data_t m_nullData;
163#endif
164
165
167};
168
170public:
171 size_t getNewId() {m_counter++;return m_counter;};
172
173protected:
174 void reset(){m_counter=0;}
175
176 size_t m_counter;
177
178
179};
180
187
188#if !defined(__REFLEX__) && !defined(__CLING__)
190#endif
191
192#endif
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11
static Double_t P(Double_t *tt, Double_t *par)
record_t * operator->()
Definition JetMapBase.h:42
const record_t & operator*() const
Definition JetMapBase.h:38
record_ptr_t(record_t *r=NULL)
Definition JetMapBase.h:36
const record_t * operator->() const
Definition JetMapBase.h:39
void set(record_t *r)
Definition JetMapBase.h:45
const record_t * get() const
Definition JetMapBase.h:40
virtual ~JetMapBase()
destructor
virtual void clear()
SG::OwnershipPolicy ownPolicy()
Definition JetMapBase.h:127
virtual bool addRecord(size_t jetIndex) const
Add a record.
std::map< key_t, record_ptr_t > map_t
publish store type
Definition JetMapBase.h:52
P data_t
Publish payload data type.
Definition JetMapBase.h:21
virtual size_t numberOfMoments(size_t jetIndex) const
virtual void clear(SG::OwnershipPolicy)
Definition JetMapBase.h:125
virtual const data_t & accessData(size_t jetIndex, size_t keyIndex) const
virtual void assignRecord(size_t jetIndex, record_t *rec) const
assign a given record to a given jet
virtual void removeRecord(size_t jetIndex) const
remove a record
std::vector< data_t > record_t
Publish record type.
Definition JetMapBase.h:23
SG::OwnershipPolicy m_ownPolicy
Definition JetMapBase.h:166
friend class JetMomentMapConverterBase
Definition JetMapBase.h:150
static const data_t m_nullData
Definition JetMapBase.h:162
virtual void transferRecord(const JetMapBase< P > *fromMap, size_t oldIndex, size_t newIndex) const
transfer a record from an other map
virtual bool retrieveData(size_t jetIndex, size_t keyIndex, data_t &data) const
Retrieve data.
JetMapBase()
Constructor.
size_t key_t
Publish key type.
Definition JetMapBase.h:50
virtual void addData(size_t jetIndex, size_t keyIndex, const data_t &data) const
Add data.
const map_t & map() const
JetMapBase & operator=(const JetMapBase &base)=delete
virtual const record_t * getRecord(size_t jetIndex) const
get the full record for a given jet
map_t & map()
JetMapBase(const JetMapBase &base)=delete
No copy ctor, assignment.
size_t getNewId()
Definition JetMapBase.h:171
int r
Definition globals.cxx:22
std::string base
Definition hcg.cxx:81
OwnershipPolicy