CMS 3D CMS Logo

HardTauAlgorithm.h

Go to the documentation of this file.
00001 #ifndef HardTauAlgorithm_H
00002 #define HardTauAlgorithm_H
00003 
00004 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00005 
00006 #include "TLorentzVector.h"
00007 #include "DataFormats/TauReco/interface/CaloTau.h"
00008 #include "DataFormats/JetReco/interface/CaloJet.h"
00009 #include "DataFormats/JetReco/interface/Jet.h"
00010 #include "DataFormats/BTauReco/interface/IsolatedTauTagInfo.h"
00011 
00012 #include "FWCore/Framework/interface/Event.h"
00013 
00014 #include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h"
00015 #include "TrackingTools/Records/interface/TransientTrackRecord.h"
00016 
00017 #include "Geometry/CaloGeometry/interface/CaloGeometry.h"
00018 #include "Geometry/CaloGeometry/interface/CaloCellGeometry.h"
00019 #include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h"
00020 
00021 #include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h"
00022 #include "DataFormats/HcalRecHit/interface/HcalRecHitCollections.h"
00023 #include "DataFormats/EcalDetId/interface/EBDetId.h"
00024 #include "DataFormats/EcalDetId/interface/EEDetId.h"
00025 #include "DataFormats/HcalDetId/interface/HcalDetId.h"
00026 #include "DataFormats/CaloTowers/interface/CaloTowerDetId.h"
00027 
00028 #include "DataFormats/VertexReco/interface/VertexFwd.h"
00029 
00030 #include "Math/VectorUtil.h"
00031 
00032 using namespace ROOT::Math;
00033 using namespace std;
00034 using namespace reco;
00035 using namespace edm;
00036 
00037 class HardTauAlgorithm {
00038 
00039     public:
00040         HardTauAlgorithm();
00041         HardTauAlgorithm(const edm::ParameterSet&);
00042         ~HardTauAlgorithm();
00043 
00044         TLorentzVector recalculateEnergy(const reco::CaloTau&);
00045         TLorentzVector recalculateEnergy(const reco::CaloJet&);
00046         TLorentzVector recalculateEnergy(const reco::Jet&);
00047         TLorentzVector recalculateEnergy(const reco::IsolatedTauTagInfo&);
00048         TLorentzVector recalculateEnergy(const reco::CaloJet&,const TrackRef&,const TrackRefVector&);
00049 
00050         void inputConfig(const edm::ParameterSet& iConfig);
00051         void eventSetup(const edm::Event&,const edm::EventSetup&);
00052 
00053         double efficiency();
00054 
00055     private:
00056         void init();
00057 
00058         XYZVector                 trackEcalHitPoint(const TransientTrack&,const CaloJet&);
00059         pair<XYZVector,XYZVector> getClusterEnergy(const CaloJet&,XYZVector&,double);
00060         XYZVector                 getCellMomentum(const CaloCellGeometry*,double&);
00061 
00062 
00063         int all,
00064             passed;
00065 
00066         int prongs;
00067 
00068         const TransientTrackBuilder* transientTrackBuilder;
00069 
00070         double signalCone;
00071         double ecalCone;
00072         double matchingCone;
00073         double tkptmin;
00074         double tkmaxipt;
00075         double tkmaxChi2;
00076         int    tkminPixelHitsn;
00077         int    tkminTrackerHitsn;
00078 
00079         double  etCaloOverTrackMin,
00080                 etCaloOverTrackMax,
00081                 etHcalOverTrackMin,
00082                 etHcalOverTrackMax;
00083 
00084         InputTag trackInput;
00085         InputTag vertexInput;
00086 
00087         InputTag EcalRecHitsEB_input;
00088         InputTag EcalRecHitsEE_input;
00089         InputTag HBHERecHits_input;
00090         InputTag HORecHits_input;
00091         InputTag HFRecHits_input;
00092 
00093         const CaloSubdetectorGeometry* EB;
00094         const CaloSubdetectorGeometry* EE;
00095         const CaloSubdetectorGeometry* HB;
00096         const CaloSubdetectorGeometry* HE;
00097         const CaloSubdetectorGeometry* HO;
00098         const CaloSubdetectorGeometry* HF;
00099 
00100         Handle<EBRecHitCollection>   EBRecHits;
00101         Handle<EERecHitCollection>   EERecHits;
00102 
00103         Handle<HBHERecHitCollection> HBHERecHits;
00104         Handle<HORecHitCollection>   HORecHits;
00105         Handle<HFRecHitCollection>   HFRecHits;
00106 
00107         Handle<TrackCollection> tracks;
00108         Handle<VertexCollection> thePVs;
00109 };
00110 #endif
00111 
00112 

Generated on Tue Jun 9 17:39:38 2009 for CMSSW by  doxygen 1.5.4