Go to the documentation of this file. 1 #ifndef CALIBCALORIMETRY_HCALALGOS_HCALPULSESHAPES_H
2 #define CALIBCALORIMETRY_HCALALGOS_HCALPULSESHAPES_H 1
19 class HepRandomEngine;
55 static double generatePhotonTime(CLHEP::HepRandomEngine* engine,
unsigned int signalShape);
59 template <
class F1,
class F2>
61 std::vector<double>
result(2 * nbin - 1, 0.);
62 for (
unsigned i = 0;
i < 2 * nbin - 1; ++
i) {
72 static std::vector<double>
normalize(std::vector<double>
nt,
unsigned nbin) {
75 for (
unsigned int j = 1;
j <= nbin; ++
j) {
76 norm += (
nt[
j] > 0) ?
nt[
j] : 0.;
79 double normInv = 1. / norm;
80 for (
unsigned int j = 1;
j <= nbin; ++
j) {
92 double normInv = 1. / norm;
93 std::vector<double> nt2(
nt.size(), 0);
94 for (
int j = 1;
j <= (
int)nbin;
j++) {
static constexpr float invDeltaTSiPM_
edm::ESGetToken< HcalDbService, HcalDbRecord > theDbServiceToken
const Shape & heShape() const
const Shape & defaultShape(const HcalDetId &detId) const
in case of conditions problems
static const int nBinsSiPM_
const Shape & shapeForReco(const HcalDetId &detId) const
void computeSiPMShapeData2017()
const HcalPulseShape & computeSiPMShapeHE206()
static constexpr float deltaTSiPM_
std::map< int, Shape const * > const & get_all_shapes() const
static double generatePhotonTime203(CLHEP::HepRandomEngine *engine)
void computeSiPMShapeHO()
static double Y11206(double t)
const Shape & getShape(int shapeType) const
static std::vector< double > convolve(unsigned nbin, F1 f1, F2 f2)
const Shape & hbShape() const
static double Y11203(double t)
static constexpr float Y11RANGE_
static std::vector< double > normalize(std::vector< double > nt, unsigned nbin)
static double analyticPulseShapeSiPMHE(double t)
void beginRun(edm::EventSetup const &es)
void computeSiPMShapeData2018()
static constexpr float Y11MAX203_
Shape siPMShapeMCRecoRun3_
const Shape & hoShape(bool sipm=false) const
static std::vector< double > normalizeShift(std::vector< double > nt, unsigned nbin, int shift)
static double generatePhotonTime(CLHEP::HepRandomEngine *engine, unsigned int signalShape)
const Shape & hfShape() const
const Shape & shape(const HcalDetId &detId) const
automatically figures out which shape to return
void computeHPDShape(float, float, float, float, float, float, float, float, Shape &)
static unsigned const int shift
const HcalDbService * theDbService
void computeSiPMShapeMCRecoRun3()
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
static constexpr float Y11MAX206_
static double generatePhotonTime206(CLHEP::HepRandomEngine *engine)
const HcalPulseShape & computeSiPMShapeHE203()
std::map< int, const Shape * > ShapeMap
static double analyticPulseShapeSiPMHO(double t)