CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/SUSYBSMAnalysis/HSCP/interface/BetaCalculatorECAL.h

Go to the documentation of this file.
00001 // system include files
00002 #include <memory>
00003 #include <vector>
00004 #include <map>
00005 
00006 // user include files
00007 #include "FWCore/Framework/interface/Frameworkfwd.h"
00008 #include "FWCore/Framework/interface/EDProducer.h"
00009 #include "FWCore/Framework/interface/Event.h"
00010 #include "FWCore/Framework/interface/MakerMacros.h"
00011 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00012 #include "FWCore/Framework/interface/ESHandle.h"
00013 
00014 #include "DataFormats/Common/interface/Handle.h" 
00015 #include "DataFormats/DetId/interface/DetId.h"
00016 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
00017 
00018 #include "Geometry/CaloGeometry/interface/CaloGeometry.h"
00019 #include "Geometry/CaloTopology/interface/CaloTopology.h"
00020 
00021 #include "TrackingTools/TrackAssociator/interface/TrackDetectorAssociator.h"
00022 #include "TrackingTools/TrackAssociator/interface/TrackAssociatorParameters.h"
00023 #include "TrackingTools/TrackAssociator/interface/DetIdAssociator.h"
00024 #include "TrackingTools/TrajectoryState/interface/FreeTrajectoryState.h"
00025 
00026 #include "MagneticField/Records/interface/IdealMagneticFieldRecord.h"
00027 
00028 #include "AnalysisDataFormats/SUSYBSMObjects/interface/HSCParticle.h"
00029 #include "AnalysisDataFormats/SUSYBSMObjects/interface/HSCPCaloInfo.h"
00030 
00031 using namespace susybsm;
00032 
00033 class BetaCalculatorECAL {
00034 
00035    public:
00036        BetaCalculatorECAL(const edm::ParameterSet& iConfig);
00037        void  addInfoToCandidate(HSCParticle& candidate, edm::Handle<reco::TrackCollection>& tracks, edm::Event& iEvent, const edm::EventSetup& iSetup, HSCPCaloInfo& caloInfo);
00038 
00039    private:
00040        int getDetailedTrackLengthInXtals(std::map<int,GlobalPoint>& trackExitPositionMap,
00041            std::map<int,float>& trackCrossedXtalMap,
00042            double& totalLengthCurved,
00043            GlobalPoint& internalPointCurved,
00044            GlobalPoint& externalPointCurved,
00045            const CaloGeometry* theGeometry,
00046            const CaloTopology * theTopology,
00047            const std::vector<SteppingHelixStateInfo>& neckLace);
00048        std::vector<SteppingHelixStateInfo> calcEcalDeposit(const FreeTrajectoryState* tkInnerState,
00049            const DetIdAssociator& associator);
00050        void addStepToXtal(std::map<int,GlobalPoint>& trackExitPositionMap,
00051            std::map<int,float>& trackCrossedXtalMap,
00052            DetId aDetId,
00053            float step,
00054            GlobalPoint point,
00055            const CaloSubdetectorGeometry* theSubdetGeometry);
00056 
00057       // Data members
00058       TrackDetectorAssociator trackAssociator_; 
00059       TrackAssociatorParameters parameters_; 
00060       edm::InputTag EBRecHitCollection_;
00061       edm::InputTag EERecHitCollection_;
00062 
00063       edm::ESHandle<DetIdAssociator> ecalDetIdAssociator_;
00064       edm::ESHandle<MagneticField> bField_;
00065       edm::ESHandle<CaloGeometry> theCaloGeometry_;
00066 
00067 };
00068 
00069