File indexing completed on 2024-04-06 12:04:52
0001 #include "DataFormats/ParticleFlowReco/interface/PFLayer.h"
0002
0003 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0004
0005 #include <cassert>
0006 #include <iostream>
0007
0008 using namespace reco;
0009 using namespace std;
0010
0011 CaloID PFLayer::toCaloID(Layer layer) {
0012 switch (layer) {
0013 case PS2:
0014 return CaloID(CaloID::DET_PS2);
0015 case PS1:
0016 return CaloID(CaloID::DET_PS1);
0017 case ECAL_ENDCAP:
0018 return CaloID(CaloID::DET_ECAL_ENDCAP);
0019 case ECAL_BARREL:
0020 return CaloID(CaloID::DET_ECAL_BARREL);
0021 case HCAL_BARREL1:
0022 return CaloID(CaloID::DET_HCAL_BARREL);
0023 case HCAL_BARREL2:
0024 return CaloID(CaloID::DET_HO);
0025 case HCAL_ENDCAP:
0026 return CaloID(CaloID::DET_HCAL_ENDCAP);
0027 case HF_EM:
0028 return CaloID(CaloID::DET_HF_EM);
0029 case HF_HAD:
0030 return CaloID(CaloID::DET_HF_HAD);
0031 case HGCAL:
0032 return CaloID(CaloID::DET_HGCAL_ENDCAP);
0033 default:
0034 return CaloID();
0035 }
0036 }
0037
0038 PFLayer::Layer PFLayer::fromCaloID(const CaloID& id) {
0039
0040 if (!id.isSingleDetector()) {
0041 edm::LogError("PFLayer") << "cannot convert " << id
0042 << " to a layer, as this CaloID does not correspond to a single detector";
0043 }
0044
0045 switch (id.detector()) {
0046 case CaloID::DET_ECAL_BARREL:
0047 return ECAL_BARREL;
0048 case CaloID::DET_ECAL_ENDCAP:
0049 return ECAL_ENDCAP;
0050 case CaloID::DET_PS1:
0051 return PS1;
0052 case CaloID::DET_PS2:
0053 return PS2;
0054 case CaloID::DET_HCAL_BARREL:
0055 return HCAL_BARREL1;
0056 case CaloID::DET_HCAL_ENDCAP:
0057 return HCAL_ENDCAP;
0058 case CaloID::DET_HF_EM:
0059 return HF_EM;
0060 case CaloID::DET_HF_HAD:
0061 return HF_HAD;
0062 case CaloID::DET_HO:
0063 return HCAL_BARREL2;
0064 case CaloID::DET_HGCAL_ENDCAP:
0065 return HGCAL;
0066 default:
0067 return NONE;
0068 }
0069 }