CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
OnlineDQMDigiAD Class Reference

#include <OnlineDQMDigiAD_cmssw.h>

Public Member Functions

std::vector< std::vector< float > > Inference (std::vector< float > &digiHcalMapTW, std::vector< float > &numEvents, std::vector< float > &adThr, std::vector< float > &input_model_state_memory_e_0_0, std::vector< float > &input_model_state_memory_e_0_1, std::vector< float > &input_model_state_memory_e_1_0, std::vector< float > &input_model_state_memory_e_1_1, std::vector< float > &input_model_state_memory_d_0_0, std::vector< float > &input_model_state_memory_d_0_1, std::vector< float > &input_model_state_memory_d_1_0, std::vector< float > &input_model_state_memory_d_1_1)
 Perform inference on a single image. More...
 
std::vector< std::vector< float > > Inference_CMSSW (const std::vector< std::vector< float >> &digiHcal2DHist_depth_1, const std::vector< std::vector< float >> &digiHcal2DHist_depth_2, const std::vector< std::vector< float >> &digiHcal2DHist_depth_3, const std::vector< std::vector< float >> &digiHcal2DHist_depth_4, const std::vector< std::vector< float >> &digiHcal2DHist_depth_5, const std::vector< std::vector< float >> &digiHcal2DHist_depth_6, const std::vector< std::vector< float >> &digiHcal2DHist_depth_7, const float LS_numEvents, const float flagDecisionThr=20)
 Perform inference on a single image. More...
 
void InitializeState ()
 Resets ml model memory states to default and function needs to be called when new collision run starts. More...
 
void IsModelExist (std::string hcal_subsystem_name)
 check whether onnx model integration is added for the selected hcal system More...
 
 OnlineDQMDigiAD (const std::string model_system_name, const std::string &modelFilepath, cms::Ort::Backend backend=cms::Ort::Backend::cpu)
 Constructor. More...
 
std::vector< std::vector< std::vector< float > > > ONNXOutputToDQMHistMap (const std::vector< std::vector< float >> &ad_model_output_vectors, const int numDepth, const int numDIeta=64, const int selOutputIdx=7)
 Converts 1D serialized vector output of the onnx into 3d hcal-hehp vector. More...
 

Private Member Functions

std::vector< std::vector< float > > Map1DTo2DVector (const std::vector< float > &input_1d_vec, const int numSplits)
 Converts serialized 1d vectors into 2d. More...
 
std::vector< float > PrepareONNXDQMMapVectors (std::vector< std::vector< std::vector< float >>> &digiHcal2DHist_depth_all)
 Prepares model input serialized dqm histogram from 2D histogram inputs from the cmssw. More...
 
std::vector< float > Serialize2DVector (const std::vector< std::vector< float >> &input_2d_vec)
 Serializes 2d vectors into 1d. More...
 

Private Attributes

int64_t batch_size = 1
 
const std::vector< std::string > hcal_modeled_systems = {"he", "hb"}
 
std::string hcal_subsystem_name
 
std::vector< float > input_model_state_memory_d_0_0 {std::vector<float>(model_state_layer_serialized_dims[1][0])}
 
std::vector< float > input_model_state_memory_d_0_1 {std::vector<float>(model_state_layer_serialized_dims[1][0])}
 
std::vector< float > input_model_state_memory_d_1_0 {std::vector<float>(model_state_layer_serialized_dims[1][1])}
 
std::vector< float > input_model_state_memory_d_1_1 {std::vector<float>(model_state_layer_serialized_dims[1][1])}
 
std::vector< float > input_model_state_memory_e_0_0 {std::vector<float>(model_state_layer_serialized_dims[0][0])}
 
std::vector< float > input_model_state_memory_e_0_1 {std::vector<float>(model_state_layer_serialized_dims[0][0])}
 
std::vector< float > input_model_state_memory_e_1_0 {std::vector<float>(model_state_layer_serialized_dims[0][1])}
 
std::vector< float > input_model_state_memory_e_1_1 {std::vector<float>(model_state_layer_serialized_dims[0][1])}
 
const std::vector< std::string > input_names
 
std::vector< std::vector< int64_t > > input_shapes
 
std::vector< std::vector< float > > input_values
 
std::string model_path
 
const unsigned int model_state_inner_dim = 2
 
const std::vector< std::vector< unsigned int > > model_state_layer_dims
 
const std::vector< std::vector< unsigned int > > model_state_layer_serialized_dims
 
unsigned model_state_refresh_counter
 
const size_t num_state_vectors = 8
 
std::unique_ptr< cms::Ort::ONNXRuntimeort_mSession = nullptr
 
const std::vector< std::string > output_names
 
std::vector< std::vector< float > > output_values
 

Detailed Description

Definition at line 24 of file OnlineDQMDigiAD_cmssw.h.

Constructor & Destructor Documentation

◆ OnlineDQMDigiAD()

OnlineDQMDigiAD::OnlineDQMDigiAD ( const std::string  model_system_name,
const std::string &  modelFilepath,
cms::Ort::Backend  backend = cms::Ort::Backend::cpu 
)

Constructor.

Parameters
modelFilepathpath to the .onnx file
Backendbackend selection cpu or gpu

Definition at line 31 of file OnlineDQMDigiAD_cmssw.cc.

References HLT_2024v14_cff::backend, cms::Ort::ONNXRuntime::defaultSessionOptions(), edm::FileInPath::fullPath(), HLT_2024v14_cff::model_path, eostools::move(), and AlCaHLTBitMon_QueryRunRegistry::string.

33  {
34  std::string instanceName{"DESMOD Digioccupancy Map AD inference"};
35 
36  /**************** Initailize Model Memory States ******************/
37  InitializeState(); // initailize model memory states to zero
38 
39  /**************** Create ORT session ******************/
40  // Set up options for session
41  auto session_options = ONNXRuntime::defaultSessionOptions(backend);
42  // Create session by loading the onnx model
43  model_path = edm::FileInPath(modelFilepath).fullPath();
44  auto uOrtSession = std::make_unique<ONNXRuntime>(model_path, &session_options);
45  ort_mSession = std::move(uOrtSession);
46 
47  // check model availability
48  hcal_subsystem_name = model_system_name;
49 
50  IsModelExist(hcal_subsystem_name); // assert model integration for the given hcal system name
51 
52  if (hcal_subsystem_name == "he") {
53  std::vector<std::vector<int64_t>> input_shapes_ = {
54  {batch_size, 64, 72, 7, 1},
55  {batch_size, 1},
56  {1, 1},
65  input_shapes = input_shapes_;
66  }
67 
68  else if (hcal_subsystem_name == "hb") {
69  std::vector<std::vector<int64_t>> input_shapes_ = {
70  {batch_size, 64, 72, 4, 1},
71  {batch_size, 1},
72  {1, 1},
81  input_shapes = input_shapes_;
82  }
83 }
std::string fullPath() const
Definition: FileInPath.cc:161
std::string hcal_subsystem_name
const unsigned int model_state_inner_dim
void InitializeState()
Resets ml model memory states to default and function needs to be called when new collision run start...
std::unique_ptr< cms::Ort::ONNXRuntime > ort_mSession
void IsModelExist(std::string hcal_subsystem_name)
check whether onnx model integration is added for the selected hcal system
std::vector< std::vector< int64_t > > input_shapes
const std::vector< std::vector< unsigned int > > model_state_layer_dims
def move(src, dest)
Definition: eostools.py:511

Member Function Documentation

◆ Inference()

std::vector< std::vector< float > > OnlineDQMDigiAD::Inference ( std::vector< float > &  digiHcalMapTW,
std::vector< float > &  numEvents,
std::vector< float > &  adThr,
std::vector< float > &  input_model_state_memory_e_0_0,
std::vector< float > &  input_model_state_memory_e_0_1,
std::vector< float > &  input_model_state_memory_e_1_0,
std::vector< float > &  input_model_state_memory_e_1_1,
std::vector< float > &  input_model_state_memory_d_0_0,
std::vector< float > &  input_model_state_memory_d_0_1,
std::vector< float > &  input_model_state_memory_d_1_0,
std::vector< float > &  input_model_state_memory_d_1_1 
)

Perform inference on a single image.

Parameters
digiHcalMapTWThe input digipccupany maps in time window
numEventsThe input number of events for map renormalization in time window
adThrThe anomaly detection decision threshold
input_model_state_memory_The model memory states
output_tensorsoutput arrays
Returns
the list of multidimensional arrays

Definition at line 192 of file OnlineDQMDigiAD_cmssw.cc.

References HLT_2024v14_cff::input_names, simpleEdmComparison::numEvents, and HLT_2024v14_cff::output_names.

202  {
203  /**************** Preprocessing ******************/
204  // Create input tensor (including size and value) from the loaded inputs
205  // Compute the product of all input dimension
206  // Assign memory for input tensor
207  // inputTensors will be used by the Session Run for inference
208 
209  input_values.clear();
210  input_values.emplace_back(digiHcalMapTW);
211  input_values.emplace_back(numEvents);
212  input_values.emplace_back(adThr);
221 
222  /**************** Inference ******************/
223 
225 
226  return output_values;
227 }
std::vector< float > input_model_state_memory_e_0_0
const std::vector< std::string > output_names
std::vector< float > input_model_state_memory_e_1_0
std::vector< float > input_model_state_memory_d_1_1
std::vector< std::vector< float > > input_values
std::vector< float > input_model_state_memory_d_0_0
std::vector< std::vector< float > > output_values
std::vector< float > input_model_state_memory_d_0_1
std::unique_ptr< cms::Ort::ONNXRuntime > ort_mSession
const std::vector< std::string > input_names
std::vector< float > input_model_state_memory_e_1_1
std::vector< std::vector< int64_t > > input_shapes
std::vector< float > input_model_state_memory_e_0_1
std::vector< float > input_model_state_memory_d_1_0

◆ Inference_CMSSW()

std::vector< std::vector< float > > OnlineDQMDigiAD::Inference_CMSSW ( const std::vector< std::vector< float >> &  digiHcal2DHist_depth_1,
const std::vector< std::vector< float >> &  digiHcal2DHist_depth_2,
const std::vector< std::vector< float >> &  digiHcal2DHist_depth_3,
const std::vector< std::vector< float >> &  digiHcal2DHist_depth_4,
const std::vector< std::vector< float >> &  digiHcal2DHist_depth_5,
const std::vector< std::vector< float >> &  digiHcal2DHist_depth_6,
const std::vector< std::vector< float >> &  digiHcal2DHist_depth_7,
const float  LS_numEvents,
const float  flagDecisionThr = 20 
)

Perform inference on a single image.

Parameters
digiHcal2DHist_depth_12D histogram digioccupancy of the 1st depth of the hcal-hehb
digiHcal2DHist_depth_22D histogram digioccupancy of the 2nd depth of the hcal-hehb
digiHcal2DHist_depth_32D histogram digioccupancy of the 3rd depth of the hcal-hehb
digiHcal2DHist_depth_42D histogram digioccupancy of the 4th depth of the hcal-hehb
digiHcal2DHist_depth_52D histogram digioccupancy of the 5th depth of the hcal-hehb
digiHcal2DHist_depth_52D histogram digioccupancy of the 6th depth of the hcal-hehb
digiHcal2DHist_depth_72D histogram digioccupancy of the 7th depth of the hcal-hehb
LS_numEventsThe input number of events for digioccupancy map renormalization
flagDecisionThrThe anomaly detection decision threshold, decrease to increase sensitivity
Returns
ad_model_output_vectors: the vectors of multidimensional arrays: output_data_0, output_data_1, ...

Definition at line 230 of file OnlineDQMDigiAD_cmssw.cc.

References gather_cfg::cout, mps_fire::i, simpleEdmComparison::numEvents, HLT_2024v14_cff::output_names, and AlCaHLTBitMon_QueryRunRegistry::string.

241 {
242  /**************** Prepare data ******************/
243  // merging all 2d hist into one 3d depth[ieta[iphi]]
244  std::vector<std::vector<std::vector<float>>> digiHcal2DHist_depth_all;
245 
246  if (hcal_subsystem_name == "he") {
247  digiHcal2DHist_depth_all.push_back(digiHcal2DHist_depth_1);
248  digiHcal2DHist_depth_all.push_back(digiHcal2DHist_depth_2);
249  digiHcal2DHist_depth_all.push_back(digiHcal2DHist_depth_3);
250  digiHcal2DHist_depth_all.push_back(digiHcal2DHist_depth_4);
251  digiHcal2DHist_depth_all.push_back(digiHcal2DHist_depth_5);
252  digiHcal2DHist_depth_all.push_back(digiHcal2DHist_depth_6);
253  digiHcal2DHist_depth_all.push_back(digiHcal2DHist_depth_7);
254  }
255 
256  else if (hcal_subsystem_name == "hb") {
257  digiHcal2DHist_depth_all.push_back(digiHcal2DHist_depth_1);
258  digiHcal2DHist_depth_all.push_back(digiHcal2DHist_depth_2);
259  digiHcal2DHist_depth_all.push_back(digiHcal2DHist_depth_3);
260  digiHcal2DHist_depth_all.push_back(digiHcal2DHist_depth_4);
261  }
262 
263  // convert the 3d depth[ieta[iphi]] vector into 1d and commbined
264  std::vector<float> digiHcalMapTW = PrepareONNXDQMMapVectors(digiHcal2DHist_depth_all);
265 
266  std::vector<float> adThr{flagDecisionThr}; // AD decision threshold, increase to reduce sensitivity
267  std::vector<float> numEvents{LS_numEvents};
268 
269  // call model inference
270  /**************** Inference ******************/
271  std::vector<std::vector<float>> output_tensors = Inference(digiHcalMapTW,
272  numEvents,
273  adThr,
282 
283  // auto output_tensors = Inference(digiHcalMapTW, numEvents, adThr);
284  //std::cout << "******* model inference is success *******" << std::endl;
285 
286  /**************** Output post processing ******************/
287  // split outputs into ad output vectors and state_memory vectors
288  std::string state_output_name_tag = "rnn_hidden";
289  std::vector<std::vector<float>> ad_model_output_vectors, ad_model_state_vectors;
290  for (size_t i = 0; i < output_tensors.size(); i++) {
291  std::string output_names_startstr = output_names[i].substr(
292  2, state_output_name_tag.length()); // Extract the same number of characters as str2 from mOutputNames
293  if (output_names_startstr == state_output_name_tag) {
294  ad_model_state_vectors.emplace_back(output_tensors[i]);
295  } else {
296  ad_model_output_vectors.emplace_back(output_tensors[i]);
297  }
298  }
299 
300  if (ad_model_output_vectors.size() == num_state_vectors) {
301  input_model_state_memory_e_0_0 = ad_model_state_vectors[0];
302  input_model_state_memory_e_0_1 = ad_model_state_vectors[1];
303  input_model_state_memory_e_1_0 = ad_model_state_vectors[2];
304  input_model_state_memory_e_1_1 = ad_model_state_vectors[3];
305  input_model_state_memory_d_0_0 = ad_model_state_vectors[4];
306  input_model_state_memory_d_0_1 = ad_model_state_vectors[5];
307  input_model_state_memory_d_1_0 = ad_model_state_vectors[6];
308  input_model_state_memory_d_1_1 = ad_model_state_vectors[7];
309  } else {
310  std::cout << "Warning: the number of output state vectors does NOT equals to expected!. The states are set to "
311  "default values."
312  << std::endl;
313  InitializeState();
314  }
315 
316  // # if onnx is returning serialized 1d vectors instead of vector of 3d vectors
317  // aml score and flag are at index 5 and 7 of the vector ad_model_output_vectors: anomaly score: ad_model_output_vectors[5], anomaly flags: ad_model_output_vectors[7]
318  /*
319  selOutputIdx: index to select of the onnx output. e.g. 5 is the anomaly score and 7 is the anomaly flag (1 is with anomaly, 0 is healthy)
320  std::vector<std::vector<std::vector<float>>> digiHcal3DHist_ANOMALY_FLAG = ONNXOutputToDQMHistMap(ad_model_output_vectors, 7)
321  std::vector<std::vector<std::vector<float>>> digiHcal3DHist_ANOMALY_SCORE = ONNXOutputToDQMHistMap(ad_model_output_vectors, 5)
322  */
323 
324  // reduce counter for each ls call. due to onnx double datatype handling limitation that might cause precision error to propagate.
325  if (--model_state_refresh_counter == 0)
326  InitializeState();
327 
328  return ad_model_output_vectors;
329 }
std::vector< float > input_model_state_memory_e_0_0
const std::vector< std::string > output_names
std::vector< std::vector< float > > Inference(std::vector< float > &digiHcalMapTW, std::vector< float > &numEvents, std::vector< float > &adThr, std::vector< float > &input_model_state_memory_e_0_0, std::vector< float > &input_model_state_memory_e_0_1, std::vector< float > &input_model_state_memory_e_1_0, std::vector< float > &input_model_state_memory_e_1_1, std::vector< float > &input_model_state_memory_d_0_0, std::vector< float > &input_model_state_memory_d_0_1, std::vector< float > &input_model_state_memory_d_1_0, std::vector< float > &input_model_state_memory_d_1_1)
Perform inference on a single image.
unsigned model_state_refresh_counter
std::vector< float > input_model_state_memory_e_1_0
std::vector< float > input_model_state_memory_d_1_1
const size_t num_state_vectors
std::string hcal_subsystem_name
std::vector< float > input_model_state_memory_d_0_0
void InitializeState()
Resets ml model memory states to default and function needs to be called when new collision run start...
std::vector< float > input_model_state_memory_d_0_1
std::vector< float > input_model_state_memory_e_1_1
std::vector< float > PrepareONNXDQMMapVectors(std::vector< std::vector< std::vector< float >>> &digiHcal2DHist_depth_all)
Prepares model input serialized dqm histogram from 2D histogram inputs from the cmssw.
std::vector< float > input_model_state_memory_e_0_1
std::vector< float > input_model_state_memory_d_1_0

◆ InitializeState()

void OnlineDQMDigiAD::InitializeState ( )

Resets ml model memory states to default and function needs to be called when new collision run starts.

Definition at line 94 of file OnlineDQMDigiAD_cmssw.cc.

References ntuplemaker::fill, and nano_mu_digi_cff::float.

94  {
95  // model memory states vectors init, only when the runs starts or for the first LS
98  float(0.0)); // init model memory states-encoder_layer_0_state_0 to zero
101  float(0.0)); // init model memory states-encoder_layer_0_state_1 to zero
104  float(0.0)); // init model memory states-encoder_layer_1_state_0 to zero
107  float(0.0)); // init model memory states-encoder_layer_1_state_1 to zero
110  float(0.0)); // init model memory states-decoder_layer_0_state_0 to zero
113  float(0.0)); // init model memory states-decoder_layer_0_state_1 to zero
116  float(0.0)); // init model memory states-decoder_layer_1_state_0 to zero
119  float(0.0)); // init model memory states-decoder_layer_1_state_1 to zero
120 
121  // model_state_refresh_counter = 15; // counter set due to onnx double datatype handling limitation that might cause precision error to propagate.
123  1; // DQM multithread returns non-sequential LS. Hence, the model will not keep states (experimental)
124 }
std::vector< float > input_model_state_memory_e_0_0
unsigned model_state_refresh_counter
std::vector< float > input_model_state_memory_e_1_0
std::vector< float > input_model_state_memory_d_1_1
std::vector< float > input_model_state_memory_d_0_0
std::vector< float > input_model_state_memory_d_0_1
std::vector< float > input_model_state_memory_e_1_1
std::vector< float > input_model_state_memory_e_0_1
std::vector< float > input_model_state_memory_d_1_0

◆ IsModelExist()

void OnlineDQMDigiAD::IsModelExist ( std::string  hcal_subsystem_name)

check whether onnx model integration is added for the selected hcal system

Definition at line 85 of file OnlineDQMDigiAD_cmssw.cc.

References submitPVResolutionJobs::err, spr::find(), and AlCaHLTBitMon_QueryRunRegistry::string.

85  {
87  hcal_modeled_systems.end()) {
89  "ML for OnlineDQM is not currently supported for the selected " + hcal_subsystem_name + " system!\n";
90  throw std::invalid_argument(err);
91  }
92 }
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
std::string hcal_subsystem_name
const std::vector< std::string > hcal_modeled_systems

◆ Map1DTo2DVector()

std::vector< std::vector< float > > OnlineDQMDigiAD::Map1DTo2DVector ( const std::vector< float > &  input_1d_vec,
const int  numSplits 
)
private

Converts serialized 1d vectors into 2d.

Definition at line 136 of file OnlineDQMDigiAD_cmssw.cc.

References mps_fire::i, and to_string().

137  {
138  if (numSplits <= 0)
139  throw std::invalid_argument("numSplits must be greater than 0.");
140 
141  std::size_t const splitted_size = input_1d_vec.size() / numSplits;
142 
143  if (splitted_size * numSplits != input_1d_vec.size())
144  throw std::invalid_argument("Conversion is not allowed! The input vector length " +
145  std::to_string(input_1d_vec.size()) + " must be divisible by the numSplits " +
146  std::to_string(numSplits) + ".");
147 
148  std::vector<std::vector<float>> output_2d_vec;
149 
150  for (int i = 0; i < numSplits; i++) {
151  std::vector<float> chunch_vec(input_1d_vec.begin() + i * splitted_size,
152  input_1d_vec.begin() + (i + 1) * splitted_size);
153  output_2d_vec.push_back(chunch_vec);
154  }
155  return output_2d_vec;
156 }
static std::string to_string(const XMLCh *ch)

◆ ONNXOutputToDQMHistMap()

std::vector< std::vector< std::vector< float > > > OnlineDQMDigiAD::ONNXOutputToDQMHistMap ( const std::vector< std::vector< float >> &  ad_model_output_vectors,
const int  numDepth,
const int  numDIeta = 64,
const int  selOutputIdx = 7 
)

Converts 1D serialized vector output of the onnx into 3d hcal-hehp vector.

Parameters
ad_model_output_vectorsvector of 3D histogram maps the hcal-hehb, each vector output from the onnx. e.g 3d map of anomaly score and 3d map of anomaly flag or label
selOutputIdxindex to select of the onnx output. e.g. 5 is the anomaly score and 7 is the anomaly flag (1 is with anomaly, 0 is healthy)
Returns
ad_model_output_vectors: the vectors of multidimensional arrays: output_data_0, output_data_1, ...

Definition at line 172 of file OnlineDQMDigiAD_cmssw.cc.

176  {
177  // each output_vector is a serialized 3d hist map
178 
179  const std::vector<float> &output_vector = ad_model_output_vectors[selOutputIdx];
180  std::vector<std::vector<float>> output_2d_vec = Map1DTo2DVector(output_vector, numDepth);
181 
182  std::vector<std::vector<std::vector<float>>> digiHcal3DHist;
183  for (const std::vector<float> &output_vector_depth : output_2d_vec) {
184  std::vector<std::vector<float>> digiHcal2DHist_depth = Map1DTo2DVector(output_vector_depth, numDIeta);
185  digiHcal3DHist.push_back(digiHcal2DHist_depth);
186  }
187 
188  return digiHcal3DHist;
189 }
std::vector< std::vector< float > > Map1DTo2DVector(const std::vector< float > &input_1d_vec, const int numSplits)
Converts serialized 1d vectors into 2d.

◆ PrepareONNXDQMMapVectors()

std::vector< float > OnlineDQMDigiAD::PrepareONNXDQMMapVectors ( std::vector< std::vector< std::vector< float >>> &  digiHcal2DHist_depth_all)
private

Prepares model input serialized dqm histogram from 2D histogram inputs from the cmssw.

Parameters
digiHcal2DHist_depth_all3D vector (depth[ieta[iphi]]) of combined 2D histogram digioccupancy of the any depth of the hcal

Definition at line 158 of file OnlineDQMDigiAD_cmssw.cc.

References trackerHitRTTI::vector.

159  {
160  std::vector<float> digi3DHistVector_serialized;
161 
162  for (const std::vector<std::vector<float>> &digiHcal2DHist_depth : digiHcal2DHist_depth_all) {
163  std::vector<float> digiHcalDHist_serialized_depth = Serialize2DVector(digiHcal2DHist_depth);
164  digi3DHistVector_serialized.insert(digi3DHistVector_serialized.end(),
165  digiHcalDHist_serialized_depth.begin(),
166  digiHcalDHist_serialized_depth.end());
167  }
168 
169  return digi3DHistVector_serialized;
170 }
std::vector< float > Serialize2DVector(const std::vector< std::vector< float >> &input_2d_vec)
Serializes 2d vectors into 1d.

◆ Serialize2DVector()

std::vector< float > OnlineDQMDigiAD::Serialize2DVector ( const std::vector< std::vector< float >> &  input_2d_vec)
private

Serializes 2d vectors into 1d.

Definition at line 126 of file OnlineDQMDigiAD_cmssw.cc.

References convertSQLitetoXML_cfg::output.

126  {
127  std::vector<float> output;
128  for (const auto &row : input_2d_vec) {
129  for (const auto &element : row) {
130  output.push_back(element);
131  }
132  }
133  return output;
134 }
Definition: output.py:1

Member Data Documentation

◆ batch_size

int64_t OnlineDQMDigiAD::batch_size = 1
private

Definition at line 165 of file OnlineDQMDigiAD_cmssw.h.

◆ hcal_modeled_systems

const std::vector<std::string> OnlineDQMDigiAD::hcal_modeled_systems = {"he", "hb"}
private

Definition at line 102 of file OnlineDQMDigiAD_cmssw.h.

◆ hcal_subsystem_name

std::string OnlineDQMDigiAD::hcal_subsystem_name
private

Definition at line 103 of file OnlineDQMDigiAD_cmssw.h.

◆ input_model_state_memory_d_0_0

std::vector<float> OnlineDQMDigiAD::input_model_state_memory_d_0_0 {std::vector<float>(model_state_layer_serialized_dims[1][0])}
private

Definition at line 159 of file OnlineDQMDigiAD_cmssw.h.

◆ input_model_state_memory_d_0_1

std::vector<float> OnlineDQMDigiAD::input_model_state_memory_d_0_1 {std::vector<float>(model_state_layer_serialized_dims[1][0])}
private

Definition at line 160 of file OnlineDQMDigiAD_cmssw.h.

◆ input_model_state_memory_d_1_0

std::vector<float> OnlineDQMDigiAD::input_model_state_memory_d_1_0 {std::vector<float>(model_state_layer_serialized_dims[1][1])}
private

Definition at line 161 of file OnlineDQMDigiAD_cmssw.h.

◆ input_model_state_memory_d_1_1

std::vector<float> OnlineDQMDigiAD::input_model_state_memory_d_1_1 {std::vector<float>(model_state_layer_serialized_dims[1][1])}
private

Definition at line 162 of file OnlineDQMDigiAD_cmssw.h.

◆ input_model_state_memory_e_0_0

std::vector<float> OnlineDQMDigiAD::input_model_state_memory_e_0_0 {std::vector<float>(model_state_layer_serialized_dims[0][0])}
private

Definition at line 155 of file OnlineDQMDigiAD_cmssw.h.

◆ input_model_state_memory_e_0_1

std::vector<float> OnlineDQMDigiAD::input_model_state_memory_e_0_1 {std::vector<float>(model_state_layer_serialized_dims[0][0])}
private

Definition at line 156 of file OnlineDQMDigiAD_cmssw.h.

◆ input_model_state_memory_e_1_0

std::vector<float> OnlineDQMDigiAD::input_model_state_memory_e_1_0 {std::vector<float>(model_state_layer_serialized_dims[0][1])}
private

Definition at line 157 of file OnlineDQMDigiAD_cmssw.h.

◆ input_model_state_memory_e_1_1

std::vector<float> OnlineDQMDigiAD::input_model_state_memory_e_1_1 {std::vector<float>(model_state_layer_serialized_dims[0][1])}
private

Definition at line 158 of file OnlineDQMDigiAD_cmssw.h.

◆ input_names

const std::vector<std::string> OnlineDQMDigiAD::input_names
private
Initial value:
= {
"input_data",
"input_data_exo",
"anomaly_std_th",
"e_rnn_hidden__layer_0_state_0",
"e_rnn_hidden__layer_0_state_1",
"e_rnn_hidden__layer_1_state_0",
"e_rnn_hidden__layer_1_state_1",
"d_rnn_hidden__layer_0_state_0",
"d_rnn_hidden__layer_0_state_1",
"d_rnn_hidden__layer_1_state_0",
"d_rnn_hidden__layer_1_state_1",
}

Definition at line 108 of file OnlineDQMDigiAD_cmssw.h.

◆ input_shapes

std::vector<std::vector<int64_t> > OnlineDQMDigiAD::input_shapes
private

Definition at line 167 of file OnlineDQMDigiAD_cmssw.h.

◆ input_values

std::vector<std::vector<float> > OnlineDQMDigiAD::input_values
private

Definition at line 166 of file OnlineDQMDigiAD_cmssw.h.

◆ model_path

std::string OnlineDQMDigiAD::model_path
private

Definition at line 105 of file OnlineDQMDigiAD_cmssw.h.

◆ model_state_inner_dim

const unsigned int OnlineDQMDigiAD::model_state_inner_dim = 2
private

Definition at line 144 of file OnlineDQMDigiAD_cmssw.h.

◆ model_state_layer_dims

const std::vector<std::vector<unsigned int> > OnlineDQMDigiAD::model_state_layer_dims
private
Initial value:
= {
{128, 32}, {128, 640}}

Definition at line 145 of file OnlineDQMDigiAD_cmssw.h.

◆ model_state_layer_serialized_dims

const std::vector<std::vector<unsigned int> > OnlineDQMDigiAD::model_state_layer_serialized_dims
private
Initial value:
= {
{256, 64},
{256,
1280}}

Definition at line 147 of file OnlineDQMDigiAD_cmssw.h.

◆ model_state_refresh_counter

unsigned OnlineDQMDigiAD::model_state_refresh_counter
private
Initial value:
=
1

Definition at line 152 of file OnlineDQMDigiAD_cmssw.h.

◆ num_state_vectors

const size_t OnlineDQMDigiAD::num_state_vectors = 8
private

Definition at line 143 of file OnlineDQMDigiAD_cmssw.h.

◆ ort_mSession

std::unique_ptr<cms::Ort::ONNXRuntime> OnlineDQMDigiAD::ort_mSession = nullptr
private

Definition at line 104 of file OnlineDQMDigiAD_cmssw.h.

◆ output_names

const std::vector<std::string> OnlineDQMDigiAD::output_names
private
Initial value:
= {
"target_data",
"pred_data",
"pred_err_spatial",
"pred_err_window_spatial",
"pred_err_spatial_scaled",
"pred_err_window_spatial_scaled",
"pred_err_spatial_scaled_aml",
"pred_err_window_spatial_scaled_aml",
"e_rnn_hidden__layer_0_state_0_o",
"e_rnn_hidden__layer_0_state_1_o",
"e_rnn_hidden__layer_1_state_0_o",
"e_rnn_hidden__layer_1_state_1_o",
"d_rnn_hidden__layer_0_state_0_o",
"d_rnn_hidden__layer_0_state_1_o",
"d_rnn_hidden__layer_1_state_0_o",
"d_rnn_hidden__layer_1_state_1_o",
}

Definition at line 123 of file OnlineDQMDigiAD_cmssw.h.

◆ output_values

std::vector<std::vector<float> > OnlineDQMDigiAD::output_values
private

Definition at line 166 of file OnlineDQMDigiAD_cmssw.h.