00001
00002
00003 #ifndef jet__LabelIndex
00004 #define jet__LabelIndex
00005
00006
00007
00008
00009
00010
00011 #include <vector>
00012 #include <string>
00013 #include "AsgTools/CLASS_DEF.h"
00014 #include "xAODJet/JetTypes.h"
00015
00016 namespace jet {
00017
00018 class LabelIndex {
00019
00020 public:
00021
00022 typedef std::string Label;
00023 typedef unsigned int Index;
00024
00027 static LabelIndex& mutable_instance(Label name);
00028 static const LabelIndex& instance(Label name);
00029
00031 explicit LabelIndex(Label nam);
00032
00036 Index addLabel(Label lab);
00037
00039 Label name() const;
00040
00043 Label label(Index idx) const;
00044
00047 Index index(Label lab) const;
00048
00050 xAOD::JetConstitScale constitScale(Index idx) const ;
00051
00053 Index size() const ;
00054
00055 private:
00056
00057
00058 explicit LabelIndex(const LabelIndex& nam);
00059 LabelIndex& operator=(const Label& nam);
00060
00061
00062 Label m_name;
00063 std::vector<Label> m_labs;
00064 std::vector<xAOD::JetConstitScale> m_constitScales;
00065
00066 };
00067
00068 }
00069
00070 CLASS_DEF( jet::LabelIndex , 94979360 , 1 )
00071
00072 #endif