Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 11:58:39

0001 #ifndef ZEEKINEMATICTOOLS_H
0002 #define ZEEKINEMATICTOOLS_H
0003 
0004 #include <memory>
0005 
0006 // user include files
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 // class declaration
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