CMS 3D CMS Logo

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

#include <MuonErrorMatrixAdjuster.h>

Inheritance diagram for MuonErrorMatrixAdjuster:
edm::EDProducer edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 MuonErrorMatrixAdjuster (const edm::ParameterSet &)
 constructor More...
 
 ~MuonErrorMatrixAdjuster ()
 destructor More...
 
- Public Member Functions inherited from edm::EDProducer
 EDProducer ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDProducer ()
 
- Public Member Functions inherited from edm::ProducerBase
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription
const &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Private Member Functions

bool attachRecHits (const reco::Track &recotrack_orig, reco::Track &recotrack, reco::TrackExtra &trackextra, TrackingRecHitCollection &RHcol)
 attached rechits to the newly created reco::Track and reco::TrackExtra More...
 
virtual void beginJob ()
 framework method More...
 
bool divide (reco::TrackBase::CovarianceMatrix &num_matrix, const reco::TrackBase::CovarianceMatrix &denom_matrix)
 divide the num_matrix (first argument) by second matrix, TERM by TERM More...
 
virtual void endJob ()
 
reco::TrackBase::CovarianceMatrix fix_cov_matrix (const reco::TrackBase::CovarianceMatrix &error_matrix, const GlobalVector &momentum)
 return a corrected error matrix More...
 
reco::Track makeTrack (const reco::Track &recotrack_orig, const FreeTrajectoryState &PCAstate)
 create a corrected reco::Track from itself and trajectory state (redundant information) More...
 
reco::TrackExtramakeTrackExtra (const reco::Track &recotrack_orig, reco::Track &recotrack, reco::TrackExtraCollection &TEcol)
 create a track extra for the newly created recotrack, scaling the outer/inner measurment error matrix by the scale matrix recotrack/recotrack_orig More...
 
void multiply (reco::TrackBase::CovarianceMatrix &revised_matrix, const reco::TrackBase::CovarianceMatrix &scale_matrix)
 mutliply revised_matrix (first argument) by second matrix TERM by TERM More...
 
virtual void produce (edm::Event &, const edm::EventSetup &)
 
bool selectTrack (const reco::Track &recotrack_orig)
 make a selection on the reco:Track. (dummy for the moment) More...
 

Private Attributes

std::string theCategory
 log category: MuonErrorMatrixAdjuster More...
 
edm::ESHandle< MagneticFieldtheField
 hold on to the magnetic field More...
 
std::string theInstanceName
 instrance name of the created track collecion. rechit and trackextra have no instance name More...
 
MuonErrorMatrixtheMatrixProvider
 
edm::ParameterSet theMatrixProvider_pset
 holds the error matrix parametrization More...
 
edm::RefProd
< TrackingRecHitCollection
theRefprodRH
 get reference before put rechit to the event, in order to create edm::Ref More...
 
edm::RefProd
< reco::TrackExtraCollection
theRefprodTE
 get reference before put track extra to the event, in order to create edm::Ref More...
 
bool theRescale
 select the rescaling or replacing method to correct the error matrix More...
 
edm::Ref
< TrackingRecHitCollection >
::key_type 
theRHi
 
edm::Ref
< reco::TrackExtraCollection >
::key_type 
theTEi
 
edm::InputTag theTrackLabel
 input tag of the reco::Track collection to be corrected More...
 

Additional Inherited Members

- Public Types inherited from edm::EDProducer
typedef EDProducer ModuleType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Static Public Member Functions inherited from edm::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

EDProducer which duplicatesa collection of track, adjusting their error matrix

track collection is retrieve from the event, duplicated, while the error matrix is corrected rechit are copied into a new collection track extra is also copied and error matrix are corrected by the same scale factors

Author
Jean-Roch Vlimant UCSB
Finn Rebassoo UCSB

Definition at line 45 of file MuonErrorMatrixAdjuster.h.

Constructor & Destructor Documentation

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

constructor

Definition at line 16 of file MuonErrorMatrixAdjuster.cc.

References edm::ParameterSet::getParameter(), AlCaHLTBitMon_QueryRunRegistry::string, theCategory, theInstanceName, theMatrixProvider_pset, theRescale, and theTrackLabel.

17 {
18  theCategory="MuonErrorMatrixAdjuster";
19  theInstanceName = iConfig.getParameter<std::string>("instanceName");
20  //register your products
21  produces<reco::TrackCollection>( theInstanceName);
22  produces<TrackingRecHitCollection>();
23  produces<reco::TrackExtraCollection>();
24 
25  theTrackLabel = iConfig.getParameter<edm::InputTag>("trackLabel");
26  theRescale = iConfig.getParameter<bool>("rescale");
27 
28  theMatrixProvider_pset = iConfig.getParameter<edm::ParameterSet>("errorMatrix_pset");
29 }
T getParameter(std::string const &) const
std::string theInstanceName
instrance name of the created track collecion. rechit and trackextra have no instance name ...
edm::InputTag theTrackLabel
input tag of the reco::Track collection to be corrected
std::string theCategory
log category: MuonErrorMatrixAdjuster
edm::ParameterSet theMatrixProvider_pset
holds the error matrix parametrization
bool theRescale
select the rescaling or replacing method to correct the error matrix
MuonErrorMatrixAdjuster::~MuonErrorMatrixAdjuster ( )

destructor

Definition at line 32 of file MuonErrorMatrixAdjuster.cc.

33 {
34 
35  // do anything here that needs to be done at desctruction time
36  // (e.g. close files, deallocate resources etc.)
37 
38 }

Member Function Documentation

bool MuonErrorMatrixAdjuster::attachRecHits ( const reco::Track recotrack_orig,
reco::Track recotrack,
reco::TrackExtra trackextra,
TrackingRecHitCollection RHcol 
)
private

attached rechits to the newly created reco::Track and reco::TrackExtra

Definition at line 136 of file MuonErrorMatrixAdjuster.cc.

References reco::TrackExtraBase::add(), edm::OwnVector< T, P >::push_back(), reco::Track::recHitsBegin(), reco::Track::recHitsEnd(), reco::TrackBase::setHitPattern(), theRefprodRH, and theRHi.

Referenced by produce().

139  {
140  //loop over the hits of the original track
141  trackingRecHit_iterator recHit = recotrack_orig.recHitsBegin();
142  unsigned int irh=0;
143  for (; recHit!=recotrack_orig.recHitsEnd();++recHit){
144  //clone it. this is meandatory
145  TrackingRecHit * hit = (*recHit)->clone();
146 
147  //put it on the new track
148  recotrack.setHitPattern(*hit,irh++);
149  //copy them in the new collection
150  RHcol.push_back(hit);
151  //do something with the trackextra
152  trackextra.add(TrackingRecHitRef( theRefprodRH, theRHi++));
153 
154  }//loop over original rechits
155 
156  return true; //if nothing fails
157 }
void push_back(D *&d)
Definition: OwnVector.h:273
edm::Ref< TrackingRecHitCollection > TrackingRecHitRef
persistent reference to a TrackingRecHit
edm::RefProd< TrackingRecHitCollection > theRefprodRH
get reference before put rechit to the event, in order to create edm::Ref
trackingRecHit_iterator recHitsBegin() const
Iterator to first hit on the track.
Definition: Track.h:62
void setHitPattern(const C &c)
set hit patterns from vector of hit references
Definition: TrackBase.h:244
void add(const TrackingRecHitRef &r)
add a reference to a RecHit
edm::Ref< TrackingRecHitCollection >::key_type theRHi
trackingRecHit_iterator recHitsEnd() const
Iterator to last hit on the track.
Definition: Track.h:64
void MuonErrorMatrixAdjuster::beginJob ( void  )
privatevirtual

framework method

Reimplemented from edm::EDProducer.

Definition at line 232 of file MuonErrorMatrixAdjuster.cc.

References theMatrixProvider, and theMatrixProvider_pset.

233 {
235 }
MuonErrorMatrix * theMatrixProvider
edm::ParameterSet theMatrixProvider_pset
holds the error matrix parametrization
bool MuonErrorMatrixAdjuster::divide ( reco::TrackBase::CovarianceMatrix num_matrix,
const reco::TrackBase::CovarianceMatrix denom_matrix 
)
private

divide the num_matrix (first argument) by second matrix, TERM by TERM

Definition at line 66 of file MuonErrorMatrixAdjuster.cc.

References i, and j.

Referenced by cuy.FindIssue::__init__(), and makeTrackExtra().

66  {
67  //divide term by term the matrix
68  // the true type of the matrix is such that [i][j] is the same memory object as [j][i]: looping i:0-5, j:0-5 double multiply the terms
69  // need to loop only on i:0-5, j:i-5
70  for(int i = 0;i!=5;i++){for(int j = i;j!=5;j++){
71  if (denom_matrix(i,j)==0) return false;
72  num_matrix(i,j)/=denom_matrix(i,j);
73  }}
74  return true;
75 }
int i
Definition: DBlmapReader.cc:9
int j
Definition: DBlmapReader.cc:9
void MuonErrorMatrixAdjuster::endJob ( void  )
privatevirtual

Reimplemented from edm::EDProducer.

Definition at line 239 of file MuonErrorMatrixAdjuster.cc.

References theMatrixProvider.

239  {
241 }
MuonErrorMatrix * theMatrixProvider
reco::TrackBase::CovarianceMatrix MuonErrorMatrixAdjuster::fix_cov_matrix ( const reco::TrackBase::CovarianceMatrix error_matrix,
const GlobalVector momentum 
)
private

return a corrected error matrix

Definition at line 46 of file MuonErrorMatrixAdjuster.cc.

References MuonErrorMatrix::get(), multiply(), theMatrixProvider, and theRescale.

Referenced by makeTrack().

47 {
48  //CovarianceMatrix is template for SMatrix
49  reco::TrackBase::CovarianceMatrix revised_matrix( theMatrixProvider->get(momentum));
50 
51  if( theRescale){
52  //rescale old error matrix up by a factor
53  multiply(revised_matrix,error_matrix);
54  }
55  return revised_matrix;
56 }
CurvilinearTrajectoryError get(GlobalVector momentum, bool convolute=true)
main method to be used. Retrieve a 5x5 symetrical matrix according to parametrization of error or sca...
void multiply(reco::TrackBase::CovarianceMatrix &revised_matrix, const reco::TrackBase::CovarianceMatrix &scale_matrix)
mutliply revised_matrix (first argument) by second matrix TERM by TERM
MuonErrorMatrix * theMatrixProvider
bool theRescale
select the rescaling or replacing method to correct the error matrix
math::Error< dimension >::type CovarianceMatrix
5 parameter covariance matrix
Definition: TrackBase.h:70
reco::Track MuonErrorMatrixAdjuster::makeTrack ( const reco::Track recotrack_orig,
const FreeTrajectoryState PCAstate 
)
private

create a corrected reco::Track from itself and trajectory state (redundant information)

Definition at line 77 of file MuonErrorMatrixAdjuster.cc.

References DeDxDiscriminatorTools::charge(), reco::TrackBase::charge(), reco::TrackBase::chi2(), reco::TrackBase::covariance(), fix_cov_matrix(), LogDebug, FreeTrajectoryState::momentum(), reco::TrackBase::momentum(), reco::TrackBase::ndof(), reco::TrackBase::referencePoint(), and theCategory.

Referenced by produce().

78  {
79  //get the parameters of the track so I can reconstruct it
80  double chi2 = recotrack_orig.chi2();
81  double ndof = recotrack_orig.ndof();
82  math::XYZPoint refpos = recotrack_orig.referencePoint();
83  math::XYZVector mom = recotrack_orig.momentum();
84  int charge = recotrack_orig.charge();
85 
86  reco::TrackBase::CovarianceMatrix covariance_matrix = fix_cov_matrix(recotrack_orig.covariance(),PCAstate.momentum());
87 
88  LogDebug(theCategory)<<"chi2: "<<chi2
89  <<"\n ndof: "<<ndof
90  <<"\n refpos: "<<refpos
91  <<"\n mom: "<<mom
92  <<"\n charge: "<<charge
93  <<"\n covariance:\n"<<recotrack_orig.covariance()
94  <<"\n replaced by:\n"<<covariance_matrix;
95 
96  return reco::Track(chi2,ndof,refpos,mom,charge,covariance_matrix);
97 }
#define LogDebug(id)
const Vector & momentum() const
track momentum vector
Definition: TrackBase.h:148
reco::TrackBase::CovarianceMatrix fix_cov_matrix(const reco::TrackBase::CovarianceMatrix &error_matrix, const GlobalVector &momentum)
return a corrected error matrix
const Point & referencePoint() const
Reference point on the track.
Definition: TrackBase.h:151
double charge(const std::vector< uint8_t > &Ampls)
CovarianceMatrix covariance() const
return track covariance matrix
Definition: TrackBase.h:180
std::string theCategory
log category: MuonErrorMatrixAdjuster
double chi2() const
chi-squared of the fit
Definition: TrackBase.h:105
double ndof() const
number of degrees of freedom of the fit
Definition: TrackBase.h:107
GlobalVector momentum() const
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:30
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
int charge() const
track electric charge
Definition: TrackBase.h:111
math::Error< dimension >::type CovarianceMatrix
5 parameter covariance matrix
Definition: TrackBase.h:70
reco::TrackExtra * MuonErrorMatrixAdjuster::makeTrackExtra ( const reco::Track recotrack_orig,
reco::Track recotrack,
reco::TrackExtraCollection TEcol 
)
private

create a track extra for the newly created recotrack, scaling the outer/inner measurment error matrix by the scale matrix recotrack/recotrack_orig

Definition at line 99 of file MuonErrorMatrixAdjuster.cc.

References reco::TrackBase::covariance(), divide(), reco::Track::extra(), edm::Ref< C, T, F >::isNull(), multiply(), reco::Track::setExtra(), theCategory, theRefprodTE, and theTEi.

Referenced by produce().

101  {
102  //get the 5x5 matrix of recotrack/recotrack_orig
103  reco::TrackBase::CovarianceMatrix scale_matrix(recotrack.covariance());
104  if (!divide(scale_matrix,recotrack_orig.covariance())){
105  edm::LogError( theCategory)<<"original track error matrix has term ==0... skipping.";
106  return 0; }
107 
108  const reco::TrackExtraRef & trackExtra_orig = recotrack_orig.extra();
109  if (trackExtra_orig.isNull()) {
110  edm::LogError( theCategory)<<"original track has no track extra... skipping.";
111  return 0;}
112 
113  //copy the outer state. rescaling the error matrix
114  reco::TrackBase::CovarianceMatrix outerCov(trackExtra_orig->outerStateCovariance());
115  multiply(outerCov,scale_matrix);
116 
117  //copy the inner state, rescaling the error matrix
118  reco::TrackBase::CovarianceMatrix innerCov(trackExtra_orig->innerStateCovariance());
119  multiply(innerCov,scale_matrix);
120 
121  //put the trackExtra
122  TEcol.push_back(reco::TrackExtra (trackExtra_orig->outerPosition(), trackExtra_orig->outerMomentum(), true,
123  trackExtra_orig->innerPosition(), trackExtra_orig->innerMomentum(), true,
124  outerCov, trackExtra_orig->outerDetId(),
125  innerCov, trackExtra_orig->innerDetId(),
126  trackExtra_orig->seedDirection()));
127 
128  //add a reference to the trackextra on the track
130 
131  //return the reference to the last inserted then
132  return &(TEcol.back());
133 }
edm::RefProd< reco::TrackExtraCollection > theRefprodTE
get reference before put track extra to the event, in order to create edm::Ref
const TrackExtraRef & extra() const
reference to &quot;extra&quot; object
Definition: Track.h:96
CovarianceMatrix covariance() const
return track covariance matrix
Definition: TrackBase.h:180
std::string theCategory
log category: MuonErrorMatrixAdjuster
void multiply(reco::TrackBase::CovarianceMatrix &revised_matrix, const reco::TrackBase::CovarianceMatrix &scale_matrix)
mutliply revised_matrix (first argument) by second matrix TERM by TERM
bool isNull() const
Checks for null.
Definition: Ref.h:247
bool divide(reco::TrackBase::CovarianceMatrix &num_matrix, const reco::TrackBase::CovarianceMatrix &denom_matrix)
divide the num_matrix (first argument) by second matrix, TERM by TERM
edm::Ref< reco::TrackExtraCollection >::key_type theTEi
void setExtra(const TrackExtraRef &ref)
set reference to &quot;extra&quot; object
Definition: Track.h:94
math::Error< dimension >::type CovarianceMatrix
5 parameter covariance matrix
Definition: TrackBase.h:70
void MuonErrorMatrixAdjuster::multiply ( reco::TrackBase::CovarianceMatrix revised_matrix,
const reco::TrackBase::CovarianceMatrix scale_matrix 
)
private

mutliply revised_matrix (first argument) by second matrix TERM by TERM

Definition at line 58 of file MuonErrorMatrixAdjuster.cc.

References i, and j.

Referenced by fix_cov_matrix(), and makeTrackExtra().

58  {
59  //scale term by term the matrix
60  // the true type of the matrix is such that [i][j] is the same memory object as [j][i]: looping i:0-5, j:0-5 double multiply the terms
61  // need to loop only on i:0-5, j:i-5
62  for(int i = 0;i!=5;i++){for(int j = i;j!=5;j++){
63  revised_matrix(i,j)*=scale_matrix(i,j);
64  }}
65 }
int i
Definition: DBlmapReader.cc:9
int j
Definition: DBlmapReader.cc:9
void MuonErrorMatrixAdjuster::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
privatevirtual

Implements edm::EDProducer.

Definition at line 163 of file MuonErrorMatrixAdjuster.cc.

References attachRecHits(), edm::EventSetup::get(), edm::Event::getByLabel(), edm::Event::getRefBeforePut(), trajectoryStateTransform::initialFreeState(), LogDebug, PV3DBase< T, PVType, FrameType >::mag(), makeTrack(), makeTrackExtra(), FreeTrajectoryState::position(), edm::ESHandle< class >::product(), edm::Event::put(), Reconstruction_cff::recotrack, selectTrack(), theCategory, theField, theInstanceName, theRefprodRH, theRefprodTE, theRHi, theTEi, theTrackLabel, and testEve_cfg::tracks.

164 {
165  using namespace edm;
166 
167  //open a collection of track
170  LogDebug( theCategory)<<"considering: "<<tracks->size()<<" uncorrected reco::Track from the event.("<< theTrackLabel<<")";
171 
172  //get the mag field
173  iSetup.get<IdealMagneticFieldRecord>().get( theField);
174 
175  //prepare the output collection
176  std::auto_ptr<reco::TrackCollection> Toutput(new reco::TrackCollection());
177  std::auto_ptr<TrackingRecHitCollection> TRHoutput(new TrackingRecHitCollection());
178  std::auto_ptr<reco::TrackExtraCollection> TEoutput(new reco::TrackExtraCollection());
180  theTEi=0;
182  theRHi=0;
183 
184 
185 
186  for(unsigned int it=0;it!=tracks->size();it++)
187  {
188  const reco::Track & recotrack_orig = (*tracks)[it];
190  if (PCAstate.position().mag()==0)
191  {edm::LogError( theCategory)<<"invalid state from track initial state in "<< theTrackLabel <<". skipping.";continue;}
192 
193  //create a reco::Track
194  reco::Track recotrack = makeTrack(recotrack_orig,PCAstate);
195 
196  //make a selection on the create reco::Track
197  if (!selectTrack(recotrack)) continue;
198 
199  Toutput->push_back(recotrack);
200  reco::Track & recotrackref = Toutput->back();
201 
202  //build the track extra
203  reco::TrackExtra * extra = makeTrackExtra(recotrack_orig,recotrackref,*TEoutput);
204  if (!extra){
205  edm::LogError( theCategory)<<"cannot create the track extra for this track.";
206  //pop the inserted track
207  Toutput->pop_back();
208  continue;}
209 
210  //attach the collection of rechits
211  if (!attachRecHits(recotrack_orig,recotrackref,*extra,*TRHoutput)){
212  edm::LogError( theCategory)<<"cannot attach any rechits on this track";
213  //pop the inserted track
214  Toutput->pop_back();
215  //pop the track extra
216  TEoutput->pop_back();
217  theTEi--;
218  continue;}
219 
220  }//loop over the original reco tracks
221 
222  LogDebug( theCategory)<<"writing: "<<Toutput->size()<<" corrected reco::Track to the event.";
223 
224  iEvent.put(Toutput, theInstanceName);
225  iEvent.put(TEoutput);
226  iEvent.put(TRHoutput);
227 
228 }
#define LogDebug(id)
edm::RefProd< reco::TrackExtraCollection > theRefprodTE
get reference before put track extra to the event, in order to create edm::Ref
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:10
bool attachRecHits(const reco::Track &recotrack_orig, reco::Track &recotrack, reco::TrackExtra &trackextra, TrackingRecHitCollection &RHcol)
attached rechits to the newly created reco::Track and reco::TrackExtra
std::string theInstanceName
instrance name of the created track collecion. rechit and trackextra have no instance name ...
edm::InputTag theTrackLabel
input tag of the reco::Track collection to be corrected
std::string theCategory
log category: MuonErrorMatrixAdjuster
edm::ESHandle< MagneticField > theField
hold on to the magnetic field
T mag() const
Definition: PV3DBase.h:67
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:116
edm::Ref< reco::TrackExtraCollection >::key_type theTEi
edm::RefProd< TrackingRecHitCollection > theRefprodRH
get reference before put rechit to the event, in order to create edm::Ref
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:390
RefProd< PROD > getRefBeforePut()
Definition: Event.h:128
GlobalPoint position() const
std::vector< TrackExtra > TrackExtraCollection
collection of TrackExtra objects
Definition: TrackExtraFwd.h:9
edm::OwnVector< TrackingRecHit > TrackingRecHitCollection
collection of TrackingRecHits
reco::TrackExtra * makeTrackExtra(const reco::Track &recotrack_orig, reco::Track &recotrack, reco::TrackExtraCollection &TEcol)
create a track extra for the newly created recotrack, scaling the outer/inner measurment error matrix...
tuple tracks
Definition: testEve_cfg.py:39
FreeTrajectoryState initialFreeState(const reco::Track &tk, const MagneticField *field)
const T & get() const
Definition: EventSetup.h:55
T const * product() const
Definition: ESHandle.h:62
bool selectTrack(const reco::Track &recotrack_orig)
make a selection on the reco:Track. (dummy for the moment)
reco::Track makeTrack(const reco::Track &recotrack_orig, const FreeTrajectoryState &PCAstate)
create a corrected reco::Track from itself and trajectory state (redundant information) ...
edm::Ref< TrackingRecHitCollection >::key_type theRHi
bool MuonErrorMatrixAdjuster::selectTrack ( const reco::Track recotrack_orig)
private

make a selection on the reco:Track. (dummy for the moment)

Definition at line 159 of file MuonErrorMatrixAdjuster.cc.

Referenced by produce().

159 {return true;}

Member Data Documentation

std::string MuonErrorMatrixAdjuster::theCategory
private
edm::ESHandle<MagneticField> MuonErrorMatrixAdjuster::theField
private

hold on to the magnetic field

Definition at line 102 of file MuonErrorMatrixAdjuster.h.

Referenced by produce().

std::string MuonErrorMatrixAdjuster::theInstanceName
private

instrance name of the created track collecion. rechit and trackextra have no instance name

Definition at line 91 of file MuonErrorMatrixAdjuster.h.

Referenced by MuonErrorMatrixAdjuster(), and produce().

MuonErrorMatrix* MuonErrorMatrixAdjuster::theMatrixProvider
private

Definition at line 98 of file MuonErrorMatrixAdjuster.h.

Referenced by beginJob(), endJob(), and fix_cov_matrix().

edm::ParameterSet MuonErrorMatrixAdjuster::theMatrixProvider_pset
private

holds the error matrix parametrization

Definition at line 97 of file MuonErrorMatrixAdjuster.h.

Referenced by beginJob(), and MuonErrorMatrixAdjuster().

edm::RefProd<TrackingRecHitCollection> MuonErrorMatrixAdjuster::theRefprodRH
private

get reference before put rechit to the event, in order to create edm::Ref

Definition at line 109 of file MuonErrorMatrixAdjuster.h.

Referenced by attachRecHits(), and produce().

edm::RefProd<reco::TrackExtraCollection> MuonErrorMatrixAdjuster::theRefprodTE
private

get reference before put track extra to the event, in order to create edm::Ref

Definition at line 105 of file MuonErrorMatrixAdjuster.h.

Referenced by makeTrackExtra(), and produce().

bool MuonErrorMatrixAdjuster::theRescale
private

select the rescaling or replacing method to correct the error matrix

Definition at line 94 of file MuonErrorMatrixAdjuster.h.

Referenced by fix_cov_matrix(), and MuonErrorMatrixAdjuster().

edm::Ref<TrackingRecHitCollection>::key_type MuonErrorMatrixAdjuster::theRHi
private

Definition at line 110 of file MuonErrorMatrixAdjuster.h.

Referenced by attachRecHits(), and produce().

edm::Ref<reco::TrackExtraCollection>::key_type MuonErrorMatrixAdjuster::theTEi
private

Definition at line 106 of file MuonErrorMatrixAdjuster.h.

Referenced by makeTrackExtra(), and produce().

edm::InputTag MuonErrorMatrixAdjuster::theTrackLabel
private

input tag of the reco::Track collection to be corrected

Definition at line 88 of file MuonErrorMatrixAdjuster.h.

Referenced by MuonErrorMatrixAdjuster(), and produce().