CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Classes | Public Member Functions | Private Attributes
EcalTBH2TDCRecInfoAlgo Class Reference

#include <EcalTBH2TDCRecInfoAlgo.h>

Classes

struct  EcalTBH2TDCRanges
 

Public Member Functions

 EcalTBH2TDCRecInfoAlgo ()
 
 EcalTBH2TDCRecInfoAlgo (const std::vector< EcalTBH2TDCRanges > &tdcZero)
 
EcalTBTDCRecInfo reconstruct (const int &runNumber, const HcalTBTiming &TDCRawInfo) const
 
 ~EcalTBH2TDCRecInfoAlgo ()
 

Private Attributes

int actualRange_
 
int actualRun_
 
bool tdcRangeErrorMessageAlreadyDisplayed_
 
std::vector< EcalTBH2TDCRangestdcZeros_
 

Detailed Description

Definition at line 10 of file EcalTBH2TDCRecInfoAlgo.h.

Constructor & Destructor Documentation

EcalTBH2TDCRecInfoAlgo::EcalTBH2TDCRecInfoAlgo ( )
inline

Definition at line 12 of file EcalTBH2TDCRecInfoAlgo.h.

EcalTBH2TDCRecInfoAlgo::EcalTBH2TDCRecInfoAlgo ( const std::vector< EcalTBH2TDCRanges > &  tdcZero)
explicit
EcalTBH2TDCRecInfoAlgo::~EcalTBH2TDCRecInfoAlgo ( )
inline

Definition at line 21 of file EcalTBH2TDCRecInfoAlgo.h.

21 {};

Member Function Documentation

EcalTBTDCRecInfo EcalTBH2TDCRecInfoAlgo::reconstruct ( const int &  runNumber,
const HcalTBTiming TDCRawInfo 
) const

tdcRangeErrorMessageAlreadyDisplayed_ &&

Definition at line 11 of file EcalTBH2TDCRecInfoAlgo.cc.

References actualRange_, actualRun_, HcalTBTiming::BeamCoincidenceCount(), HcalTBTiming::BeamCoincidenceHits(), mps_fire::i, hltrates_dqm_sourceclient-live_cfg::offset, convertSQLiteXML::runNumber, tdcRangeErrorMessageAlreadyDisplayed_, Ecal2006TBH2TDCRanges_v0_cff::tdcZero, tdcZeros_, and HcalTBTiming::ttcL1Atime().

Referenced by EcalTBH2TDCRecInfoProducer::produce().

11  {
12  if (actualRun_ != runNumber) {
14  actualRange_ = -1;
15  for (unsigned int i = 0; i < tdcZeros_.size(); i++)
16  if (runNumber <= tdcZeros_[i].runRanges.second && runNumber >= tdcZeros_[i].runRanges.first)
17  actualRange_ = i;
18 
19  if (actualRange_ == -1) {
20  edm::LogError("TDCRange not found") << "TDC range not found";
21  return EcalTBTDCRecInfo(-1);
22  }
23  }
24 
25  int ntdc = TDCRawInfo.BeamCoincidenceCount();
26  edm::LogInfo("") << "EcalTBH2TDCRecInfoAlgo::reconstruct # tdc hits: " << ntdc << std::endl;
27  ;
28  if (ntdc > 1) {
29  for (int i = 0; i < ntdc; ++i) {
30  edm::LogInfo("") << "hit i: " << i << " tdc: " << TDCRawInfo.BeamCoincidenceHits(i) << std::endl;
31  }
32  }
33 
34  if (ntdc == 0) {
35  edm::LogError("NoTDCHits") << "no TDC hits. TDC info not reliable" << std::endl;
36  return EcalTBTDCRecInfo(-999.);
37  }
38 
39  //double tdcd = TDCRawInfo.ttcL1Atime() - TDCRawInfo.beamCoincidence();
40  double tdcd = TDCRawInfo.ttcL1Atime() - TDCRawInfo.BeamCoincidenceHits(0);
41 
42  if (
43  (tdcd < tdcZeros_[actualRange_].tdcZero - 1 || tdcd > tdcZeros_[actualRange_].tdcZero + 26)) {
44  edm::LogError("TDCOutOfRange") << " ============================\n"
45  << " tdc value out of range = " << tdcd
46  << " tdcZero = " << tdcZeros_[actualRange_].tdcZero << "\n"
47  << " ============================\n"
48  << std::endl;
50  return EcalTBTDCRecInfo(-999.);
51  }
52 
53  double offset = ((double)tdcd - (double)tdcZeros_[actualRange_].tdcZero) / 25.; //
54  // if (use2004OffsetConvention)
55  // offset = (1. - offset) ;
56  return EcalTBTDCRecInfo(offset);
57 }
Log< level::Error, false > LogError
double ttcL1Atime() const
Returns the Level 1 Accept time in ns.
Definition: HcalTBTiming.h:27
double BeamCoincidenceHits(int index) const
Returns the indexed hit time from Beam Coincidence.
Definition: HcalTBTiming.h:71
Log< level::Info, false > LogInfo
int BeamCoincidenceCount() const
Returns the number of hits from Beam Coincidence.
Definition: HcalTBTiming.h:44
std::vector< EcalTBH2TDCRanges > tdcZeros_

Member Data Documentation

int EcalTBH2TDCRecInfoAlgo::actualRange_
mutableprivate

Definition at line 29 of file EcalTBH2TDCRecInfoAlgo.h.

Referenced by reconstruct().

int EcalTBH2TDCRecInfoAlgo::actualRun_
mutableprivate

Definition at line 28 of file EcalTBH2TDCRecInfoAlgo.h.

Referenced by reconstruct().

bool EcalTBH2TDCRecInfoAlgo::tdcRangeErrorMessageAlreadyDisplayed_
mutableprivate

Definition at line 27 of file EcalTBH2TDCRecInfoAlgo.h.

Referenced by reconstruct().

std::vector<EcalTBH2TDCRanges> EcalTBH2TDCRecInfoAlgo::tdcZeros_
private

Definition at line 26 of file EcalTBH2TDCRecInfoAlgo.h.

Referenced by reconstruct().