#include <CandDeadChipHandle.h>
Public Member Functions | |
CandDeadChipHandle () | |
CandDeadChipHandle (const CandDeadChipHandle &rhs) | |
CandDeadChipHandle (CandDeadChip *candidate) | |
virtual | ~CandDeadChipHandle () |
virtual CandDeadChipHandle * | DupHandle () const |
Int_t | GetEntries () const |
RawChannelId | GetChannelId () const |
Int_t | GetAdc () const |
Int_t | GetTdc () const |
Int_t | GetTdc0 () const |
Int_t | GetErrorCode () const |
Int_t | GetTriggerRate () const |
CandDeadChip::ChipStatus_t | GetChipStatus () const |
void | SetChannelId (RawChannelId rawch) |
void | SetAdc (Int_t adc) |
void | SetTdc (Int_t tdc) |
void | SetTdc0 (Int_t tdc0) |
void | SetErrorCode (Int_t errcode) |
void | SetTriggerRate (Int_t trigrate) |
void | SetChipStatus (CandDeadChip::ChipStatus_t status) |
Bool_t | IsSameChip (RawChannelId rawch) const |
void | AddRawChip (RawChip *chip) |
Private Member Functions | |
void | AddEntry () |
ClassDef (CandDeadChipHandle, 1) |
Definition at line 10 of file CandDeadChipHandle.h.
CandDeadChipHandle::CandDeadChipHandle | ( | ) |
Definition at line 6 of file CandDeadChipHandle.cxx.
Referenced by DupHandle().
CandDeadChipHandle::CandDeadChipHandle | ( | const CandDeadChipHandle & | rhs | ) |
Definition at line 11 of file CandDeadChipHandle.cxx.
00011 : 00012 CandHandle(cdh) 00013 { 00014 00015 } CandDeadChipHandle::CandDeadChipHandle(CandDeadChip* cd) :
CandDeadChipHandle::CandDeadChipHandle | ( | CandDeadChip * | candidate | ) |
Definition at line 16 of file CandDeadChipHandle.cxx.
00016 : 00017 CandHandle(cd) 00018 { 00019 00020 }
CandDeadChipHandle::~CandDeadChipHandle | ( | ) | [virtual] |
Definition at line 22 of file CandDeadChipHandle.cxx.
void CandDeadChipHandle::AddEntry | ( | ) | [private] |
Definition at line 182 of file CandDeadChipHandle.cxx.
References CandHandle::GetOwnedCandBase().
Referenced by AddRawChip().
00183 { 00184 dynamic_cast<CandDeadChip*>(GetOwnedCandBase())->fEntries++; 00185 }
void CandDeadChipHandle::AddRawChip | ( | RawChip * | chip | ) |
Definition at line 129 of file CandDeadChipHandle.cxx.
References AddEntry(), RawChip::GetAdc(), GetAdc(), RawChip::GetChannelId(), GetChipStatus(), RawChip::GetChipStatus(), RawChip::GetErrorCode(), RawChip::GetTdc(), GetTdc(), GetTdc0(), CandDeadChip::kBad, RawChip::kBusy, CandDeadChip::kBusy, CandDeadChip::kCold, RawChip::kCold, CandDeadChip::kError, RawChip::kError, RawChip::kHot, CandDeadChip::kHot, SetAdc(), SetChannelId(), SetChipStatus(), SetErrorCode(), SetTdc(), SetTdc0(), and SetTriggerRate().
Referenced by AlgDeadChip::RunAlg().
00130 { 00131 00132 // Set the TDC, ADC and Channel ID 00133 // (choose the chip with the latest time) 00134 Int_t newadc=chip->GetAdc(); 00135 Int_t newtdc=chip->GetTdc(); 00136 if(this->GetTdc()<0 || chip->GetTdc()>=this->GetTdc()){ 00137 this->SetChannelId(chip->GetChannelId()); 00138 if( chip->GetTdc()==this->GetTdc() ) this->SetAdc(this->GetAdc()+newadc); 00139 if( chip->GetTdc()>this->GetTdc() ) this->SetAdc(newadc); 00140 this->SetTdc(newtdc); 00141 } 00142 00143 // Record TDC0 (the earliest TDC value) 00144 if(this->GetTdc0()<0 || chip->GetTdc()<this->GetTdc0()){ 00145 this->SetTdc0(newtdc); 00146 } 00147 00148 // Set the chip status 00149 // (set status bits and also any error codes or trigger rates) 00150 CandDeadChip::ChipStatus_t mystatus = this->GetChipStatus(); 00151 RawChip::ChipStatus_t newstatus = chip->GetChipStatus(); 00152 00153 if(newstatus==RawChip::kCold){ 00154 mystatus=(CandDeadChip::ChipStatus_t)(mystatus|CandDeadChip::kBad); 00155 mystatus=(CandDeadChip::ChipStatus_t)(mystatus|CandDeadChip::kCold); 00156 this->SetTriggerRate(chip->GetErrorCode()); 00157 } 00158 00159 if(newstatus==RawChip::kHot){ 00160 mystatus=(CandDeadChip::ChipStatus_t)(mystatus|CandDeadChip::kBad); 00161 mystatus=(CandDeadChip::ChipStatus_t)(mystatus|CandDeadChip::kHot); 00162 this->SetTriggerRate(chip->GetErrorCode()); 00163 } 00164 00165 if(newstatus==RawChip::kBusy){ 00166 mystatus=(CandDeadChip::ChipStatus_t)(mystatus|CandDeadChip::kBad); 00167 mystatus=(CandDeadChip::ChipStatus_t)(mystatus|CandDeadChip::kBusy); 00168 00169 } 00170 00171 if(newstatus==RawChip::kError){ 00172 mystatus=(CandDeadChip::ChipStatus_t)(mystatus|CandDeadChip::kBad); 00173 mystatus=(CandDeadChip::ChipStatus_t)(mystatus|CandDeadChip::kError); 00174 this->SetErrorCode(chip->GetErrorCode()); 00175 } 00176 00177 this->SetChipStatus(mystatus); 00178 this->AddEntry(); 00179 00180 }
CandDeadChipHandle::ClassDef | ( | CandDeadChipHandle | , | |
1 | ||||
) | [private] |
CandDeadChipHandle * CandDeadChipHandle::DupHandle | ( | ) | const [virtual] |
Reimplemented from CandHandle.
Definition at line 27 of file CandDeadChipHandle.cxx.
References CandDeadChipHandle().
00028 { 00029 return new CandDeadChipHandle(*this); 00030 }
Int_t CandDeadChipHandle::GetAdc | ( | ) | const |
Definition at line 42 of file CandDeadChipHandle.cxx.
References CandHandle::GetCandBase().
Referenced by AddRawChip(), and AlgDeadChip::RunAlg().
00043 { 00044 return dynamic_cast<const CandDeadChip*>(GetCandBase())->fAdc; 00045 }
RawChannelId CandDeadChipHandle::GetChannelId | ( | ) | const |
Definition at line 37 of file CandDeadChipHandle.cxx.
References CandHandle::GetCandBase().
Referenced by IsSameChip(), and AlgDeadChip::RunAlg().
00038 { 00039 return dynamic_cast<const CandDeadChip*>(GetCandBase())->fRawChannelId; 00040 }
CandDeadChip::ChipStatus_t CandDeadChipHandle::GetChipStatus | ( | ) | const |
Definition at line 67 of file CandDeadChipHandle.cxx.
References CandHandle::GetCandBase().
Referenced by AddRawChip(), and AlgDeadChip::RunAlg().
00068 { 00069 return dynamic_cast<const CandDeadChip*>(GetCandBase())->fStatus; 00070 }
Int_t CandDeadChipHandle::GetEntries | ( | ) | const |
Definition at line 32 of file CandDeadChipHandle.cxx.
References CandHandle::GetCandBase().
Referenced by AlgDeadChip::RunAlg().
00033 { 00034 return dynamic_cast<const CandDeadChip*>(GetCandBase())->fEntries; 00035 }
Int_t CandDeadChipHandle::GetErrorCode | ( | ) | const |
Definition at line 57 of file CandDeadChipHandle.cxx.
References CandHandle::GetCandBase().
Referenced by AlgDeadChip::RunAlg().
00058 { 00059 return dynamic_cast<const CandDeadChip*>(GetCandBase())->fErrorCode; 00060 }
Int_t CandDeadChipHandle::GetTdc | ( | ) | const |
Definition at line 47 of file CandDeadChipHandle.cxx.
References CandHandle::GetCandBase().
Referenced by AddRawChip(), and AlgDeadChip::RunAlg().
00048 { 00049 return dynamic_cast<const CandDeadChip*>(GetCandBase())->fTdc; 00050 }
Int_t CandDeadChipHandle::GetTdc0 | ( | ) | const |
Definition at line 52 of file CandDeadChipHandle.cxx.
References CandHandle::GetCandBase().
Referenced by AddRawChip().
00053 { 00054 return dynamic_cast<const CandDeadChip*>(GetCandBase())->fTdc0; 00055 }
Int_t CandDeadChipHandle::GetTriggerRate | ( | ) | const |
Definition at line 62 of file CandDeadChipHandle.cxx.
References CandHandle::GetCandBase().
Referenced by AlgDeadChip::RunAlg().
00063 { 00064 return dynamic_cast<const CandDeadChip*>(GetCandBase())->fTriggerRate; 00065 }
Bool_t CandDeadChipHandle::IsSameChip | ( | RawChannelId | rawch | ) | const |
Definition at line 107 of file CandDeadChipHandle.cxx.
References GetChannelId(), RawChannelId::GetCrate(), RawChannelId::GetElecType(), RawChannelId::GetMaster(), RawChannelId::GetMenu(), RawChannelId::GetMinder(), RawChannelId::GetVaAdcSel(), RawChannelId::GetVaChip(), RawChannelId::GetVarcId(), RawChannelId::GetVmm(), ElecType::kQIE, and ElecType::kVA.
00108 { 00109 Bool_t issamechip=0; 00110 00111 RawChannelId myrawch = this->GetChannelId(); 00112 00113 if( myrawch.GetElecType()==ElecType::kVA && rawch.GetElecType()==ElecType::kVA 00114 && myrawch.GetCrate()==rawch.GetCrate() 00115 && myrawch.GetVarcId()==rawch.GetVarcId() 00116 && myrawch.GetVmm()==rawch.GetVmm() 00117 && myrawch.GetVaAdcSel()==rawch.GetVaAdcSel() 00118 && myrawch.GetVaChip()==rawch.GetVaChip() ) issamechip=1; 00119 00120 if( myrawch.GetElecType()==ElecType::kQIE && rawch.GetElecType()==ElecType::kQIE 00121 && myrawch.GetCrate()==rawch.GetCrate() 00122 && myrawch.GetMaster()==rawch.GetMaster() 00123 && myrawch.GetMinder()==rawch.GetMinder() 00124 && myrawch.GetMenu()==rawch.GetMenu() ) issamechip=1; 00125 00126 return issamechip; 00127 }
void CandDeadChipHandle::SetAdc | ( | Int_t | adc | ) |
Definition at line 77 of file CandDeadChipHandle.cxx.
References CandHandle::GetOwnedCandBase().
Referenced by AddRawChip().
00078 { 00079 dynamic_cast<CandDeadChip*>(GetOwnedCandBase())->fAdc=adc; 00080 }
void CandDeadChipHandle::SetChannelId | ( | RawChannelId | rawch | ) |
Definition at line 72 of file CandDeadChipHandle.cxx.
References CandHandle::GetOwnedCandBase().
Referenced by AddRawChip().
00073 { 00074 dynamic_cast<CandDeadChip*>(GetOwnedCandBase())->fRawChannelId=rawch; 00075 }
void CandDeadChipHandle::SetChipStatus | ( | CandDeadChip::ChipStatus_t | status | ) |
Definition at line 102 of file CandDeadChipHandle.cxx.
References CandHandle::GetOwnedCandBase().
Referenced by AddRawChip().
00103 { 00104 dynamic_cast<CandDeadChip*>(GetOwnedCandBase())->fStatus=status; 00105 }
void CandDeadChipHandle::SetErrorCode | ( | Int_t | errcode | ) |
Definition at line 92 of file CandDeadChipHandle.cxx.
References CandHandle::GetOwnedCandBase().
Referenced by AddRawChip().
00093 { 00094 dynamic_cast<CandDeadChip*>(GetOwnedCandBase())->fErrorCode=errcode; 00095 }
void CandDeadChipHandle::SetTdc | ( | Int_t | tdc | ) |
Definition at line 82 of file CandDeadChipHandle.cxx.
References CandHandle::GetOwnedCandBase().
Referenced by AddRawChip().
00083 { 00084 dynamic_cast<CandDeadChip*>(GetOwnedCandBase())->fTdc=tdc; 00085 }
void CandDeadChipHandle::SetTdc0 | ( | Int_t | tdc0 | ) |
Definition at line 87 of file CandDeadChipHandle.cxx.
References CandHandle::GetOwnedCandBase().
Referenced by AddRawChip().
00088 { 00089 dynamic_cast<CandDeadChip*>(GetOwnedCandBase())->fTdc0=tdc0; 00090 }
void CandDeadChipHandle::SetTriggerRate | ( | Int_t | trigrate | ) |
Definition at line 97 of file CandDeadChipHandle.cxx.
References CandHandle::GetOwnedCandBase().
Referenced by AddRawChip().
00098 { 00099 dynamic_cast<CandDeadChip*>(GetOwnedCandBase())->fTriggerRate=trigrate; 00100 }