58 double phi=fabs(phiUpper+phiLower)/2.0;
63 unsigned int iPhi = int((
phi - phiBinning.getStart())/phiBinning.getDelta()) + phiBinning.getFirstDivisionNumber();
64 unsigned int iEta = etaBinning.getFirstDivisionNumber();
65 unsigned int lastDivision=etaBinning.getFirstDivisionNumber()+etaBinning.getNumDivisions();
66 while (iEta<lastDivision) {
67 double etaMax=etaBinning.binUpper(iEta);
68 double etaMin=etaBinning.binLower(iEta);
69 if (
eta>etaMin &&
eta<etaMax)
break;
72 if (iEta==lastDivision)
throw std::runtime_error (
"Error in EMBCell: Presampler HV not found");
88 double phi=fabs(phiUpper+phiLower)/2.0;
91 unsigned int iEta = int((
eta - etaBinning.getStart())/etaBinning.getDelta()) + etaBinning.getFirstDivisionNumber();
92 unsigned int iPhi = int((
phi - phiBinning.getStart())/phiBinning.getDelta()) + phiBinning.getFirstDivisionNumber();
93 unsigned int iSector = int(2.0*(
phi - phiBinning.binLower(iPhi))/phiBinning.getDelta());
99 double dPhi = fabs((phiUpper-phiLower));
100 double phi0 = (iSide==1) ?
M_PI/1024 : -(
M_PI)/1024;
101 double sPhi = phiLower-hvMod.
getPhiMin() + phi0;
102 unsigned int iOffset=int(sPhi*(M_1_PI/2*1024.)+0.5);
103 unsigned int N =int(dPhi*(M_1_PI/2*1024.)+0.5);
106 for (
unsigned int iElectrode=iOffset;iElectrode<iOffset+N;iElectrode++) {
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
GeoIntrusivePtr< const EMBHVPathologies > EMBHVPathologiesConstLink
double getPhiMinNominal() const
returns a nominal phi min in global coords; assume canonical placement
unsigned int getEndcapIndex() const
The Side Index of this Cell (0=negatiive, 1=positive)
const EMBHVPathologiesConstLink & getHVPathologies(unsigned int i) const
@Get HVPathologies
void initHV(HVInfo &hvinfo) const
unsigned int getNumElectrodes() const
@Get num electrodes
unsigned int getNumHVPathologies() const
@Get num HVPathologies
double getEtaMin() const
Minimum Eta.
const HVInfo & getHVInfo() const
CxxUtils::CachedValue< HVInfo > m_hvinfo
const EMBHVElectrode & getElectrode(unsigned int i) const
@Get electrode
const EMBDetDescr * getDescriptor() const
Returns a pointer to the descriptor.
double getEtaMax() const
Maximum Eta.
void addHVPathologies(const EMBHVPathologiesConstLink &)
@Add HVPathologies
double getPhiLocalUpper() const
Gets the phi value at the "upper" edge of a cell.
unsigned int getSamplingIndex() const
The sampling index of this cell.
const EMBPresamplerHVModule & getPresamplerHVModule() const
@Get HVModule (presampler cells)
double getPhiMaxNominal() const
returns a nominal phi max in global coords; assume canonical placement
std::vector< EMBHVPathologiesConstLink > m_hvPathologies
double getPhiLocalLower() const
Gets the phi value at the "lower" edge of a cell.
const EMBDetectorManager * getManager() const
The manager.
const EMBPresamplerHVManager & getPresamplerHVManager() const
Get the HV Manager (Presampler)
const EMBHVManager & getHVManager() const
Get the HV Manager.
const CellBinning & getEtaBinning() const
const CellBinning & getPhiBinning() const
This class provides direct access to information on the HV electrodes within the barrels.
const EMBHVDescriptor & getDescriptor() const
const EMBHVModule & getHVModule(unsigned int iSide, unsigned int iEta, unsigned int iPhi, unsigned int iSector) const
Describes one HV Module within the EMB.
const EMBHVElectrode & getElectrode(unsigned int iElectrode) const
const CellPartitioning & getEtaPartitioning() const
const CellBinning & getPhiBinning() const
This class provides direct access to information on the HV electrodes within the barrels.
const EMBPresamplerHVModule & getHVModule(unsigned int iSide, unsigned int iEta, unsigned int iPhi) const
const EMBPresamplerHVDescriptor * getDescriptor() const
Describes one HV Module within the EMB Presampler.
const EMBPresamplerHVModule * m_presamplerModule
std::vector< const EMBHVElectrode * > m_electrode