00001
00002 #include "CalRecon/CalLogID.h"
00003
00004 CalLogID::CalLogID(int ilayer, CalDetGeo::axis v, int icolumn, idents::ModuleId mod)
00005
00006 :m_modId(mod)
00007 {
00008 ini();
00009 m_layer = ilayer;
00010 m_view = v;
00011 m_column = icolumn;
00012
00013 m_logID = CalLogID::ID(ilayer, m_view, icolumn, mod);
00014
00015 }
00016
00017 CalLogID::CalLogID(int ilayer, int iview, int icolumn, idents::ModuleId mod)
00018
00019 :m_modId(mod)
00020 {
00021 ini();
00022 m_layer = ilayer;
00023 m_view = CalDetGeo::makeAxis(iview);
00024 m_column = icolumn;
00025
00026 m_logID = CalLogID::ID(ilayer, m_view, icolumn, mod);
00027
00028 }
00029
00030 CalLogID::CalLogID(int ilayer, int iview, int icolumn):m_modId(0)
00031
00032 {
00033 ini();
00034 m_layer = ilayer;
00035 m_view = CalDetGeo::makeAxis(iview);
00036 m_column = icolumn;
00037
00038 m_logID = CalLogID::ID(ilayer, m_view, icolumn);
00039 }
00040
00041 CalLogID::CalLogID(int ilayer, CalDetGeo::axis v, int icolumn):m_modId(0)
00042
00043 {
00044 ini();
00045 m_layer = ilayer;
00046 m_view = v;
00047 m_column = icolumn;
00048
00049 m_logID = CalLogID::ID(ilayer, m_view, icolumn);
00050 }
00051
00052 int CalLogID::ID(int ilayer, CalDetGeo::axis v, int icolumn, idents::ModuleId mod)
00053
00054 {
00055 int id = ID(ilayer,v,icolumn)+10000*mod;
00056 return id;
00057 }
00058
00059 int CalLogID::ID(int ilayer, CalDetGeo::axis v, int icolumn)
00060
00061 {
00062
00063 int ID = 1000*ilayer + 100*v + icolumn;
00064
00065 return ID;
00066 }
00067
00068 idents::ModuleId CalLogID::modId(int logID)
00069
00070 {
00071 idents::ModuleId mod (logID/10000);
00072 return mod;
00073 }
00074
00075 int CalLogID::layer(int logID)
00076
00077 {
00078 int i = logID/10000;
00079 int ilayer = logID/1000 - 10*i;
00080 return ilayer;
00081 }
00082
00083 CalDetGeo::axis CalLogID::view(int logID)
00084
00085 {
00086 int i = logID/1000;
00087 int iview = (logID/100)-10*i;
00088 CalDetGeo::axis v = CalDetGeo::X;
00089 if (iview == 1) v = CalDetGeo::Y;
00090 return v;
00091 }
00092
00093 int CalLogID::column(int logID)
00094
00095 {
00096 int i = logID/100;
00097 int icolumn = logID-100*i;
00098 return icolumn;
00099 }
00100
00101
00102 void CalLogID::ini()
00103
00104 {
00105 m_layer = -1;
00106 m_view = CalDetGeo::PASSIVE;
00107 m_column = -1;
00108 m_logID = -1;
00109 }