// ------------------------------------------------------------------------- // ----- CbmDigiManager header file ----- // ----- Created 08/05/07 by V. Friese ----- // ------------------------------------------------------------------------- /** CbmDigiManager *@author Volker Friese *@since 08.05.07 *@version 1.0 ** ** CBM task class for random access to digi objects ** Task level RECO ** Access to digi by channel number **/ #ifndef CBMDIGIMANAGER_H #define CBMDIGIMANAGER_H 1 #include "CbmTask.h" #include "TStopwatch.h" #include #include class TClonesArray; class CbmDigi; enum System {MVD=1, STS, RICH, MUCH, TRD, TOF, ECAL, PSD}; class CbmDigiManager : public CbmTask { public: /** Default constructor **/ CbmDigiManager(); /** Destructor **/ virtual ~CbmDigiManager(); /** Fill maps from detector / channel number to digi index **/ virtual void Exec(Option_t* opt); /** Access to digi @param iDetector detector unique identifier *@param iChannel channel number *@value Pointer to digi object **/ CbmDigi* GetDigi(Int_t iDetector, Int_t iChannel); private: /** Initialisation: Get pointers to arrays. **/ virtual InitStatus Init(); /** Private data members **/ const char* fSystem[16]; // Name of systems TClonesArray* fDigis[16]; // Arrays of digis std::map, CbmDigi*> fDigiMap; //! Digi map TStopwatch fTimer; // Timer ClassDef(CbmDigiManager,1); }; #endif