CMS 3D CMS Logo

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

#include <TrackAssociator.h>

Classes

class  HAssociatorParameters
 

Public Member Functions

void addDataLabels (const std::string className, const std::string moduleLabel, const std::string productInstanceLabel="")
 specify names of EDProducts to use for different input data types More...
 
HTrackDetMatchInfo associate (const edm::Event &, const edm::EventSetup &, const FreeTrajectoryState &, const HAssociatorParameters &)
 
std::vector< EcalRecHitassociateEcal (const edm::Event &, const edm::EventSetup &, const FreeTrajectoryState &, const double dR=-1)
 
std::vector< CaloTowerassociateHcal (const edm::Event &, const edm::EventSetup &, const FreeTrajectoryState &, const double dR=-1)
 
double getEcalEnergy (const edm::Event &, const edm::EventSetup &, const FreeTrajectoryState &, const double dR=-1)
 
FreeTrajectoryState getFreeTrajectoryState (const edm::EventSetup &, const reco::Track &)
 get FreeTrajectoryState from different track representations More...
 
FreeTrajectoryState getFreeTrajectoryState (const edm::EventSetup &, const SimTrack &, const SimVertex &)
 
double getHcalEnergy (const edm::Event &, const edm::EventSetup &, const FreeTrajectoryState &, const double dR=-1)
 
 HTrackAssociator ()
 
void setPropagator (Propagator *)
 use a user configured propagator More...
 
void useDefaultPropagator ()
 use the default propagator More...
 
 ~HTrackAssociator ()
 

Private Member Functions

void fillCaloTowers (const edm::Event &, const edm::EventSetup &, HTrackDetMatchInfo &, const FreeTrajectoryState &, const int, const double)
 
void fillEcal (const edm::Event &, const edm::EventSetup &, HTrackDetMatchInfo &, const FreeTrajectoryState &, const int, const double)
 
void fillHcal (const edm::Event &, const edm::EventSetup &, HTrackDetMatchInfo &, const FreeTrajectoryState &, const int, const double)
 
void fillHcalTowers (const edm::Event &, const edm::EventSetup &, HTrackDetMatchInfo &, const FreeTrajectoryState &, const int, const double)
 
math::XYZPoint getPoint (const GlobalPoint &point)
 
math::XYZPoint getPoint (const LocalPoint &point)
 
math::XYZVector getVector (const GlobalVector &vec)
 
math::XYZVector getVector (const LocalVector &vec)
 
void init (const edm::EventSetup &)
 

Private Attributes

HCaloDetIdAssociator caloDetIdAssociator_
 
std::vector< std::string > CaloTowerCollectionLabels
 CaloTowers. More...
 
std::vector< std::vector
< std::set< uint32_t > > > * 
caloTowerMap_
 
int debug_
 
PropagatordefProp_
 
std::vector< std::string > EBRecHitCollectionLabels
 
HEcalDetIdAssociator ecalDetIdAssociator_
 
std::vector< std::string > EERecHitCollectionLabels
 
std::vector< std::string > HBHERecHitCollectionLabels
 HCAL. More...
 
HHcalDetIdAssociator hcalDetIdAssociator_
 
PropagatorivProp_
 
edm::ESHandle< CaloGeometrytheCaloGeometry_
 
bool useDefaultPropagator_
 

Detailed Description

Definition at line 47 of file TrackAssociator.h.

Constructor & Destructor Documentation

HTrackAssociator::HTrackAssociator ( )

Definition at line 54 of file TrackAssociator.cc.

55 {
56  ivProp_ = 0;
57  defProp_ = 0;
58  debug_ = 0;
59  caloTowerMap_ = 0;
60  useDefaultPropagator_ = false;
61 }
Propagator * defProp_
std::vector< std::vector< std::set< uint32_t > > > * caloTowerMap_
Propagator * ivProp_
HTrackAssociator::~HTrackAssociator ( )

Definition at line 63 of file TrackAssociator.cc.

64 {
65  if (defProp_) delete defProp_;
66 }
Propagator * defProp_

Member Function Documentation

void HTrackAssociator::addDataLabels ( const std::string  className,
const std::string  moduleLabel,
const std::string  productInstanceLabel = "" 
)

specify names of EDProducts to use for different input data types

Definition at line 69 of file TrackAssociator.cc.

72 {
73  if (className == "EBRecHitCollection")
74  {
76  EBRecHitCollectionLabels.push_back(moduleLabel);
77  EBRecHitCollectionLabels.push_back(productInstanceLabel);
78  }
79  if (className == "EERecHitCollection")
80  {
82  EERecHitCollectionLabels.push_back(moduleLabel);
83  EERecHitCollectionLabels.push_back(productInstanceLabel);
84  }
85  if (className == "HBHERecHitCollection")
86  {
88  HBHERecHitCollectionLabels.push_back(moduleLabel);
89  HBHERecHitCollectionLabels.push_back(productInstanceLabel);
90  }
91  if (className == "CaloTowerCollection")
92  {
94  CaloTowerCollectionLabels.push_back(moduleLabel);
95  CaloTowerCollectionLabels.push_back(productInstanceLabel);
96  }
97 }
std::vector< std::string > EERecHitCollectionLabels
std::vector< std::string > CaloTowerCollectionLabels
CaloTowers.
std::vector< std::string > EBRecHitCollectionLabels
std::vector< std::string > HBHERecHitCollectionLabels
HCAL.
std::string className(const T &t)
Definition: ClassName.h:30
HTrackDetMatchInfo HTrackAssociator::associate ( const edm::Event iEvent,
const edm::EventSetup iSetup,
const FreeTrajectoryState trackOrigin,
const HAssociatorParameters parameters 
)

propagate a track across the whole detector and find associated objects. Association is done in two modes 1) an object is associated to a track only if crossed by track 2) an object is associated to a track if it is withing an eta-phi cone of some radius with respect to a track. (the cone origin is at (0,0,0))

Definition at line 141 of file TrackAssociator.cc.

References HTrackAssociator::HAssociatorParameters::dRCalo, HTrackAssociator::HAssociatorParameters::dREcal, HTrackAssociator::HAssociatorParameters::dRHcal, HTrackAssociator::HAssociatorParameters::idRCalo, HTrackAssociator::HAssociatorParameters::idREcal, HTrackAssociator::HAssociatorParameters::idRHcal, info, init, HTrackAssociator::HAssociatorParameters::useCalo, HTrackAssociator::HAssociatorParameters::useEcal, and HTrackAssociator::HAssociatorParameters::useHcal.

145 {
147  using namespace edm;
148  HTimerStack timers;
149 
150  init( iSetup );
151 
152  FreeTrajectoryState currentPosition(trackOrigin);
153 
154  if (parameters.useEcal) fillEcal( iEvent, iSetup, info, currentPosition,parameters.idREcal, parameters.dREcal);
155  if (parameters.useHcal) fillHcal( iEvent, iSetup, info, currentPosition,parameters.idRHcal,parameters.dRHcal);
156  if (parameters.useCalo) fillCaloTowers( iEvent, iSetup, info, currentPosition,parameters.idRCalo,parameters.dRCalo);
157 
158  return info;
159 }
dictionary parameters
Definition: Parameters.py:2
void fillEcal(const edm::Event &, const edm::EventSetup &, HTrackDetMatchInfo &, const FreeTrajectoryState &, const int, const double)
void fillHcal(const edm::Event &, const edm::EventSetup &, HTrackDetMatchInfo &, const FreeTrajectoryState &, const int, const double)
void fillCaloTowers(const edm::Event &, const edm::EventSetup &, HTrackDetMatchInfo &, const FreeTrajectoryState &, const int, const double)
void init(const edm::EventSetup &)
std::vector< EcalRecHit > HTrackAssociator::associateEcal ( const edm::Event iEvent,
const edm::EventSetup iSetup,
const FreeTrajectoryState trackOrigin,
const double  dR = -1 
)

associate ECAL only and return RecHits negative dR means only crossed elements

Definition at line 162 of file TrackAssociator.cc.

References HTrackDetMatchInfo::coneEcalRecHits, HTrackDetMatchInfo::crossedEcalRecHits, PFRecoTauDiscriminationAgainstElectronDeadECAL_cfi::dR, HTrackAssociator::HAssociatorParameters::dREcal, info, Parameters::parameters, and HTrackAssociator::HAssociatorParameters::useHcal.

166 {
167  HAssociatorParameters parameters;
168  parameters.useHcal = false;
169  parameters.dREcal = dR;
170  HTrackDetMatchInfo info( associate(iEvent, iSetup, trackOrigin, parameters ));
171  if (dR>0)
172  return info.coneEcalRecHits;
173  else
174  return info.crossedEcalRecHits;
175 }
dictionary parameters
Definition: Parameters.py:2
HTrackDetMatchInfo associate(const edm::Event &, const edm::EventSetup &, const FreeTrajectoryState &, const HAssociatorParameters &)
std::vector< CaloTower > HTrackAssociator::associateHcal ( const edm::Event iEvent,
const edm::EventSetup iSetup,
const FreeTrajectoryState trackOrigin,
const double  dR = -1 
)

associate ECAL only and return RecHits negative dR means only crossed elements

Definition at line 194 of file TrackAssociator.cc.

References HTrackDetMatchInfo::coneTowers, HTrackDetMatchInfo::crossedTowers, PFRecoTauDiscriminationAgainstElectronDeadECAL_cfi::dR, HTrackAssociator::HAssociatorParameters::dRHcal, info, Parameters::parameters, and HTrackAssociator::HAssociatorParameters::useEcal.

198 {
199  HAssociatorParameters parameters;
200  parameters.useEcal = false;
201  parameters.dRHcal = dR;
202  HTrackDetMatchInfo info( associate(iEvent, iSetup, trackOrigin, parameters ));
203  if (dR>0)
204  return info.coneTowers;
205  else
206  return info.crossedTowers;
207 
208 }
dictionary parameters
Definition: Parameters.py:2
HTrackDetMatchInfo associate(const edm::Event &, const edm::EventSetup &, const FreeTrajectoryState &, const HAssociatorParameters &)
void HTrackAssociator::fillCaloTowers ( const edm::Event iEvent,
const edm::EventSetup iSetup,
HTrackDetMatchInfo info,
const FreeTrajectoryState trajectoryPoint,
const int  idR,
const double  dR 
)
private

Definition at line 312 of file TrackAssociator.cc.

References HTrackDetMatchInfo::boxTowers, HiRecoJets_cff::caloTowers, HTrackDetMatchInfo::coneTowers, gather_cfg::cout, HTrackDetMatchInfo::crossedTowers, edm::Event::getByLabel(), errorMatrix2Lands_multiChannel::id, HTrackDetMatchInfo::isGoodCalo, HTrackDetMatchInfo::isGoodEcal, HTrackDetMatchInfo::isGoodHcal, edm::HandleBase::isValid(), LogTrace, HTimerStack::pop_and_push(), HTimerStack::push(), HTrackDetMatchInfo::regionTowers, HTrackDetMatchInfo::trkGlobPosAtEcal, and HTrackDetMatchInfo::trkGlobPosAtHcal.

318 {
319  // ECAL hits are not used for the CaloTower identification
320  HTimerStack timers;
321  timers.push("HTrackAssociator::fillCaloTowers");
322 
324 
325  // HCAL points (HB+HE)
326  timers.push("HTrackAssociator::fillCaloTowers::propagation");
327  std::vector<GlobalPoint> hcalPoints;
328  hcalPoints.push_back(GlobalPoint(135.,0,310.));
329  hcalPoints.push_back(GlobalPoint(150.,0,340.));
330  hcalPoints.push_back(GlobalPoint(170.,0,370.));
331  hcalPoints.push_back(GlobalPoint(190.,0,400.));
332  hcalPoints.push_back(GlobalPoint(240.,0,500.));
333  hcalPoints.push_back(GlobalPoint(280.,0,550.));
334 
335  std::vector<GlobalPoint> hcalTrajectory = caloDetIdAssociator_.getTrajectory(trajectoryPoint, hcalPoints);
336 // if(hcalTrajectory.empty()) throw cms::Exception("FatalError") << "Failed to propagate the track to HCAL\n";
337 
338  if(hcalTrajectory.empty()) {
339  LogTrace("HTrackAssociator::fillEcal") << "Failed to propagate a track to ECAL; moving on\n";
340  info.isGoodCalo = 0;
341  info.isGoodEcal = 0;
342  std::cout<<" HTrackAssociator::fillCaloTowers::Failed to propagate a track to ECAL "<<std::endl;
343  return;
344  }
345 
346  info.isGoodCalo = 1;
347  info.isGoodEcal = 1;
348  info.trkGlobPosAtEcal = getPoint(hcalTrajectory[0]);
349 
350  if(hcalTrajectory.size()<4) {
351  LogTrace("HTrackAssociator::fillEcal") << "Failed to propagate a track to HCAL; moving on\n";
352  info.isGoodHcal = 0;
353  }
354 
355  info.isGoodHcal = 1;
356 
357  info.trkGlobPosAtHcal = getPoint(hcalTrajectory[4]);
358 
359  // find crossed CaloTowers
360  timers.pop_and_push("HTrackAssociator::fillCaloTowers::access::CaloTowers");
362 
363  if (CaloTowerCollectionLabels.empty())
364  throw cms::Exception("FatalError") << "Module lable is not set for CaloTowers.\n";
365  else
367  if (!caloTowers.isValid()) throw cms::Exception("FatalError") << "Unable to find CaloTowers in event!\n";
368 
369  timers.push("HTrackAssociator::fillCaloTowers::matching");
370 
371 // first get DetIds in a predefined NxN region
372 // std::set<DetId> caloTowerIdsInBigRegion = caloDetIdAssociator_.getDetIdsCloseToAPoint(hcalTrajectory[0],idR+1);
373  std::set<DetId> caloTowerIdsInRegion = caloDetIdAssociator_.getDetIdsCloseToAPoint(hcalTrajectory[0],idR);
374 
375  std::set<DetId> caloTowerIdsInACone;
376  std::set<DetId> crossedCaloTowerIds;
377  std::set<DetId> caloTowerIdsInBox;
378  caloTowerIdsInACone = caloDetIdAssociator_.getDetIdsInACone(caloTowerIdsInRegion, hcalTrajectory, dR);
379 // get DetId of the most energetic tower in that region
380  crossedCaloTowerIds = caloDetIdAssociator_.getMaxEDetId(caloTowerIdsInRegion, caloTowers);
381 // get DetIds of the towers surrounding the most energetic one
382  caloTowerIdsInBox = caloDetIdAssociator_.getDetIdsInACone(crossedCaloTowerIds, hcalTrajectory, -1.);
383 
384 //
385 // Debug prints
386 //
387 // std::cout <<" Debug printout in CaloTowers "<<std::endl;
388 // std::cout <<" with position at outer layer:r,z,phi "<<trajectoryPoint.position().eta()<<
389 // " "<<trajectoryPoint.position().phi()<<
390 // " "<<trajectoryPoint.position().perp()<<
391 // " "<<trajectoryPoint.position().z()<<
392 // " "<<trajectoryPoint.charge()<<std::endl;
393 // std::cout <<" Trajectory point at ECAL surface:eta:phi:radius:z "<<(hcalTrajectory[0]).eta()<<
394 // " "<<(hcalTrajectory[0]).phi()<<
395 // " "<<(hcalTrajectory[0]).perp()<<
396 // " "<<(hcalTrajectory[0]).z()<<
397 // " momentum "<<trajectoryPoint.momentum().perp()<<std::endl;
398 //
399 // std::cout<<" Number of towers in the region "<<caloTowerIdsInRegion.size()<<" idR= "<<idR<<std::endl;
400 
401  // add CaloTowers
402  timers.push("HTrackAssociator::fillCaloTowers::addCaloTowers");
403  for(std::set<DetId>::const_iterator itr=crossedCaloTowerIds.begin(); itr!=crossedCaloTowerIds.end();itr++)
404  {
405  DetId id(*itr);
406  CaloTowerCollection::const_iterator tower = (*caloTowers).find(id);
407  if(tower != (*caloTowers).end())
408  info.crossedTowers.push_back(*tower);
409  else
410  LogTrace("HTrackAssociator::fillEcal") << "CaloTower is not found for DetId: " << id.rawId() << "\n";
411  }
412 
413  for(std::set<DetId>::const_iterator itr=caloTowerIdsInACone.begin(); itr!=caloTowerIdsInACone.end();itr++)
414  {
415  DetId id(*itr);
416  CaloTowerCollection::const_iterator tower = (*caloTowers).find(id);
417  if(tower != (*caloTowers).end()) {
418  info.coneTowers.push_back(*tower);
419  }
420  else
421  LogTrace("HTrackAssociator::fillEcal") << "CaloTower is not found for DetId: " << id.rawId() << "\n";
422  }
423 
424  for(std::set<DetId>::const_iterator itr=caloTowerIdsInBox.begin(); itr!=caloTowerIdsInBox.end();itr++)
425  {
426  DetId id(*itr);
427  CaloTowerCollection::const_iterator tower = (*caloTowers).find(id);
428  if(tower != (*caloTowers).end()) {
429  info.boxTowers.push_back(*tower);
430  }
431  else
432  LogTrace("HTrackAssociator::fillEcal") << "CaloTower is not found for DetId: " << id.rawId() << "\n";
433  }
434 
435  for(std::set<DetId>::const_iterator itr=caloTowerIdsInRegion.begin(); itr!=caloTowerIdsInRegion.end();itr++)
436  {
437  DetId id(*itr);
438  CaloTowerCollection::const_iterator tower = (*caloTowers).find(id);
439  if(tower != (*caloTowers).end()) {
440  info.regionTowers.push_back(*tower);
441  }
442  else
443  LogTrace("HTrackAssociator::fillEcal") << "CaloTower is not found for DetId: " << id.rawId() << "\n";
444  }
445 
446 }
std::vector< CaloTower > crossedTowers
virtual std::vector< GlobalPoint > getTrajectory(const FreeTrajectoryState &, const std::vector< GlobalPoint > &)
virtual std::set< DetId > getDetIdsCloseToAPoint(const GlobalPoint &, const int idR=0)
edm::ESHandle< CaloGeometry > theCaloGeometry_
std::vector< std::string > CaloTowerCollectionLabels
CaloTowers.
void push(std::string name)
Definition: TimerStack.h:13
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
std::vector< CaloTower >::const_iterator const_iterator
std::vector< CaloTower > boxTowers
void pop_and_push(std::string name)
Definition: TimerStack.h:31
math::XYZPoint trkGlobPosAtHcal
virtual std::set< DetId > getDetIdsInACone(const std::set< DetId > &, const std::vector< GlobalPoint > &trajectory, const double)
bool isValid() const
Definition: HandleBase.h:76
virtual std::set< DetId > getMaxEDetId(const std::set< DetId > &, edm::Handle< CaloTowerCollection > caloTowers)
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:356
HCaloDetIdAssociator caloDetIdAssociator_
#define LogTrace(id)
Definition: DetId.h:20
std::vector< CaloTower > regionTowers
std::vector< CaloTower > coneTowers
math::XYZPoint trkGlobPosAtEcal
tuple cout
Definition: gather_cfg.py:121
virtual void setGeometry(const CaloGeometry *ptr)
math::XYZPoint getPoint(const GlobalPoint &point)
void HTrackAssociator::fillEcal ( const edm::Event iEvent,
const edm::EventSetup iSetup,
HTrackDetMatchInfo info,
const FreeTrajectoryState trajectoryPoint,
const int  idR,
const double  dR 
)
private

Definition at line 227 of file TrackAssociator.cc.

References HTrackDetMatchInfo::coneEcalRecHits, HTrackDetMatchInfo::crossedEcalRecHits, egHLT::errCodes::EBRecHits, egHLT::errCodes::EERecHits, edm::Event::getByLabel(), HTrackDetMatchInfo::isGoodEcal, LogTrace, HTimerStack::pop_and_push(), HTimerStack::push(), and HTrackDetMatchInfo::trkGlobPosAtEcal.

233 {
234  HTimerStack timers;
235  timers.push("HTrackAssociator::fillEcal");
236 
238 
239  timers.push("HTrackAssociator::fillEcal::propagation");
240  // ECAL points (EB+EE)
241  std::vector<GlobalPoint> ecalPoints;
242  ecalPoints.push_back(GlobalPoint(135.,0,310.));
243  ecalPoints.push_back(GlobalPoint(150.,0,340.));
244  ecalPoints.push_back(GlobalPoint(170.,0,370.));
245 
246  std::vector<GlobalPoint> ecalTrajectory = ecalDetIdAssociator_.getTrajectory(trajectoryPoint, ecalPoints);
247 // if(ecalTrajectory.empty()) throw cms::Exception("FatalError") << "Failed to propagate a track to ECAL\n";
248 
249  if(ecalTrajectory.empty()) {
250  LogTrace("HTrackAssociator::fillEcal") << "Failed to propagate a track to ECAL; moving on\n";
251  info.isGoodEcal = 0;
252  return;
253  }
254 
255  info.isGoodEcal = 1;
256 
257  info.trkGlobPosAtEcal = getPoint(ecalTrajectory[0]);
258 
259  // Find ECAL crystals
260  timers.pop_and_push("HTrackAssociator::fillEcal::access::EcalBarrel");
263 // if (EBRecHitCollectionLabels.empty())
264 // throw cms::Exception("FatalError") << "Module lable is not set for EBRecHitCollection.\n";
265 // else
267 // if (!EBRecHits.isValid()) throw cms::Exception("FatalError") << "Unable to find EBRecHitCollection in event!\n";
269 // if (!EERecHits.isValid()) throw cms::Exception("FatalError") << "Unable to find EERecHitCollection in event!\n";
270 
271  timers.pop_and_push("HTrackAssociator::fillEcal::matching");
272  std::set<DetId> ecalIdsInRegion = ecalDetIdAssociator_.getDetIdsCloseToAPoint(ecalTrajectory[0],idR);
273  std::set<DetId> ecalIdsInACone = ecalDetIdAssociator_.getDetIdsInACone(ecalIdsInRegion, ecalTrajectory, dR);
274  std::set<DetId> crossedEcalIds = ecalDetIdAssociator_.getCrossedDetIds(ecalIdsInRegion, ecalTrajectory);
275 
276  // add EcalRecHits
277  timers.pop_and_push("HTrackAssociator::fillEcal::addEcalRecHits");
278  for(std::set<DetId>::const_iterator itr=crossedEcalIds.begin(); itr!=crossedEcalIds.end();itr++) {
279  std::vector<EcalRecHit>::const_iterator hit = (*EBRecHits).find(*itr);
280  if(hit != (*EBRecHits).end())
281  info.crossedEcalRecHits.push_back(*hit);
282  else
283  LogTrace("HTrackAssociator::fillEcal") << "EcalRecHit is not found for DetId: " << itr->rawId() <<"\n";
284  }
285  for(std::set<DetId>::const_iterator itr=ecalIdsInACone.begin(); itr!=ecalIdsInACone.end();itr++) {
286  std::vector<EcalRecHit>::const_iterator hit = (*EBRecHits).find(*itr);
287  if(hit != (*EBRecHits).end()) {
288  info.coneEcalRecHits.push_back(*hit);
289  }
290  else
291  LogTrace("HTrackAssociator::fillEcal") << "EcalRecHit is not found for DetId: " << itr->rawId() <<"\n";
292  }
294  for(std::set<DetId>::const_iterator itr=crossedEcalIds.begin(); itr!=crossedEcalIds.end();itr++) {
295  std::vector<EcalRecHit>::const_iterator hit = (*EERecHits).find(*itr);
296  if(hit != (*EERecHits).end())
297  info.crossedEcalRecHits.push_back(*hit);
298  else
299  LogTrace("HTrackAssociator::fillEcal") << "EcalRecHit is not found for DetId: " << itr->rawId() <<"\n";
300  }
301  for(std::set<DetId>::const_iterator itr=ecalIdsInACone.begin(); itr!=ecalIdsInACone.end();itr++) {
302  std::vector<EcalRecHit>::const_iterator hit = (*EERecHits).find(*itr);
303  if(hit != (*EERecHits).end()) {
304  info.coneEcalRecHits.push_back(*hit);
305  }
306  else
307  LogTrace("HTrackAssociator::fillEcal") << "EcalRecHit is not found for DetId: " << itr->rawId() <<"\n";
308  }
309 }
virtual std::vector< GlobalPoint > getTrajectory(const FreeTrajectoryState &, const std::vector< GlobalPoint > &)
virtual std::set< DetId > getDetIdsCloseToAPoint(const GlobalPoint &, const int idR=0)
edm::ESHandle< CaloGeometry > theCaloGeometry_
std::vector< std::string > EERecHitCollectionLabels
void push(std::string name)
Definition: TimerStack.h:13
std::vector< EcalRecHit > crossedEcalRecHits
std::vector< std::string > EBRecHitCollectionLabels
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
void pop_and_push(std::string name)
Definition: TimerStack.h:31
std::vector< EcalRecHit > coneEcalRecHits
virtual std::set< DetId > getDetIdsInACone(const std::set< DetId > &, const std::vector< GlobalPoint > &trajectory, const double)
virtual std::set< DetId > getCrossedDetIds(const std::set< DetId > &, const std::vector< GlobalPoint > &trajectory)
HEcalDetIdAssociator ecalDetIdAssociator_
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:356
#define LogTrace(id)
math::XYZPoint trkGlobPosAtEcal
virtual void setGeometry(const CaloGeometry *ptr)
math::XYZPoint getPoint(const GlobalPoint &point)
void HTrackAssociator::fillHcal ( const edm::Event iEvent,
const edm::EventSetup iSetup,
HTrackDetMatchInfo info,
const FreeTrajectoryState trajectoryPoint,
const int  idR,
const double  dR 
)
private

Definition at line 449 of file TrackAssociator.cc.

References HTrackDetMatchInfo::boxHcalRecHits, HTrackDetMatchInfo::coneHcalRecHits, HTrackDetMatchInfo::crossedHcalRecHits, edm::Event::getByLabel(), egHLT::errCodes::HBHERecHits, HTrackDetMatchInfo::isGoodHcal, edm::HandleBase::isValid(), LogTrace, HTimerStack::pop_and_push(), HTimerStack::push(), HTrackDetMatchInfo::regionHcalRecHits, and HTrackDetMatchInfo::trkGlobPosAtHcal.

454  {
455  HTimerStack timers;
456  timers.push("HTrackAssociator::fillHcal");
457 
459 
460 // HCAL points (HB+HE)
461  timers.push("HTrackAssociator::fillHcal::propagation");
462  std::vector<GlobalPoint> hcalPoints;
463  hcalPoints.push_back(GlobalPoint(190.,0,400.));
464  hcalPoints.push_back(GlobalPoint(240.,0,500.));
465  hcalPoints.push_back(GlobalPoint(280.,0,550.));
466 
467  std::vector<GlobalPoint> hcalTrajectory = hcalDetIdAssociator_.getTrajectory(trajectoryPoint, hcalPoints);
468 // if(hcalTrajectory.empty()) throw cms::Exception("FatalError") << "Failed to propagate the track to HCAL\n";
469 
470  if(hcalTrajectory.empty()) {
471  LogTrace("HTrackAssociator::fillHcal") << "Failed to propagate a track to HCAL; moving on\n";
472  info.isGoodHcal = 0;
473 // std::cout<<" HTrackAssociator::fillHcal::Failed to propagate a track to HCAL "<<std::endl;
474  return;
475  }
476 
477  info.isGoodHcal = 1;
478 
479  info.trkGlobPosAtHcal = getPoint(hcalTrajectory[0]);
480  timers.pop_and_push("HTrackAssociator::fillHcal::access::Hcal");
481 
483 // if (HBHERecHitCollectionLabels.empty())
484 // throw cms::Exception("FatalError") << "Module label is not set for HBHERecHitCollection.\n";
485 // else
487  if (!HBHERecHits.isValid()) throw cms::Exception("FatalError") << "Unable to find HBHERecHitCollection in event!\n";
488 
489  timers.pop_and_push("HTrackAssociator::fillHcal::matching");
490 
491 // first get DetIds in a predefined NxN region
492 // std::set<DetId> hcalIdsInBigRegion = hcalDetIdAssociator_.getDetIdsCloseToAPoint(hcalTrajectory[0],idR+1);
493  std::set<DetId> hcalIdsInRegion = hcalDetIdAssociator_.getDetIdsCloseToAPoint(hcalTrajectory[0],idR);
494 
495  std::set<DetId> hcalIdsInACone;
496  std::set<DetId> crossedHcalIds;
497  std::set<DetId> hcalIdsInBox;
498  hcalIdsInACone = hcalDetIdAssociator_.getDetIdsInACone(hcalIdsInRegion, hcalTrajectory, dR);
499 // get DetId of the most energetic tower in that region
500  crossedHcalIds = hcalDetIdAssociator_.getMaxEDetId(hcalIdsInRegion, HBHERecHits);
501 // get DetIds of the towers surrounding the most energetic one
502  hcalIdsInBox = hcalDetIdAssociator_.getDetIdsInACone(crossedHcalIds, hcalTrajectory, -1.);
503 
504 // add HcalRecHits
505  timers.pop_and_push("HTrackAssociator::fillHcal::addHcalRecHits");
506  for(std::set<DetId>::const_iterator itr=crossedHcalIds.begin(); itr!=crossedHcalIds.end();itr++) {
507  std::vector<HBHERecHit>::const_iterator hit = (*HBHERecHits).find(*itr);
508  if(hit != (*HBHERecHits).end())
509  info.crossedHcalRecHits.push_back(*hit);
510  else
511  LogTrace("HTrackAssociator::fillHcal") << "HcalRecHit is not found for DetId: " << itr->rawId() <<"\n";
512  }
513  for(std::set<DetId>::const_iterator itr=hcalIdsInACone.begin(); itr!=hcalIdsInACone.end();itr++) {
514  std::vector<HBHERecHit>::const_iterator hit = (*HBHERecHits).find(*itr);
515  if(hit != (*HBHERecHits).end())
516  info.coneHcalRecHits.push_back(*hit);
517  else
518  LogTrace("HTrackAssociator::fillHcal") << "HcalRecHit is not found for DetId: " << itr->rawId() <<"\n";
519  }
520  for(std::set<DetId>::const_iterator itr=hcalIdsInBox.begin(); itr!=hcalIdsInBox.end();itr++) {
521  std::vector<HBHERecHit>::const_iterator hit = (*HBHERecHits).find(*itr);
522  if(hit != (*HBHERecHits).end())
523  info.boxHcalRecHits.push_back(*hit);
524  else
525  LogTrace("HTrackAssociator::fillHcal") << "HcalRecHit is not found for DetId: " << itr->rawId() <<"\n";
526  }
527  for(std::set<DetId>::const_iterator itr=hcalIdsInRegion.begin(); itr!=hcalIdsInRegion.end();itr++) {
528  std::vector<HBHERecHit>::const_iterator hit = (*HBHERecHits).find(*itr);
529  if(hit != (*HBHERecHits).end())
530  info.regionHcalRecHits.push_back(*hit);
531  else
532  LogTrace("HTrackAssociator::fillHcal") << "HcalRecHit is not found for DetId: " << itr->rawId() <<"\n";
533  }
534 }
virtual std::vector< GlobalPoint > getTrajectory(const FreeTrajectoryState &, const std::vector< GlobalPoint > &)
virtual std::set< DetId > getDetIdsCloseToAPoint(const GlobalPoint &, const int idR=0)
edm::ESHandle< CaloGeometry > theCaloGeometry_
std::vector< HBHERecHit > coneHcalRecHits
void push(std::string name)
Definition: TimerStack.h:13
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
std::vector< HBHERecHit > regionHcalRecHits
void pop_and_push(std::string name)
Definition: TimerStack.h:31
std::vector< std::string > HBHERecHitCollectionLabels
HCAL.
math::XYZPoint trkGlobPosAtHcal
std::vector< HBHERecHit > boxHcalRecHits
std::vector< HBHERecHit > crossedHcalRecHits
virtual std::set< DetId > getDetIdsInACone(const std::set< DetId > &, const std::vector< GlobalPoint > &trajectory, const double)
bool isValid() const
Definition: HandleBase.h:76
virtual std::set< DetId > getMaxEDetId(const std::set< DetId > &, edm::Handle< CaloTowerCollection > caloTowers)
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:356
#define LogTrace(id)
virtual void setGeometry(const CaloGeometry *ptr)
HHcalDetIdAssociator hcalDetIdAssociator_
math::XYZPoint getPoint(const GlobalPoint &point)
void HTrackAssociator::fillHcalTowers ( const edm::Event iEvent,
const edm::EventSetup iSetup,
HTrackDetMatchInfo info,
const FreeTrajectoryState trajectoryPoint,
const int  idR,
const double  dR 
)
private

Definition at line 537 of file TrackAssociator.cc.

References HiRecoJets_cff::caloTowers, HTrackDetMatchInfo::coneTowers, gather_cfg::cout, HTrackDetMatchInfo::crossedTowers, edm::Event::getByLabel(), errorMatrix2Lands_multiChannel::id, HTrackDetMatchInfo::isGoodCalo, edm::HandleBase::isValid(), LogTrace, HTimerStack::pop_and_push(), HTimerStack::push(), and HTrackDetMatchInfo::trkGlobPosAtHcal.

543 {
544  // ECAL hits are not used for the CaloTower identification
545  HTimerStack timers;
546  timers.push("HTrackAssociator::fillCaloTowers");
547 
549 
550  // HCAL points (HB+HE)
551  timers.push("HTrackAssociator::fillCaloTowers::propagation");
552  std::vector<GlobalPoint> hcalPoints;
553  hcalPoints.push_back(GlobalPoint(190.,0,400.));
554  hcalPoints.push_back(GlobalPoint(240.,0,500.));
555  hcalPoints.push_back(GlobalPoint(280.,0,550.));
556 
557  std::vector<GlobalPoint> hcalTrajectory = caloDetIdAssociator_.getTrajectory(trajectoryPoint, hcalPoints);
558 // if(hcalTrajectory.empty()) throw cms::Exception("FatalError") << "Failed to propagate the track to HCAL\n";
559 
560  if(hcalTrajectory.empty()) {
561  LogTrace("HTrackAssociator::fillEcal") << "Failed to propagate a track to HCAL; moving on\n";
562  info.isGoodCalo = 0;
563  std::cout<<" HTrackAssociator::fillCaloTowers::Failed to propagate a track to HCAL "<<std::endl;
564  return;
565  }
566 
567  info.isGoodCalo = 1;
568 
569  info.trkGlobPosAtHcal = getPoint(hcalTrajectory[0]);
570 
571  // find crossed CaloTowers
572  timers.pop_and_push("HTrackAssociator::fillCaloTowers::access::CaloTowers");
574 
575  if (CaloTowerCollectionLabels.empty())
576  throw cms::Exception("FatalError") << "Module lable is not set for CaloTowers.\n";
577  else
579  if (!caloTowers.isValid()) throw cms::Exception("FatalError") << "Unable to find CaloTowers in event!\n";
580 
581  timers.push("HTrackAssociator::fillCaloTowers::matching");
582 
583 // first get DetIds in a predefined NxN region
584  std::set<DetId> caloTowerIdsInBigRegion = caloDetIdAssociator_.getDetIdsCloseToAPoint(hcalTrajectory[0],idR+1);
585  std::set<DetId> caloTowerIdsInRegion = caloDetIdAssociator_.getDetIdsCloseToAPoint(hcalTrajectory[0],idR);
586 
587  std::set<DetId> caloTowerIdsInACone;
588  std::set<DetId> crossedCaloTowerIds;
589  std::set<DetId> caloTowerIdsInBox;
590  caloTowerIdsInACone = caloDetIdAssociator_.getDetIdsInACone(caloTowerIdsInBigRegion, hcalTrajectory, dR);
591 // get DetId of the most energetic tower in that region
592  crossedCaloTowerIds = caloDetIdAssociator_.getMaxEDetId(caloTowerIdsInRegion, caloTowers);
593 // get DetIds of the towers surrounding the most energetic one
594  caloTowerIdsInBox = caloDetIdAssociator_.getDetIdsInACone(crossedCaloTowerIds, hcalTrajectory, -1.);
595 
596  // add CaloTowers
597  timers.push("HTrackAssociator::fillCaloTowers::addCaloTowers");
598  for(std::set<DetId>::const_iterator itr=crossedCaloTowerIds.begin(); itr!=crossedCaloTowerIds.end();itr++)
599  {
600  DetId id(*itr);
601  CaloTowerCollection::const_iterator tower = (*caloTowers).find(id);
602  if(tower != (*caloTowers).end())
603  info.crossedTowers.push_back(*tower);
604  else
605  LogTrace("HTrackAssociator::fillEcal") << "CaloTower is not found for DetId: " << id.rawId() << "\n";
606  }
607 
608  for(std::set<DetId>::const_iterator itr=caloTowerIdsInACone.begin(); itr!=caloTowerIdsInACone.end();itr++)
609  {
610  DetId id(*itr);
611  CaloTowerCollection::const_iterator tower = (*caloTowers).find(id);
612  if(tower != (*caloTowers).end())
613  info.coneTowers.push_back(*tower);
614  else
615  LogTrace("HTrackAssociator::fillEcal") << "CaloTower is not found for DetId: " << id.rawId() << "\n";
616  }
617 
618 }
std::vector< CaloTower > crossedTowers
virtual std::vector< GlobalPoint > getTrajectory(const FreeTrajectoryState &, const std::vector< GlobalPoint > &)
virtual std::set< DetId > getDetIdsCloseToAPoint(const GlobalPoint &, const int idR=0)
edm::ESHandle< CaloGeometry > theCaloGeometry_
std::vector< std::string > CaloTowerCollectionLabels
CaloTowers.
void push(std::string name)
Definition: TimerStack.h:13
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
std::vector< CaloTower >::const_iterator const_iterator
void pop_and_push(std::string name)
Definition: TimerStack.h:31
math::XYZPoint trkGlobPosAtHcal
virtual std::set< DetId > getDetIdsInACone(const std::set< DetId > &, const std::vector< GlobalPoint > &trajectory, const double)
bool isValid() const
Definition: HandleBase.h:76
virtual std::set< DetId > getMaxEDetId(const std::set< DetId > &, edm::Handle< CaloTowerCollection > caloTowers)
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:356
HCaloDetIdAssociator caloDetIdAssociator_
#define LogTrace(id)
Definition: DetId.h:20
std::vector< CaloTower > coneTowers
tuple cout
Definition: gather_cfg.py:121
virtual void setGeometry(const CaloGeometry *ptr)
math::XYZPoint getPoint(const GlobalPoint &point)
double HTrackAssociator::getEcalEnergy ( const edm::Event iEvent,
const edm::EventSetup iSetup,
const FreeTrajectoryState trackOrigin,
const double  dR = -1 
)

associate ECAL only and return energy negative dR means only crossed elements

Definition at line 178 of file TrackAssociator.cc.

References PFRecoTauDiscriminationAgainstElectronDeadECAL_cfi::dR, HTrackAssociator::HAssociatorParameters::dREcal, HTrackDetMatchInfo::ecalConeEnergyFromRecHits(), HTrackDetMatchInfo::ecalEnergyFromRecHits(), info, Parameters::parameters, and HTrackAssociator::HAssociatorParameters::useHcal.

182 {
183  HAssociatorParameters parameters;
184  parameters.useHcal = false;
185  parameters.dREcal = dR;
186  HTrackDetMatchInfo info = associate(iEvent, iSetup, trackOrigin, parameters );
187  if(dR>0)
188  return info.ecalConeEnergyFromRecHits();
189  else
190  return info.ecalEnergyFromRecHits();
191 }
dictionary parameters
Definition: Parameters.py:2
double ecalConeEnergyFromRecHits()
HTrackDetMatchInfo associate(const edm::Event &, const edm::EventSetup &, const FreeTrajectoryState &, const HAssociatorParameters &)
double ecalEnergyFromRecHits()
ECAL energy.
FreeTrajectoryState HTrackAssociator::getFreeTrajectoryState ( const edm::EventSetup iSetup,
const reco::Track track 
)

get FreeTrajectoryState from different track representations

Definition at line 641 of file TrackAssociator.cc.

References ecalTB2006H4_GenSimDigiReco_cfg::bField, reco::TrackBase::charge(), alignCSCRings::e, edm::EventSetup::get(), reco::TrackBase::momentum(), point, and reco::TrackBase::vertex().

643 {
645  iSetup.get<IdealMagneticFieldRecord>().get(bField);
646 
647  GlobalVector vector( track.momentum().x(), track.momentum().y(), track.momentum().z() );
648 
649  GlobalPoint point( track.vertex().x(), track.vertex().y(), track.vertex().z() );
650 
651  GlobalTrajectoryParameters tPars(point, vector, track.charge(), &*bField);
652 
653  // FIX THIS !!!
654  // need to convert from perigee to global or helix (curvilinear) frame
655  // for now just an arbitrary matrix.
656  AlgebraicSymMatrix66 covT= AlgebraicMatrixID(); covT *= 1e-6; // initialize to sigma=1e-3
657  CartesianTrajectoryError tCov(covT);
658 
659  return FreeTrajectoryState(tPars, tCov);
660 }
const Vector & momentum() const
track momentum vector
Definition: TrackBase.h:150
ROOT::Math::SMatrixIdentity AlgebraicMatrixID
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepSym< double, 6 > > AlgebraicSymMatrix66
const Point & vertex() const
reference point on the track. This method is DEPRECATED, please use referencePoint() instead ...
Definition: TrackBase.h:156
const T & get() const
Definition: EventSetup.h:55
int charge() const
track electric charge
Definition: TrackBase.h:113
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point
Definition: invegas.h:5
FreeTrajectoryState HTrackAssociator::getFreeTrajectoryState ( const edm::EventSetup iSetup,
const SimTrack track,
const SimVertex vertex 
)

Definition at line 621 of file TrackAssociator.cc.

References ecalTB2006H4_GenSimDigiReco_cfg::bField, DeDxDiscriminatorTools::charge(), alignCSCRings::e, edm::EventSetup::get(), CoreSimTrack::momentum(), point, CoreSimVertex::position(), and CoreSimTrack::type().

624 {
626  iSetup.get<IdealMagneticFieldRecord>().get(bField);
627 
628  GlobalVector vector( track.momentum().x(), track.momentum().y(), track.momentum().z() );
629  // convert mm to cm
630  GlobalPoint point( vertex.position().x()*.1, vertex.position().y()*.1, vertex.position().z()*.1 );
631  int charge = track.type( )> 0 ? -1 : 1;
632  GlobalTrajectoryParameters tPars(point, vector, charge, &*bField);
633 
634  AlgebraicSymMatrix66 covT= AlgebraicMatrixID(); covT *= 1e-6; // initialize to sigma=1e-3
635  CartesianTrajectoryError tCov(covT);
636 
637  return FreeTrajectoryState(tPars, tCov);
638 }
ROOT::Math::SMatrixIdentity AlgebraicMatrixID
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepSym< double, 6 > > AlgebraicSymMatrix66
double charge(const std::vector< uint8_t > &Ampls)
const math::XYZTLorentzVectorD & position() const
Definition: CoreSimVertex.h:26
const T & get() const
Definition: EventSetup.h:55
int type() const
particle type (HEP PDT convension)
Definition: CoreSimTrack.h:40
const math::XYZTLorentzVectorD & momentum() const
particle info...
Definition: CoreSimTrack.h:36
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point
Definition: invegas.h:5
double HTrackAssociator::getHcalEnergy ( const edm::Event iEvent,
const edm::EventSetup iSetup,
const FreeTrajectoryState trackOrigin,
const double  dR = -1 
)

associate ECAL only and return energy negative dR means only crossed elements

Definition at line 211 of file TrackAssociator.cc.

References PFRecoTauDiscriminationAgainstElectronDeadECAL_cfi::dR, HTrackAssociator::HAssociatorParameters::dRHcal, HTrackDetMatchInfo::hcalConeEnergyFromRecHits(), HTrackDetMatchInfo::hcalEnergyFromRecHits(), info, Parameters::parameters, and HTrackAssociator::HAssociatorParameters::useEcal.

215 {
216  HAssociatorParameters parameters;
217  parameters.useEcal = false;
218  parameters.dRHcal = dR;
219  HTrackDetMatchInfo info( associate(iEvent, iSetup, trackOrigin, parameters ));
220  if (dR>0)
221  return info.hcalConeEnergyFromRecHits();
222  else
223  return info.hcalEnergyFromRecHits();
224 }
dictionary parameters
Definition: Parameters.py:2
HTrackDetMatchInfo associate(const edm::Event &, const edm::EventSetup &, const FreeTrajectoryState &, const HAssociatorParameters &)
math::XYZPoint HTrackAssociator::getPoint ( const GlobalPoint point)
inlineprivate

Definition at line 173 of file TrackAssociator.h.

References PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

174  {
175  return math::XYZPoint(point.x(),point.y(),point.z());
176  }
T y() const
Definition: PV3DBase.h:62
T z() const
Definition: PV3DBase.h:63
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:13
T x() const
Definition: PV3DBase.h:61
math::XYZPoint HTrackAssociator::getPoint ( const LocalPoint point)
inlineprivate

Definition at line 178 of file TrackAssociator.h.

References PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

179  {
180  return math::XYZPoint(point.x(),point.y(),point.z());
181  }
T y() const
Definition: PV3DBase.h:62
T z() const
Definition: PV3DBase.h:63
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:13
T x() const
Definition: PV3DBase.h:61
math::XYZVector HTrackAssociator::getVector ( const GlobalVector vec)
inlineprivate

Definition at line 183 of file TrackAssociator.h.

References PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

184  {
185  return math::XYZVector(vec.x(),vec.y(),vec.z());
186  }
T y() const
Definition: PV3DBase.h:62
T z() const
Definition: PV3DBase.h:63
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:31
T x() const
Definition: PV3DBase.h:61
math::XYZVector HTrackAssociator::getVector ( const LocalVector vec)
inlineprivate

Definition at line 188 of file TrackAssociator.h.

References PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

189  {
190  return math::XYZVector(vec.x(),vec.y(),vec.z());
191  }
T y() const
Definition: PV3DBase.h:62
T z() const
Definition: PV3DBase.h:63
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:31
T x() const
Definition: PV3DBase.h:61
void HTrackAssociator::init ( const edm::EventSetup iSetup)
private

Definition at line 117 of file TrackAssociator.cc.

References anyDirection, SteppingHelixPropagator::applyRadX0Correction(), ecalTB2006H4_GenSimDigiReco_cfg::bField, edm::EventSetup::get(), SteppingHelixPropagator::setMaterialMode(), and SteppingHelixPropagator_cfi::SteppingHelixPropagator.

118 {
119  // access the calorimeter geometry
120  iSetup.get<CaloGeometryRecord>().get(theCaloGeometry_);
121  if (!theCaloGeometry_.isValid())
122  throw cms::Exception("FatalError") << "Unable to find IdealGeometryRecord in event!\n";
123 
124  if (useDefaultPropagator_ && ! defProp_ ) {
125  // setup propagator
127  iSetup.get<IdealMagneticFieldRecord>().get(bField);
128 
130  prop->setMaterialMode(false);
131  prop->applyRadX0Correction(true);
132  // prop->setDebug(true); // tmp
133  defProp_ = prop;
135  }
136 
137 
138 }
edm::ESHandle< CaloGeometry > theCaloGeometry_
Propagator * defProp_
void setPropagator(Propagator *)
use a user configured propagator
void applyRadX0Correction(bool applyRadX0Correction)
const T & get() const
Definition: EventSetup.h:55
bool isValid() const
Definition: ESHandle.h:37
void setMaterialMode(bool noMaterial)
Switch for material effects mode: no material effects if true.
void HTrackAssociator::setPropagator ( Propagator ptr)

use a user configured propagator

Definition at line 101 of file TrackAssociator.cc.

102 {
103  ivProp_ = ptr;
107 }
Propagator * ivProp_
HEcalDetIdAssociator ecalDetIdAssociator_
HCaloDetIdAssociator caloDetIdAssociator_
virtual void setPropagator(Propagator *ptr)
HHcalDetIdAssociator hcalDetIdAssociator_
void HTrackAssociator::useDefaultPropagator ( )

use the default propagator

Definition at line 110 of file TrackAssociator.cc.

111 {
112  useDefaultPropagator_ = true;
113 }

Member Data Documentation

HCaloDetIdAssociator HTrackAssociator::caloDetIdAssociator_
private

Definition at line 201 of file TrackAssociator.h.

std::vector<std::string> HTrackAssociator::CaloTowerCollectionLabels
private

CaloTowers.

Definition at line 212 of file TrackAssociator.h.

std::vector<std::vector<std::set<uint32_t> > >* HTrackAssociator::caloTowerMap_
private

Definition at line 197 of file TrackAssociator.h.

int HTrackAssociator::debug_
private

Definition at line 196 of file TrackAssociator.h.

Propagator* HTrackAssociator::defProp_
private

Definition at line 194 of file TrackAssociator.h.

std::vector<std::string> HTrackAssociator::EBRecHitCollectionLabels
private

Labels of the detector EDProducts (empty by default) ECAL

Definition at line 207 of file TrackAssociator.h.

HEcalDetIdAssociator HTrackAssociator::ecalDetIdAssociator_
private

Definition at line 199 of file TrackAssociator.h.

std::vector<std::string> HTrackAssociator::EERecHitCollectionLabels
private

Definition at line 208 of file TrackAssociator.h.

std::vector<std::string> HTrackAssociator::HBHERecHitCollectionLabels
private

HCAL.

Definition at line 210 of file TrackAssociator.h.

HHcalDetIdAssociator HTrackAssociator::hcalDetIdAssociator_
private

Definition at line 200 of file TrackAssociator.h.

Propagator* HTrackAssociator::ivProp_
private

Definition at line 193 of file TrackAssociator.h.

edm::ESHandle<CaloGeometry> HTrackAssociator::theCaloGeometry_
private

Definition at line 203 of file TrackAssociator.h.

bool HTrackAssociator::useDefaultPropagator_
private

Definition at line 195 of file TrackAssociator.h.