File indexing completed on 2024-04-06 11:58:39
0001 #ifndef ZEEKINEMATICTOOLS_H
0002 #define ZEEKINEMATICTOOLS_H
0003
0004 #include <memory>
0005
0006
0007 #include "FWCore/Framework/interface/Frameworkfwd.h"
0008
0009 #include "DataFormats/Common/interface/TriggerResults.h"
0010 #include "DataFormats/EgammaCandidates/interface/GsfElectron.h"
0011 #include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h"
0012 #include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h"
0013 #include "FWCore/Framework/interface/Event.h"
0014 #include "FWCore/Framework/interface/MakerMacros.h"
0015 #include "FWCore/Framework/interface/EventSetup.h"
0016 #include "FWCore/Framework/interface/ESHandle.h"
0017 #include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h"
0018 #include "Calibration/Tools/interface/HouseholderDecomposition.h"
0019 #include "Calibration/Tools/interface/MinL3Algorithm.h"
0020 #include "Calibration/Tools/interface/CalibrationCluster.h"
0021 #include "Calibration/Tools/interface/CalibElectron.h"
0022 #include "DataFormats/DetId/interface/DetId.h"
0023 #include "TFile.h"
0024 #include "TH1.h"
0025 #include "TH2.h"
0026
0027
0028
0029
0030 class ZeeKinematicTools {
0031 public:
0032 ZeeKinematicTools();
0033 ~ZeeKinematicTools();
0034
0035 static float calculateZMass_noTK(const std::pair<calib::CalibElectron*, calib::CalibElectron*>& aZCandidate);
0036 static float calculateZMass_withTK(const std::pair<calib::CalibElectron*, calib::CalibElectron*>& aZCandidate);
0037 static float calculateZEta(const std::pair<calib::CalibElectron*, calib::CalibElectron*>& aZCandidate);
0038 static float calculateZTheta(const std::pair<calib::CalibElectron*, calib::CalibElectron*>& aZCandidate);
0039 static float calculateZRapidity(const std::pair<calib::CalibElectron*, calib::CalibElectron*>& aZCandidate);
0040 static float calculateZPhi(const std::pair<calib::CalibElectron*, calib::CalibElectron*>& aZCandidate);
0041 static float calculateZPt(const std::pair<calib::CalibElectron*, calib::CalibElectron*>& aZCandidate);
0042
0043 static float calculateZMassWithCorrectedElectrons_noTK(
0044 const std::pair<calib::CalibElectron*, calib::CalibElectron*>& aZCandidate,
0045 float ele1EnergyCorrection,
0046 float ele2EnergyCorrection);
0047 static float calculateZMassWithCorrectedElectrons_withTK(
0048 const std::pair<calib::CalibElectron*, calib::CalibElectron*>& aZCandidate,
0049 float ele1EnergyCorrection,
0050 float ele2EnergyCorrection);
0051
0052 static float cosThetaElectrons_SC(const std::pair<calib::CalibElectron*, calib::CalibElectron*>& aZCandidate,
0053 float ele1EnergyCorrection,
0054 float ele2EnergyCorrection);
0055 static float cosThetaElectrons_TK(const std::pair<calib::CalibElectron*, calib::CalibElectron*>& aZCandidate,
0056 float ele1EnergyCorrection,
0057 float ele2EnergyCorrection);
0058 };
0059 #endif