ZeeKinematicTools

Macros

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
#ifndef ZEEKINEMATICTOOLS_H
#define ZEEKINEMATICTOOLS_H

#include <memory>

// user include files
#include "FWCore/Framework/interface/Frameworkfwd.h"

#include "DataFormats/Common/interface/TriggerResults.h"
#include "DataFormats/EgammaCandidates/interface/GsfElectron.h"
#include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h"
#include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h"
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/MakerMacros.h"
#include "FWCore/Framework/interface/EventSetup.h"
#include "FWCore/Framework/interface/ESHandle.h"
#include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h"
#include "Calibration/Tools/interface/HouseholderDecomposition.h"
#include "Calibration/Tools/interface/MinL3Algorithm.h"
#include "Calibration/Tools/interface/CalibrationCluster.h"
#include "Calibration/Tools/interface/CalibElectron.h"
#include "DataFormats/DetId/interface/DetId.h"
#include "TFile.h"
#include "TH1.h"
#include "TH2.h"

// class declaration
//

class ZeeKinematicTools {
public:
  ZeeKinematicTools();
  ~ZeeKinematicTools();

  static float calculateZMass_noTK(const std::pair<calib::CalibElectron*, calib::CalibElectron*>& aZCandidate);
  static float calculateZMass_withTK(const std::pair<calib::CalibElectron*, calib::CalibElectron*>& aZCandidate);
  static float calculateZEta(const std::pair<calib::CalibElectron*, calib::CalibElectron*>& aZCandidate);
  static float calculateZTheta(const std::pair<calib::CalibElectron*, calib::CalibElectron*>& aZCandidate);
  static float calculateZRapidity(const std::pair<calib::CalibElectron*, calib::CalibElectron*>& aZCandidate);
  static float calculateZPhi(const std::pair<calib::CalibElectron*, calib::CalibElectron*>& aZCandidate);
  static float calculateZPt(const std::pair<calib::CalibElectron*, calib::CalibElectron*>& aZCandidate);

  static float calculateZMassWithCorrectedElectrons_noTK(
      const std::pair<calib::CalibElectron*, calib::CalibElectron*>& aZCandidate,
      float ele1EnergyCorrection,
      float ele2EnergyCorrection);
  static float calculateZMassWithCorrectedElectrons_withTK(
      const std::pair<calib::CalibElectron*, calib::CalibElectron*>& aZCandidate,
      float ele1EnergyCorrection,
      float ele2EnergyCorrection);

  static float cosThetaElectrons_SC(const std::pair<calib::CalibElectron*, calib::CalibElectron*>& aZCandidate,
                                    float ele1EnergyCorrection,
                                    float ele2EnergyCorrection);
  static float cosThetaElectrons_TK(const std::pair<calib::CalibElectron*, calib::CalibElectron*>& aZCandidate,
                                    float ele1EnergyCorrection,
                                    float ele2EnergyCorrection);
};
#endif