// $Id$
-/// \ingroup base
+/// \ingroup calib
/// \class AliMUON2DMap
/// \brief Basic implementation of AliMUONV2DStore container using
/// AliMpExMap internally.
///
-/// \author Laurent Aphecetche
+// Author Laurent Aphecetche
#ifndef AliMUON2DMAP_H
#define AliMUON2DMAP_H
class AliMUON2DMap : public AliMUONV2DStore
{
public:
- AliMUON2DMap();
+ AliMUON2DMap(Bool_t optimizeForDEManu=kFALSE);
virtual ~AliMUON2DMap();
+ AliMUONV2DStore* CloneEmpty() const;
+
+ /// The returned iterator is owned by the client.
+ AliMUONVDataIterator* Iterator() const;
+
virtual TObject* Get(Int_t i, Int_t j) const;
virtual Bool_t Set(Int_t i, Int_t j, TObject* object, Bool_t replace);
- virtual Bool_t IsOwner() const { return kTRUE; }
-
- virtual void Print(Option_t* opt="") const;
+ /// Whether or not this container is the owner of its contents.
+ virtual Bool_t IsOwner() const { return kTRUE; }
-protected:
AliMUON2DMap(const AliMUON2DMap& other);
AliMUON2DMap& operator = (const AliMUON2DMap& other);
+ /// Build a complete (i.e. all detElemId,manuId couple will be there) store
+ /// but with identical values, given by object
+ /// The returned store will be obviously optimized for DEManu.
+ static AliMUONV2DStore* Generate(const TObject& object);
+
private:
- void CopyTo(AliMUON2DMap& destination) const;
-
+ void CopyTo(AliMUON2DMap& destination) const;
+
private:
- AliMpExMap* fMap; // Our internal map (an AliMpExMap of AliMpExMaps)
+ 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