LCOV - code coverage report
Current view: top level - MUON/MUONmapping - AliMpDDLStore.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 2 2 100.0 %
Date: 2016-06-14 17:26:59 Functions: 3 6 50.0 %

          Line data    Source code
       1             : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       2             :  * See cxx source for full Copyright notice                               */
       3             : 
       4             : // $Id$
       5             : // $MpId: AliMpDDLStore.h,v 1.6 2006/05/24 13:58:16 ivana Exp $ 
       6             : 
       7             : /// \ingroup management
       8             : /// \class AliMpDDLStore
       9             : /// \brief The top container class for DDLs, det elements and bus patched
      10             : ///
      11             : /// It provides acces to DDL, det element and bus patches objects
      12             : /// via various characteristics.
      13             : ///
      14             : /// \author Ivana Hrivnacova, IPN Orsay;
      15             : ///         Christian Finck, SUBATECH Nantes
      16             : 
      17             : #ifndef ALI_MP_DDL_STORE_H
      18             : #define ALI_MP_DDL_STORE_H
      19             : 
      20             : #include "AliMpExMap.h"
      21             : #include "AliMpRegionalTrigger.h"
      22             : #include <TObject.h>
      23             : #include <TObjArray.h>
      24             : #include <TArrayI.h>
      25             : 
      26             : 
      27             : class AliMpDDL;
      28             : class AliMpDetElement;
      29             : class AliMpBusPatch;
      30             : class AliMpLocalBoard;
      31             : class AliMpTriggerCrate;
      32             : class AliMpDataStreams;
      33             : class TArrayI;
      34             : 
      35             : class AliMpDDLStore : public  TObject {
      36             : 
      37             :   public:
      38             :     AliMpDDLStore(TRootIOCtor* ioCtor);
      39             :     virtual ~AliMpDDLStore();
      40             :     
      41             :     // static access method
      42             :     static AliMpDDLStore* Instance(Bool_t warn = true); 
      43             :     static AliMpDDLStore* ReadData(const AliMpDataStreams& dataStreams,
      44             :                                    Bool_t warn = true);
      45             :     
      46             :     // methods
      47             :     AliMpDDL*          GetDDL(Int_t ddlId, Bool_t warn = true) const;
      48             :     AliMpDetElement*   GetDetElement(Int_t detElemId, Bool_t warn = true) const;
      49             :     AliMpBusPatch*     GetBusPatch(Int_t busPatchId, Bool_t warn = true) const;
      50             :     AliMpLocalBoard*   GetLocalBoard(Int_t localBoardId, Bool_t warn = true) const;
      51             :     AliMpTriggerCrate* GetTriggerCrate(TString crateName, Bool_t warn = true) const;
      52             :     AliMpTriggerCrate* GetTriggerCrate(Int_t ddlId, Int_t index, Bool_t warn = true) const;
      53             : 
      54             :     /// Return regional trigger object
      55          28 :     const AliMpRegionalTrigger*  GetRegionalTrigger() const { return &fRegionalTrigger; }
      56             :     
      57             :     Int_t  GetDEfromBus(Int_t busPatchId) const;
      58             :     Int_t  GetDEfromLocalBoard(Int_t localBoardId, Int_t chamberId) const;
      59             :     Int_t  GetNextDEfromLocalBoard(Int_t localBoardId, Int_t chamberId) const;
      60             :     Int_t  GetPreviousDEfromLocalBoard(Int_t localBoardId, Int_t chamberId) const;
      61             :     
      62             :     Int_t  GetDDLfromBus(Int_t busPatchId) const;
      63             :     Int_t  GetBusPatchId(Int_t detElemId, Int_t manuId) const;
      64             : 
      65             :     Long_t GetLinkPortId(Int_t busPatchId) const;
      66             : 
      67             :     /// Print info of all manus
      68             :     void PrintAllManu() const;
      69             :     
      70             :     // Set methods
      71             :     void SetRegionalTrigger(const AliMpRegionalTrigger& regionalTrigger);
      72             : 
      73             :     TIterator* CreateBusPatchIterator() const; 
      74             :     
      75             :   private:
      76             :     AliMpDDLStore(const AliMpDataStreams& dataStreams);
      77             :     /// Not implemented
      78             :     AliMpDDLStore();
      79             :     /// Not implemented
      80             :     AliMpDDLStore(const AliMpDDLStore& rhs);
      81             :     /// Not implemented
      82             :     AliMpDDLStore& operator=(const AliMpDDLStore& rhs);
      83             : 
      84             :     // static methods
      85             :     static const TString&  GetRevertKeyword();
      86             :     static const TString&  GetExplicitKeyword();
      87             : 
      88             :     // methods
      89             :     Int_t  GetManuListIndex(Int_t detElemId) const;
      90             :     Int_t  GetBusPatchIndex(Int_t detElemId, Int_t manuId) const;
      91             :     Bool_t ReadDDLs(const AliMpDataStreams& dataStreams);
      92             :     Bool_t ReadTrigger(const AliMpDataStreams& dataStreams);
      93             :     Bool_t SetTriggerDDLs();
      94             :     Bool_t SetManus();
      95             :     Bool_t ReadBusPatchSpecial(const AliMpDataStreams& dataStreams);
      96             :     Bool_t SetPatchModules();
      97             :     Bool_t ReadBusPatchInfo(const AliMpDataStreams& dataStreams);
      98             :     Int_t  GetLocalBoardId(TString name) const;
      99             : 
     100             :     // static data members      
     101             :     static AliMpDDLStore* fgInstance; ///< Singleton instance
     102             :     static const Int_t    fgkNofDDLs; ///< Total number of DDLs
     103             :     static const Int_t    fgkNofTriggerDDLs; ///< Total number of trigger DDLs
     104             : 
     105             :     // data members     
     106             :     TObjArray     fDDLs;           ///< Array of DDL objects
     107             :     AliMpExMap    fBusPatches;     ///< The map of bus patches per their IDs
     108             :     TArrayI       fManuList12[16]; ///< Arrays of 1st manu in bus
     109             :     TArrayI       fManuBridge2[16]; ///< Arrays of manu number before the bridge in buspatch
     110             :     AliMpRegionalTrigger fRegionalTrigger; ///< Regional trigger
     111             :         
     112        2404 :   ClassDef(AliMpDDLStore,5)  // The manager class for definition of detection element types
     113             : };
     114             : 
     115             : #endif //ALI_MP_DDL_STORE_H
     116             : 
     117             : 
     118             : 
     119             : 
     120             : 
     121             : 
     122             : 
     123             : 
     124             : 
     125             : 
     126             : 
     127             : 
     128             : 
     129             : 
     130             : 

Generated by: LCOV version 1.11