CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HcalRawDataClient.h
Go to the documentation of this file.
1 #ifndef HcalRawDataClient_GUARD_H
2 #define HcalRawDataClient_GUARD_H
3 #define NUMDCCS 32
4 #define NUMSPGS 15
5 #define HTRCHANMAX 24
6 
11 
13 
14  public:
15 
18  HcalRawDataClient(std::string myname);//{ name_=myname;};
20 
22  void calculateProblems(DQMStore::IBooker &, DQMStore::IGetter &); // calculates problem histogram contents
23  void updateChannelStatus(std::map<HcalDetId, unsigned int>& myqual);
24  void endJob(void);
25  void beginRun(void);
26  //void endRun(void);
27  void setup(void);
28  void cleanup(void);
29  bool hasErrors_Temp(void);
30  bool hasWarnings_Temp(void);
31  bool hasOther_Temp(void);
32  bool test_enabled(void);
33 
36 
37  private:
38  int nevts_;
39  // Machinery here for transforming hardware space into ieta/iphi/depth
41  //Electronics map -> geographic channel map
42  inline int hashup(uint32_t d=0, uint32_t s=0, uint32_t c=1) {
43  return (int) ( (d*NUMSPGS*HTRCHANMAX)+(s*HTRCHANMAX)+(c)); }
44  void stashHDI(int thehash, HcalDetId thehcaldetid);
45  //Protect against indexing past array.
46  inline HcalDetId HashToHDI(int thehash) {
47  return ( ( (thehash<0) || (thehash>(NUMDCCS*NUMSPGS*HTRCHANMAX)) )
49  :(hashedHcalDetId_[thehash]));
50  };
52 
53  float numTS_[NUMDCCS*NUMSPGS]; //For how many timesamples per channel were the half-HTRs configured?
54  //Histograms indicating problems in hardware space
57  TH2F* meOrNSynch_;
58  TH2F* meBCNSynch_;
62  TH2F* DataFlowInd_;
64  // handy array of pointers to pointers...
66 
68 
70  uint64_t problemcount[85][72][4]; // HFd1,2 at 'depths' 3,4 to avoid collision with HE
71  void mapDCCproblem (int dcc, float n) ; // Take maximum problem counters for affected cells
72  void mapHTRproblem (int dcc, int spigot, float n) ; // Take maximum problem counters for affected cells
73  void mapChannproblem(int dcc, int spigot, int htrchan, float n); // Take maximum problem counters for affected cell.
74 
76 
78 
79  // - setup problem cell flags
80  bool doProblemCellSetup_; // defaults to true in the constructor
81  // setup the problem cell monitor elements
82  // This method sets the doProblemCellSetup_ flag to false
84 
85 
86 };
87 
88 #endif
TH2F * LRBDataCorruptionIndicators_
static const HcalDetId Undefined
Definition: HcalDetId.h:50
TH2F * ChannSumm_DataIntegrityCheck_
HcalDetId HashToHDI(int thehash)
void normalizeHardwareSpaceHistos(void)
void stashHDI(int thehash, HcalDetId thehcaldetid)
#define HTRCHANMAX
void mapDCCproblem(int dcc, float n)
TH2F * Chann_DataIntegrityCheck_[32]
#define NUMDCCS
void mapChannproblem(int dcc, int spigot, int htrchan, float n)
const edm::EventSetup * c
void setupProblemCells(DQMStore::IBooker &, DQMStore::IGetter &)
void getHardwareSpaceHistos(DQMStore::IBooker &, DQMStore::IGetter &)
HcalRawDataClient()
Constructors.
void updateChannelStatus(std::map< HcalDetId, unsigned int > &myqual)
tuple d
Definition: ztail.py:151
int hashup(uint32_t d=0, uint32_t s=0, uint32_t c=1)
const HcalElectronicsMap * readoutMap_
void analyze(DQMStore::IBooker &, DQMStore::IGetter &)
void fillProblemCountArray(DQMStore::IBooker &, DQMStore::IGetter &)
virtual void calculateProblems(void)
unsigned long long uint64_t
Definition: Time.h:15
uint64_t problemcount[85][72][4]
~HcalRawDataClient()
Destructor.
float numTS_[32 *15]
HcalDetId hashedHcalDetId_[32 *15 *24]
TH2F * HalfHTRDataCorruptionIndicators_
void mapHTRproblem(int dcc, int spigot, float n)
#define NUMSPGS