Hi,
I think it is useful to summarize what kind of Id's are there and how they are used tell now:
1. CbmModule has a protected member fModId which is used internally in the framework!
2. CbmDetector has a member fDetId which can be set from the detector constructor as detector identifier. e.g. In CBM there is an enum:
enum DetectorId {kREF, kMVD, kSTS, kRICH, kMUCH, kTRD, kTOF, kECAL, kZDC, kSTT,kTutDet};
these values are hardcoded in the detector constructors. e.g:
CbmRich::CbmRich() : CbmDetector("RICH", kTRUE, kRICH)
These id's are also used for the stack filtering!
3. in CbmVolume:
Int_t fVolumeId; /**Volume Id in GeoManager*/
Int_t fMCid; /**Volume Id in MC*/
these two are usually identical if you use the TGeoManager as geometry description and navigation! otherwise they could differ! they are simply the unique identifier of a volume in the geometry.
So I think we need an enum to identify the detector generally and for those detectors who need more than an integer I would do it like in the emc! so that one can find out from a point in which volume, sector, ..etc it was registered!
regards
Mohammad