00001 00007 #include "DataFormats/FEDRawData/interface/FEDNumbering.h" 00008 00009 00010 00011 using namespace std; 00012 00013 00014 bool FEDNumbering::init_ = true; 00015 bool *FEDNumbering::in_ = new bool[1024]; 00016 00017 vector<string> FEDNumbering::from_(1024,""); 00018 00019 pair<int,int> FEDNumbering::getSiStripFEDIds(){ 00020 00021 return pair<int,int> (MINSiStripFEDID, MAXSiStripFEDID); 00022 00023 } 00024 00025 00026 pair<int,int> FEDNumbering::getSiPixelFEDIds(){ 00027 00028 return pair<int,int> (MINSiPixelFEDID, MAXSiPixelFEDID); 00029 00030 } 00031 00032 00033 pair<int,int> FEDNumbering::getDTFEDIds(){ 00034 00035 return pair<int,int> (MINDTFEDID, MAXDTFEDID); 00036 00037 } 00038 00039 pair<int,int> FEDNumbering::getDTTFFEDIds(){ 00040 00041 return pair<int,int> (MINDTTFFEDID, MAXDTTFFEDID); 00042 00043 } 00044 00045 00046 00047 pair<int,int> FEDNumbering::getCSCFEDIds(){ 00048 00049 return pair<int,int> (MINCSCFEDID, MAXCSCFEDID); 00050 00051 } 00052 pair<int,int> FEDNumbering::getCSCTFFEDIds(){ 00053 00054 return pair<int,int> (MINCSCTFFEDID, MAXCSCTFFEDID); 00055 00056 } 00057 00058 00059 pair<int,int> FEDNumbering::getRPCFEDIds(){ 00060 00061 return pair<int,int> (MINRPCFEDID, MAXRPCFEDID); 00062 00063 } 00064 00065 00066 pair<int,int> FEDNumbering::getPreShowerFEDIds(){ 00067 00068 return pair<int,int> (MINPreShowerFEDID, MAXPreShowerFEDID); 00069 00070 } 00071 00072 00073 pair<int,int> FEDNumbering::getEcalFEDIds(){ 00074 00075 return pair<int,int> (MINECALFEDID, MAXECALFEDID); 00076 00077 } 00078 00079 00080 pair<int,int> FEDNumbering::getCastorFEDIds(){ 00081 00082 return pair<int,int> (MINCASTORFEDID, MAXCASTORFEDID); 00083 00084 } 00085 00086 00087 pair<int,int> FEDNumbering::getHcalFEDIds(){ 00088 00089 return pair<int,int> (MINHCALFEDID, MAXHCALFEDID); 00090 00091 } 00092 00093 pair<int,int> FEDNumbering::getLumiScalersFEDIds(){ 00094 00095 return pair<int,int> (MINLUMISCALERSFEDID, MAXLUMISCALERSFEDID); 00096 00097 } 00098 00099 pair<int,int> FEDNumbering::getTriggerGTPFEDIds(){ 00100 00101 return pair<int,int> (MINTriggerGTPFEDID, MAXTriggerGTPFEDID); 00102 00103 } 00104 00105 00106 pair<int,int> FEDNumbering::getTriggerEGTPFEDIds(){ 00107 00108 return pair<int,int> (MINTriggerEGTPFEDID, MAXTriggerEGTPFEDID); 00109 00110 } 00111 00112 00113 pair<int,int> FEDNumbering::getTriggerGCTFEDIds(){ 00114 00115 return pair<int,int> (MINTriggerGCTFEDID, MAXTriggerGCTFEDID); 00116 00117 } 00118 00119 00120 pair<int,int> FEDNumbering::getTriggerLTCmtccFEDIds(){ 00121 00122 return pair<int,int> (MINTriggerLTCmtccFEDID, MAXTriggerLTCmtccFEDID); 00123 00124 00125 } 00126 pair<int,int> FEDNumbering::getTriggerLTCFEDIds(){ 00127 00128 return pair<int,int> (MINTriggerLTCFEDID, MAXTriggerLTCFEDID); 00129 00130 } 00131 00132 00133 pair<int, int> FEDNumbering::getTriggerLTCTriggerFEDID(){ 00134 00135 return pair<int,int>(MINTriggerLTCTriggerFEDID, MAXTriggerLTCTriggerFEDID); 00136 00137 } 00138 00139 pair<int, int> FEDNumbering::getTriggerLTCHCALFEDID(){ 00140 00141 return pair<int,int>(MINTriggerLTCHCALFEDID, MAXTriggerLTCHCALFEDID); 00142 00143 } 00144 00145 pair<int, int> FEDNumbering::getTriggerLTCSiStripFEDID(){ 00146 00147 return pair<int,int>(MINTriggerLTCSiStripFEDID, MAXTriggerLTCSiStripFEDID); 00148 00149 } 00150 00151 pair<int, int> FEDNumbering::getTriggerLTCECALFEDID(){ 00152 00153 return pair<int,int>(MINTriggerLTCECALFEDID, MAXTriggerLTCECALFEDID); 00154 00155 } 00156 00157 pair<int, int> FEDNumbering::getTriggerLTCTotemCastorFEDID(){ 00158 00159 return pair<int,int>(MINTriggerLTCTotemCastorFEDID, MAXTriggerLTCTotemCastorFEDID); 00160 00161 } 00162 00163 pair<int, int> FEDNumbering::getTriggerLTCRPCFEDID(){ 00164 00165 return pair<int,int>(MINTriggerLTCRPCFEDID, MAXTriggerLTCRPCFEDID); 00166 00167 } 00168 pair<int, int> FEDNumbering::getTriggerLTCCSCFEDID(){ 00169 00170 return pair<int,int>(MINTriggerLTCCSCFEDID, MAXTriggerLTCCSCFEDID); 00171 00172 } 00173 pair<int, int> FEDNumbering::getTriggerLTCDTFEDID(){ 00174 00175 return pair<int,int>(MINTriggerLTCDTFEDID, MAXTriggerLTCDTFEDID); 00176 00177 } 00178 pair<int, int> FEDNumbering::getTriggerLTCSiPixelFEDID(){ 00179 00180 return pair<int,int>(MINTriggerLTCSiPixelFEDID, MAXTriggerLTCSiPixelFEDID); 00181 00182 } 00183 00184 pair<int, int> FEDNumbering::getCSCDDUFEDIds(){ 00185 00186 return pair<int,int>(MINCSCDDUFEDID, MAXCSCDDUFEDID); 00187 00188 } 00189 00190 pair<int, int> FEDNumbering::getCSCContingencyFEDIds(){ 00191 00192 return pair<int,int>(MINCSCContingencyFEDID, MAXCSCContingencyFEDID); 00193 00194 } 00195 00196 pair<int, int> FEDNumbering::getCSCTFSPFEDIds(){ 00197 00198 return pair<int,int>(MINCSCTFSPFEDID, MAXCSCTFSPFEDID); 00199 00200 } 00201 00202 pair<int, int> FEDNumbering::getDAQeFEDFEDIds(){ 00203 00204 return pair<int,int>(MINDAQeFEDFEDID, MAXDAQeFEDFEDID); 00205 00206 } 00207 00208 int FEDNumbering::lastFEDId(){ 00209 return MAXFEDID; 00210 } 00211 00212 void FEDNumbering::init() 00213 { 00214 int i = 0; 00215 for(i=0; i< lastFEDId(); i++) 00216 in_[i] = false; 00217 for(i=getSiPixelFEDIds().first; i<=getSiPixelFEDIds().second; i++) 00218 { 00219 in_[i] = true; 00220 from_[i] = "SiPixel"; 00221 } 00222 for(i=getSiStripFEDIds().first; i<=getSiStripFEDIds().second; i++) 00223 { 00224 in_[i] = true; 00225 from_[i] = "SiStrip"; 00226 } 00227 for(i=getPreShowerFEDIds().first; i<=getPreShowerFEDIds().second; i++) 00228 { 00229 in_[i] = true; 00230 from_[i] = "PreShower"; 00231 } 00232 for(i=getEcalFEDIds().first; i<=getEcalFEDIds().second; i++) 00233 { 00234 in_[i] = true; 00235 from_[i] = "Ecal"; 00236 } 00237 for(i=getCastorFEDIds().first; i<=getCastorFEDIds().second; i++) 00238 { 00239 in_[i] = true; 00240 from_[i] = "Castor"; 00241 } 00242 for(i=getHcalFEDIds().first; i<=getHcalFEDIds().second; i++) 00243 { 00244 in_[i] = true; 00245 from_[i] = "Hcal"; 00246 } 00247 for(i=getLumiScalersFEDIds().first; i<=getLumiScalersFEDIds().second; i++) 00248 { 00249 in_[i] = true; 00250 from_[i] = "LumiScalers"; 00251 } 00252 for(i=getCSCFEDIds().first; i<=getCSCFEDIds().second; i++) 00253 { 00254 in_[i] = true; 00255 from_[i] = "CSC"; 00256 } 00257 for(i=getCSCTFFEDIds().first; i<=getCSCTFFEDIds().second; i++) 00258 { 00259 in_[i] = true; 00260 from_[i] = "CSCTF"; 00261 } 00262 for(i=getDTFEDIds().first; i<=getDTFEDIds().second; i++) 00263 { 00264 in_[i] = true; 00265 from_[i] = "DT"; 00266 } 00267 for(i=getDTTFFEDIds().first; i<=getDTTFFEDIds().second; i++) 00268 { 00269 in_[i] = true; 00270 from_[i] = "DTTF"; 00271 } 00272 for(i=getRPCFEDIds().first; i<=getRPCFEDIds().second; i++) 00273 { 00274 in_[i] = true; 00275 from_[i] = "RPC"; 00276 } 00277 for(i=getTriggerGTPFEDIds().first; i<=getTriggerGTPFEDIds().second; i++) 00278 { 00279 in_[i] = true; 00280 from_[i] = "TriggerGTP"; 00281 } 00282 for(i=getTriggerEGTPFEDIds().first; i<=getTriggerEGTPFEDIds().second; i++) 00283 { 00284 in_[i] = true; 00285 from_[i] = "TriggerEGTP"; 00286 } 00287 for(i=getTriggerGCTFEDIds().first; i<=getTriggerGCTFEDIds().second; i++) 00288 { 00289 in_[i] = true; 00290 from_[i] = "TriggerGCT"; 00291 } 00292 for(i=getTriggerLTCFEDIds().first; i<=getTriggerLTCFEDIds().second; i++) 00293 { 00294 in_[i] = true; 00295 from_[i] = "TriggerLTC"; 00296 } 00297 for(i=getTriggerLTCmtccFEDIds().first; i<=getTriggerLTCmtccFEDIds().second; i++) 00298 { 00299 in_[i] = true; 00300 from_[i] = "TriggerLTCmtcc"; 00301 } 00302 for(i=getCSCDDUFEDIds().first; i<=getCSCDDUFEDIds().second; i++) 00303 { 00304 in_[i] = true; 00305 from_[i] = "CSCDDU"; 00306 } 00307 for(i=getCSCContingencyFEDIds().first; i<=getCSCContingencyFEDIds().second; i++) 00308 { 00309 in_[i] = true; 00310 from_[i] = "CSCContingency"; 00311 } 00312 for(i=getCSCTFSPFEDIds().first; i<=getCSCTFSPFEDIds().second; i++) 00313 { 00314 in_[i] = true; 00315 from_[i] = "CSCTFSP"; 00316 } 00317 for(i=getDAQeFEDFEDIds().first; i<=getDAQeFEDFEDIds().second; i++) 00318 { 00319 in_[i] = true; 00320 from_[i] = "DAQeFED"; 00321 } 00322 00323 00324 init_ = false; 00325 } 00326 00327 bool FEDNumbering::inRange(int i) 00328 { 00329 if(init_) init(); 00330 return in_[i]; 00331 } 00332 bool FEDNumbering::inRangeNoGT(int i) 00333 { 00334 if(init_) init(); 00335 if((i>=MINTriggerGTPFEDID && i<=MAXTriggerGTPFEDID) || (i>=MINTriggerEGTPFEDID && i<=MAXTriggerEGTPFEDID)) return false; 00336 return in_[i]; 00337 } 00338 00339 string const &FEDNumbering::fromDet(int i) 00340 { 00341 if(init_) init(); 00342 return from_[i]; 00343 }