X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUON2DMap.h;h=b610bb5fd34595bc63b01ed9fdd912e52850b7fb;hb=fb4dfab90375b096539a4ace307117dc6cb10a9d;hp=eedd197c3e496cc4bf81a57851b70055ccf7d4f5;hpb=884a73f1d555fcad7e1d027ae330127d1ff97565;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUON2DMap.h b/MUON/AliMUON2DMap.h index eedd197c3e4..b610bb5fd34 100644 --- a/MUON/AliMUON2DMap.h +++ b/MUON/AliMUON2DMap.h @@ -3,41 +3,64 @@ // $Id$ -/// \ingroup base +/// \ingroup calib /// \class AliMUON2DMap -/// \brief Basic implementation of AliMUONV2DStore container using +/// \brief Basic implementation of AliMUONVStore container using /// AliMpExMap internally. /// -/// \author Laurent Aphecetche +// Author Laurent Aphecetche #ifndef AliMUON2DMAP_H #define AliMUON2DMAP_H -#include "AliMUONV2DStore.h" +#include "AliMUONVStore.h" class AliMpExMap; -class AliMUON2DMap : public AliMUONV2DStore +class AliMUON2DMap : public AliMUONVStore { public: - AliMUON2DMap(); + AliMUON2DMap(Bool_t optimizeForDEManu=kFALSE); + AliMUON2DMap(const AliMUON2DMap& other); + AliMUON2DMap& operator = (const AliMUON2DMap& other); virtual ~AliMUON2DMap(); - virtual TObject* Get(Int_t i, Int_t j) const; - virtual Bool_t Set(Int_t i, Int_t j, TObject*, Bool_t replace); - virtual Bool_t IsOwner() const { return kTRUE; } + virtual Bool_t Add(TObject* object); + + /// Mandatory methods from TCollection + virtual void Clear(Option_t* opt=""); + + /// Whether the Connect(TTree&) method is implemented + virtual Bool_t CanConnect() const { return kFALSE; } + + virtual AliMUONVStore* Create() const; + + /// The returned iterator is owned by the client. + virtual TIterator* CreateIterator() const; + + /// Iterate on part of the store (only for (i,j) where firstI<=i<=lastI + TIterator* CreateIterator(Int_t firstI, Int_t lastI) const; - virtual void Print(Option_t* opt="") const; + using AliMUONVStore::FindObject; + + virtual TObject* FindObject(Int_t i, Int_t j) const; -protected: - AliMUON2DMap(const AliMUON2DMap& right); - AliMUON2DMap& operator = (const AliMUON2DMap& right); - + /// Whether our internal storage is optimize to store (detection element id, manu id) + Bool_t IsOptimizedForDEManu() const { return fOptimizeForDEManu; } + virtual Int_t GetSize() const; + + virtual Int_t GetSize(Int_t i) const; + +private: + void CopyTo(AliMUON2DMap& destination) const; + Bool_t Set(Int_t i, Int_t j, TObject* object, Bool_t replace); + private: - AliMpExMap* fMap; + AliMpExMap* fMap; ///< Our internal map (an AliMpExMap of AliMpExMaps) + Bool_t fOptimizeForDEManu; ///< whether (i,j) pair is supposed to be (DetElemId,ManuId) (allow us to allocate right amount of memory, that's all it does. - ClassDef(AliMUON2DMap,1) // A 2D container + ClassDef(AliMUON2DMap,2) // A 2D container }; #endif