00001 #ifndef GENERICTHINGID_H 00002 #define GENERICTHINGID_H 00003 00005 // 00006 // GenericThingId 00007 // 00008 // n.tagg1@physics.ox.ac.uk 00009 // 00010 // This class is a generic wrapper for a bunch of other 00011 // ID classes. It is used by the Calibrator to abstract things 00012 // to a sort of 'generic channel id' which can be made into a string. 00013 // It is used to count error statistics in a nice, general way. 00014 // It may have other uses. 00015 // 00017 00018 #include "Plex/PlexPixelSpotId.h" 00019 #include "Plex/PlexLedId.h" 00020 #include "Plex/PlexStripEndId.h" 00021 #include "RawData/RawChannelId.h" 00022 00023 class GenericThingId; 00024 00025 class GenericThingId 00026 { 00027 public: 00028 GenericThingId(); 00029 GenericThingId(Int_t encoded); 00030 GenericThingId(const RawChannelId& c); 00031 GenericThingId(const PlexPixelSpotId& c); 00032 GenericThingId(const PlexStripEndId& c); 00033 GenericThingId(const PlexLedId& c); 00034 00035 const char* AsString(const char* opt="") const; 00036 bool operator<(const GenericThingId& other) const; // for sorting. 00037 00038 Int_t fType; 00039 Int_t fEncoded; 00040 00041 typedef enum EThingType { 00042 kUnknown = 0, 00043 kRawChannelId, 00044 kPlexPixelSpotId, 00045 kPlexStripEndId, 00046 kPlexLedId 00047 } ThingType_t; 00048 }; 00049 00050 00051 00052 #endif
1.3.9.1