Skip to content

Commit

Permalink
The first commitment for soft conversion reconstruction
Browse files Browse the repository at this point in the history
  • Loading branch information
Dongwook Jang committed May 28, 2008
1 parent 5fd0cf3 commit 45c5b11
Show file tree
Hide file tree
Showing 9 changed files with 699 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
#ifndef RecoEgamma_EgammaPhotonProducers_SoftConversionProducer_h
#define RecoEgamma_EgammaPhotonProducers_SoftConversionProducer_h
/** \class SoftConversionProducer
**
**
** $Id: SoftConversionProducer.h,v 1.9 2007/07/12 14:50:14 nancy Exp $
** $Date: 2007/07/12 14:50:14 $
** $Revision: 1.9 $
** \author Nancy Marinelli, U. of Notre Dame, US
**
***/

#include "FWCore/Framework/interface/EDProducer.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/EventSetup.h"
#include "FWCore/Framework/interface/ESHandle.h"

#include "MagneticField/Engine/interface/MagneticField.h"
#include "RecoTracker/TkDetLayers/interface/GeometricSearchTracker.h"
#include "DataFormats/CaloRecHit/interface/CaloClusterFwd.h"

class ConversionTrackEcalImpactPoint;
class ConversionTrackPairFinder;
class ConversionVertexFinder;
class SoftConversionProducer : public edm::EDProducer {

public:

typedef std::vector<std::pair<reco::TrackRef, reco::CaloClusterPtr> > TrackClusterMap;

SoftConversionProducer (const edm::ParameterSet& ps);
~SoftConversionProducer();


virtual void beginJob (edm::EventSetup const & es);
virtual void endJob ();
virtual void produce(edm::Event& evt, const edm::EventSetup& es);

private:

std::string conversionOITrackProducer_;
std::string conversionIOTrackProducer_;

std::string outInTrackClusterAssociationCollection_;
std::string inOutTrackClusterAssociationCollection_;

std::string clusterType_;
std::string clusterProducer_;
std::string clusterBarrelCollection_;
std::string clusterEndcapCollection_;

std::string softConversionCollection_;

edm::ParameterSet conf_;
edm::ESHandle<MagneticField> theMF_;
edm::ESHandle<GeometricSearchTracker> theGeomSearchTracker_;

ConversionTrackPairFinder* theTrackPairFinder_;
ConversionVertexFinder* theVertexFinder_;
ConversionTrackEcalImpactPoint* theEcalImpactPositionFinder_;

};
#endif
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
#ifndef RecoEgamma_EgammaPhotonProducers_SoftConversionTrackCandidateProducer_h
#define RecoEgamma_EgammaPhotonProducers_SoftConversionTrackCandidateProducer_h
/** \class SoftConversionTrackCandidateProducer
**
**
** $Id: SoftConversionTrackCandidateProducer.h,v 1.7 2008/03/03 21:37:34 nancy Exp $
** $Date: 2008/03/03 21:37:34 $
** $Revision: 1.7 $
** \author Nancy Marinelli, U. of Notre Dame, US
**
***/

#include "FWCore/Framework/interface/EDProducer.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/EventSetup.h"
#include "FWCore/Framework/interface/ESHandle.h"

#include "MagneticField/Engine/interface/MagneticField.h"
#include "RecoTracker/MeasurementDet/interface/MeasurementTracker.h"
#include "Geometry/CaloGeometry/interface/CaloGeometry.h"
#include "RecoEgamma/EgammaTools/interface/HoECalculator.h"
#include "TrackingTools/MeasurementDet/interface/LayerMeasurements.h"
#include "TrackingTools/DetLayers/interface/NavigationSetter.h"
#include "TrackingTools/DetLayers/interface/NavigationSchool.h"
#include "RecoTracker/TkNavigation/interface/SimpleNavigationSchool.h"
#include "RecoTracker/TkDetLayers/interface/GeometricSearchTracker.h"
#include "DataFormats/TrackCandidate/interface/TrackCandidateCollection.h"
#include "DataFormats/CaloRecHit/interface/CaloCluster.h"
#include "DataFormats/CaloRecHit/interface/CaloClusterFwd.h"
#include "DataFormats/Common/interface/View.h"

class OutInConversionSeedFinder;
class InOutConversionSeedFinder;
class OutInConversionTrackFinder;
class InOutConversionTrackFinder;

// SoftConversionTrackCandidateProducer inherits from EDProducer, so it can be a module:
class SoftConversionTrackCandidateProducer : public edm::EDProducer {

public:

SoftConversionTrackCandidateProducer (const edm::ParameterSet& ps);
~SoftConversionTrackCandidateProducer();


virtual void beginJob (edm::EventSetup const & es);
virtual void produce(edm::Event& evt, const edm::EventSetup& es);

private:

int nEvt_;

/// Initialize EventSetup objects at each event
void setEventSetup( const edm::EventSetup& es ) ;

std::string clusterType_;
std::string clusterProducer_;
std::string clusterBarrelCollection_;
std::string clusterEndcapCollection_;
std::string OutInTrackCandidateCollection_;
std::string InOutTrackCandidateCollection_;
std::string OutInTrackClusterAssociationCollection_;
std::string InOutTrackClusterAssociationCollection_;

edm::ParameterSet conf_;

edm::ESHandle<CaloGeometry> theCaloGeom_;

const NavigationSchool* theNavigationSchool_;
OutInConversionSeedFinder* theOutInSeedFinder_;
OutInConversionTrackFinder* theOutInTrackFinder_;
InOutConversionSeedFinder* theInOutSeedFinder_;
InOutConversionTrackFinder* theInOutTrackFinder_;

void buildCollections( const edm::Handle<edm::View<reco::CaloCluster> >& clusterHandle,
TrackCandidateCollection& outInTracks,
TrackCandidateCollection& inOutTracks,
std::vector<edm::Ptr<reco::CaloCluster> >& vecRecOI,
std::vector<edm::Ptr<reco::CaloCluster> >& vecRecIO);

};
#endif
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import FWCore.ParameterSet.Config as cms

# KFUpdatoerESProducer
from TrackingTools.KalmanUpdators.KFUpdatorESProducer_cfi import *
from RecoEgamma.EgammaPhotonProducers.propAlongMomentumWithMaterialForElectrons_cfi import *
from RecoEgamma.EgammaPhotonProducers.KFFittingSmootherForInOut_cfi import *
softConversionIOTracks = cms.EDFilter("TrackProducerWithBCAssociation",
src = cms.InputTag("softConversionTrackCandidates","softIOTrackCandidates"),
recoTrackSCAssociationCollection = cms.string('inOutTrackClusterAssociationCollection'),
producer = cms.string('softConversionTrackCandidates'),
Fitter = cms.string('KFFittingSmootherForInOut'),
useHitsSplitting = cms.bool(False),
trackCandidateSCAssociationCollection = cms.string('inOutTrackCandidateClusterAssociationCollection'),
TrajectoryInEvent = cms.bool(False),
TTRHBuilder = cms.string('WithTrackAngle'),
#string AlgorithmName = "ecalSeededConv"
AlgorithmName = cms.string('undefAlgorithm'),
ComponentName = cms.string('softConversionIOTracks'),
#string Propagator = "PropagatorWithMaterial"
Propagator = cms.string('alongMomElePropagator'),
beamSpot = cms.InputTag("offlineBeamSpot")
)



Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import FWCore.ParameterSet.Config as cms

# KFUpdatoerESProducer
from TrackingTools.KalmanUpdators.KFUpdatorESProducer_cfi import *
from RecoEgamma.EgammaPhotonProducers.propAlongMomentumWithMaterialForElectrons_cfi import *
from RecoEgamma.EgammaPhotonProducers.KFTrajectoryFitterForOutIn_cfi import *
#TrackProducers
softConversionOITracks = cms.EDFilter("TrackProducerWithBCAssociation",
src = cms.InputTag("softConversionTrackCandidates","softOITrackCandidates"),
recoTrackSCAssociationCollection = cms.string('outInTrackClusterAssociationCollection'),
producer = cms.string('softConversionTrackCandidates'),
Fitter = cms.string('KFFitterForOutIn'),
useHitsSplitting = cms.bool(False),
trackCandidateSCAssociationCollection = cms.string('outInTrackCandidateClusterAssociationCollection'),
TrajectoryInEvent = cms.bool(False),
TTRHBuilder = cms.string('WithTrackAngle'),
AlgorithmName = cms.string('undefAlgorithm'),
ComponentName = cms.string('softConversionOITracks'),
#string Propagator = "PropagatorWithMaterial"
Propagator = cms.string('alongMomElePropagator'),
beamSpot = cms.InputTag("offlineBeamSpot")
)



Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import FWCore.ParameterSet.Config as cms

from RecoEgamma.EgammaPhotonProducers.softConversionTrackCandidates_cfi import *
from RecoEgamma.EgammaPhotonProducers.softConversionOITracks_cfi import *
from RecoEgamma.EgammaPhotonProducers.softConversionIOTracks_cfi import *
from RecoEgamma.EgammaPhotonProducers.softConversions_cfi import *
softConversionSequence = cms.Sequence(softConversionTrackCandidates*softConversionOITracks*softConversionIOTracks*softConversions)


Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
import FWCore.ParameterSet.Config as cms

#
# configuration for producer of converted photons
# $Id: conversionTrackCandidates.cfi,v 1.16 2008/03/11 18:32:17 nancy Exp $
#
# Tracker geometry #####################
from Geometry.TrackerGeometryBuilder.trackerGeometry_cfi import *
from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi import *
from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import *
# stripCPE
from RecoLocalTracker.SiStripRecHitConverter.StripCPEfromTrackAngle_cfi import *
from RecoLocalTracker.SiStripRecHitConverter.SiStripRecHitMatcher_cfi import *
# pixelCPE
from RecoLocalTracker.SiPixelRecHits.PixelCPEParmError_cfi import *
#TransientTrackingBuilder
from RecoTracker.TransientTrackingRecHit.TransientTrackingRecHitBuilder_cfi import *
# MeasurementTracker
from RecoTracker.MeasurementDet.MeasurementTrackerESProducer_cfi import *
# TransientTracks
from TrackingTools.TransientTrack.TransientTrackBuilder_cfi import *
#TrajectoryFilter
from RecoEgamma.EgammaPhotonProducers.trajectoryFilterForConversions_cfi import *
#TrajectoryBuilder
from RecoEgamma.EgammaPhotonProducers.trajectoryBuilderForConversions_cfi import *
softConversionTrackCandidates = cms.EDProducer("SoftConversionTrackCandidateProducer",
TransientInitialStateEstimatorParameters = cms.PSet(
propagatorAlongTISE = cms.string('alongMomElePropagator'),
propagatorOppositeTISE = cms.string('oppositeToMomElePropagator')
),
inOutTrackCandidateCollection = cms.string('softIOTrackCandidates'),
inOutTrackCandidateClusterAssociationCollection = cms.string('inOutTrackCandidateClusterAssociationCollection'),
clusterBarrelCollection = cms.string('islandBarrelBasicClusters'),
clusterType = cms.string('BasicCluster'),
MeasurementTrackerName = cms.string(''),
clusterProducer = cms.string('islandBasicClusters'),
clusterEndcapCollection = cms.string('islandEndcapBasicClusters'),
outInTrackCandidateClusterAssociationCollection = cms.string('outInTrackCandidateClusterAssociationCollection'),
InOutRedundantSeedCleaner = cms.string('CachingSeedCleanerBySharedInput'),
OutInRedundantSeedCleaner = cms.string('CachingSeedCleanerBySharedInput'),
outInTrackCandidateCollection = cms.string('softOITrackCandidates'),
TrajectoryBuilder = cms.string('TrajectoryBuilderForConversions')
)



22 changes: 22 additions & 0 deletions RecoEgamma/EgammaPhotonProducers/python/softConversions_cfi.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import FWCore.ParameterSet.Config as cms

#
# configuration for producer of converted photons
#
#
softConversions = cms.EDProducer("SoftConversionProducer",
clusterBarrelCollection = cms.string('islandBarrelBasicClusters'),
outInTrackCollection = cms.string(''),
softConversionCollection = cms.string('softConversionCollection'),
clusterType = cms.string('BasicCluster'),
conversionIOTrackProducer = cms.string('softConversionIOTracks'),
outInTrackClusterAssociationCollection = cms.string('outInTrackClusterAssociationCollection'),
clusterProducer = cms.string('islandBasicClusters'),
clusterEndcapCollection = cms.string('islandEndcapBasicClusters'),
inOutTrackClusterAssociationCollection = cms.string('inOutTrackClusterAssociationCollection'),
inOutTrackCollection = cms.string(''),
conversionOITrackProducer = cms.string('softConversionOITracks')
)



Loading

0 comments on commit 45c5b11

Please sign in to comment.