CMS 3D CMS Logo

EcalTBTDCRecInfoAlgo.cc
Go to the documentation of this file.
3 
4 #include <list>
5 #include <iostream>
6 
7 EcalTBTDCRecInfoAlgo::EcalTBTDCRecInfoAlgo(const std::vector<EcalTBTDCRanges>& tdcRanges) :
8  tdcRanges_(tdcRanges), tdcRangeErrorMessageAlreadyDisplayed_(false), actualRun_(-1) , actualRange_(-1)
9 {
10 
11 }
12 
14 {
15  if (actualRun_ != eventHeader.runNumber() )
16  {
17  actualRun_ = eventHeader.runNumber();
18  actualRange_ = -1;
19  for (unsigned int i=0; i<tdcRanges_.size();i++)
20  if ( eventHeader.runNumber() <= tdcRanges_[i].runRanges.second && eventHeader.runNumber() >= tdcRanges_[i].runRanges.first )
21  actualRange_ = i;
22 
23  if (actualRange_ == -1)
24  {
25  edm::LogError("TDCRange not found") << "TDC range not found";
26  return EcalTBTDCRecInfo(-1);
27  }
28  }
29 
30  int eventType;
31  eventType=( (eventHeader.dbEventType() == 0) ? 0 : (eventHeader.dbEventType()-1));
32 
33  int tdcd = TDCRawInfo[0].tdcValue();
34 
36  && (tdcd < tdcRanges_[actualRange_].tdcMin[eventType] || tdcd > tdcRanges_[actualRange_].tdcMax[eventType]) ){
37  std::cout << " ============================" <<std::endl;
38  std::cout << " Event type: " << eventType << std::endl;
39  std::cout << " TDC values not correctly set Raw TDC = "<< tdcd
40  << " (Min/Max = "<< tdcRanges_[actualRange_].tdcMin[eventType] << "/" << tdcRanges_[actualRange_].tdcMax[eventType]
41  << std::endl;
42  std::cout << " ============================" <<std::endl;
44  }
45 
46  double offset = ( (double)tdcd - (double)tdcRanges_[actualRange_].tdcMin[eventType] )
47  / ((double)tdcRanges_[actualRange_].tdcMax[eventType]-(double)tdcRanges_[actualRange_].tdcMin[eventType]);
48  if (use2004OffsetConvention)
49  offset = (1. - offset) ;
50  return EcalTBTDCRecInfo(offset);
51 }
52 
int i
Definition: DBlmapReader.cc:9
EcalTBTDCRecInfo reconstruct(const EcalTBTDCRawInfo &TDCRawInfo, const EcalTBEventHeader &eventHeader, bool use2004OffsetConvention) const
std::vector< EcalTBTDCRanges > tdcRanges_
int runNumber() const
int dbEventType() const
Returns the event type as in the H4ROOTDB.