16#ifndef ROO_LINKED_LIST 
   17#define ROO_LINKED_LIST 
   25#include <unordered_map> 
  103  void Print(
const char* opt) 
const override ;
 
  145  template <
bool ascending>
 
  149  typedef RooLinkedListImplDetails::Pool 
Pool;
 
  153  std::vector<RooLinkedListElem *> 
_at; 
 
 
int Int_t
Signed integer 4 bytes (int)
 
unsigned long ULong_t
Unsigned long integer 4 bytes (unsigned long). Size depends on architecture.
 
const char Option_t
Option string (const char)
 
#define ClassDefOverride(name, id)
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t index
 
Common abstract base class for objects that represent a value and a "shape" in RooFit.
 
Implementation of the GenericRooFIter interface for the RooLinkedList.
 
A one-time forward iterator working on RooLinkedList or RooAbsCollection.
 
Link element for the RooLinkedList class.
 
TObject * _arg
Link to contents.
 
Implementation of the actual iterator on RooLinkedLists.
 
A wrapper around TIterator derivatives.
 
Collection class for internal use, storing a collection of RooAbsArg pointers in a doubly linked list...
 
void SetName(const char *name)
 
RooLinkedListIterImpl rend() const
 
TObject * At(int index) const
Return object stored in sequential position given by index.
 
RooLinkedListIter iterator(bool forward=true) const
Create an iterator for this list.
 
static Pool * _pool
shared memory pool for allocation of RooLinkedListElems
 
~RooLinkedList() override
Destructor.
 
RooLinkedListIterImpl end() const
 
RooLinkedListImplDetails::Pool Pool
memory pool for quick allocation of RooLinkedListElems
 
std::vector< RooLinkedListElem * > _at
! index list for quick index through At
 
const char * GetName() const override
Returns name of object.
 
std::unique_ptr< HashTableByName > _htableName
! Hash table by name
 
void RecursiveRemove(TObject *obj) override
If one of the TObject we have a referenced to is deleted, remove the reference.
 
std::unordered_map< std::string, TObject const  * > HashTableByName
 
bool Replace(const TObject *oldArg, const TObject *newArg)
Replace object 'oldArg' in collection with new object 'newArg'.
 
RooLinkedList(Int_t htsize=0)
 
void Print(const char *opt) const override
Print contents of list, defers to Print() function of contained objects.
 
std::unique_ptr< HashTableByLink > _htableLink
! Hash table by link pointer
 
Int_t getHashTableSize() const
 
RooFIter fwdIterator() const
Create a one-time-use forward iterator for this list.
 
void deleteElement(RooLinkedListElem *)
 
RooLinkedListElem * findLink(const TObject *arg) const
Find the element link containing the given object.
 
std::unordered_map< TObject const  *, TObject const  * > HashTableByLink
 
RooLinkedListIterImpl rbegin() const
 
Int_t _hashThresh
Size threshold for hashing.
 
RooLinkedListElem * createElement(TObject *obj, RooLinkedListElem *elem=nullptr)
std::cout << "RooLinkedList::createElem(" << this << ") obj = " << obj << " elem = " << elem << std::...
 
RooAbsArg * findArg(const RooAbsArg *) const
Return pointer to object with given name in collection.
 
void Delete(Option_t *o=nullptr) override
Remove all elements in collection and delete all elements NB: Collection does not own elements,...
 
bool contains(const char *name) const
 
TObject * find(const char *name) const
Return pointer to object with given name in collection.
 
RooLinkedList & operator=(const RooLinkedList &other)
Assignment operator, copy contents from 'other'.
 
virtual void Add(TObject *arg)
 
Int_t _size
Current size of list.
 
RooLinkedListIterImpl begin() const
 
RooLinkedListElem * _last
! Link to last element of list
 
void setHashTableSize(Int_t size)
Change the threshold for hash-table use to given size.
 
TObject * FindObject(const char *name) const override
Return pointer to object with given name.
 
RooLinkedListElem * _first
! Link to first element of list
 
TIterator * MakeIterator(bool forward=true) const
Create a TIterator for this list.
 
void Clear(Option_t *o=nullptr) override
Remove all elements from collection.
 
static RooLinkedListElem * mergesort_impl(RooLinkedListElem *l1, const unsigned sz, RooLinkedListElem **tail=nullptr)
length 0, 1 lists are sorted
 
ULong_t Hash() const override
Return hash value for this object.
 
TObject * Clone(const char *=nullptr) const override
Make a clone of an object using the Streamer facility.
 
Int_t IndexOf(const char *name) const
Return position of given object in list.
 
virtual bool Remove(TObject *arg)
Remove object from collection.
 
Iterator abstract base class.
 
Mother of all ROOT objects.
 
const char * Data() const
 
UInt_t Hash(ECaseCompare cmp=kExact) const
Return hash value.