CMS 3D CMS Logo

CSCFakeDBPedestals.h
Go to the documentation of this file.
1 #ifndef _CSCFAKEDBPEDESTALS_H
2 #define _CSCFAKEDBPEDESTALS_H
3 
12 #include <memory>
13 
15 
19 
21 public:
23  ~CSCFakeDBPedestals() override;
24 
25  inline static CSCDBPedestals *prefillDBPedestals();
26 
27  typedef std::unique_ptr<CSCDBPedestals> Pointer;
28 
29  Pointer produceDBPedestals(const CSCDBPedestalsRcd &);
30 
31 private:
32  // ----------member data ---------------------------
34  const edm::IOVSyncValue &,
35  edm::ValidityInterval &) override;
36 };
37 
38 #include <fstream>
39 #include <iostream>
40 #include <vector>
41 
42 // to workaround plugin library
44  int seed;
45  float meanped, meanrms;
46  const int MAX_SIZE = 217728; // or 252288 for ME4/2 chambers
47  const int PED_FACTOR = 10;
48  const int RMS_FACTOR = 1000;
49 
50  CSCDBPedestals *cndbpedestals = new CSCDBPedestals();
51  cndbpedestals->pedestals.resize(MAX_SIZE);
52 
53  seed = 10000;
54  srand(seed);
55  meanped = 600.0, meanrms = 1.5;
56  cndbpedestals->factor_ped = int(PED_FACTOR);
57  cndbpedestals->factor_rms = int(RMS_FACTOR);
58 
59  for (int i = 0; i < MAX_SIZE; i++) {
60  cndbpedestals->pedestals[i].ped =
61  (short int)(((double)rand() / ((double)(RAND_MAX) + (double)(1))) * 100 + meanped * PED_FACTOR + 0.5);
62  cndbpedestals->pedestals[i].rms =
63  (short int)(((double)rand() / ((double)(RAND_MAX) + (double)(1))) + meanrms * RMS_FACTOR + 0.5);
64  }
65  return cndbpedestals;
66 }
67 
68 #endif
void setIntervalFor(const edm::eventsetup::EventSetupRecordKey &, const edm::IOVSyncValue &, edm::ValidityInterval &) override
static CSCDBPedestals * prefillDBPedestals()
~CSCFakeDBPedestals() override
CSCFakeDBPedestals(const edm::ParameterSet &)
Pointer produceDBPedestals(const CSCDBPedestalsRcd &)
std::unique_ptr< CSCDBPedestals > Pointer
PedestalContainer pedestals
Signal rand(Signal arg)
Definition: vlib.cc:442