Go to the documentation of this file.00001 #ifndef ZEEKINEMATICTOOLS_H
00002 #define ZEEKINEMATICTOOLS_H
00003
00004 #include <memory>
00005
00006
00007 #include "FWCore/Framework/interface/Frameworkfwd.h"
00008 #include "FWCore/Framework/interface/EDAnalyzer.h"
00009
00010 #include "DataFormats/Common/interface/TriggerResults.h"
00011 #include "DataFormats/EgammaCandidates/interface/GsfElectron.h"
00012 #include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h"
00013 #include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h"
00014 #include "FWCore/Framework/interface/Event.h"
00015 #include "FWCore/Framework/interface/MakerMacros.h"
00016 #include "FWCore/Framework/interface/EventSetup.h"
00017 #include "FWCore/Framework/interface/ESHandle.h"
00018 #include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h"
00019 #include "Calibration/Tools/interface/HouseholderDecomposition.h"
00020 #include "Calibration/Tools/interface/MinL3Algorithm.h"
00021 #include "Calibration/Tools/interface/CalibrationCluster.h"
00022 #include "Calibration/Tools/interface/CalibElectron.h"
00023 #include "DataFormats/DetId/interface/DetId.h"
00024 #include "TFile.h"
00025 #include "TH1.h"
00026 #include "TH2.h"
00027
00028
00029
00030
00031
00032 class ZeeKinematicTools {
00033
00034 public:
00035
00036 ZeeKinematicTools();
00037 ~ZeeKinematicTools();
00038
00039 static float calculateZMass_noTK(const std::pair<calib::CalibElectron*,calib::CalibElectron*>& aZCandidate);
00040 static float calculateZMass_withTK(const std::pair<calib::CalibElectron*,calib::CalibElectron*>& aZCandidate);
00041 static float calculateZEta(const std::pair<calib::CalibElectron*,calib::CalibElectron*>& aZCandidate);
00042 static float calculateZTheta(const std::pair<calib::CalibElectron*,calib::CalibElectron*>& aZCandidate);
00043 static float calculateZRapidity(const std::pair<calib::CalibElectron*,calib::CalibElectron*>& aZCandidate);
00044 static float calculateZPhi(const std::pair<calib::CalibElectron*,calib::CalibElectron*>& aZCandidate);
00045 static float calculateZPt(const std::pair<calib::CalibElectron*,calib::CalibElectron*>& aZCandidate);
00046
00047 static float calculateZMassWithCorrectedElectrons_noTK(const std::pair<calib::CalibElectron*,calib::CalibElectron*>& aZCandidate, float ele1EnergyCorrection, float ele2EnergyCorrection);
00048 static float calculateZMassWithCorrectedElectrons_withTK(const std::pair<calib::CalibElectron*,calib::CalibElectron*>& aZCandidate, float ele1EnergyCorrection, float ele2EnergyCorrection);
00049
00050 static float cosThetaElectrons_SC( const std::pair<calib::CalibElectron*,calib::CalibElectron*>& aZCandidate, float ele1EnergyCorrection, float ele2EnergyCorrection );
00051 static float cosThetaElectrons_TK( const std::pair<calib::CalibElectron*,calib::CalibElectron*>& aZCandidate, float ele1EnergyCorrection, float ele2EnergyCorrection );
00052
00053
00054
00055 };
00056 #endif