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 
21  void analyze(void);
22  void calculateProblems(void); // calculates problem histogram contents
23  void updateChannelStatus(std::map<HcalDetId, unsigned int>& myqual);
24  void beginJob(void);
25  void endJob(void);
26  void beginRun(void);
27  void endRun(void);
28  void setup(void);
29  void cleanup(void);
30  void endLuminosityBlock(void);
31  bool hasErrors_Temp(void);
32  bool hasWarnings_Temp(void);
33  bool hasOther_Temp(void);
34  bool test_enabled(void);
35 
38 
39  private:
40  int nevts_;
41  // Machinery here for transforming hardware space into ieta/iphi/depth
43  //Electronics map -> geographic channel map
44  inline int hashup(uint32_t d=0, uint32_t s=0, uint32_t c=1) {
45  return (int) ( (d*NUMSPGS*HTRCHANMAX)+(s*HTRCHANMAX)+(c)); }
46  void stashHDI(int thehash, HcalDetId thehcaldetid);
47  //Protect against indexing past array.
48  inline HcalDetId HashToHDI(int thehash) {
49  return ( ( (thehash<0) || (thehash>(NUMDCCS*NUMSPGS*HTRCHANMAX)) )
51  :(hashedHcalDetId_[thehash]));
52  };
54 
55  float numTS_[NUMDCCS*NUMSPGS]; //For how many timesamples per channel were the half-HTRs configured?
56  //Histograms indicating problems in hardware space
59  TH2F* meOrNSynch_;
60  TH2F* meBCNSynch_;
64  TH2F* DataFlowInd_;
66  // handy array of pointers to pointers...
68 
69  void getHardwareSpaceHistos(void);
70 
71  void fillProblemCountArray(void);
72  uint64_t problemcount[85][72][4]; // HFd1,2 at 'depths' 3,4 to avoid collision with HE
73  void mapDCCproblem (int dcc, float n) ; // Take maximum problem counters for affected cells
74  void mapHTRproblem (int dcc, int spigot, float n) ; // Take maximum problem counters for affected cells
75  void mapChannproblem(int dcc, int spigot, int htrchan, float n); // Take maximum problem counters for affected cell.
76 
78 
80 };
81 
82 #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 fillProblemCountArray(void)
void getHardwareSpaceHistos(void)
HcalRawDataClient()
Constructors.
void updateChannelStatus(std::map< HcalDetId, unsigned int > &myqual)
int hashup(uint32_t d=0, uint32_t s=0, uint32_t c=1)
const HcalElectronicsMap * readoutMap_
unsigned long long uint64_t
Definition: Time.h:15
void calculateProblems(void)
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)
void endLuminosityBlock(void)
#define NUMSPGS