File indexing completed on 2024-04-06 11:59:10
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef CalibrationIsolatedParticleseHCALMatrix_h
0018 #define CalibrationIsolatedParticleseHCALMatrix_h
0019
0020
0021 #include <memory>
0022 #include <map>
0023 #include <vector>
0024
0025
0026 #include "FWCore/Framework/interface/Frameworkfwd.h"
0027 #include "DataFormats/Common/interface/Handle.h"
0028 #include "DataFormats/Candidate/interface/Candidate.h"
0029 #include "DataFormats/DetId/interface/DetId.h"
0030 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
0031 #include "DataFormats/HcalRecHit/interface/HcalRecHitCollections.h"
0032 #include "SimDataFormats/CaloHit/interface/PCaloHitContainer.h"
0033
0034 #include "Geometry/CaloGeometry/interface/CaloGeometry.h"
0035 #include "Geometry/CaloTopology/interface/HcalTopology.h"
0036
0037 namespace spr {
0038
0039 template <typename T>
0040 double eHCALmatrix(const HcalTopology* topology,
0041 const DetId& det,
0042 edm::Handle<T>& hits,
0043 int ieta,
0044 int iphi,
0045 bool includeHO = false,
0046 bool algoNew = true,
0047 double hbThr = -100,
0048 double heThr = -100,
0049 double hfThr = -100,
0050 double hoThr = -100,
0051 double tMin = -500,
0052 double tMax = 500,
0053 int useRaw = 0,
0054 bool debug = false);
0055
0056 double eHCALmatrix(const HcalTopology* topology,
0057 const DetId& det,
0058 std::vector<PCaloHit>& hits,
0059 int ieta,
0060 int iphi,
0061 bool includeHO = false,
0062 double hbThr = -100,
0063 double heThr = -100,
0064 double hfThr = -100,
0065 double hoThr = -100,
0066 double tMin = -500,
0067 double tMax = 500,
0068 bool debug = false);
0069
0070 template <typename T>
0071 double eHCALmatrix(const HcalTopology* topology,
0072 const DetId& det,
0073 edm::Handle<T>& hits,
0074 int ietaE,
0075 int ietaW,
0076 int iphiN,
0077 int iphiS,
0078 bool includeHO = false,
0079 double hbThr = -100,
0080 double heThr = -100,
0081 double hfThr = -100,
0082 double hoThr = -100,
0083 double tMin = -500,
0084 double tMax = 500,
0085 int useRaw = 0,
0086 bool debug = false);
0087
0088 template <typename T>
0089 double eHCALmatrix(const HcalTopology* topology,
0090 const DetId& det0,
0091 edm::Handle<T>& hits,
0092 int ieta,
0093 int iphi,
0094 int& nRecHits,
0095 std::vector<int>& RH_ieta,
0096 std::vector<int>& RH_iphi,
0097 std::vector<double>& RH_ene,
0098 std::set<int>& uniqueIdset,
0099 int useRaw = 0);
0100
0101 template <typename T>
0102 double eHCALmatrix(const CaloGeometry* geo,
0103 const HcalTopology* topology,
0104 const DetId& det0,
0105 edm::Handle<T>& hits,
0106 int ieta,
0107 int iphi,
0108 int& nRecHits,
0109 std::vector<int>& RH_ieta,
0110 std::vector<int>& RH_iphi,
0111 std::vector<double>& RH_ene,
0112 GlobalPoint& gPosHotCell,
0113 int useRaw = 0);
0114
0115 template <typename T>
0116 double eHCALmatrix(const CaloGeometry* geo,
0117 const HcalTopology* topology,
0118 const DetId& det0,
0119 edm::Handle<T>& hits,
0120 int ieta,
0121 int iphi,
0122 HcalDetId& hotCell,
0123 bool includeHO = false,
0124 int useRaw = 0,
0125 bool debug = false);
0126
0127 double eHCALmatrix(const CaloGeometry* geo,
0128 const HcalTopology* topology,
0129 const DetId& det0,
0130 std::vector<PCaloHit>& hits,
0131 int ieta,
0132 int iphi,
0133 HcalDetId& hotCell,
0134 bool includeHO = false,
0135 bool debug = false);
0136
0137 template <typename T>
0138 double energyHCALmatrixNew(const HcalTopology* topology,
0139 const DetId& det,
0140 edm::Handle<T>& hits,
0141 int ieta,
0142 int iphi,
0143 bool includeHO = false,
0144 double hbThr = -100,
0145 double heThr = -100,
0146 double hfThr = -100,
0147 double hoThr = -100,
0148 double tMin = -500,
0149 double tMax = 500,
0150 int useRaw = 0,
0151 bool debug = false);
0152
0153 template <typename T>
0154 double energyHCALmatrixTotal(const HcalTopology* topology,
0155 const DetId& det,
0156 edm::Handle<T>& hits,
0157 int ietaE,
0158 int ietaW,
0159 int iphiN,
0160 int iphiS,
0161 bool includeHO = false,
0162 double hbThr = -100,
0163 double heThr = -100,
0164 double hfThr = -100,
0165 double hoThr = -100,
0166 double tMin = -500,
0167 double tMax = 500,
0168 int useRaw = 0,
0169 bool debug = false);
0170
0171 template <typename T>
0172 void hitHCALmatrix(const HcalTopology* topology,
0173 const DetId& det,
0174 edm::Handle<T>& hits,
0175 int ieta,
0176 int iphi,
0177 std::vector<typename T::const_iterator>& hitlist,
0178 bool includeHO = false,
0179 bool debug = false);
0180
0181 template <typename T>
0182 void hitHCALmatrixTotal(const HcalTopology* topology,
0183 const DetId& det,
0184 edm::Handle<T>& hits,
0185 int ietaE,
0186 int ietaW,
0187 int iphiN,
0188 int iphiS,
0189 std::vector<typename T::const_iterator>& hitlist,
0190 bool includeHO = false,
0191 bool debug = false);
0192
0193 template <typename T>
0194 double energyHCAL(std::vector<DetId>& vdets,
0195 edm::Handle<T>& hits,
0196 double hbThr = -100,
0197 double heThr = -100,
0198 double hfThr = -100,
0199 double hoThr = -100,
0200 double tMin = -500,
0201 double tMax = 500,
0202 int useRaw = 0,
0203 bool debug = false);
0204
0205 template <typename T>
0206 void energyHCALCell(HcalDetId detId,
0207 edm::Handle<T>& hits,
0208 std::vector<std::pair<double, int> >& energyCell,
0209 int maxDepth = 1,
0210 double hbThr = -100,
0211 double heThr = -100,
0212 double hfThr = -100,
0213 double hoThr = -100,
0214 double tMin = -500,
0215 double tMax = 500,
0216 int useRaw = 0,
0217 int depthHE = 3,
0218 bool debug = false);
0219
0220 void energyHCALCell(HcalDetId detId,
0221 std::vector<PCaloHit>& hits,
0222 std::vector<std::pair<double, int> >& energyCell,
0223 int maxDepth = 1,
0224 double hbThr = -100,
0225 double heThr = -100,
0226 double hfThr = -100,
0227 double hoThr = -100,
0228 double tMin = -500,
0229 double tMax = 500,
0230 int depthHE = 3,
0231 bool debug = false);
0232
0233 template <typename T>
0234 void hitsHCAL(std::vector<DetId>& vdets,
0235 edm::Handle<T>& hits,
0236 std::vector<typename T::const_iterator>& hitlist,
0237 bool debug = false);
0238
0239 HcalDetId getHotCell(std::vector<HBHERecHitCollection::const_iterator>& hit,
0240 bool includeHO,
0241 int useRaw = 0,
0242 bool debug = false);
0243
0244 HcalDetId getHotCell(std::vector<std::vector<PCaloHit>::const_iterator>& hit,
0245 bool includeHO,
0246 int useRaw = 0,
0247 bool debug = false);
0248
0249 double eHCALThreshold(int subdet, double hbThr = -100, double heThr = -100, double hfThr = -100, double hoThr = -100);
0250 }
0251
0252 #include "Calibration/IsolatedParticles/interface/eHCALMatrix.icc"
0253 #endif