6#include "Gaudi/Property.h"
7#include "GaudiKernel/MsgStream.h"
8#include "GaudiKernel/NTuple.h"
31 LArHV2Ntuple:: LArHV2Ntuple(
const std::string& name, ISvcLocator* pSvcLocator):
65 m_tree =
new TTree(
"mytree",
"Calo Noise ntuple");
88 return StatusCode::SUCCESS;
99 std::vector<const CondAttrListCollection*> attrLists;
103 attrLists.push_back (*attrList);
108 const EMBHVManager& hvManager_EMB=manager->getEMBHVManager();
123 const HECHVManager& hvManager_HEC=manager->getHECHVManager();
126 const FCALHVManager& hvManager_FCAL=manager->getFCALHVManager();
134 return StatusCode::FAILURE;
140 std::vector<Identifier>::const_iterator cell_b=
m_caloId->cell_begin();
141 std::vector<Identifier>::const_iterator cell_e=
m_caloId->cell_end();
142 for(;cell_b!=cell_e; ++cell_b) {
143 if(
m_caloId->is_tile(*cell_b))
continue;
144 HWIdentifier onlid = cabling->createSignalChannelID(*cell_b);
145 std::vector<int> hvlines =
GetHVLines (hvdata_EMB,
154 for(
unsigned i=0; i<hvlines.size(); ++i ) {
156 std::vector<HWIdentifier>
vec;
157 vec.push_back(onlid);
172 for (
unsigned int ielec=0;ielec<32;ielec++) {
174 for (
unsigned int iGap=0;iGap<2;iGap++) {
175 float hv = hvdata_EMB.
voltage (electrode, iGap);
176 float current = hvdata_EMB.
current (electrode, iGap);
211 for (
int iGap=0;iGap<2;iGap++) {
212 float hv = hvdata_EMBPS.
voltage (hvMod, iGap);
213 float current = hvdata_EMBPS.
current (hvMod, iGap);
246 for (
int iGap=0;iGap<2;iGap++) {
247 float hv = hvdata_EMECPS.
voltage (hvMod, iGap);
248 float current = hvdata_EMECPS.
current (hvMod, iGap);
287 for (
unsigned int iGap=0;iGap<2;iGap++) {
288 float hv = hvdata_EMEC_OUT.
voltage (electrode, iGap);
289 float current = hvdata_EMEC_OUT.
current (electrode, iGap);
328 for (
unsigned int iGap=0;iGap<2;iGap++) {
329 float hv = hvdata_EMEC_IN.
voltage (electrode, iGap);
330 float current = hvdata_EMEC_IN.
current (electrode, iGap);
361 float etamax_layer[4]={3.3,3.1,3.1,3.3};
362 float etamin_layer[4]={1.5,1.5,1.6,1.7};
368 float eta_min,eta_max;
370 eta_min = etamin_layer[iSampling];
371 eta_max = etamax_layer[iSampling];
373 eta_min = -1.*etamax_layer[iSampling];
374 eta_max = -1.*etamin_layer[iSampling];
376 float eta = 0.5*(eta_min+eta_max);
382 float hv = hvdata_HEC.
voltage (subgap);
383 float current = hvdata_HEC.
current (subgap);
384 m_bec = 10+iSampling;
409 float eta_min=3.1,eta_max=4.9;
410 if (iSide==0) { eta_min=-4.9; eta_max=-3.1; }
412 float eta = 0.5*(eta_min+eta_max);
421 float phi_min = ((float)(iSector))*dphi;
424 float phi = 0.5*(phi_min+phi_max);
428 float hv = hvdata_FCAL.
voltage (hvline);
429 float current = hvdata_FCAL.
current (hvline);
430 m_bec = 14+iSampling;
454 return StatusCode::SUCCESS;
471 if (abs(
m_caloId->em_idHelper()->barrel_ec(
id))==1) {
473 if (!embElement) std::abort();
475 unsigned int nelec = cell->getNumElectrodes();
476 for (
unsigned int i=0;i<nelec;i++) {
478 for (
unsigned int igap=0;igap<2;igap++) hv.insert(hvdata_EMB.
hvLineNo(electrode, igap));
482 if (!emecElement) std::abort();
484 unsigned int nelec = cell->getNumElectrodes();
485 for (
unsigned int i=0;i<nelec;i++) {
489 module.getWheelIndex() == EMECHVModule::INNER ?
492 for (
unsigned int igap=0;igap<2;igap++) hv.insert(hvdata.
hvLineNo (electrode, igap));
497 if (!hecElement) std::abort();
499 unsigned int nsubgaps = cell->getNumSubgaps();
500 for (
unsigned int igap=0;igap<nsubgaps;igap++) {
502 hv.insert(hvdata_HEC.
hvLineNo (subgap));
506 if (!fcalElement) std::abort();
509 for (
unsigned int i=0;i<nlines;i++) {
511 if (line) hv.insert(hvdata_FCAL.
hvLineNo (*line));
514 if (abs(
m_caloId->em_idHelper()->barrel_ec(
id))==1) {
516 if (!embElement) std::abort();
519 for (
unsigned int igap=0;igap<2;igap++) hv.insert(hvdata_EMBPS.
hvLineNo (hvmodule, igap));
522 if (!emecElement) std::abort();
525 for (
unsigned int igap=0;igap<2;igap++) hv.insert(hvdata_EMECPS.
hvLineNo (hvmodule, igap));
529 std::vector<int> hvlines;
530 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.
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(const EventContext &ctx) 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.