CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/RecoTauTag/InvariantMass/interface/InvariantMassAlgorithm.h

Go to the documentation of this file.
00001 #ifndef InvariantMassAlgorithm_H
00002 #define InvariantMassAlgorithm_H
00003 
00004 #include "FWCore/Framework/interface/Event.h"
00005 
00006 #include "DataFormats/BTauReco/interface/TauMassTagInfo.h"
00007 #include "DataFormats/BTauReco/interface/JetTag.h"
00008 #include "DataFormats/VertexReco/interface/Vertex.h"
00009 #include "DataFormats/JetReco/interface/Jet.h"
00010 #include "DataFormats/TrackReco/interface/Track.h"
00011 #include "DataFormats/JetReco/interface/JetTracksAssociation.h"
00012 #include "DataFormats/GeometryVector/interface/GlobalVector.h"
00013 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00014 #include "DataFormats/EgammaReco/interface/BasicCluster.h"
00015 #include "DataFormats/EgammaReco/interface/BasicClusterFwd.h"
00016 #include "TrackingTools/TrackAssociator/interface/TrackDetectorAssociator.h"
00017 #include "TrackingTools/TrackAssociator/interface/TrackAssociatorParameters.h"
00018 #include "TrackPropagation/SteppingHelixPropagator/interface/SteppingHelixPropagator.h"
00019 #include "RecoTracker/TrackProducer/interface/TrackProducerBase.h"
00020 #include "TrackingTools/TransientTrack/interface/TransientTrack.h"
00021 
00022 //Math
00023 #include "Math/GenVector/VectorUtil.h"
00024 #include "Math/GenVector/PxPyPzE4D.h"
00025 
00026 class  InvariantMassAlgorithm  {
00027 
00028 public:
00029  
00030   InvariantMassAlgorithm(const edm::ParameterSet  & parameters );
00031   InvariantMassAlgorithm(); 
00032 
00033   // For out of framework usage we may need a different constructor
00034   // so we keep datamember as builtin types (instead of ParameterSet) 
00035   //InvariantMassAlgorithm (int,float,....);
00036    
00037   ~InvariantMassAlgorithm();
00038 
00039   std::pair<double, reco::TauMassTagInfo> tag(edm::Event& theEvent, const edm::EventSetup& theEventSetup,const reco::IsolatedTauTagInfoRef& tauRef, const edm::Handle<reco::BasicClusterCollection>& clus_handle); 
00040 
00041   float getMinimumClusterDR(edm::Event& theEvent, const edm::EventSetup& theEventSetup,const reco::IsolatedTauTagInfoRef& tauRef, const math::XYZVector& cluster_3vec);
00042 
00043 private:
00044 
00045 //algorithm parameters
00046   
00047   double matching_cone;
00048   double leading_trk_pt;
00049   double signal_cone;
00050   double cluster_jet_matching_cone;
00051   double cluster_track_matching_cone;
00052   double inv_mass_cut;
00053 
00054   TrackDetectorAssociator* trackAssociator_;
00055   TrackAssociatorParameters trackAssociatorParameters_;
00056 
00057 };
00058 
00059 #endif 
00060