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

// $Id$
// $MpId: AliMpDEManager.h,v 1.6 2006/05/24 13:58:16 ivana Exp $ 

/// \ingroup management
/// \class AliMpDEManager
/// \brief The manager class for definition of detection element types
///
/// The detection element types are defined via unique names
/// in denames.dat file for each station in the mapping data.
/// Detection element name is composed of DETypeName and planeTypeName.
/// DETypeName is only one per station in case of station1 and 2 quadrants, 
/// there are more DETypes in case of slat and trigger stations. 
///
/// \author Ivana Hrivnacova, IPN Orsay;
///         Laurent Aphecetche, SUBATECH Nantes

#ifndef ALI_MP_DE_MANAGER_H
#define ALI_MP_DE_MANAGER_H

#include <TObject.h>
#include <TArrayI.h>

#include "AliMpExMap.h"
#include "AliMpPlaneType.h"
#include "AliMpCathodType.h"
#include "AliMpStationType.h"
#include "AliMpStation12Type.h"
#include "AliMpDEIterator.h"
#include "AliMpEncodePair.h"

class AliMpDetElement;
class TString;

class AliMpDEManager : public  TObject {

  public:
    virtual ~AliMpDEManager();
    
    // methods
    static Bool_t IsValidDetElemId(Int_t detElemId, Bool_t warn = false);
    static Bool_t IsValidChamberId(Int_t chamberId, Bool_t warn = false);
    static Bool_t IsValidGeomModuleId(Int_t moduleId, Bool_t warn = false);

    static Int_t   GetChamberId(Int_t detElemId, Bool_t warn = true);    
    static Int_t   GetGeomModuleId(Int_t detElemId, Bool_t warn = true);    
    static AliMp::PlaneType     GetPlaneType(Int_t detElemId, AliMp::CathodType cath);
    static AliMp::CathodType    GetCathod(Int_t detElemId, AliMp::PlaneType planeType);
    static AliMp::StationType   GetStationType(Int_t detElemId);
    static AliMq::Station12Type GetStation12Type(Int_t detElemId);

    static AliMpDetElement* GetDetElement(Int_t detElemId, Bool_t warn = true);
    static AliMpDetElement* GetDetElement(const TString& deName, Bool_t warn = true);

    static Int_t     GetNofDEInChamber(Int_t chamberId, Bool_t warn = true);
    static MpPair_t  GetDetElemIdRange(Int_t chamberId);

  private:
    /// Not implemented
    AliMpDEManager();
    /// Not implemented
    AliMpDEManager(const AliMpDEManager& rhs);
    /// Not implemented
    AliMpDEManager& operator=(const AliMpDEManager& rhs);

    // static methods
    static  TArrayI&  GetNofDEPerChamber();
      
    // static data members	
    static const Int_t  fgkCoefficient; ///< Coefficient used in DE Id <-> station

  ClassDef(AliMpDEManager,0)  // The manager class for definition of detection element types
};

#endif //ALI_MP_MANAGER_H















 AliMpDEManager.h:1
 AliMpDEManager.h:2
 AliMpDEManager.h:3
 AliMpDEManager.h:4
 AliMpDEManager.h:5
 AliMpDEManager.h:6
 AliMpDEManager.h:7
 AliMpDEManager.h:8
 AliMpDEManager.h:9
 AliMpDEManager.h:10
 AliMpDEManager.h:11
 AliMpDEManager.h:12
 AliMpDEManager.h:13
 AliMpDEManager.h:14
 AliMpDEManager.h:15
 AliMpDEManager.h:16
 AliMpDEManager.h:17
 AliMpDEManager.h:18
 AliMpDEManager.h:19
 AliMpDEManager.h:20
 AliMpDEManager.h:21
 AliMpDEManager.h:22
 AliMpDEManager.h:23
 AliMpDEManager.h:24
 AliMpDEManager.h:25
 AliMpDEManager.h:26
 AliMpDEManager.h:27
 AliMpDEManager.h:28
 AliMpDEManager.h:29
 AliMpDEManager.h:30
 AliMpDEManager.h:31
 AliMpDEManager.h:32
 AliMpDEManager.h:33
 AliMpDEManager.h:34
 AliMpDEManager.h:35
 AliMpDEManager.h:36
 AliMpDEManager.h:37
 AliMpDEManager.h:38
 AliMpDEManager.h:39
 AliMpDEManager.h:40
 AliMpDEManager.h:41
 AliMpDEManager.h:42
 AliMpDEManager.h:43
 AliMpDEManager.h:44
 AliMpDEManager.h:45
 AliMpDEManager.h:46
 AliMpDEManager.h:47
 AliMpDEManager.h:48
 AliMpDEManager.h:49
 AliMpDEManager.h:50
 AliMpDEManager.h:51
 AliMpDEManager.h:52
 AliMpDEManager.h:53
 AliMpDEManager.h:54
 AliMpDEManager.h:55
 AliMpDEManager.h:56
 AliMpDEManager.h:57
 AliMpDEManager.h:58
 AliMpDEManager.h:59
 AliMpDEManager.h:60
 AliMpDEManager.h:61
 AliMpDEManager.h:62
 AliMpDEManager.h:63
 AliMpDEManager.h:64
 AliMpDEManager.h:65
 AliMpDEManager.h:66
 AliMpDEManager.h:67
 AliMpDEManager.h:68
 AliMpDEManager.h:69
 AliMpDEManager.h:70
 AliMpDEManager.h:71
 AliMpDEManager.h:72
 AliMpDEManager.h:73
 AliMpDEManager.h:74
 AliMpDEManager.h:75
 AliMpDEManager.h:76
 AliMpDEManager.h:77
 AliMpDEManager.h:78
 AliMpDEManager.h:79
 AliMpDEManager.h:80
 AliMpDEManager.h:81
 AliMpDEManager.h:82
 AliMpDEManager.h:83
 AliMpDEManager.h:84
 AliMpDEManager.h:85
 AliMpDEManager.h:86
 AliMpDEManager.h:87
 AliMpDEManager.h:88
 AliMpDEManager.h:89
 AliMpDEManager.h:90
 AliMpDEManager.h:91
 AliMpDEManager.h:92