ROOT logo
#ifndef ALIMUONCONTOURHANDLER_H
#define ALIMUONCONTOURHANDLER_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice                               */

// $Id$

/// \ingroup graphics
/// \class AliMUONContourHandler
/// \brief Holder for MUON tracker contours
/// 
//  Author Laurent Aphecetche

#ifndef ROOT_TObject
#  include "TObject.h"
#endif

class TObjArray;
class AliMpExMap;
class TMap;
class AliMUONContour;

class AliMUONContourHandler : public TObject
{
public:
  AliMUONContourHandler(Bool_t explodedView=kTRUE);
  virtual ~AliMUONContourHandler();
  
  Bool_t Adopt(AliMUONContour* contour); 
  
  /// Get all the contours as a map
  TMap* AllContourMap() const { return fAllContourMap; }
  
  /// Get all the contours as an array
  TObjArray* AllContourArray() const { return fAllContourArray; }
  
  AliMUONContour* GetContour(const char* contourname) const;
  
  /// Get detection element geometrical transformations
  AliMpExMap* GetTransformations() const { return fTransformations; }
  
  void Print(Option_t* opt="") const;
  
private:
  /// Not implemented
  AliMUONContourHandler(const AliMUONContourHandler& rhs);
  /// Not implemented
  AliMUONContourHandler& operator=(const AliMUONContourHandler& rhs);
  
  AliMpExMap* GenerateTransformations(Bool_t exploded);
  
  TObjArray* CreateContourList(const TObjArray& manuContours);
  
  void GenerateAllContours(const TObjArray& manuContours);  
  
private:
  AliMpExMap* fTransformations; ///< transformations used to go from local to global coordinates
  TMap* fAllContourMap; ///< all (i.e. manus,  buspatches, detection elements, etc..) contours
  TObjArray* fAllContourArray; ///< all contours, ordered by hierarchy level
  
  ClassDef(AliMUONContourHandler,1) // MUON tracker contour holder
};

#endif
 AliMUONContourHandler.h:1
 AliMUONContourHandler.h:2
 AliMUONContourHandler.h:3
 AliMUONContourHandler.h:4
 AliMUONContourHandler.h:5
 AliMUONContourHandler.h:6
 AliMUONContourHandler.h:7
 AliMUONContourHandler.h:8
 AliMUONContourHandler.h:9
 AliMUONContourHandler.h:10
 AliMUONContourHandler.h:11
 AliMUONContourHandler.h:12
 AliMUONContourHandler.h:13
 AliMUONContourHandler.h:14
 AliMUONContourHandler.h:15
 AliMUONContourHandler.h:16
 AliMUONContourHandler.h:17
 AliMUONContourHandler.h:18
 AliMUONContourHandler.h:19
 AliMUONContourHandler.h:20
 AliMUONContourHandler.h:21
 AliMUONContourHandler.h:22
 AliMUONContourHandler.h:23
 AliMUONContourHandler.h:24
 AliMUONContourHandler.h:25
 AliMUONContourHandler.h:26
 AliMUONContourHandler.h:27
 AliMUONContourHandler.h:28
 AliMUONContourHandler.h:29
 AliMUONContourHandler.h:30
 AliMUONContourHandler.h:31
 AliMUONContourHandler.h:32
 AliMUONContourHandler.h:33
 AliMUONContourHandler.h:34
 AliMUONContourHandler.h:35
 AliMUONContourHandler.h:36
 AliMUONContourHandler.h:37
 AliMUONContourHandler.h:38
 AliMUONContourHandler.h:39
 AliMUONContourHandler.h:40
 AliMUONContourHandler.h:41
 AliMUONContourHandler.h:42
 AliMUONContourHandler.h:43
 AliMUONContourHandler.h:44
 AliMUONContourHandler.h:45
 AliMUONContourHandler.h:46
 AliMUONContourHandler.h:47
 AliMUONContourHandler.h:48
 AliMUONContourHandler.h:49
 AliMUONContourHandler.h:50
 AliMUONContourHandler.h:51
 AliMUONContourHandler.h:52
 AliMUONContourHandler.h:53
 AliMUONContourHandler.h:54
 AliMUONContourHandler.h:55
 AliMUONContourHandler.h:56
 AliMUONContourHandler.h:57
 AliMUONContourHandler.h:58
 AliMUONContourHandler.h:59
 AliMUONContourHandler.h:60
 AliMUONContourHandler.h:61
 AliMUONContourHandler.h:62
 AliMUONContourHandler.h:63
 AliMUONContourHandler.h:64
 AliMUONContourHandler.h:65