Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:28:01

0001 #ifndef PhotonConversionFinderFromTracks_H
0002 #define PhotonConversionFinderFromTracks_H
0003 
0004 #include "FWCore/Framework/interface/Frameworkfwd.h"
0005 #include "FWCore/Framework/interface/Event.h"
0006 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0007 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0008 #include "FWCore/Framework/interface/ConsumesCollector.h"
0009 
0010 #include "SeedForPhotonConversionFromQuadruplets.h"
0011 #include "RecoTracker/TkSeedGenerator/interface/FastHelix.h"
0012 
0013 #include "PrintRecoObjects.h"
0014 
0015 #include "DataFormats/VertexReco/interface/Vertex.h"
0016 #include "DataFormats/VertexReco/interface/VertexFwd.h"
0017 #include "DataFormats/BeamSpot/interface/BeamSpot.h"
0018 #include "DataFormats/TrackReco/interface/TrackFwd.h"
0019 
0020 #include "CombinedHitQuadrupletGeneratorForPhotonConversion.h"
0021 
0022 #include "RecoTracker/SpecialSeedGenerators/interface/ClusterChecker.h"
0023 #include "RecoTracker/TkTrackingRegions/interface/GlobalTrackingRegionProducerFromBeamSpot.h"
0024 
0025 #include <sstream>
0026 
0027 class PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo {
0028 public:
0029   PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo(const edm::ParameterSet&, edm::ConsumesCollector&& iC);
0030   ~PhotonConversionTrajectorySeedProducerFromQuadrupletsAlgo();
0031 
0032   void analyze(const edm::Event& event, const edm::EventSetup& setup);
0033   TrajectorySeedCollection* getTrajectorySeedCollection() { return seedCollection; }
0034 
0035 private:
0036   void loop();
0037   bool inspect(const TrackingRegion& region);
0038 
0039   /*  
0040   :_conf(conf),seedCollection(0),
0041    hitsfactoryPSet(conf.getParameter<edm::ParameterSet>("OrderedHitsFactoryPSet")),   
0042    creatorPSet(conf.getParameter<edm::ParameterSet>("SeedCreatorPSet")),
0043    regfactoryPSet(conf.getParameter<edm::ParameterSet>("RegionFactoryPSet")),
0044    theClusterCheck(conf.getParameter<edm::ParameterSet>("ClusterCheckPSet")),
0045    SeedComparitorPSet(conf.getParameter<edm::ParameterSet>("SeedComparitorPSet")),
0046    QuadCutPSet(conf.getParameter<edm::ParameterSet>("QuadCutPSet")),
0047    theSilentOnClusterCheck(conf.getParameter<edm::ParameterSet>("ClusterCheckPSet").getUntrackedParameter<bool>("silentClusterCheck",false)){
0048 */
0049   //Data Members
0050   const edm::ParameterSet _conf;
0051 
0052   TrajectorySeedCollection* seedCollection;
0053   ClusterChecker theClusterCheck;
0054   edm::ParameterSet QuadCutPSet;
0055   bool theSilentOnClusterCheck;
0056 
0057   std::unique_ptr<CombinedHitQuadrupletGeneratorForPhotonConversion> theHitsGenerator;
0058   std::unique_ptr<SeedForPhotonConversionFromQuadruplets> theSeedCreator;
0059   std::unique_ptr<GlobalTrackingRegionProducerFromBeamSpot> theRegionProducer;
0060 
0061   typedef std::vector<std::unique_ptr<TrackingRegion> > Regions;
0062   typedef Regions::const_iterator IR;
0063   Regions regions;
0064 
0065   edm::Handle<reco::VertexCollection> vertexHandle;
0066   reco::VertexCollection vertexCollection;
0067   reco::Vertex primaryVertex;
0068   edm::EDGetTokenT<reco::VertexCollection> token_vertex;
0069 
0070   const edm::EventSetup* myEsetup;
0071   const edm::Event* myEvent;
0072 
0073   PrintRecoObjects po;
0074 
0075   std::stringstream ss;
0076 };
0077 #endif