/// \brief Singleton container class for mapping segmentations
///
/// It provides access to mapping segmentations based on the
-/// AliMpVSegmentation interface. \n
+/// AliMpVSegmentation interface and to segmentations underlying
+/// detectors (sector, slat, trigger). \n
/// Mapping segmentations for all detection elements
/// are created at the first call to AliMpSegmentation::Instance().
/// The class is a singleton, it has all constructors
#endif
class AliMpDEStore;
-class AliMpVSegmentation;
class AliMpSegmentation;
+class AliMpVSegmentation;
class AliMpSlatMotifMap;
class AliMpDataStreams;
+class AliMpSector;
+class AliMpSlat;
+class AliMpTrigger;
class TRootIOCtor;
class AliMpSegmentation : public TObject {
public:
- AliMpSegmentation(TRootIOCtor* /*ioCtor*/);
+ AliMpSegmentation(TRootIOCtor* ioCtor);
virtual ~AliMpSegmentation();
// static methods
Bool_t warn = true);
// methods
+
+ //
+ // Access to segmentations
+ //
+
const AliMpVSegmentation* GetMpSegmentation(
Int_t detElemId, AliMp::CathodType cath,
Bool_t warn = true) const;
const AliMpVSegmentation* GetMpSegmentationByElectronics(
Int_t detElemId, Int_t elCardID,
Bool_t warn = true) const;
-
+ //
+ // Access to sectors, slats, triggers
+ //
+
+ const AliMpSector* GetSector(const AliMpVSegmentation* kSegmentation,
+ Bool_t warn = true) const;
+ const AliMpSector* GetSector(Int_t detElemId, AliMp::CathodType cath,
+ Bool_t warn = true) const;
+ const AliMpSector* GetSectorByElectronics(Int_t detElemId, Int_t elCardID,
+ Bool_t warn = true) const;
+
+ const AliMpSlat* GetSlat(const AliMpVSegmentation* kSegmentation,
+ Bool_t warn = true) const;
+ const AliMpSlat* GetSlat(Int_t detElemId, AliMp::CathodType cath,
+ Bool_t warn = true) const;
+ const AliMpSlat* GetSlatByElectronics(Int_t detElemId, Int_t elCardID,
+ Bool_t warn = true) const;
+
+ const AliMpTrigger* GetTrigger(const AliMpVSegmentation* kSegmentation,
+ Bool_t warn = true) const;
+ const AliMpTrigger* GetTrigger(Int_t detElemId, AliMp::CathodType cath,
+ Bool_t warn = true) const;
+ const AliMpTrigger* GetTriggerByElectronics(Int_t detElemId, Int_t elCardID,
+ Bool_t warn = true) const;
+
private:
AliMpSegmentation(const AliMpDataStreams& dataStreams);
/// Not implemented
AliMpVSegmentation* CreateMpSegmentation(
Int_t detElemId, AliMp::CathodType cath);
+
AliMpExMap* FillElCardsMap(Int_t detElemId);
static AliMpSegmentation* fgInstance; ///< Singleton instance
// data members
- const AliMpDataStreams& fDataStreams; //!< Data streams
+ const AliMpDataStreams& fkDataStreams; //!< Data streams
AliMpDEStore* fDetElements; ///< Detection element store
AliMpStringObjMap fMpSegmentations;///< Map of mapping segmentations to DE seg names
AliMpExMap fElCardsMap; ///< Map of el. cards IDs to segmentations