CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
DTTFParametersOnlineProd.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: DTTFParametersOnlineProd
4 // Class: DTTFParametersOnlineProd
5 //
13 //
14 // Original Author: Werner Man-Li Sun
15 // Created: Fri Oct 3 00:26:52 CEST 2008
16 //
17 //
18 
19 
20 // system include files
21 #include <iostream>
22 
23 // user include files
25 
28 
29 //
30 // class declaration
31 //
32 
34  public L1ConfigOnlineProdBase< L1MuDTTFParametersRcd, L1MuDTTFParameters > {
35  public:
38 
39  virtual boost::shared_ptr< L1MuDTTFParameters > newObject(
40  const std::string& objectKey ) override ;
41 
42  private:
43 
44  // ----------member data ---------------------------
45 };
46 
47 //
48 // constructors and destructor
49 //
51  const edm::ParameterSet& iConfig)
53 {
54  //the following line is needed to tell the framework what
55  // data is being produced
56 
57  //now do what ever other initialization is needed
58 }
59 
60 
62 {
63 
64  // do anything here that needs to be done at desctruction time
65  // (e.g. close files, deallocate resources etc.)
66 
67 }
68 
69 boost::shared_ptr< L1MuDTTFParameters >
71 {
72  using namespace edm::es;
73 
74  boost::shared_ptr< L1MuDTTFParameters > pDTTFParameters(
75  new L1MuDTTFParameters() ) ;
76 
77  pDTTFParameters->reset() ;
78 
79  std::string dttfSchema = "CMS_DT_TF" ;
80 
81  // Order of strings is used below -- don't change!
82  std::vector< std::string > crateKeyColumns ;
83  crateKeyColumns.push_back( "WEDGE_CRATE_1" ) ;
84  crateKeyColumns.push_back( "WEDGE_CRATE_2" ) ;
85  crateKeyColumns.push_back( "WEDGE_CRATE_3" ) ;
86  crateKeyColumns.push_back( "WEDGE_CRATE_4" ) ;
87  crateKeyColumns.push_back( "WEDGE_CRATE_5" ) ;
88  crateKeyColumns.push_back( "WEDGE_CRATE_6" ) ;
89 
90  l1t::OMDSReader::QueryResults crateKeyResults =
91  m_omdsReader.basicQuery( crateKeyColumns,
92  dttfSchema,
93  "DTTF_CONF",
94  "DTTF_CONF.ID",
95  m_omdsReader.singleAttribute( objectKey ) ) ;
96 
97  if( crateKeyResults.queryFailed() ||
98  crateKeyResults.numberRows() != 1 ) // check query successful
99  {
100  edm::LogError( "L1-O2O" )
101  << "Problem with L1MuDTTFParameters key " << objectKey ;
102  return boost::shared_ptr< L1MuDTTFParameters >() ;
103  }
104 
105  // print crate keys -- delete when done debugging
106  std::string crateKeys[ 6 ] ;
107  for( int icrate = 0 ; icrate < 6 ; ++icrate )
108  {
109  crateKeyResults.fillVariable( crateKeyColumns[ icrate ],
110  crateKeys[ icrate ] ) ;
111  std::cout << "Crate " << icrate << " key "
112  << crateKeys[ icrate ] << std::endl ;
113  }
114 
115  // Map of sector (0-11) to name (L/R)
116  std::string sectorNames[ 12 ] = {
117  "R", "L", "R", "L", "L", "R", "L", "R", "R", "L", "R", "L" } ;
118 
119  // Map of sector (0-11) to crate (0-5)
120  int crateNumbers[ 12 ] = { 3, 3, 4, 4, 5, 5, 2, 2, 1, 1, 0, 0 } ;
121 
122  // Map of wheel array index to wheel number (+- 3, 2, 1).
123  int wheelNumbers[ 6 ] = { -3, -2, -1, 1, 2, 3 } ;
124 
125  // Map of wheel array index to name ({N,P}{0,1,2}).
126  std::string wheelNames[ 6 ] = { "N2", "N1", "N0", "P0", "P1", "P2" } ;
127 
128  // Needed over and over later
129  std::vector< std::string > phtfMaskColumns ;
130  phtfMaskColumns.push_back( "INREC_QUAL_ST1" ) ;
131  phtfMaskColumns.push_back( "INREC_QUAL_ST2" ) ;
132  phtfMaskColumns.push_back( "INREC_QUAL_ST3" ) ;
133  phtfMaskColumns.push_back( "INREC_QUAL_ST4" ) ;
134  phtfMaskColumns.push_back( "SOC_QUAL_CSC" ) ;
135  phtfMaskColumns.push_back( "SOC_STDIS_N" ) ;
136  phtfMaskColumns.push_back( "SOC_STDIS_WL" ) ;
137  phtfMaskColumns.push_back( "SOC_STDIS_WR" ) ;
138  phtfMaskColumns.push_back( "SOC_STDIS_ZL" ) ;
139  phtfMaskColumns.push_back( "SOC_STDIS_ZR" ) ;
140  phtfMaskColumns.push_back( "SOC_QCUT_ST1" ) ;
141  phtfMaskColumns.push_back( "SOC_QCUT_ST2" ) ;
142  phtfMaskColumns.push_back( "SOC_QCUT_ST4" ) ;
143  phtfMaskColumns.push_back( "SOC_RUN_21" ) ;
144  phtfMaskColumns.push_back( "SOC_NBX_DEL" ) ;
145  phtfMaskColumns.push_back( "SOC_CSC_ETACANC" ) ;
146  phtfMaskColumns.push_back( "SOC_OPENLUT_EXTR" ) ;
147 
148  // Loop over sectors 0-11
149  for( int isc = 0 ; isc < 12 ; ++isc )
150  {
151  int crateNumber = crateNumbers[ isc ] ;
152  std::cout << "isc " << isc << " icr " << crateNumber << std::endl ;
153 
154  // Loop over wheels 0-5
155  for( int iwh = 0 ; iwh < 6 ; ++iwh )
156  {
157  std::string sectorWheelName =
158  sectorNames[ isc ] + wheelNames[ iwh ] ;
159 
160  int nwh = wheelNumbers[ iwh ] ;
161 
162  // Check if non-null crate key
163  std::string crateKey ;
164  if( crateKeyResults.fillVariable( crateKeyColumns[ crateNumber ],
165  crateKey ) )
166  {
167  // Get PHTF key
168  std::vector< std::string > phtfKeyColumns ;
169  phtfKeyColumns.push_back( "PHTF_" + sectorWheelName ) ;
170 
171  l1t::OMDSReader::QueryResults phtfKeyResults =
172  m_omdsReader.basicQuery( phtfKeyColumns,
173  dttfSchema,
174  "WEDGE_CRATE_CONF",
175  "WEDGE_CRATE_CONF.ID",
176  crateKeyResults,
177  crateKeyColumns[ crateNumber ] ) ;
178 
179  if( phtfKeyResults.queryFailed() ||
180  phtfKeyResults.numberRows() != 1 )
181  {
182  edm::LogError( "L1-O2O" )
183  << "Problem with WEDGE_CRATE_CONF key." ;
184  return boost::shared_ptr< L1MuDTTFParameters >() ;
185  }
186 
187  std::string dummy ;
188  if( phtfKeyResults.fillVariable( dummy ) )
189  {
190  std::cout << "PHTF key " << dummy << std::endl ;
191 
192  l1t::OMDSReader::QueryResults phtfMaskResults =
193  m_omdsReader.basicQuery( phtfMaskColumns,
194  dttfSchema,
195  "PHTF_CONF",
196  "PHTF_CONF.ID",
197  phtfKeyResults ) ;
198 
199  if( phtfMaskResults.queryFailed() ||
200  phtfMaskResults.numberRows() != 1 )
201  {
202  edm::LogError( "L1-O2O" )
203  << "Problem with PHTF_CONF key." ;
204  return boost::shared_ptr< L1MuDTTFParameters >() ;
205  }
206 
207  long long tmp ;
208 
209  phtfMaskResults.fillVariable( "INREC_QUAL_ST1", tmp ) ;
210  std::cout << " INREC_QUAL_ST1 " << tmp ;
211  pDTTFParameters->set_inrec_qual_st1( nwh, isc, tmp ) ;
212  phtfMaskResults.fillVariable( "INREC_QUAL_ST2", tmp ) ;
213  std::cout << " INREC_QUAL_ST2 " << tmp ;
214  pDTTFParameters->set_inrec_qual_st2( nwh, isc, tmp ) ;
215  phtfMaskResults.fillVariable( "INREC_QUAL_ST3", tmp ) ;
216  std::cout << " INREC_QUAL_ST3 " << tmp ;
217  pDTTFParameters->set_inrec_qual_st3( nwh, isc, tmp ) ;
218  phtfMaskResults.fillVariable( "INREC_QUAL_ST4", tmp ) ;
219  std::cout << " INREC_QUAL_ST4 " << tmp << std::endl ;
220  pDTTFParameters->set_inrec_qual_st4( nwh, isc, tmp ) ;
221  std::cout << " SOC_QUAL_CSC " << tmp << std::endl ;
222  pDTTFParameters->set_soc_qual_csc( nwh, isc, tmp ) ;
223 
224  phtfMaskResults.fillVariable( "SOC_STDIS_N", tmp ) ;
225  std::cout << " SOC_STDIS_N " << tmp ;
226  pDTTFParameters->set_soc_stdis_n( nwh, isc, tmp ) ;
227  phtfMaskResults.fillVariable( "SOC_STDIS_WL", tmp ) ;
228  std::cout << " SOC_STDIS_WL " << tmp ;
229  pDTTFParameters->set_soc_stdis_wl( nwh, isc, tmp ) ;
230  phtfMaskResults.fillVariable( "SOC_STDIS_WR", tmp ) ;
231  std::cout << " SOC_STDIS_WR " << tmp ;
232  pDTTFParameters->set_soc_stdis_wr( nwh, isc, tmp ) ;
233  phtfMaskResults.fillVariable( "SOC_STDIS_ZL", tmp ) ;
234  std::cout << " SOC_STDIS_ZL " << tmp ;
235  pDTTFParameters->set_soc_stdis_zl( nwh, isc, tmp ) ;
236  phtfMaskResults.fillVariable( "SOC_STDIS_ZR", tmp ) ;
237  std::cout << " SOC_STDIS_ZR " << tmp << std::endl ;
238  pDTTFParameters->set_soc_stdis_zr( nwh, isc, tmp ) ;
239 
240  phtfMaskResults.fillVariable( "SOC_QCUT_ST1", tmp ) ;
241  std::cout << " SOC_QCUT_ST1 " << tmp ;
242  pDTTFParameters->set_soc_qcut_st1( nwh, isc, tmp ) ;
243  phtfMaskResults.fillVariable( "SOC_QCUT_ST2", tmp ) ;
244  std::cout << " SOC_QCUT_ST2 " << tmp ;
245  pDTTFParameters->set_soc_qcut_st2( nwh, isc, tmp ) ;
246  phtfMaskResults.fillVariable( "SOC_QCUT_ST4", tmp ) ;
247  std::cout << " SOC_QCUT_ST4 " << tmp << std::endl ;
248  pDTTFParameters->set_soc_qcut_st4( nwh, isc, tmp ) ;
249 
250  phtfMaskResults.fillVariable( "SOC_RUN_21", tmp ) ;
251  std::cout << " SOC_RUN_21 " << tmp ;
252  pDTTFParameters->set_soc_run_21( nwh, isc, tmp ) ;
253  phtfMaskResults.fillVariable( "SOC_NBX_DEL", tmp ) ;
254  std::cout << " SOC_NBX_DEL " << tmp ;
255  pDTTFParameters->set_soc_nbx_del( nwh, isc, tmp ) ;
256  phtfMaskResults.fillVariable( "SOC_CSC_ETACANC", tmp ) ;
257  std::cout << " SOC_CSC_ETACANC " << tmp ;
258  pDTTFParameters->set_soc_csc_etacanc( nwh, isc, tmp ) ;
259  phtfMaskResults.fillVariable( "SOC_OPENLUT_EXTR", tmp ) ;
260  std::cout << " SOC_OPENLUT_EXTR " << tmp << std::endl ;
261  pDTTFParameters->set_soc_openlut_extr( nwh, isc, tmp ) ;
262  }
263  }
264  }
265  }
266 
267  return pDTTFParameters ;
268 }
269 
270 // ------------ method called to produce the data ------------
271 
272 
273 //define this as a plug-in
bool fillVariable(const std::string &columnName, T &outputVariable) const
Definition: OMDSReader.h:312
const QueryResults singleAttribute(const T &data) const
Definition: OMDSReader.h:296
DTTFParametersOnlineProd(const edm::ParameterSet &)
const QueryResults basicQuery(const std::vector< std::string > &columnNames, const std::string &schemaName, const std::string &tableName, const std::string &conditionLHS="", const QueryResults conditionRHS=QueryResults(), const std::string &conditionRHSName="")
Definition: OMDSReader.cc:86
#define DEFINE_FWK_EVENTSETUP_MODULE(type)
Definition: ModuleFactory.h:60
std::vector< std::vector< double > > tmp
Definition: MVATrainer.cc:100
tuple cout
Definition: gather_cfg.py:145
virtual boost::shared_ptr< L1MuDTTFParameters > newObject(const std::string &objectKey) override