CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Static Public Member Functions | Private Attributes
HLTDisplacedEgammaFilter Class Reference

#include <HLTDisplacedEgammaFilter.h>

Inheritance diagram for HLTDisplacedEgammaFilter:
HLTFilter edm::EDFilter edm::ProducerBase edm::ProductRegistryHelper

Public Member Functions

 HLTDisplacedEgammaFilter (const edm::ParameterSet &)
 
virtual bool hltFilter (edm::Event &, const edm::EventSetup &, trigger::TriggerFilterObjectWithRefs &filterproduct)
 
 ~HLTDisplacedEgammaFilter ()
 
- Public Member Functions inherited from HLTFilter
 HLTFilter (const edm::ParameterSet &config)
 
int module () const
 
const std::string * moduleLabel () const
 
int path () const
 
const std::string * pathName () const
 
std::pair< int, int > pmid () const
 
bool saveTags () const
 
virtual ~HLTFilter ()
 
- Public Member Functions inherited from edm::EDFilter
 EDFilter ()
 
virtual ~EDFilter ()
 
- Public Member Functions inherited from edm::ProducerBase
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
boost::function< void(const
BranchDescription &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from HLTFilter
static void makeHLTFilterDescription (edm::ParameterSetDescription &desc)
 
- Static Public Member Functions inherited from edm::EDFilter
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 

Private Attributes

bool EBOnly
 
edm::InputTag inputTag_
 
edm::InputTag inputTrk
 
edm::InputTag L1IsoCollTag_
 
edm::InputTag L1NonIsoCollTag_
 
int maxTrkCut
 
int ncandcut_
 
edm::InputTag rechitsEB
 
edm::InputTag rechitsEE
 
bool relaxed_
 
double seedTimeMax
 
double seedTimeMin
 
double sMaj_max
 
double sMaj_min
 
double sMin_max
 
double sMin_min
 
double trkdRCut
 
double trkPtCut
 

Additional Inherited Members

- Public Types inherited from edm::EDFilter
typedef EDFilter ModuleType
 
typedef WorkerT< EDFilterWorkerType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Protected Member Functions inherited from edm::EDFilter
CurrentProcessingContext const * currentContext () const
 
- Protected Member Functions inherited from edm::ProducerBase
template<class TProducer , class TMethod >
void callWhenNewProductsRegistered (TProducer *iProd, TMethod iMethod)
 

Detailed Description

Author
Monica Vazquez Acosta (CERN)
Id:
HLTDisplacedEgammaFilter.cc,v 1.10 2012/04/11 08:57:07 gruen Exp
Author
Monica Vazquez Acosta (CERN)

Definition at line 18 of file HLTDisplacedEgammaFilter.h.

Constructor & Destructor Documentation

HLTDisplacedEgammaFilter::HLTDisplacedEgammaFilter ( const edm::ParameterSet iConfig)
explicit

Definition at line 29 of file HLTDisplacedEgammaFilter.cc.

References EBOnly, edm::ParameterSet::getParameter(), inputTag_, inputTrk, L1IsoCollTag_, L1NonIsoCollTag_, maxTrkCut, ncandcut_, rechitsEB, rechitsEE, relaxed_, seedTimeMax, seedTimeMin, sMaj_max, sMaj_min, sMin_max, sMin_min, trkdRCut, and trkPtCut.

29  : HLTFilter(iConfig)
30 {
31  inputTag_ = iConfig.getParameter< edm::InputTag > ("inputTag");
32  ncandcut_ = iConfig.getParameter<int> ("ncandcut");
33  relaxed_ = iConfig.getParameter<bool> ("relaxed") ;
34  L1IsoCollTag_= iConfig.getParameter< edm::InputTag > ("L1IsoCand");
35  L1NonIsoCollTag_= iConfig.getParameter< edm::InputTag > ("L1NonIsoCand");
36 
37  inputTrk = iConfig.getParameter< edm::InputTag > ("inputTrack");
38  trkPtCut = iConfig.getParameter<double> ("trackPtCut");
39  trkdRCut = iConfig.getParameter<double> ("trackdRCut");
40  maxTrkCut = iConfig.getParameter<int> ("maxTrackCut");
41 
42  rechitsEB = iConfig.getParameter< edm::InputTag > ("RecHitsEB");
43  rechitsEE = iConfig.getParameter< edm::InputTag > ("RecHitsEE");
44 
45  EBOnly = iConfig.getParameter<bool> ("EBOnly") ;
46  sMin_min = iConfig.getParameter<double> ("sMin_min");
47  sMin_max = iConfig.getParameter<double> ("sMin_max");
48  sMaj_min = iConfig.getParameter<double> ("sMaj_min");
49  sMaj_max = iConfig.getParameter<double> ("sMaj_max");
50  seedTimeMin = iConfig.getParameter<double> ("seedTimeMin");
51  seedTimeMax = iConfig.getParameter<double> ("seedTimeMax");
52 
53 }
T getParameter(std::string const &) const
HLTFilter(const edm::ParameterSet &config)
Definition: HLTFilter.cc:18
HLTDisplacedEgammaFilter::~HLTDisplacedEgammaFilter ( )

Definition at line 55 of file HLTDisplacedEgammaFilter.cc.

55 {}

Member Function Documentation

void HLTDisplacedEgammaFilter::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 59 of file HLTDisplacedEgammaFilter.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), and HLTFilter::makeHLTFilterDescription().

59  {
62  desc.add<edm::InputTag>("inputTag",edm::InputTag("hltEGRegionalL1SingleEG22"));
63  desc.add<edm::InputTag>("L1IsoCand",edm::InputTag("hltL1IsoRecoEcalCandidate"));
64  desc.add<edm::InputTag>("L1NonIsoCand",edm::InputTag("hltL1NonIsoRecoEcalCandidate"));
65  desc.add<edm::InputTag>("RecHitsEB",edm::InputTag("hltEcalRecHitAll", "EcalRecHitsEB"));
66  desc.add<edm::InputTag>("RecHitsEE",edm::InputTag("hltEcalRecHitAll", "EcalRecHitsEE"));
67  desc.add<edm::InputTag>("inputTrack",edm::InputTag("hltL1SeededEgammaRegionalCTFFinalFitWithMaterial"));
68  desc.add<bool>("relaxed",false);
69  desc.add<int>("ncandcut",1);
70  desc.add<bool>("EBOnly",false);
71  desc.add<double>("sMin_min",0.1);
72  desc.add<double>("sMin_max",0.4);
73  desc.add<double>("sMaj_min",0.0);
74  desc.add<double>("sMaj_max",999.0);
75  desc.add<double>("seedTimeMin", -25.0);
76  desc.add<double>("seedTimeMax", 25.0);
77  desc.add<int>("maxTrackCut", 0);
78  desc.add<double>("trackPtCut", 3.0);
79  desc.add<double>("trackdRCut", 0.5);
80  descriptions.add("hltDisplacedEgammaFilter",desc);
81 }
ParameterDescriptionBase * add(U const &iLabel, T const &value)
static void makeHLTFilterDescription(edm::ParameterSetDescription &desc)
Definition: HLTFilter.cc:27
void add(std::string const &label, ParameterSetDescription const &psetDescription)
bool HLTDisplacedEgammaFilter::hltFilter ( edm::Event iEvent,
const edm::EventSetup iSetup,
trigger::TriggerFilterObjectWithRefs filterproduct 
)
virtual

Implements HLTFilter.

Definition at line 84 of file HLTDisplacedEgammaFilter.cc.

References abs, accept(), trigger::TriggerFilterObjectWithRefs::addCollectionTag(), trigger::TriggerRefsCollections::addObject(), EcalClusterTools::cluster2ndMoments(), PFRecoTauDiscriminationAgainstElectronDeadECAL_cfi::dR, EBOnly, edm::SortedCollection< T, SORT >::find(), edm::Event::getByLabel(), EcalClusterTools::getMaximum(), i, inputTag_, inputTrk, L1IsoCollTag_, L1NonIsoCollTag_, maxTrkCut, n, ncandcut_, HI_PhotonSkim_cff::rechits, rechitsEB, rechitsEE, relaxed_, HLTFilter::saveTags(), seedTimeMax, Cluster2ndMoments::sMaj, sMaj_max, Cluster2ndMoments::sMin, sMin_max, testEve_cfg::tracks, trigger::TriggerCluster, trkdRCut, and trkPtCut.

85 {
86  using namespace trigger;
87 
88  // The filter object
89  if (saveTags()) {
90  filterproduct.addCollectionTag(L1IsoCollTag_);
91  if (relaxed_) filterproduct.addCollectionTag(L1NonIsoCollTag_);
92  }
93 
94  // Ref to Candidate object to be recorded in filter object
96 
97  // get hold of filtered candidates
98  //edm::Handle<reco::HLTFilterObjectWithRefs> recoecalcands;
100  iEvent.getByLabel (inputTag_,PrevFilterOutput);
101 
102  // get hold of collection of objects
104  iEvent.getByLabel( inputTrk , tracks);
105 
106  // get the EcalRecHit
109  iEvent.getByLabel( rechitsEB, rechitsEB_ );
110  iEvent.getByLabel( rechitsEE, rechitsEE_ );
111 
112  std::vector<edm::Ref<reco::RecoEcalCandidateCollection> > recoecalcands;
113  PrevFilterOutput->getObjects(TriggerCluster, recoecalcands);
114 
115  // look at all candidates, check cuts and add to filter object
116  int n(0);
117 
118  for (unsigned int i=0; i<recoecalcands.size(); i++) {
119 
120  ref = recoecalcands[i] ;
121  if ( EBOnly && std::abs( ref->eta() ) >= 1.479 ) continue ;
122 
123 
124  // S_Minor Cuts from the seed cluster
125  reco::CaloClusterPtr SCseed = ref->superCluster()->seed() ;
126  const EcalRecHitCollection* rechits = ( std::abs( ref->eta() ) < 1.479 ) ? rechitsEB_.product() : rechitsEE_.product() ;
127 
128  Cluster2ndMoments moments = EcalClusterTools::cluster2ndMoments(*SCseed, *rechits);
129  float sMin = moments.sMin ;
130  float sMaj = moments.sMaj ;
131  if ( sMin < sMin_min || sMin > sMin_max ) continue ;
132  if ( sMaj < sMaj_min || sMaj > sMaj_max ) continue ;
133 
134  // seed Time
135  std::pair<DetId, float> maxRH = EcalClusterTools::getMaximum( *SCseed, rechits );
136  DetId seedCrystalId = maxRH.first;
137  EcalRecHitCollection::const_iterator seedRH = rechits->find(seedCrystalId);
138  float seedTime = (float)seedRH->time();
139  if ( seedTime < seedTimeMin || seedTime > seedTimeMax ) continue ;
140 
141  //Track Veto
142 
143  int nTrk = 0 ;
144  for (reco::TrackCollection::const_iterator it = tracks->begin(); it != tracks->end(); it++ ) {
145  if ( it->pt() < trkPtCut ) continue ;
146  LorentzVector trkP4( it->px(), it->py(), it->pz(), it->p() ) ;
147  double dR = ROOT::Math::VectorUtil::DeltaR( trkP4 , ref->p4() ) ;
148  if ( dR < trkdRCut ) nTrk++ ;
149  if ( nTrk > maxTrkCut ) break ;
150  }
151  if ( nTrk > maxTrkCut ) continue ;
152 
153 
154  n++;
155  // std::cout << "Passed eta: " << ref->eta() << std::endl;
156  filterproduct.addObject(TriggerCluster, ref);
157  }
158 
159 
160  // filter decision
161  bool accept(n>=ncandcut_);
162 
163  return accept;
164 }
int i
Definition: DBlmapReader.cc:9
math::XYZTLorentzVector LorentzVector
std::vector< EcalRecHit >::const_iterator const_iterator
#define abs(x)
Definition: mlp_lapack.h:159
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
Definition: TopDQMHelpers.h:22
void addObject(int id, const reco::RecoEcalCandidateRef &ref)
setters for L3 collections: (id=physics type, and Ref&lt;C&gt;)
static Cluster2ndMoments cluster2ndMoments(const reco::BasicCluster &basicCluster, const EcalRecHitCollection &recHits, double phiCorrectionFactor=0.8, double w0=4.7, bool useLogWeights=true)
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:356
Definition: DetId.h:20
tuple tracks
Definition: testEve_cfg.py:39
void addCollectionTag(const edm::InputTag &collectionTag)
collectionTags
iterator find(key_type k)
bool saveTags() const
Definition: HLTFilter.h:45
static std::pair< DetId, float > getMaximum(const reco::BasicCluster &cluster, const EcalRecHitCollection *recHits)

Member Data Documentation

bool HLTDisplacedEgammaFilter::EBOnly
private

Definition at line 35 of file HLTDisplacedEgammaFilter.h.

Referenced by HLTDisplacedEgammaFilter(), and hltFilter().

edm::InputTag HLTDisplacedEgammaFilter::inputTag_
private

Definition at line 27 of file HLTDisplacedEgammaFilter.h.

Referenced by HLTDisplacedEgammaFilter(), and hltFilter().

edm::InputTag HLTDisplacedEgammaFilter::inputTrk
private

Definition at line 43 of file HLTDisplacedEgammaFilter.h.

Referenced by HLTDisplacedEgammaFilter(), and hltFilter().

edm::InputTag HLTDisplacedEgammaFilter::L1IsoCollTag_
private

Definition at line 30 of file HLTDisplacedEgammaFilter.h.

Referenced by HLTDisplacedEgammaFilter(), and hltFilter().

edm::InputTag HLTDisplacedEgammaFilter::L1NonIsoCollTag_
private

Definition at line 31 of file HLTDisplacedEgammaFilter.h.

Referenced by HLTDisplacedEgammaFilter(), and hltFilter().

int HLTDisplacedEgammaFilter::maxTrkCut
private

Definition at line 46 of file HLTDisplacedEgammaFilter.h.

Referenced by HLTDisplacedEgammaFilter(), and hltFilter().

int HLTDisplacedEgammaFilter::ncandcut_
private

Definition at line 28 of file HLTDisplacedEgammaFilter.h.

Referenced by HLTDisplacedEgammaFilter(), and hltFilter().

edm::InputTag HLTDisplacedEgammaFilter::rechitsEB
private

Definition at line 32 of file HLTDisplacedEgammaFilter.h.

Referenced by HLTDisplacedEgammaFilter(), and hltFilter().

edm::InputTag HLTDisplacedEgammaFilter::rechitsEE
private

Definition at line 33 of file HLTDisplacedEgammaFilter.h.

Referenced by HLTDisplacedEgammaFilter(), and hltFilter().

bool HLTDisplacedEgammaFilter::relaxed_
private

Definition at line 29 of file HLTDisplacedEgammaFilter.h.

Referenced by HLTDisplacedEgammaFilter(), and hltFilter().

double HLTDisplacedEgammaFilter::seedTimeMax
private

Definition at line 41 of file HLTDisplacedEgammaFilter.h.

Referenced by HLTDisplacedEgammaFilter(), and hltFilter().

double HLTDisplacedEgammaFilter::seedTimeMin
private

Definition at line 40 of file HLTDisplacedEgammaFilter.h.

Referenced by HLTDisplacedEgammaFilter().

double HLTDisplacedEgammaFilter::sMaj_max
private

Definition at line 39 of file HLTDisplacedEgammaFilter.h.

Referenced by HLTDisplacedEgammaFilter(), and hltFilter().

double HLTDisplacedEgammaFilter::sMaj_min
private

Definition at line 38 of file HLTDisplacedEgammaFilter.h.

Referenced by HLTDisplacedEgammaFilter().

double HLTDisplacedEgammaFilter::sMin_max
private

Definition at line 37 of file HLTDisplacedEgammaFilter.h.

Referenced by HLTDisplacedEgammaFilter(), and hltFilter().

double HLTDisplacedEgammaFilter::sMin_min
private

Definition at line 36 of file HLTDisplacedEgammaFilter.h.

Referenced by HLTDisplacedEgammaFilter().

double HLTDisplacedEgammaFilter::trkdRCut
private

Definition at line 45 of file HLTDisplacedEgammaFilter.h.

Referenced by HLTDisplacedEgammaFilter(), and hltFilter().

double HLTDisplacedEgammaFilter::trkPtCut
private

Definition at line 44 of file HLTDisplacedEgammaFilter.h.

Referenced by HLTDisplacedEgammaFilter(), and hltFilter().