CMS 3D CMS Logo

List of all members | Public Member Functions
L1RCTChannelMaskOnlineProd Class Reference
Inheritance diagram for L1RCTChannelMaskOnlineProd:
L1ConfigOnlineProdBase< L1RCTChannelMaskRcd, L1RCTChannelMask > edm::ESProducer edm::ESProxyFactoryProducer edm::eventsetup::DataProxyProvider

Public Member Functions

 L1RCTChannelMaskOnlineProd (const edm::ParameterSet &iConfig)
 
std::unique_ptr< L1RCTChannelMasknewObject (const std::string &objectKey) override
 
 ~L1RCTChannelMaskOnlineProd () override
 
- Public Member Functions inherited from L1ConfigOnlineProdBase< L1RCTChannelMaskRcd, L1RCTChannelMask >
 L1ConfigOnlineProdBase (const edm::ParameterSet &)
 
virtual std::unique_ptr< L1RCTChannelMaskproduce (const L1RCTChannelMaskRcd &iRecord)
 
 ~L1ConfigOnlineProdBase () override
 
- Public Member Functions inherited from edm::ESProducer
 ESProducer ()
 
 ~ESProducer ()(false) override
 
- Public Member Functions inherited from edm::ESProxyFactoryProducer
 ESProxyFactoryProducer ()
 
void newInterval (const eventsetup::EventSetupRecordKey &iRecordType, const ValidityInterval &iInterval) override
 overrides DataProxyProvider method More...
 
 ~ESProxyFactoryProducer () noexcept(false) override
 
- Public Member Functions inherited from edm::eventsetup::DataProxyProvider
 DataProxyProvider ()
 
const ComponentDescriptiondescription () const
 
bool isUsingRecord (const EventSetupRecordKey &) const
 
const KeyedProxieskeyedProxies (const EventSetupRecordKey &iRecordKey) const
 
void resetProxies (const EventSetupRecordKey &iRecordType)
 
void resetProxiesIfTransient (const EventSetupRecordKey &iRecordType)
 
void setAppendToDataLabel (const edm::ParameterSet &)
 
void setDescription (const ComponentDescription &iDescription)
 
std::set< EventSetupRecordKeyusingRecords () const
 
virtual ~DataProxyProvider () noexcept(false)
 

Additional Inherited Members

- Public Types inherited from edm::eventsetup::DataProxyProvider
typedef std::vector< std::pair< DataKey, edm::propagate_const< std::shared_ptr< DataProxy > > > > KeyedProxies
 
typedef std::vector< EventSetupRecordKeyKeys
 
typedef std::map< EventSetupRecordKey, KeyedProxiesRecordProxies
 
- Static Public Member Functions inherited from edm::eventsetup::DataProxyProvider
static void prevalidate (ConfigurationDescriptions &)
 
- Protected Member Functions inherited from L1ConfigOnlineProdBase< L1RCTChannelMaskRcd, L1RCTChannelMask >
bool getObjectKey (const L1RCTChannelMaskRcd &record, std::string &objectKey)
 
- Protected Member Functions inherited from edm::ESProducer
 ESProducer (const ESProducer &)=delete
 
ESProducer const & operator= (const ESProducer &)=delete
 
template<typename T >
auto setWhatProduced (T *iThis, const es::Label &iLabel={})
 
template<typename T >
auto setWhatProduced (T *iThis, const char *iLabel)
 
template<typename T >
auto setWhatProduced (T *iThis, const std::string &iLabel)
 
template<typename T , typename TDecorator >
auto setWhatProduced (T *iThis, const TDecorator &iDec, const es::Label &iLabel={})
 
template<typename T , typename TReturn , typename TRecord >
auto setWhatProduced (T *iThis, TReturn(T::*iMethod)(const TRecord &), const es::Label &iLabel={})
 
template<typename T , typename TReturn , typename TRecord , typename TArg >
ESConsumesCollector setWhatProduced (T *iThis, TReturn(T::*iMethod)(const TRecord &), const TArg &iDec, const es::Label &iLabel={})
 
- Protected Member Functions inherited from edm::ESProxyFactoryProducer
template<class TFactory >
void registerFactory (std::unique_ptr< TFactory > iFactory, const std::string &iLabel=std::string())
 
virtual void registerFactoryWithKey (const eventsetup::EventSetupRecordKey &iRecord, std::unique_ptr< eventsetup::ProxyFactoryBase > iFactory, const std::string &iLabel=std::string())
 
void registerProxies (const eventsetup::EventSetupRecordKey &iRecord, KeyedProxies &aProxyList) override
 override DataProxyProvider method More...
 
- Protected Member Functions inherited from edm::eventsetup::DataProxyProvider
void eraseAll (const EventSetupRecordKey &iRecordKey)
 deletes all the Proxies in aStream More...
 
void invalidateProxies (const EventSetupRecordKey &iRecordKey)
 
template<class T >
void usingRecord ()
 
void usingRecordWithKey (const EventSetupRecordKey &)
 
- Protected Attributes inherited from L1ConfigOnlineProdBase< L1RCTChannelMaskRcd, L1RCTChannelMask >
bool m_copyFromCondDB
 
cond::persistency::Session m_dbSession
 
bool m_forceGeneration
 
l1t::OMDSReader m_omdsReader
 

Detailed Description

Definition at line 37 of file L1RCTChannelMaskOnlineProd.cc.

Constructor & Destructor Documentation

L1RCTChannelMaskOnlineProd::L1RCTChannelMaskOnlineProd ( const edm::ParameterSet iConfig)
inline
L1RCTChannelMaskOnlineProd::~L1RCTChannelMaskOnlineProd ( )
inlineoverride

Definition at line 42 of file L1RCTChannelMaskOnlineProd.cc.

References newObject(), and AlCaHLTBitMon_QueryRunRegistry::string.

42 {}

Member Function Documentation

std::unique_ptr< L1RCTChannelMask > L1RCTChannelMaskOnlineProd::newObject ( const std::string &  objectKey)
overridevirtual

Implements L1ConfigOnlineProdBase< L1RCTChannelMaskRcd, L1RCTChannelMask >.

Definition at line 64 of file L1RCTChannelMaskOnlineProd.cc.

References l1t::OMDSReader::basicQuery(), gather_cfg::cout, DEFINE_FWK_EVENTSETUP_MODULE, l1t::OMDSReader::QueryResults::fillVariable(), mps_fire::i, gen::k, funct::m, L1ConfigOnlineProdBase< L1RCTChannelMaskRcd, L1RCTChannelMask >::m_omdsReader, l1t::OMDSReader::QueryResults::numberRows(), l1t::OMDSReader::QueryResults::queryFailed(), l1t::OMDSReader::singleAttribute(), and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by ~L1RCTChannelMaskOnlineProd().

65 {
66  std::cout << " Current key is " << objectKey <<std::endl;
67 
68  std::string rctSchema = "CMS_RCT" ;
69 
70  std::vector< std::string > dc_maskStrings;
71  dc_maskStrings.push_back( "HCAL_MASK_CR00_EVEN" );
72  dc_maskStrings.push_back( "HCAL_MASK_CR00_ODD" );
73  dc_maskStrings.push_back( "HCAL_MASK_CR01_EVEN" );
74  dc_maskStrings.push_back( "HCAL_MASK_CR01_ODD" );
75  dc_maskStrings.push_back( "HCAL_MASK_CR02_EVEN" );
76  dc_maskStrings.push_back( "HCAL_MASK_CR02_ODD" );
77  dc_maskStrings.push_back( "HCAL_MASK_CR03_EVEN" );
78  dc_maskStrings.push_back( "HCAL_MASK_CR03_ODD" );
79  dc_maskStrings.push_back( "HCAL_MASK_CR04_EVEN" );
80  dc_maskStrings.push_back( "HCAL_MASK_CR04_ODD" );
81  dc_maskStrings.push_back( "HCAL_MASK_CR05_EVEN" );
82  dc_maskStrings.push_back( "HCAL_MASK_CR05_ODD" );
83  dc_maskStrings.push_back( "HCAL_MASK_CR06_EVEN" );
84  dc_maskStrings.push_back( "HCAL_MASK_CR06_ODD" );
85  dc_maskStrings.push_back( "HCAL_MASK_CR07_EVEN" );
86  dc_maskStrings.push_back( "HCAL_MASK_CR07_ODD" );
87  dc_maskStrings.push_back( "HCAL_MASK_CR08_EVEN" );
88  dc_maskStrings.push_back( "HCAL_MASK_CR08_ODD" );
89  dc_maskStrings.push_back( "HCAL_MASK_CR09_EVEN" );
90  dc_maskStrings.push_back( "HCAL_MASK_CR09_ODD" );
91  dc_maskStrings.push_back( "HCAL_MASK_CR10_EVEN" );
92  dc_maskStrings.push_back( "HCAL_MASK_CR10_ODD" );
93  dc_maskStrings.push_back( "HCAL_MASK_CR11_EVEN" );
94  dc_maskStrings.push_back( "HCAL_MASK_CR11_ODD" );
95  dc_maskStrings.push_back( "HCAL_MASK_CR12_EVEN" );
96  dc_maskStrings.push_back( "HCAL_MASK_CR12_ODD" );
97  dc_maskStrings.push_back( "HCAL_MASK_CR13_EVEN" );
98  dc_maskStrings.push_back( "HCAL_MASK_CR13_ODD" );
99  dc_maskStrings.push_back( "HCAL_MASK_CR14_EVEN" );
100  dc_maskStrings.push_back( "HCAL_MASK_CR14_ODD" );
101  dc_maskStrings.push_back( "HCAL_MASK_CR15_EVEN" );
102  dc_maskStrings.push_back( "HCAL_MASK_CR15_ODD" );
103  dc_maskStrings.push_back( "HCAL_MASK_CR16_EVEN" );
104  dc_maskStrings.push_back( "HCAL_MASK_CR16_ODD" );
105  dc_maskStrings.push_back( "HCAL_MASK_CR17_EVEN" );
106  dc_maskStrings.push_back( "HCAL_MASK_CR17_ODD" );
107  dc_maskStrings.push_back( "ECAL_MASK_CR00_EVEN" );
108  dc_maskStrings.push_back( "ECAL_MASK_CR00_ODD" );
109  dc_maskStrings.push_back( "ECAL_MASK_CR01_EVEN" );
110  dc_maskStrings.push_back( "ECAL_MASK_CR01_ODD" );
111  dc_maskStrings.push_back( "ECAL_MASK_CR02_EVEN" );
112  dc_maskStrings.push_back( "ECAL_MASK_CR02_ODD" );
113  dc_maskStrings.push_back( "ECAL_MASK_CR03_EVEN" );
114  dc_maskStrings.push_back( "ECAL_MASK_CR03_ODD" );
115  dc_maskStrings.push_back( "ECAL_MASK_CR04_EVEN" );
116  dc_maskStrings.push_back( "ECAL_MASK_CR04_ODD" );
117  dc_maskStrings.push_back( "ECAL_MASK_CR05_EVEN" );
118  dc_maskStrings.push_back( "ECAL_MASK_CR05_ODD" );
119  dc_maskStrings.push_back( "ECAL_MASK_CR06_EVEN" );
120  dc_maskStrings.push_back( "ECAL_MASK_CR06_ODD" );
121  dc_maskStrings.push_back( "ECAL_MASK_CR07_EVEN" );
122  dc_maskStrings.push_back( "ECAL_MASK_CR07_ODD" );
123  dc_maskStrings.push_back( "ECAL_MASK_CR08_EVEN" );
124  dc_maskStrings.push_back( "ECAL_MASK_CR08_ODD" );
125  dc_maskStrings.push_back( "ECAL_MASK_CR09_EVEN" );
126  dc_maskStrings.push_back( "ECAL_MASK_CR09_ODD" );
127  dc_maskStrings.push_back( "ECAL_MASK_CR10_EVEN" );
128  dc_maskStrings.push_back( "ECAL_MASK_CR10_ODD" );
129  dc_maskStrings.push_back( "ECAL_MASK_CR11_EVEN" );
130  dc_maskStrings.push_back( "ECAL_MASK_CR11_ODD" );
131  dc_maskStrings.push_back( "ECAL_MASK_CR12_EVEN" );
132  dc_maskStrings.push_back( "ECAL_MASK_CR12_ODD" );
133  dc_maskStrings.push_back( "ECAL_MASK_CR13_EVEN" );
134  dc_maskStrings.push_back( "ECAL_MASK_CR13_ODD" );
135  dc_maskStrings.push_back( "ECAL_MASK_CR14_EVEN" );
136  dc_maskStrings.push_back( "ECAL_MASK_CR14_ODD" );
137  dc_maskStrings.push_back( "ECAL_MASK_CR15_EVEN" );
138  dc_maskStrings.push_back( "ECAL_MASK_CR15_ODD" );
139  dc_maskStrings.push_back( "ECAL_MASK_CR16_EVEN" );
140  dc_maskStrings.push_back( "ECAL_MASK_CR16_ODD" );
141  dc_maskStrings.push_back( "ECAL_MASK_CR17_EVEN" );
142  dc_maskStrings.push_back( "ECAL_MASK_CR17_ODD" );
143 
144  l1t::OMDSReader::QueryResults dcMaskResults =
146  dc_maskStrings,
147  rctSchema,
148  "RCT_DEADCHANNEL_SUMMARY",
149  "RCT_DEADCHANNEL_SUMMARY.ID",
150  m_omdsReader.basicQuery( "DC_SUM_ID",
151  rctSchema,
152  "RCT_RUN_SETTINGS_KEY",
153  "RCT_RUN_SETTINGS_KEY.ID",
154  m_omdsReader.singleAttribute( objectKey))) ;
155 
156 
157 
158  if( dcMaskResults.queryFailed() ||
159  dcMaskResults.numberRows() != 1 ) // check query successful
160  {
161  edm::LogError( "L1-O2O" ) << "Problem with L1RCTChannelMask key." ;
162 
163 
164  std::cout << " Returened rows " << dcMaskResults.numberRows() <<std::endl;
165  return std::unique_ptr< L1RCTChannelMask >() ;
166  }
167 
169 
170  long long hcal_temp = 0LL;
171  int ecal_temp = 0;
172  for(int i = 0 ; i < 36 ; i++) {
173  dcMaskResults.fillVariable(dc_maskStrings.at(i),hcal_temp);
174  for(int j = 0; j < 32 ; j++)
175  if(j< 28)
176  m->hcalMask[i/2][i%2][j] = ((hcal_temp >> j ) & 1) == 1;
177  else
178  m->hfMask[i/2][i%2][j-28] = ((hcal_temp >> j ) & 1) == 1;
179  }
180  for(int i = 36; i < 72 ; i++) {
181  dcMaskResults.fillVariable(dc_maskStrings.at(i),ecal_temp);
182  for(int j = 0; j < 28 ; j++) {
183  int k = i - 36;
184  m->ecalMask[k/2][k%2][j] = ((ecal_temp >> j ) & 1) ==1;
185  }
186  }
187 
188  // FIND dummy cards from TSC key in crate conf
189 
190 
191 
192  std::vector< std::string > cardMaskStrings;
193  cardMaskStrings.push_back("RC0");
194  cardMaskStrings.push_back("RC1");
195  cardMaskStrings.push_back("RC2");
196  cardMaskStrings.push_back("RC3");
197  cardMaskStrings.push_back("RC4");
198  cardMaskStrings.push_back("RC5");
199  cardMaskStrings.push_back("RC6");
200  cardMaskStrings.push_back("JSC");
201 
202 
203  std::vector< std::string > crateIDStrings;
204  crateIDStrings.push_back("RCT_CRATE_0");
205  crateIDStrings.push_back("RCT_CRATE_1");
206  crateIDStrings.push_back("RCT_CRATE_2");
207  crateIDStrings.push_back("RCT_CRATE_3");
208  crateIDStrings.push_back("RCT_CRATE_4");
209  crateIDStrings.push_back("RCT_CRATE_5");
210  crateIDStrings.push_back("RCT_CRATE_6");
211  crateIDStrings.push_back("RCT_CRATE_7");
212  crateIDStrings.push_back("RCT_CRATE_8");
213  crateIDStrings.push_back("RCT_CRATE_9");
214  crateIDStrings.push_back("RCT_CRATE_10");
215  crateIDStrings.push_back("RCT_CRATE_11");
216  crateIDStrings.push_back("RCT_CRATE_12");
217  crateIDStrings.push_back("RCT_CRATE_13");
218  crateIDStrings.push_back("RCT_CRATE_14");
219  crateIDStrings.push_back("RCT_CRATE_15");
220  crateIDStrings.push_back("RCT_CRATE_16");
221  crateIDStrings.push_back("RCT_CRATE_17");
222 
223 
224  l1t::OMDSReader::QueryResults crate_conf =
225  m_omdsReader.basicQuery( "CRATE_CONF",
226  rctSchema,
227  "RCT_RUN_SETTINGS_KEY",
228  "RCT_RUN_SETTINGS_KEY.ID",
229  m_omdsReader.singleAttribute( objectKey)) ;
230 
231  int crateNum = 0;
232  for( std::vector<std::string>::iterator crate = crateIDStrings.begin(); crate !=crateIDStrings.end() ; ++crate) {
233  // std::cout << "crate conf " << *crate <<std::endl;
234  l1t::OMDSReader::QueryResults cardConfResults =
235  m_omdsReader.basicQuery(cardMaskStrings,
236  rctSchema,
237  "CRATE_CONF_DUMMY",
238  "CRATE_CONF_DUMMY.CRATE_CONF",
239  m_omdsReader.basicQuery( *crate,
240  rctSchema,
241  "RCT_CRATE_CONF",
242  "RCT_CRATE_CONF.RCT_KEY",
243  crate_conf
244  ));
245  bool extantCard[8];
246  int cardNum =0 ;
247  for(std::vector<std::string>::iterator card = cardMaskStrings.begin(); card!=cardMaskStrings.end(); ++card){
248  cardConfResults.fillVariable(*card,extantCard[cardNum]);
249 
250  if(!extantCard[cardNum]){
251  switch(cardNum){
252  case 6 :
253 
254  for ( int k = 0 ; k <4 ; k++) {
255 
256  m->ecalMask[crateNum][0][(cardNum/2)*8 + k ] |= !extantCard[cardNum];
257  m->ecalMask[crateNum][1][(cardNum/2)*8 + k ] |= !extantCard[cardNum];
258  m->hcalMask[crateNum][0][(cardNum/2)*8 + k ] |= !extantCard[cardNum];
259  m->hcalMask[crateNum][1][(cardNum/2)*8 + k ] |= !extantCard[cardNum];
260  }
261  break;
262  case 7 :
263 
264  for ( int k = 0 ; k <4 ; k++) {
265  m->hfMask[crateNum][0][k] |= !extantCard[cardNum];
266  m->hfMask[crateNum][1][k] |= !extantCard[cardNum];
267  }
268  break;
269  default:
270 
271  for(int k = 0; k < 8 ; k++ ){
272  m->hcalMask[crateNum][cardNum%2][(cardNum/2)*8 + k] |= !extantCard[cardNum];
273  m->ecalMask[crateNum][cardNum%2][(cardNum/2)*8 + k] |= !extantCard[cardNum];
274  }
275  }
276  }
277  cardNum++;
278  }
279  crateNum++;
280  }
281  /*
282  std::cout << "check fill" <<std::endl;
283  for(int i = 0; i< 18; i++)
284  for(int j =0; j< 2; j++){
285  for(int k =0; k<28; k++){
286  if(m->ecalMask[i][j][k])
287  std::cout << "ecal masked channel: crate " << i << " phi " << j <<" ieta " <<k <<std::endl;
288  if(m->hcalMask[i][j][k])
289  std::cout << "hcal masked channel: crate " << i << " phi " << j <<" ieta " <<k <<std::endl;
290  }
291  for(int k =0; k<4;k++)
292  if(m->hfMask[i][j][k])
293  std::cout << "hf masked channel: crate " << i << " phi " << j <<" ieta " <<k <<std::endl;
294  }
295 
296  */
297  //~~~~~~~~~ Instantiate new L1RCTChannelMask object. ~~~~~~~~~
298 
299 
300  return std::unique_ptr< L1RCTChannelMask >(m);
301 }
bool fillVariable(const std::string &columnName, T &outputVariable) const
Definition: OMDSReader.h:311
const QueryResults singleAttribute(const T &data) const
Definition: OMDSReader.h:295
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
int k[5][pyjets_maxn]