Go to the documentation of this file.00001 #ifndef SimG4CMS_Calo_HcalQie_H
00002 #define SimG4CMS_Calo_HcalQie_H
00003
00004
00005
00007
00008 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00009 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00010 #include "SimDataFormats/CaloHit/interface/CaloHit.h"
00011
00012 #include <vector>
00013
00014 class HcalQie {
00015
00016 public:
00017
00018 HcalQie(edm::ParameterSet const & p);
00019 virtual ~HcalQie();
00020
00021 std::vector<int> getCode(int, std::vector<CaloHit>);
00022 double getEnergy(std::vector<int>);
00023
00024 private:
00025
00026 std::vector<double> shape();
00027 std::vector<int> code();
00028 std::vector<double> charge();
00029 std::vector<double> weight(int binofmax, int mode, int npre, int numbucket);
00030 double codeToQ(int ic);
00031 int getCode(double charge);
00032 double getShape(double time);
00033
00034 private:
00035
00036 std::vector<double> shape_;
00037 std::vector<int> code_;
00038 std::vector<double> charge_;
00039 int binOfMax, signalBuckets, preSamples, numOfBuckets;
00040 std::vector<double> weight_;
00041 double sigma, qToPE, eDepPerPE, baseline;
00042 int bmin_, bmax_;
00043 double phase_, rescale_;
00044
00045 };
00046
00047 #endif