ROOT logo
#ifndef ALIMUONMANUCONTOURMAKER_H
#define ALIMUONMANUCONTOURMAKER_H

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

// $Id$

/// \ingroup geometry
/// \class AliMUONManuContourMaker
/// \brief Maker of AliMUONContour objects for all the tracker manus
/// 
// Author Laurent Aphecetche, Subatech

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

#ifndef ROOT_TMap
#  include "TMap.h"
#endif

class AliMpExMap;
class AliMpMotifPosition;
class AliMUONContour;

class AliMUONManuContourMaker : public TObject
{
public:
  AliMUONManuContourMaker(AliMpExMap* deTransformations);
  virtual ~AliMUONManuContourMaker();

  AliMUONContour* CreateManuContour(Int_t detElemId, Int_t manuId, const char* name="") const;
  
  AliMUONContour* CreateMotifContour(const AliMpMotifPosition& motifPosition) const;

  TObjArray* GenerateManuContours(Bool_t stopAtError=kFALSE);
  
  static TString ManuPathName(Int_t detElemId, Int_t manu, Bool_t withCathodeName=kTRUE);
  
private:
  /// not implemented
  AliMUONManuContourMaker(const AliMUONManuContourMaker& rhs);
  /// not implemented
  AliMUONManuContourMaker& operator=(const AliMUONManuContourMaker& rhs);
  
  TString NameIt(const AliMpMotifPosition& motifPosition) const;

private:
  AliMpExMap* fDETransformations;  ///< map<int,TGeoHMatrix> of detElemId to matrix
  mutable TMap fLocalManuContours; ///< map of local manu contours
  
  ClassDef(AliMUONManuContourMaker,1) // Maker of AliMUONContour objects for all the tracker manus
};

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