Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "CondFormats/L1TObjects/interface/L1MuDTEtaPatternLut.h"
00022
00023
00024
00025
00026
00027 #include <iostream>
00028 #include <iomanip>
00029 #include <string>
00030
00031
00032
00033
00034
00035 #include "FWCore/ParameterSet/interface/FileInPath.h"
00036 #include "CondFormats/L1TObjects/interface/L1TriggerLutFile.h"
00037
00038 using namespace std;
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048 L1MuDTEtaPatternLut::L1MuDTEtaPatternLut() {
00049
00050
00051
00052
00053
00054
00055
00056 }
00057
00058
00059
00060
00061
00062
00063 L1MuDTEtaPatternLut::~L1MuDTEtaPatternLut() {
00064
00065 m_lut.clear();
00066
00067 }
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077 void L1MuDTEtaPatternLut::reset() {
00078
00079 m_lut.clear();
00080
00081 }
00082
00083
00084
00085
00086
00087 int L1MuDTEtaPatternLut::load() {
00088
00089
00090 string defaultPath = "L1TriggerConfig/DTTrackFinder/parameters/";
00091 string eau_dir = "L1TriggerData/DTTrackFinder/Eau/";
00092
00093
00094 edm::FileInPath lut_f = edm::FileInPath(string(defaultPath + eau_dir + "ETFPatternList.lut"));
00095 string etf_file = lut_f.fullPath();
00096
00097
00098 L1TriggerLutFile file(etf_file);
00099 if ( file.open() != 0 ) return -1;
00100
00101
00102
00103
00104 file.ignoreLines(16);
00105
00106
00107 while ( file.good() ) {
00108
00109 int id = file.readInteger();
00110 if ( !file.good() ) break;
00111 string pat = file.readString();
00112 if ( !file.good() ) break;
00113 int qual = file.readInteger();
00114 if ( !file.good() ) break;
00115 int eta = file.readInteger();
00116 if ( !file.good() ) break;
00117 L1MuDTEtaPattern pattern(id,pat,eta,qual);
00118
00119 m_lut[pattern.id()] = pattern;
00120
00121 if ( !file.good() ) { file.close(); break; }
00122
00123 }
00124
00125 file.close();
00126
00127 return 0;
00128
00129 }
00130
00131
00132
00133
00134
00135 void L1MuDTEtaPatternLut::print() const {
00136
00137 cout << endl;
00138 cout << "L1 barrel Track Finder ETA Pattern look-up table :" << endl;
00139 cout << "==================================================" << endl;
00140 cout << endl;
00141
00142 cout << "ETF Patterns : " << m_lut.size() << endl;
00143 cout << "======================" << endl;
00144 cout << endl;
00145
00146 LUT::const_iterator iter = m_lut.begin();
00147 while ( iter != m_lut.end() ) {
00148 cout << (*iter).second << endl;
00149 iter++;
00150 }
00151
00152 cout << endl;
00153
00154 }
00155
00156
00157
00158
00159
00160 L1MuDTEtaPattern L1MuDTEtaPatternLut::getPattern(int id) const {
00161
00162 LUT::const_iterator it = m_lut.find(id);
00163 if ( it == m_lut.end() ) {
00164 cerr << "Error: L1MuDTEtaPatternLut: pattern not found : " << id << endl;
00165
00166 }
00167 return (*it).second;
00168
00169 }