CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/RecoMET/METAlgorithms/interface/GlobalHaloAlgo.h

Go to the documentation of this file.
00001 #ifndef RECOMET_METALGORITHMS_GLOBALHALOALGO_H
00002 #define RECOMET_METALGORITHMS_GLOBALHALOALGO_H
00003 
00004 /*
00005   [class]:  GlobalHaloAlgo
00006   [authors]: R. Remington, The University of Florida
00007   [description]: Algorithm to calculate quantities relevant to GlobalHaloData object
00008   [date]: October 15, 2009
00009 */
00010 
00011 #include "DataFormats/METReco/interface/EcalHaloData.h"
00012 #include "DataFormats/METReco/interface/HcalHaloData.h"
00013 #include "DataFormats/METReco/interface/CSCHaloData.h"
00014 #include "DataFormats/METReco/interface/GlobalHaloData.h"
00015 #include "DataFormats/Math/interface/LorentzVector.h"
00016 #include "DataFormats/METReco/interface/CaloMET.h"
00017 #include "DataFormats/METReco/interface/CaloMETFwd.h"
00018 #include "DataFormats/METReco/interface/MET.h"
00019 #include "DataFormats/METReco/interface/METFwd.h"
00020 #include "DataFormats/CSCRecHit/interface/CSCRecHit2D.h"
00021 #include "DataFormats/CSCRecHit/interface/CSCRecHit2DCollection.h"
00022 #include "DataFormats/CSCRecHit/interface/CSCSegment.h"
00023 #include "DataFormats/CSCRecHit/interface/CSCSegmentCollection.h"
00024 #include "DataFormats/EcalDetId/interface/EcalSubdetector.h"
00025 #include "DataFormats/EcalDetId/interface/EBDetId.h"
00026 #include "DataFormats/EcalDetId/interface/EEDetId.h"
00027 #include "DataFormats/EcalDetId/interface/ESDetId.h"
00028 #include "DataFormats/EcalDigi/interface/ESDataFrame.h"
00029 #include "DataFormats/EcalDigi/interface/EEDataFrame.h"
00030 #include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h"
00031 #include "DataFormats/EcalRecHit/interface/EcalRecHit.h"
00032 #include "DataFormats/HcalDetId/interface/HcalDetId.h"
00033 #include "DataFormats/HcalDetId/interface/HcalSubdetector.h"
00034 #include "DataFormats/HcalRecHit/interface/HBHERecHit.h"
00035 #include "DataFormats/HcalRecHit/interface/HFRecHit.h"
00036 #include "DataFormats/HcalRecHit/interface/HORecHit.h"
00037 #include "DataFormats/HcalRecHit/interface/HcalRecHitCollections.h"
00038 #include "DataFormats/EgammaCandidates/interface/Photon.h"
00039 #include "DataFormats/EgammaCandidates/interface/PhotonFwd.h"
00040 #include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h"
00041 #include "Geometry/CaloGeometry/interface/CaloGeometry.h"
00042 #include "Geometry/CaloGeometry/interface/CaloCellGeometry.h"
00043 #include "Geometry/Records/interface/CaloGeometryRecord.h"
00044 #include "Geometry/CSCGeometry/interface/CSCGeometry.h"
00045 #include "Geometry/CSCGeometry/interface/CSCChamber.h"
00046 #include "Geometry/CSCGeometry/interface/CSCLayer.h"
00047 #include "Geometry/CSCGeometry/interface/CSCLayerGeometry.h"
00048 #include "DataFormats/CaloTowers/interface/CaloTowerDetId.h"
00049 #include "DataFormats/CaloTowers/interface/CaloTowerFwd.h"
00050 #include "DataFormats/CaloTowers/interface/CaloTower.h"
00051 
00052 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
00053 #include "DataFormats/GeometryVector/interface/GlobalVector.h"
00054 #include "DataFormats/GeometryVector/interface/LocalPoint.h"
00055 #include "DataFormats/GeometryVector/interface/LocalVector.h"
00056 
00057 class GlobalHaloAlgo {
00058  public: 
00059   // Constructor
00060   GlobalHaloAlgo();
00061   // Destructor
00062   ~GlobalHaloAlgo(){}
00063   
00064   // run algorithm
00065   reco::GlobalHaloData Calculate(const CaloGeometry& TheCaloGeometry, const CSCGeometry& TheCSCGeometry,const reco::CaloMET& TheCaloMET,edm::Handle<edm::View<reco::Candidate> >& TheCaloTowers, edm::Handle<CSCSegmentCollection>& TheCSCSegments, edm::Handle<CSCRecHit2DCollection>& TheCSCRecHits, const reco::CSCHaloData& TheCSCHaloData ,const reco::EcalHaloData& TheEcalHaloData, const reco::HcalHaloData& TheHcalHaloData); 
00066   
00067   // Set min & max radius to associate CSC Rechits with Ecal Phi Wedges
00068   void SetEcalMatchingRadius(float min, float max){Ecal_R_Min = min ; Ecal_R_Max = max;}
00069   // Set min & max radius to associate CSC Rechits with Hcal Phi Wedges
00070   void SetHcalMatchingRadius(float min, float max){Hcal_R_Min = min ; Hcal_R_Max = max;}
00071   // Set CaloTowerEtTheshold
00072   void SetCaloTowerEtThreshold(float EtMin) { TowerEtThreshold = EtMin ;}
00073   // run algorithm
00074   
00075  private:
00076   float Ecal_R_Min;
00077   float Ecal_R_Max;
00078   float Hcal_R_Min;
00079   float Hcal_R_Max;
00080   float TowerEtThreshold;
00081 };
00082 
00083 #endif