6#include "Gaudi/Property.h"
7#include "GaudiKernel/MsgStream.h"
8#include "GaudiKernel/NTuple.h"
29#include "GaudiKernel/ThreadLocalContext.h"
32 LArHV2Ntuple:: LArHV2Ntuple(
const std::string& name, ISvcLocator* pSvcLocator):
66 m_tree =
new TTree(
"mytree",
"Calo Noise ntuple");
89 return StatusCode::SUCCESS;
95 const EventContext& ctx = Gaudi::Hive::currentContext();
101 std::vector<const CondAttrListCollection*> attrLists;
105 attrLists.push_back (*attrList);
110 const EMBHVManager& hvManager_EMB=manager->getEMBHVManager();
125 const HECHVManager& hvManager_HEC=manager->getHECHVManager();
128 const FCALHVManager& hvManager_FCAL=manager->getFCALHVManager();
136 return StatusCode::FAILURE;
142 std::vector<Identifier>::const_iterator cell_b=
m_caloId->cell_begin();
143 std::vector<Identifier>::const_iterator cell_e=
m_caloId->cell_end();
144 for(;cell_b!=cell_e; ++cell_b) {
145 if(
m_caloId->is_tile(*cell_b))
continue;
146 HWIdentifier onlid = cabling->createSignalChannelID(*cell_b);
147 std::vector<int> hvlines =
GetHVLines (hvdata_EMB,
156 for(
unsigned i=0; i<hvlines.size(); ++i ) {
158 std::vector<HWIdentifier>
vec;
159 vec.push_back(onlid);
174 for (
unsigned int ielec=0;ielec<32;ielec++) {
176 for (
unsigned int iGap=0;iGap<2;iGap++) {
177 float hv = hvdata_EMB.
voltage (electrode, iGap);
178 float current = hvdata_EMB.
current (electrode, iGap);
213 for (
int iGap=0;iGap<2;iGap++) {
214 float hv = hvdata_EMBPS.
voltage (hvMod, iGap);
215 float current = hvdata_EMBPS.
current (hvMod, iGap);
248 for (
int iGap=0;iGap<2;iGap++) {
249 float hv = hvdata_EMECPS.
voltage (hvMod, iGap);
250 float current = hvdata_EMECPS.
current (hvMod, iGap);
289 for (
unsigned int iGap=0;iGap<2;iGap++) {
290 float hv = hvdata_EMEC_OUT.
voltage (electrode, iGap);
291 float current = hvdata_EMEC_OUT.
current (electrode, iGap);
330 for (
unsigned int iGap=0;iGap<2;iGap++) {
331 float hv = hvdata_EMEC_IN.
voltage (electrode, iGap);
332 float current = hvdata_EMEC_IN.
current (electrode, iGap);
363 float etamax_layer[4]={3.3,3.1,3.1,3.3};
364 float etamin_layer[4]={1.5,1.5,1.6,1.7};
370 float eta_min,eta_max;
372 eta_min = etamin_layer[iSampling];
373 eta_max = etamax_layer[iSampling];
375 eta_min = -1.*etamax_layer[iSampling];
376 eta_max = -1.*etamin_layer[iSampling];
378 float eta = 0.5*(eta_min+eta_max);
384 float hv = hvdata_HEC.
voltage (subgap);
385 float current = hvdata_HEC.
current (subgap);
386 m_bec = 10+iSampling;
411 float eta_min=3.1,eta_max=4.9;
412 if (iSide==0) { eta_min=-4.9; eta_max=-3.1; }
414 float eta = 0.5*(eta_min+eta_max);
423 float phi_min = ((float)(iSector))*dphi;
426 float phi = 0.5*(phi_min+phi_max);
430 float hv = hvdata_FCAL.
voltage (hvline);
431 float current = hvdata_FCAL.
current (hvline);
432 m_bec = 14+iSampling;
456 return StatusCode::SUCCESS;
473 if (abs(
m_caloId->em_idHelper()->barrel_ec(
id))==1) {
475 if (!embElement) std::abort();
477 unsigned int nelec = cell->getNumElectrodes();
478 for (
unsigned int i=0;i<nelec;i++) {
480 for (
unsigned int igap=0;igap<2;igap++) hv.insert(hvdata_EMB.
hvLineNo(electrode, igap));
484 if (!emecElement) std::abort();
486 unsigned int nelec = cell->getNumElectrodes();
487 for (
unsigned int i=0;i<nelec;i++) {
491 module.getWheelIndex() == EMECHVModule::INNER ?
494 for (
unsigned int igap=0;igap<2;igap++) hv.insert(hvdata.
hvLineNo (electrode, igap));
499 if (!hecElement) std::abort();
501 unsigned int nsubgaps = cell->getNumSubgaps();
502 for (
unsigned int igap=0;igap<nsubgaps;igap++) {
504 hv.insert(hvdata_HEC.
hvLineNo (subgap));
508 if (!fcalElement) std::abort();
511 for (
unsigned int i=0;i<nlines;i++) {
513 if (line) hv.insert(hvdata_FCAL.
hvLineNo (*line));
516 if (abs(
m_caloId->em_idHelper()->barrel_ec(
id))==1) {
518 if (!embElement) std::abort();
521 for (
unsigned int igap=0;igap<2;igap++) hv.insert(hvdata_EMBPS.
hvLineNo (hvmodule, igap));
524 if (!emecElement) std::abort();
527 for (
unsigned int igap=0;igap<2;igap++) hv.insert(hvdata_EMECPS.
hvLineNo (hvmodule, igap));
531 std::vector<int> hvlines;
532 for (std::set<int>::iterator i=hv.begin();i!=hv.end();++i) hvlines.push_back(*i);
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
#define ATH_CHECK
Evaluate an expression and check for errors.
Calo Subsystem specific Detector Elements + Dummy element for testing.
CaloPhiRange class declaration.
std::vector< size_t > vec
This file defines the class for a collection of AttributeLists where each one is associated with a ch...
GeoIntrusivePtr< const EMBCell > EMBCellConstLink
GeoIntrusivePtr< const HECCell > HECCellConstLink
@Class: HECCellConstLink
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
const ServiceHandle< StoreGateSvc > & detStore() const
const CaloDetDescrElement * get_element(const Identifier &cellId) const
get element by its identifier
This class provides the client interface for accessing the detector description information common to...
static double fix(double phi)
LAr EMB Detector Element.
EMBCellConstLink getEMBCell() const
EMB Cell description from LArReadoutGeometry.
int hvLineNo(const EMBHVElectrode &electrode, const int &iGap) const
double voltage(const EMBHVElectrode &electrode, const int &iGap) const
double current(const EMBHVElectrode &electrode, const int &iGap) const
This class provides direct access to information on the HV electrodes within the barrels.
unsigned int beginPhiIndex() const
unsigned int endEtaIndex() const
static unsigned int endSectorIndex()
unsigned int beginEtaIndex() const
static unsigned int beginSectorIndex()
const EMBHVModule & getHVModule(unsigned int iSide, unsigned int iEta, unsigned int iPhi, unsigned int iSector) const
EMBHVData getData(const LArHVIdMapping &hvIdMapping, const std::vector< const CondAttrListCollection * > &attrLists) const
unsigned int endPhiIndex() const
static unsigned int beginSideIndex()
static unsigned int endSideIndex()
Describes one HV Module within the EMB.
const EMBHVElectrode & getElectrode(unsigned int iElectrode) const
double voltage(const EMBPresamplerHVModule &module, const int &iGap) const
double current(const EMBPresamplerHVModule &module, const int &iGap) const
int hvLineNo(const EMBPresamplerHVModule &module, const int &iGap) 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
EMBPresamplerHVData getData(const LArHVIdMapping &hvIdMapping, const std::vector< const CondAttrListCollection * > &attrLists) const
static unsigned int beginSideIndex()
unsigned int endPhiIndex() const
unsigned int beginPhiIndex() const
static unsigned int endSideIndex()
unsigned int endEtaIndex() const
unsigned int beginEtaIndex() const
Describes one HV Module within the EMB Presampler.
Smart Pointer to EMEC Cells.
LAr EMEC Detector Element.
EMECCellConstLink getEMECCell() const
EMEC Cell description from LArReadoutGeometry.
const EMECHVModule & getModule() const
double current(const EMECHVElectrode &electrode, const int &iGap) const
double voltage(const EMECHVElectrode &electrode, const int &iGap) const
int hvLineNo(const EMECHVElectrode &electrode, const int &iGap) const
This class provides direct access to information on the HV electrodes within the EMEC.
unsigned int beginEtaIndex() const
const EMECHVModule & getHVModule(unsigned int iSide, unsigned int iEta, unsigned int iPhi, unsigned int iSector) const
unsigned int beginSectorIndex() const
unsigned int endPhiIndex() const
static unsigned int beginSideIndex()
static unsigned int endSideIndex()
unsigned int endEtaIndex() const
unsigned int endSectorIndex() const
unsigned int beginPhiIndex() const
EMECHVData getData(const LArHVIdMapping &hvIdMapping, const std::vector< const CondAttrListCollection * > &attrLists) const
const EMECHVElectrode & getElectrode(unsigned int iElectrode) const
unsigned int getNumElectrodes() const
double voltage(const EMECPresamplerHVModule &module, const int &iGap) const
double current(const EMECPresamplerHVModule &module, const int &iGap) const
int hvLineNo(const EMECPresamplerHVModule &module, const int &iGap) const
This class provides direct access to information on the HV electrodes within the EMEC.
EMECPresamplerHVData getData(const LArHVIdMapping &hvIdMapping, const std::vector< const CondAttrListCollection * > &attrLists) const
unsigned int beginPhiIndex() const
unsigned int endPhiIndex() const
const EMECPresamplerHVModule & getHVModule(unsigned int iSide, unsigned int iPhi) const
static unsigned int endSideIndex()
static unsigned int beginSideIndex()
Describes one HV Module within the EMEc Presampler.
LAr FCAL Detector Element.
const FCALTile * getFCALTile() const
FCAL Tile description from LArReadoutGeometry.
double current(const FCALHVLine &line) const
double voltage(const FCALHVLine &line) const
int hvLineNo(const FCALHVLine &line) const
This class provides direct access to information on the HV electrodes within the barrels.
static unsigned int beginSideIndex()
static unsigned int endSamplingIndex()
static unsigned int endSideIndex()
static unsigned int beginSectorIndex(unsigned int iSampling)
static unsigned int beginSamplingIndex()
const FCALHVModule & getHVModule(unsigned int iSide, unsigned int iSector, unsigned int iSampling) const
static unsigned int endSectorIndex(unsigned int iSampling)
FCALHVData getData(const LArHVIdMapping &hvIdMapping, const std::vector< const CondAttrListCollection * > &attrLists) const
Describes one HV Module within the FCAL.
const FCALHVLine & getHVLine(unsigned int iLine) const
static unsigned int getNumHVLines()
A tile of the forward calorimeter readout geometry.
static unsigned int getNumHVLines()
Get num hvlines.
LAr HEC Detector Element.
HECCellConstLink getHECCell() const
HEC Cell description from LArReadoutGeometry.
double current(const HECHVSubgap &subgap) const
int hvLineNo(const HECHVSubgap &subgap) const
double voltage(const HECHVSubgap &subgap) const
This class provides direct access to information on the HV electrodes within the barrels.
static unsigned int beginPhiIndex()
static unsigned int endSamplingIndex()
const HECHVModule & getHVModule(unsigned int iSide, unsigned int iPhi, unsigned int iSampling) const
static unsigned int endSideIndex()
HECHVData getData(const LArHVIdMapping &hvIdMapping, const std::vector< const CondAttrListCollection * > &attrLists) const
static unsigned int beginSideIndex()
static unsigned int beginSamplingIndex()
static unsigned int endPhiIndex()
Describes one HV Module within the HEC.
const HECHVSubgap & getSubgap(unsigned int iElectrode) const
static unsigned int getNumSubgaps()
std::vector< int > GetHVLines(const EMBHVManager::EMBHVData &hvdata_EMB, const EMBPresamplerHVManager::EMBPresamplerHVData &hvdata_EMBPS, const EMECHVManager::EMECHVData &hvdata_EMEC_OUT, const EMECHVManager::EMECHVData &hvdata_EMEC_IN, const EMECPresamplerHVManager::EMECPresamplerHVData &hvdata_EMECPS, const HECHVManager::HECHVData &hvdata_HEC, const FCALHVManager::FCALHVData &hvdata_FCAL, const Identifier &id, const CaloDetDescrManager *calodetdescrmgr)
ServiceHandle< ITHistSvc > m_thistSvc
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloMgrKey
virtual ~LArHV2Ntuple()
Default Destructor.
std::map< int, std::vector< HWIdentifier > > m_hvonlId_map
virtual StatusCode initialize() override
standard Athena-Algorithm method
SG::ReadCondHandleKeyArray< CondAttrListCollection > m_DCSFolderKeys
virtual StatusCode execute() override
standard Athena-Algorithm method
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
const CaloCell_ID * m_caloId
const LArOnlineID * m_onlId
SG::ReadCondHandleKey< LArHVIdMapping > m_hvCablingKey
This class provides access to the High Voltage throughout the LAr.