CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
PositionAtECalEntranceComputer Class Reference

#include <PositionAtECalEntranceComputer.h>

Public Member Functions

void beginEvent (const edm::EventSetup &)
 
reco::Candidate::Point operator() (const reco::Candidate *particle, bool &success) const
 
 PositionAtECalEntranceComputer ()
 
 ~PositionAtECalEntranceComputer ()
 

Private Attributes

double bField_z_
 

Detailed Description

Extrapolate particle (charged or neutral) to ECAL entrance, in order to compute the distance of the tau to ECAL cracks and/or dead ECAL channels

Authors
Fabio Colombo, Christian Veelken

Definition at line 19 of file PositionAtECalEntranceComputer.h.

Constructor & Destructor Documentation

PositionAtECalEntranceComputer::PositionAtECalEntranceComputer ( )
PositionAtECalEntranceComputer::~PositionAtECalEntranceComputer ( )

Definition at line 12 of file PositionAtECalEntranceComputer.cc.

12 {}

Member Function Documentation

void PositionAtECalEntranceComputer::beginEvent ( const edm::EventSetup es)
reco::Candidate::Point PositionAtECalEntranceComputer::operator() ( const reco::Candidate particle,
bool &  success 
) const

Definition at line 20 of file PositionAtECalEntranceComputer.cc.

References bField_z_, reco::Candidate::charge(), BaseParticlePropagator::getSuccess(), reco::Candidate::p4(), position, BaseParticlePropagator::propagateToEcalEntrance(), PhotonConversionTrajectorySeedProducerFromQuadruplets_cfi::propagator, RawParticle::setCharge(), reco::Candidate::vertex(), and RawParticle::vertex().

20  {
21  assert(bField_z_ != -1.);
23  RawParticle(particle->p4(),
24  math::XYZTLorentzVector(particle->vertex().x(), particle->vertex().y(), particle->vertex().z(), 0.)),
25  0.,
26  0.,
27  bField_z_);
28  propagator.setCharge(particle->charge());
29  propagator.propagateToEcalEntrance(false);
31  if (propagator.getSuccess() != 0) {
32  position = propagator.vertex().Vect();
33  success = true;
34  } else {
35  success = false;
36  }
37  return position;
38 }
void setCharge(float q)
set the MEASURED charge
Definition: RawParticle.cc:139
int getSuccess() const
Has propagation been performed and was barrel or endcap reached ?
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
virtual const LorentzVector & p4() const =0
four-momentum Lorentz vector
bool propagateToEcalEntrance(bool first=true)
const XYZTLorentzVector & vertex() const
the vertex fourvector
Definition: RawParticle.h:285
virtual int charge() const =0
electric charge
static int position[264][3]
Definition: ReadPGInfo.cc:509
math::XYZPoint Point
point in the space
Definition: Candidate.h:41
virtual const Point & vertex() const =0
vertex position

Member Data Documentation

double PositionAtECalEntranceComputer::bField_z_
private

Definition at line 30 of file PositionAtECalEntranceComputer.h.

Referenced by beginEvent(), and operator()().