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

          Line data    Source code
       1             : #ifndef ALIMUONDIGITSTOREVIMPL_H
       2             : #define ALIMUONDIGITSTOREVIMPL_H
       3             : 
       4             : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       5             : * See cxx source for full Copyright notice                               */
       6             : 
       7             : // $Id$
       8             : 
       9             : /// \ingroup base
      10             : /// \class AliMUONDigitStoreVImpl
      11             : /// \brief Base implementation of VDigitStore
      12             : /// 
      13             : // author Laurent Aphecetche
      14             : 
      15             : #ifndef ALIMUONVDIGITSTORE_H
      16             : #  include "AliMUONVDigitStore.h"
      17             : #endif
      18             : 
      19             : class TClonesArray;
      20             : class AliMUON2DMap;
      21             : 
      22             : class AliMUONDigitStoreVImpl : public AliMUONVDigitStore
      23             : {
      24             :   friend class AliMUONDigitStoreVImplIterator;
      25             :   
      26             : public:
      27             :   AliMUONDigitStoreVImpl(const char* concreteClassName);
      28             :   AliMUONDigitStoreVImpl(const AliMUONDigitStoreVImpl& rhs);
      29             :   AliMUONDigitStoreVImpl& operator=(const AliMUONDigitStoreVImpl& rhs);
      30             :   virtual ~AliMUONDigitStoreVImpl();
      31             :   
      32             :   /// Whether we can be connected to a TTree
      33           0 :   virtual Bool_t CanConnect() const { return kTRUE; }
      34             :   
      35             :   virtual Bool_t Connect(TTree& tree, Bool_t alone = kTRUE) const;
      36             :   
      37             :   virtual void Clear(Option_t* opt="");
      38             :   
      39             :   virtual AliMUONVDigit* CreateDigit(Int_t detElemId, Int_t manuId,
      40             :                                      Int_t manuChannel, Int_t cathode) const = 0;
      41             :   
      42             :   using AliMUONVDigitStore::Add;
      43             :   
      44             :   virtual AliMUONVDigit* Add(const AliMUONVDigit& digit, EReplacePolicy replace);
      45             :   
      46             :   virtual TIterator* CreateIterator() const;
      47             :   
      48             :   virtual TIterator* CreateIterator(Int_t firstDetElemId, 
      49             :                                     Int_t lastDetElemId,
      50             :                                     Int_t cathode=2) const;
      51             :   
      52             :   virtual TIterator* CreateTrackerIterator() const;
      53             :   
      54             :   virtual TIterator* CreateTriggerIterator() const;
      55             :   
      56             :   using AliMUONVStore::FindObject;
      57             : 
      58             :   virtual AliMUONVDigit* FindObject(UInt_t uniqueID) const;
      59             : 
      60             :   virtual AliMUONVDigit* FindObject(Int_t detElemId, Int_t manuId, 
      61             :                                     Int_t manuChannel, Int_t cathode) const;
      62             :   
      63             :   using AliMUONVDigitStore::GetSize;
      64             :   
      65             :   virtual Int_t GetSize() const;
      66             :   
      67             :   virtual AliMUONVDigit* Remove(AliMUONVDigit& digit);
      68             : 
      69             : protected:
      70             :   /// Add concrete digit
      71             :   virtual AliMUONVDigit* AddConcreteDigit(TClonesArray& a, 
      72             :                                           const AliMUONVDigit& digit,
      73             :                                           Int_t index) = 0;
      74             :   
      75             : private:
      76             :   
      77             :   AliMUONVDigit* Find(const AliMUONVDigit& digit) const;
      78             :   
      79             :   void UpdateIndex(const AliMUONVDigit& digit, Int_t index);
      80             :   
      81             :   Int_t FindIndex(const AliMUONVDigit& digit) const;
      82             :   Int_t FindIndex(Int_t detElemId, Int_t internalManuId, Int_t manuChannel) const;
      83             :     
      84             :   void ReIndex();
      85             :   void ClearIndex();
      86             : 
      87             : private:
      88             :   TClonesArray* fDigits; ///< collection of digits
      89             :   AliMUON2DMap* fMap; //!<! index map for fast digit retrieval
      90             :   Bool_t fIndexed; //!<! whether our internal indices fDEs and fManus are uptodate
      91             :   
      92          18 :   ClassDef(AliMUONDigitStoreVImpl,1) // Implementation of AliMUONVDigitStore
      93             : };
      94             : 
      95             : #endif

Generated by: LCOV version 1.11