1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
#include "DataFormats/ParticleFlowReco/interface/PFLayer.h"
#include "FWCore/MessageLogger/interface/MessageLogger.h"
#include <cassert>
#include <iostream>
using namespace reco;
using namespace std;
CaloID PFLayer::toCaloID(Layer layer) {
switch (layer) {
case PS2:
return CaloID(CaloID::DET_PS2);
case PS1:
return CaloID(CaloID::DET_PS1);
case ECAL_ENDCAP:
return CaloID(CaloID::DET_ECAL_ENDCAP);
case ECAL_BARREL:
return CaloID(CaloID::DET_ECAL_BARREL);
case HCAL_BARREL1:
return CaloID(CaloID::DET_HCAL_BARREL);
case HCAL_BARREL2:
return CaloID(CaloID::DET_HO);
case HCAL_ENDCAP:
return CaloID(CaloID::DET_HCAL_ENDCAP);
case HF_EM:
return CaloID(CaloID::DET_HF_EM);
case HF_HAD:
return CaloID(CaloID::DET_HF_HAD);
case HGCAL:
return CaloID(CaloID::DET_HGCAL_ENDCAP);
default:
return CaloID();
}
}
PFLayer::Layer PFLayer::fromCaloID(const CaloID& id) {
// cout<<"PFLayer::fromCaloID "<<id<<" "<<id.detector()<<endl;
if (!id.isSingleDetector()) {
edm::LogError("PFLayer") << "cannot convert " << id
<< " to a layer, as this CaloID does not correspond to a single detector";
}
switch (id.detector()) {
case CaloID::DET_ECAL_BARREL:
return ECAL_BARREL;
case CaloID::DET_ECAL_ENDCAP:
return ECAL_ENDCAP;
case CaloID::DET_PS1:
return PS1;
case CaloID::DET_PS2:
return PS2;
case CaloID::DET_HCAL_BARREL:
return HCAL_BARREL1;
case CaloID::DET_HCAL_ENDCAP:
return HCAL_ENDCAP;
case CaloID::DET_HF_EM:
return HF_EM;
case CaloID::DET_HF_HAD:
return HF_HAD;
case CaloID::DET_HO:
return HCAL_BARREL2;
case CaloID::DET_HGCAL_ENDCAP:
return HGCAL;
default:
return NONE;
}
}
|