#include <RecoTBCalo/EcalTBTDCReconstructor/interface/EcalTBTDCRecInfoAlgo.h>
Public Member Functions | |
EcalTBTDCRecInfoAlgo (const std::vector< EcalTBTDCRanges > &tdcRanges) | |
EcalTBTDCRecInfoAlgo () | |
EcalTBTDCRecInfo | reconstruct (const EcalTBTDCRawInfo &TDCRawInfo, const EcalTBEventHeader &eventHeader, bool use2004OffsetConvention) const |
~EcalTBTDCRecInfoAlgo () | |
Private Attributes | |
int | actualRange_ |
int | actualRun_ |
bool | tdcRangeErrorMessageAlreadyDisplayed_ |
std::vector< EcalTBTDCRanges > | tdcRanges_ |
Classes | |
struct | EcalTBTDCRanges |
Definition at line 11 of file EcalTBTDCRecInfoAlgo.h.
EcalTBTDCRecInfoAlgo::EcalTBTDCRecInfoAlgo | ( | ) | [inline] |
Definition at line 17 of file EcalTBTDCRecInfoAlgo.h.
00017 : tdcRangeErrorMessageAlreadyDisplayed_(false) {};
EcalTBTDCRecInfoAlgo::EcalTBTDCRecInfoAlgo | ( | const std::vector< EcalTBTDCRanges > & | tdcRanges | ) | [explicit] |
Definition at line 7 of file EcalTBTDCRecInfoAlgo.cc.
00007 : 00008 tdcRanges_(tdcRanges), tdcRangeErrorMessageAlreadyDisplayed_(false), actualRun_(-1) , actualRange_(-1) 00009 { 00010 00011 }
EcalTBTDCRecInfoAlgo::~EcalTBTDCRecInfoAlgo | ( | ) | [inline] |
EcalTBTDCRecInfo EcalTBTDCRecInfoAlgo::reconstruct | ( | const EcalTBTDCRawInfo & | TDCRawInfo, | |
const EcalTBEventHeader & | eventHeader, | |||
bool | use2004OffsetConvention | |||
) | const |
Definition at line 13 of file EcalTBTDCRecInfoAlgo.cc.
References actualRange_, actualRun_, GenMuonPlsPt100GeV_cfg::cout, EcalTBEventHeader::dbEventType(), lat::endl(), i, offset, EcalTBEventHeader::runNumber(), Ecal2006TBTDCRanges_v1_cff::tdcMax, Ecal2006TBTDCRanges_v1_cff::tdcMin, tdcRangeErrorMessageAlreadyDisplayed_, and tdcRanges_.
Referenced by EcalTBTDCRecInfoProducer::produce().
00014 { 00015 if (actualRun_ != eventHeader.runNumber() ) 00016 { 00017 actualRun_ = eventHeader.runNumber(); 00018 actualRange_ = -1; 00019 for (unsigned int i=0; i<tdcRanges_.size();i++) 00020 if ( eventHeader.runNumber() <= tdcRanges_[i].runRanges.second && eventHeader.runNumber() >= tdcRanges_[i].runRanges.first ) 00021 actualRange_ = i; 00022 00023 if (actualRange_ == -1) 00024 { 00025 edm::LogError("TDCRange not found") << "TDC range not found"; 00026 return EcalTBTDCRecInfo(-1); 00027 } 00028 } 00029 00030 int eventType; 00031 eventType=( (eventHeader.dbEventType() == 0) ? 0 : (eventHeader.dbEventType()-1)); 00032 00033 int tdcd = TDCRawInfo[0].tdcValue(); 00034 00035 if( !tdcRangeErrorMessageAlreadyDisplayed_ 00036 && (tdcd < tdcRanges_[actualRange_].tdcMin[eventType] || tdcd > tdcRanges_[actualRange_].tdcMax[eventType]) ){ 00037 std::cout << " ============================" <<std::endl; 00038 std::cout << " Event type: " << eventType << std::endl; 00039 std::cout << " TDC values not correctly set Raw TDC = "<< tdcd 00040 << " (Min/Max = "<< tdcRanges_[actualRange_].tdcMin[eventType] << "/" << tdcRanges_[actualRange_].tdcMax[eventType] 00041 << std::endl; 00042 std::cout << " ============================" <<std::endl; 00043 tdcRangeErrorMessageAlreadyDisplayed_ = true; 00044 } 00045 00046 double offset = ( (double)tdcd - (double)tdcRanges_[actualRange_].tdcMin[eventType] ) 00047 / ((double)tdcRanges_[actualRange_].tdcMax[eventType]-(double)tdcRanges_[actualRange_].tdcMin[eventType]); 00048 if (use2004OffsetConvention) 00049 offset = (1. - offset) ; 00050 return EcalTBTDCRecInfo(offset); 00051 }
int EcalTBTDCRecInfoAlgo::actualRange_ [mutable, private] |
int EcalTBTDCRecInfoAlgo::actualRun_ [mutable, private] |
bool EcalTBTDCRecInfoAlgo::tdcRangeErrorMessageAlreadyDisplayed_ [mutable, private] |
std::vector<EcalTBTDCRanges> EcalTBTDCRecInfoAlgo::tdcRanges_ [private] |