#include "CbmTrdParAsic.h" #include #include //___________________________________________________________________ CbmTrdParAsic::CbmTrdParAsic(Int_t address, Int_t FebGrouping, Double_t x, Double_t y, Double_t z) : CbmTrdParMod("CbmTrdParAsic", "TRD ASIC definition") ,fAddress(address) ,fX(x) ,fY(y) ,fZ(z) ,fFebGrouping(FebGrouping) ,fChannelAddresses() { } //___________________________________________________________________ void CbmTrdParAsic::Print(Option_t* opt) const { printf("%s @ %d pos[%5.2f %5.2f]\n", (opt?opt:GetName()), fAddress, fX, fY); } //___________________________________________________________________ Int_t CbmTrdParAsic::QueryChannel(Int_t chAddress) const { Int_t ich(0); for(std::vector::const_iterator it=fChannelAddresses.begin(); it!=fChannelAddresses.end(); it++, ich++){ if(chAddress == (*it)) return ich; } return -1; } //___________________________________________________________________ void CbmTrdParAsic::SetChannelAddress(Int_t address) { if(QueryChannel(address)>=0){ LOG(warn) << GetName() << "::SetChannelAddress : pad address " << address << " already allocated"; return; } fChannelAddresses.push_back(address); } //___________________________________________________________________ void CbmTrdParAsic::SetChannelAddresses(std::vector addresses) { Int_t nofChannels = addresses.size(); if (nofChannels != GetNchannels()){ LOG(warn) << GetName() << "::SetChannelAddresses : input N channels:" << nofChannels << "differs from definition "<< GetNchannels() << ". Input will be truncated."; } for (Int_t i = 0; i < TMath::Min(nofChannels, GetNchannels()); i++) SetChannelAddress(addresses[i]); addresses.clear(); } ClassImp(CbmTrdParAsic)