/** CbmMuchPad.h *@author Evgeny Kryshen *@since 02.08.12 *@version 2.0 * *@author Mikhail Ryzhinskiy *@since 10.11.07 *@version 1.0 ** ** Class describing a standalone pad **/ #ifndef CBMMUCHPAD_H #define CBMMUCHPAD_H 1 #include "TArrayL64.h" class CbmMuchSector; class CbmMuchDigi; class CbmMuchDigiMatch; #include "CbmMuchModuleGem.h" #include "vector" using std::vector; class CbmMuchPad { public: CbmMuchPad(); CbmMuchPad(Int_t detId, Long64_t channelId, Double_t x, Double_t y, Double_t dx, Double_t dy); virtual ~CbmMuchPad(){}; Int_t GetDetectorId() const { return fDetectorId; } Long64_t GetChannelId() const { return fChannelId; } Int_t GetSectorIndex() const { return CbmMuchModuleGem::GetSectorIndex(fChannelId); } Int_t GetChannelIndex() const { return CbmMuchModuleGem::GetChannelIndex(fChannelId); } Double_t GetX() const { return fX; } Double_t GetY() const { return fY; } Double_t GetDx() const { return fDx; } Double_t GetDy() const { return fDy; } Double_t GetDxy() const { return 0.; } Int_t GetDigiIndex() const { return fDigiIndex; } CbmMuchDigi* GetDigi() const { return fDigi; } CbmMuchDigiMatch* GetMatch() const { return fMatch; } vector GetNeighbours() const { return fNeighbours; } void SetNeighbours(vector neighbours) { fNeighbours = neighbours; } void SetDigiIndex(Int_t iDigi) { fDigiIndex = iDigi; } virtual void SetFired(Int_t iDigi, Int_t ADCcharge, Int_t nADCChannels=256){} protected: Int_t fDetectorId; // Detector ID (including module number) Long64_t fChannelId; // Channel ID within the module Double_t fX; // X-coordinate of the pad center Double_t fY; // Y-coordinate of the pad center Double_t fDx; // X-pad width Double_t fDy; // Y-pad width Int_t fDigiIndex; // Index of the corresponding CbmMuchDigi (if any) CbmMuchDigi* fDigi; //! pointer to current digi CbmMuchDigiMatch* fMatch; //! pointer to current digi match vector fNeighbours; //! Array of channel IDs of neighbour pads private: CbmMuchPad(const CbmMuchPad&); CbmMuchPad operator=(const CbmMuchPad&); }; #endif