File indexing completed on 2024-04-06 12:27:26
0001 #ifndef DataFormats_ParticleFlowReco_PFResolutionMap_h
0002 #define DataFormats_ParticleFlowReco_PFResolutionMap_h
0003
0004 #include <iostream>
0005 #include <string>
0006 #include <stdexcept>
0007
0008 #include <TH2.h>
0009
0010
0011
0012
0013
0014
0015
0016 class PFResolutionMap : public TH2D {
0017 public:
0018
0019 PFResolutionMap() : TH2D() {}
0020
0021
0022 PFResolutionMap(const char* name, const char* mapfile);
0023
0024
0025 PFResolutionMap(const char* name,
0026 unsigned nbinseta,
0027 double mineta,
0028 double maxeta,
0029 unsigned nbinse,
0030 double mine,
0031 double maxe,
0032 double value = -1);
0033
0034
0035 PFResolutionMap(const TH2D& h) : TH2D(h) {}
0036
0037
0038 bool ReadMapFile(const char* mapfile);
0039
0040
0041
0042 bool WriteMapFile(const char* mapfile);
0043
0044
0045 int FindBin(double eta, double e, double z = 0) override;
0046
0047 double getRes(double eta, double phi, double e, int MapEta = -1);
0048
0049 const char* GetMapFile() const { return mapFile_.c_str(); }
0050
0051
0052 friend std::ostream& operator<<(std::ostream& out, const PFResolutionMap& rm);
0053
0054 private:
0055 bool IsInAPhiCrack(double phi, double eta);
0056 double minimum(double a, double b);
0057 double dCrackPhi(double phi, double eta);
0058 static const unsigned lineSize_;
0059 std::string mapFile_;
0060 };
0061
0062 #endif