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

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

/// \ingroup management
/// \class AliMpDEStore
/// \brief The container class for detection element objects
///
/// \author Ivana Hrivnacova, IPN Orsay;
///         Laurent Aphecetche, Christian Finck, SUBATECH Nantes

#ifndef ALI_MP_DE_STORE_H
#define ALI_MP_DE_STORE_H

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

#include "AliMpExMap.h"
#include "AliMpPlaneType.h"
#include "AliMpStationType.h"
#include "AliMpStation12Type.h"

class AliMpDetElement;
class AliMpDataStreams;
class TString;

class AliMpDEStore : public  TObject {

  friend class AliMpDEIterator;

  public:
    AliMpDEStore(TRootIOCtor* ioCtor);
    virtual ~AliMpDEStore();
    
    // static access method
    static AliMpDEStore* Instance(Bool_t warn = true); 
    static AliMpDEStore* ReadData(const AliMpDataStreams& dataStreams,
                                  Bool_t warn = true);
    
    // methods
    AliMpDetElement* GetDetElement(Int_t detElemId, Bool_t warn = true) const;
    AliMpDetElement* GetDetElement(const TString& detName, Bool_t warn = true) const;
    
  private:
    AliMpDEStore(const AliMpDataStreams& dataStreams);
    /// Not implemented
    AliMpDEStore();
    /// Not implemented
    AliMpDEStore(const AliMpDEStore& rhs);
    /// Not implemented
    AliMpDEStore& operator=(const AliMpDEStore& rhs);

    // methods
    Bool_t IsPlaneType(const TString& planeTypeName);
 
    Bool_t ReadDENames(const AliMpDataStreams& dataStreams,
                       AliMp::StationType stationType,
                       AliMq::Station12Type station12Type = AliMq::kNotSt12);
    void   FillDEs(const AliMpDataStreams& dataStreams);

    // static data members	
    static AliMpDEStore* fgInstance;       ///< Singleton instance
    static const char    fgkCommentPrefix; ///< Comment prefix in DE names file

    // data members	
    AliMpExMap  fDetElements; ///< Map between DE Ids and DE objects
      
  ClassDef(AliMpDEStore,1)  // The manager class for definition of detection element types
};

#endif //ALI_MP_MANAGER_H















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