/** CbmMuchDigiScheme.h **@author Mikhail Ryzhinskiy **@since 15.03.07 **@version 1.0 ** ** Auxiliary class for MuCh digitization and hit finding. ** Controls the digitisation scheme of the stations and sectors. **/ #ifndef CBMMUCHDIGISCHEME_H #define CBMMUCHDIGISCHEME_H 1 #include #include "TObjArray.h" #include "TObject.h" class CbmGeoMuchPar; class CbmMuchDigiPar; class CbmMuchSector; class CbmMuchStation; class CbmMuchDigiScheme : public TObject { public: /** Constructor **/ CbmMuchDigiScheme(); /** Destructor **/ virtual ~CbmMuchDigiScheme(); /** Initialisation **/ Bool_t Init(CbmGeoMuchPar* geoPar, CbmMuchDigiPar* digiPar); /** Clear digitisation scheme **/ void Clear(); /** Reset eventwise counters **/ void Reset(); /** Accessors **/ Int_t GetNStations() { return fStations->GetEntries(); } /** Number of stations **/ Int_t GetNSectors() { return fNSectors; } /** Total number of sectors **/ Int_t GetNChannels() { return fNChannels; } /** Total number of channels **/ TObjArray* GetStations() { return fStations; } /** Array of CbmMuchStation objects **/ CbmMuchStation* GetStation(Int_t iStation); /** Station by index **/ CbmMuchStation* GetStationByNr(Int_t stationNr); /** Station by number **/ CbmMuchStation* GetStationByMcId(Int_t iVol); /** Station by MCid **/ CbmMuchSector* GetSector(Int_t stationNr, Int_t sectorNr); /** Sector by sector number and station number **/ /** Screen output **/ void Print(); private: TObjArray* fStations; /** Array of CbmMuchStation **/ Int_t fNSectors; /** Total number of sectors **/ Int_t fNChannels; /** Total number of channels **/ std::map fStationMap; //! Map from number to station std::map fVolumeMap; //! Map from MCid to station ClassDef(CbmMuchDigiScheme,1); }; #endif