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
DTCombinatorialPatternReco4D Class Reference

#include <DTCombinatorialPatternReco4D.h>

Inheritance diagram for DTCombinatorialPatternReco4D:
DTRecSegment4DBaseAlgo

Public Member Functions

virtual std::string algoName () const
 
 DTCombinatorialPatternReco4D (const edm::ParameterSet &pset)
 Constructor. More...
 
virtual edm::OwnVector
< DTRecSegment4D
reconstruct ()
 Operations. More...
 
virtual void setChamber (const DTChamberId &chId)
 
virtual void setDTRecHit1DContainer (edm::Handle< DTRecHitCollection > all1DHits)
 
virtual void setDTRecSegment2DContainer (edm::Handle< DTRecSegment2DCollection > all2DSegments)
 
virtual void setES (const edm::EventSetup &setup)
 
virtual bool wants2DSegments ()
 
virtual ~DTCombinatorialPatternReco4D ()
 Destructor. More...
 
- Public Member Functions inherited from DTRecSegment4DBaseAlgo
 DTRecSegment4DBaseAlgo (const edm::ParameterSet &)
 Constructor. More...
 
virtual ~DTRecSegment4DBaseAlgo ()
 Destructor. More...
 

Private Member Functions

std::vector< DTSegmentCand * > buildPhiSuperSegmentsCandidates (std::vector< std::shared_ptr< DTHitPairForFit >> &pairPhiOwned)
 
DTRecSegment4DsegmentSpecialZed (const DTRecSegment4D *seg)
 Build a 4d segment with a zed component made by just one hits. More...
 

Private Attributes

bool allDTRecHits
 
bool applyT0corr
 
bool computeT0corr
 
bool debug
 
DTCombinatorialPatternRecothe2DAlgo
 
std::string theAlgoName
 
const DTChambertheChamber
 
edm::ESHandle< DTGeometrytheDTGeometry
 
std::vector< DTRecHit1DPairtheHitsFromPhi1
 
std::vector< DTRecHit1DPairtheHitsFromPhi2
 
std::vector< DTRecHit1DPairtheHitsFromTheta
 
std::vector< DTSLRecSegment2DtheSegments2DTheta
 
DTSegmentUpdatortheUpdator
 

Detailed Description

Algo for reconstructing 4d segment in DT using a combinatorial approach

Author
Stefano Lacaprara - INFN Legnaro stefa.nosp@m.no.l.nosp@m.acapr.nosp@m.ara@.nosp@m.pd.in.nosp@m.fn.i.nosp@m.t
Riccardo Bellan - INFN TO ricca.nosp@m.rdo..nosp@m.bella.nosp@m.n@ce.nosp@m.rn.ch

Definition at line 40 of file DTCombinatorialPatternReco4D.h.

Constructor & Destructor Documentation

DTCombinatorialPatternReco4D::DTCombinatorialPatternReco4D ( const edm::ParameterSet pset)

Constructor.

Definition at line 32 of file DTCombinatorialPatternReco4D.cc.

References allDTRecHits, applyT0corr, computeT0corr, debug, edm::ParameterSet::existsAs(), edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), the2DAlgo, and theUpdator.

32  :
33  DTRecSegment4DBaseAlgo(pset), theAlgoName("DTCombinatorialPatternReco4D"){
34 
35  // debug parameter
36  debug = pset.getUntrackedParameter<bool>("debug");
37 
38  //do you want the T0 correction?
39  applyT0corr = pset.getParameter<bool>("performT0SegCorrection");
40 
41  computeT0corr = pset.existsAs<bool>("computeT0Seg") ?
42  pset.getParameter<bool>("computeT0Seg") : true;
43 
44  // the updator
45  theUpdator = new DTSegmentUpdator(pset);
46 
47  // the input type.
48  // If true the instructions in setDTRecSegment2DContainer will be schipped and the
49  // theta segment will be recomputed from the 1D rechits
50  // If false the theta segment will be taken from the Event. Caveat: in this case the
51  // event must contain the 2D segments!
52  allDTRecHits = pset.getParameter<bool>("AllDTRecHits");
53 
54  // Get the concrete 2D-segments reconstruction algo from the factory
55  // For the 2D reco I use this reconstructor!
56  the2DAlgo = new DTCombinatorialPatternReco(pset.getParameter<ParameterSet>("Reco2DAlgoConfig"));
57  }
DTCombinatorialPatternReco * the2DAlgo
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
DTRecSegment4DBaseAlgo(const edm::ParameterSet &)
Constructor.
bool existsAs(std::string const &parameterName, bool trackiness=true) const
checks if a parameter exists as a given type
Definition: ParameterSet.h:186
DTCombinatorialPatternReco4D::~DTCombinatorialPatternReco4D ( )
virtual

Destructor.

Definition at line 59 of file DTCombinatorialPatternReco4D.cc.

References the2DAlgo, and theUpdator.

59  {
60  delete the2DAlgo;
61  delete theUpdator;
62 }
DTCombinatorialPatternReco * the2DAlgo

Member Function Documentation

virtual std::string DTCombinatorialPatternReco4D::algoName ( void  ) const
inlinevirtual

Implements DTRecSegment4DBaseAlgo.

Definition at line 53 of file DTCombinatorialPatternReco4D.h.

References theAlgoName.

vector< DTSegmentCand * > DTCombinatorialPatternReco4D::buildPhiSuperSegmentsCandidates ( std::vector< std::shared_ptr< DTHitPairForFit >> &  pairPhiOwned)
private

Definition at line 261 of file DTCombinatorialPatternReco4D.cc.

References DTCombinatorialPatternReco::buildSegments(), filterCSVwithJSON::copy, gather_cfg::cout, debug, DTCombinatorialPatternReco::initHits(), the2DAlgo, theDTGeometry, theHitsFromPhi1, and theHitsFromPhi2.

Referenced by reconstruct().

261  {
262 
263  DTSuperLayerId slId;
264 
265  if(theHitsFromPhi1.size())
266  slId = theHitsFromPhi1.front().wireId().superlayerId();
267  else
268  if(theHitsFromPhi2.size())
269  slId = theHitsFromPhi2.front().wireId().superlayerId();
270  else{
271  if(debug) cout<<"DTCombinatorialPatternReco4D::buildPhiSuperSegmentsCandidates: "
272  <<"No Hits in the two Phi SL"<<endl;
273  return vector<DTSegmentCand*>();
274  }
275 
276  const DTSuperLayer *sl = theDTGeometry->superLayer(slId);
277 
278  vector<std::shared_ptr<DTHitPairForFit>> pairPhi1 = the2DAlgo->initHits(sl,theHitsFromPhi1);
279  // same sl!! Since the fit will be in the sl phi 1!
280  vector<std::shared_ptr<DTHitPairForFit>> pairPhi2 = the2DAlgo->initHits(sl,theHitsFromPhi2);
281  // copy the pairPhi2 in the pairPhi1 vector
282  copy(pairPhi2.begin(),pairPhi2.end(),back_inserter(pairPhi1));
283 
284  pairPhiOwned.swap(pairPhi1);
285  // Build the segment candidate
286  return the2DAlgo->buildSegments(sl,pairPhiOwned);
287 }
DTCombinatorialPatternReco * the2DAlgo
std::vector< std::shared_ptr< DTHitPairForFit > > initHits(const DTSuperLayer *sl, const std::vector< DTRecHit1DPair > &hits)
std::vector< DTRecHit1DPair > theHitsFromPhi2
std::vector< DTSegmentCand * > buildSegments(const DTSuperLayer *sl, const std::vector< std::shared_ptr< DTHitPairForFit >> &hits)
std::vector< DTRecHit1DPair > theHitsFromPhi1
edm::ESHandle< DTGeometry > theDTGeometry
tuple cout
Definition: gather_cfg.py:145
OwnVector< DTRecSegment4D > DTCombinatorialPatternReco4D::reconstruct ( )
virtual

Operations.

4d segment: I have the pos along the wire => further update!

Implements DTRecSegment4DBaseAlgo.

Definition at line 127 of file DTCombinatorialPatternReco4D.cc.

References allDTRecHits, applyT0corr, edm::OwnVector< T, P >::begin(), buildPhiSuperSegmentsCandidates(), DTSegmentUpdator::calculateT0corr(), computeT0corr, gather_cfg::cout, debug, edm::OwnVector< T, P >::end(), DTChamber::id(), phi, edm::OwnVector< T, P >::push_back(), DTCombinatorialPatternReco::reconstruct(), mps_fire::result, DTChamber::superLayer(), the2DAlgo, theChamber, theHitsFromTheta, theSegments2DTheta, theUpdator, GeomDet::toGlobal(), GeomDet::toLocal(), DTSegmentUpdator::update(), and y.

127  {
128 
130 
131  if (debug){
132  cout << "Segments in " << theChamber->id() << endl;
133  cout << "Reconstructing of the Phi segments" << endl;
134  }
135 
136  vector<std::shared_ptr<DTHitPairForFit>> pairPhiOwned;
137  vector<DTSegmentCand*> resultPhi = buildPhiSuperSegmentsCandidates(pairPhiOwned);
138 
139  if (debug) cout << "There are " << resultPhi.size() << " Phi cand" << endl;
140 
141  if (allDTRecHits){
142  // take the theta SL of this chamber
143  const DTSuperLayer* sl = theChamber->superLayer(2);
144  // sl points to 0 if the theta SL was not found
145  if(sl){
146  // reconstruct the theta segments
147  if(debug) cout<<"Reconstructing of the Theta segments"<<endl;
149  vector<DTSLRecSegment2D> segments2DTheta(thetaSegs.begin(),thetaSegs.end());
150  theSegments2DTheta = segments2DTheta;
151  }
152  }
153 
154  bool hasZed = false;
155 
156  // has this chamber the Z-superlayer?
157  if (theSegments2DTheta.size()){
158  hasZed = theSegments2DTheta.size() > 0;
159  if (debug) cout << "There are " << theSegments2DTheta.size() << " Theta cand" << endl;
160  } else {
161  if (debug) cout << "No Theta SL" << endl;
162  }
163 
164  // Now I want to build the concrete DTRecSegment4D.
165  if(debug) cout<<"Building of the concrete DTRecSegment4D"<<endl;
166  if (resultPhi.size()) {
167  for (vector<DTSegmentCand*>::const_iterator phi=resultPhi.begin();
168  phi!=resultPhi.end(); ++phi) {
169 
170  std::unique_ptr<DTChamberRecSegment2D> superPhi(**phi);
171 
172  theUpdator->update(superPhi.get(),0);
173  if(debug) cout << "superPhi: " << *superPhi << endl;
174 
175  if (hasZed) {
176 
177  // Create all the 4D-segment combining the Z view with the Phi one
178  // loop over the Z segments
179  for(vector<DTSLRecSegment2D>::const_iterator zed = theSegments2DTheta.begin();
180  zed != theSegments2DTheta.end(); ++zed){
181 
182  if(debug) cout << "Theta: " << *zed << endl;
183  // Important!!
184  DTSuperLayerId ZedSegSLId(zed->geographicalId().rawId());
185 
186  // Put the theta segment poistion in its 3D place.
187  // note: (superPhi is in the CHAMBER local frame)
188  const DTSuperLayer* zSL = theChamber->superLayer(ZedSegSLId);
189 
190  // FIXME: should rather extrapolate for Y!
191  LocalPoint zPos(zed->localPosition().x(),
192  (zSL->toLocal(theChamber->toGlobal(superPhi->localPosition()))).y(),
193  0.);
194 
195  const LocalPoint posZInCh = theChamber->toLocal( zSL->toGlobal(zPos));
196  // FIXME: zed->localDirection() is in 2D. Should add the phi direction in the orthogonal plane as well!!
197  const LocalVector dirZInCh = theChamber->toLocal( zSL->toGlobal(zed->localDirection()));
198 
199  DTRecSegment4D* newSeg = new DTRecSegment4D(*superPhi,*zed,posZInCh,dirZInCh);
200 
201  if (debug) cout << "Created a 4D seg " << *newSeg << endl;
202 
204  theUpdator->update(newSeg,0,0);
205  if (debug) cout << " seg updated " << *newSeg << endl;
206 
207 
209  if(applyT0corr) theUpdator->update(newSeg,true,0);
210 
211  result.push_back(newSeg);
212  }
213  } else {
214  // Only phi
215 
216  DTRecSegment4D* newSeg = new DTRecSegment4D(*superPhi);
217 
218  if (debug) cout << "Created a 4D segment using only the 2D Phi segment " << *newSeg << endl;
219 
220  //update the segment with the t0 and possibly vdrift correction
222  if(applyT0corr) theUpdator->update(newSeg,true,0);
223 
224  result.push_back(newSeg);
225  }
226  }
227  } else {
228  // DTRecSegment4D from zed projection only (unlikely, not so useful, but...)
229  if (hasZed) {
230  for(vector<DTSLRecSegment2D>::const_iterator zed = theSegments2DTheta.begin();
231  zed != theSegments2DTheta.end(); ++zed){
232  if(debug) cout << "Theta: " << *zed << endl;
233 
234  // Important!!
235  DTSuperLayerId ZedSegSLId(zed->geographicalId().rawId());
236 
237  const LocalPoint posZInCh = theChamber->toLocal( theChamber->superLayer(ZedSegSLId)->toGlobal(zed->localPosition() )) ;
238  const LocalVector dirZInCh = theChamber->toLocal( theChamber->superLayer(ZedSegSLId)->toGlobal(zed->localDirection() )) ;
239 
240  DTRecSegment4D* newSeg = new DTRecSegment4D( *zed,posZInCh,dirZInCh);
241 
242  if (debug) cout << "Created a 4D segment using only the 2D Theta segment " <<
243  *newSeg << endl;
244 
246  if(applyT0corr) theUpdator->update(newSeg,true,0);
247 
248  result.push_back(newSeg);
249  }
250  }
251  }
252  // finally delete the candidates!
253  for (vector<DTSegmentCand*>::iterator phi=resultPhi.begin();
254  phi!=resultPhi.end(); ++phi) delete *phi;
255 
256  return result;
257 }
DTCombinatorialPatternReco * the2DAlgo
void calculateT0corr(DTRecSegment2D *seg) const
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
Definition: GeomDet.h:54
LocalPoint toLocal(const GlobalPoint &gp) const
Conversion to the R.F. of the GeomDet.
Definition: GeomDet.h:69
tuple result
Definition: mps_fire.py:84
iterator begin()
Definition: OwnVector.h:244
void push_back(D *&d)
Definition: OwnVector.h:290
DTChamberId id() const
Return the DTChamberId of this chamber.
Definition: DTChamber.cc:33
virtual edm::OwnVector< DTSLRecSegment2D > reconstruct(const DTSuperLayer *sl, const std::vector< DTRecHit1DPair > &hits)
this function is called in the producer
iterator end()
Definition: OwnVector.h:249
std::vector< DTSLRecSegment2D > theSegments2DTheta
std::vector< DTRecHit1DPair > theHitsFromTheta
std::vector< DTSegmentCand * > buildPhiSuperSegmentsCandidates(std::vector< std::shared_ptr< DTHitPairForFit >> &pairPhiOwned)
tuple cout
Definition: gather_cfg.py:145
void update(DTRecSegment4D *seg, const bool calcT0, bool allow3par) const
recompute hits position and refit the segment4D
const DTSuperLayer * superLayer(DTSuperLayerId id) const
Return the superlayer corresponding to the given id.
Definition: DTChamber.cc:65
DTRecSegment4D * DTCombinatorialPatternReco4D::segmentSpecialZed ( const DTRecSegment4D seg)
private

Build a 4d segment with a zed component made by just one hits.

Definition at line 290 of file DTCombinatorialPatternReco4D.cc.

References DTRecSegment2D::chi2(), beam_dqm_sourceclient-live_cfg::chi2, funct::cos(), DTRecSegment2D::covMatrix(), DTRecHit1D::digiTime(), dir, DTRecSegment4D::localDirection(), DTRecSegment2D::localDirection(), DTRecSegment4D::localPosition(), DTRecSegment2D::localPosition(), DTRecSegment2D::localPositionError(), DTRecHit1D::lrSide(), DTRecSegment4D::phiSegment(), mps_fire::result, DTRecSegment2D::specificRecHits(), DTSLRecSegment2D::superLayerId(), PV3DBase< T, PVType, FrameType >::theta(), DTRecHit1D::wireId(), PV3DBase< T, PVType, FrameType >::z(), and DTRecSegment4D::zSegment().

290  {
291  // Get the zed projection
292  //if (!seg->hasZed()) return seg;
293  const DTSLRecSegment2D* zedSeg=seg->zSegment();
294  std::vector<DTRecHit1D> hits = zedSeg->specificRecHits();
295 
296  // pick up a hit "in the middle", where the single hit will be put.
297  int nHits=hits.size();
298  DTRecHit1D middle=hits[static_cast<int>(nHits/2.)];
299 
300  // Need to extrapolate pos to the middle layer z
301  LocalPoint posInSL = zedSeg->localPosition();
302  LocalVector dirInSL = zedSeg->localDirection();
303  LocalPoint posInMiddleLayer = posInSL+dirInSL*(-posInSL.z())/cos(dirInSL.theta());
304 
305  // create a hit with position and error as the Zed projection one's
306  auto hit = std::make_unique<DTRecHit1D>(middle.wireId(),
307  middle.lrSide(),
308  middle.digiTime(),
309  posInMiddleLayer,
310  zedSeg->localPositionError());
311 
312  std::vector<DTRecHit1D> newHits(1,*hit);
313 
314  // create a new zed segment with that single hits, but same dir and pos
315  LocalPoint pos(zedSeg->localPosition());
316  LocalVector dir(zedSeg->localDirection());
317  AlgebraicSymMatrix cov(zedSeg->covMatrix());
318  double chi2(zedSeg->chi2());
319  //cout << "zed " << *zedSeg << endl;
320  auto newZed = std::make_unique<DTSLRecSegment2D>(zedSeg->superLayerId(),
321  pos,
322  dir,
323  cov,
324  chi2,
325  newHits);
326  //cout << "newZed " << *newZed << endl;
327 
328  // create a 4d segment with the special zed
330  *newZed,
331  seg->localPosition(),
332  seg->localDirection());
333  // delete the input segment
334  delete seg;
335 
336  // return it
337  return result;
338 }
virtual LocalError localPositionError() const
local position error in SL frame
const DTChamberRecSegment2D * phiSegment() const
The superPhi segment: 0 if no phi projection available.
virtual double chi2() const
the chi2 of the fit
tuple result
Definition: mps_fire.py:84
Geom::Theta< T > theta() const
Definition: PV3DBase.h:75
virtual LocalVector localDirection() const
Local direction in Chamber frame.
T z() const
Definition: PV3DBase.h:64
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
virtual LocalPoint localPosition() const
Local position in Chamber frame.
std::vector< DTRecHit1D > specificRecHits() const
Access to specific components.
DTSuperLayerId superLayerId() const
The id of the superlayer on which reside the segment.
AlgebraicSymMatrix covMatrix() const
the Covariance Matrix
virtual LocalPoint localPosition() const
local position in SL frame
const DTSLRecSegment2D * zSegment() const
The Z segment: 0 if not zed projection available.
virtual LocalVector localDirection() const
the local direction in SL frame
CLHEP::HepSymMatrix AlgebraicSymMatrix
dbl *** dir
Definition: mlp_gen.cc:35
void DTCombinatorialPatternReco4D::setChamber ( const DTChamberId chId)
virtual

Implements DTRecSegment4DBaseAlgo.

Definition at line 70 of file DTCombinatorialPatternReco4D.cc.

References theChamber, and theDTGeometry.

70  {
71  // Set the chamber
72  theChamber = theDTGeometry->chamber(chId);
73 }
edm::ESHandle< DTGeometry > theDTGeometry
void DTCombinatorialPatternReco4D::setDTRecHit1DContainer ( edm::Handle< DTRecHitCollection all1DHits)
virtual

Implements DTRecSegment4DBaseAlgo.

Definition at line 75 of file DTCombinatorialPatternReco4D.cc.

References allDTRecHits, gather_cfg::cout, debug, DTSuperLayerId, DTChamber::id(), DTRangeMapAccessor::layersBySuperLayer(), theChamber, theHitsFromPhi1, theHitsFromPhi2, and theHitsFromTheta.

75  {
76  theHitsFromPhi1.clear();
77  theHitsFromPhi2.clear();
78  theHitsFromTheta.clear();
79 
80  DTRecHitCollection::range rangeHitsFromPhi1 =
82  DTRecHitCollection::range rangeHitsFromPhi2 =
84 
85  vector<DTRecHit1DPair> hitsFromPhi1(rangeHitsFromPhi1.first,rangeHitsFromPhi1.second);
86  vector<DTRecHit1DPair> hitsFromPhi2(rangeHitsFromPhi2.first,rangeHitsFromPhi2.second);
87  if(debug)
88  cout<< "Number of DTRecHit1DPair in the SL 1 (Phi 1): " << hitsFromPhi1.size()<<endl
89  << "Number of DTRecHit1DPair in the SL 3 (Phi 2): " << hitsFromPhi2.size()<<endl;
90 
91  theHitsFromPhi1 = hitsFromPhi1;
92  theHitsFromPhi2 = hitsFromPhi2;
93 
94  if(allDTRecHits){
95  DTRecHitCollection::range rangeHitsFromTheta =
97 
98  vector<DTRecHit1DPair> hitsFromTheta(rangeHitsFromTheta.first,rangeHitsFromTheta.second);
99  if(debug)
100  cout<< "Number of DTRecHit1DPair in the SL 2 (Theta): " << hitsFromTheta.size()<<endl;
101  theHitsFromTheta = hitsFromTheta;
102  }
103 
104 }
std::pair< const_iterator, const_iterator > range
iterator range
Definition: RangeMap.h:51
static std::pair< DTLayerId, DTSuperLayerIdComparator > layersBySuperLayer(DTSuperLayerId slId)
Access by SL objects written into a RangeMap by layer.
DTSuperLayerId
std::vector< DTRecHit1DPair > theHitsFromPhi2
DTChamberId id() const
Return the DTChamberId of this chamber.
Definition: DTChamber.cc:33
std::vector< DTRecHit1DPair > theHitsFromPhi1
std::vector< DTRecHit1DPair > theHitsFromTheta
tuple cout
Definition: gather_cfg.py:145
void DTCombinatorialPatternReco4D::setDTRecSegment2DContainer ( edm::Handle< DTRecSegment2DCollection all2DSegments)
virtual

Implements DTRecSegment4DBaseAlgo.

Definition at line 106 of file DTCombinatorialPatternReco4D.cc.

References allDTRecHits, gather_cfg::cout, debug, DTSuperLayerId, DTChamber::id(), theChamber, and theSegments2DTheta.

106  {
107  theSegments2DTheta.clear();
108 
109  if(!allDTRecHits){
110 
111  //Extract the DTRecSegment2DCollection range for the theta SL
112  DTRecSegment2DCollection::range rangeTheta =
113  all2DSegments->get(DTSuperLayerId(theChamber->id(),2));
114 
115  // Fill the DTRecSegment2D container for the theta SL
116  vector<DTSLRecSegment2D> segments2DTheta(rangeTheta.first,rangeTheta.second);
117 
118  if(debug)
119  cout << "Number of 2D-segments in the second SL (Theta): " << segments2DTheta.size() << endl;
120  theSegments2DTheta = segments2DTheta;
121  }
122 
123 }
std::pair< const_iterator, const_iterator > range
iterator range
Definition: RangeMap.h:51
DTSuperLayerId
DTChamberId id() const
Return the DTChamberId of this chamber.
Definition: DTChamber.cc:33
std::vector< DTSLRecSegment2D > theSegments2DTheta
tuple cout
Definition: gather_cfg.py:145
void DTCombinatorialPatternReco4D::setES ( const edm::EventSetup setup)
virtual

Implements DTRecSegment4DBaseAlgo.

Definition at line 64 of file DTCombinatorialPatternReco4D.cc.

References edm::EventSetup::get(), DTCombinatorialPatternReco::setES(), DTSegmentUpdator::setES(), the2DAlgo, theDTGeometry, and theUpdator.

64  {
65  setup.get<MuonGeometryRecord>().get(theDTGeometry);
66  the2DAlgo->setES(setup);
67  theUpdator->setES(setup);
68 }
DTCombinatorialPatternReco * the2DAlgo
virtual void setES(const edm::EventSetup &setup)
void setES(const edm::EventSetup &setup)
set the setup
const T & get() const
Definition: EventSetup.h:56
edm::ESHandle< DTGeometry > theDTGeometry
virtual bool DTCombinatorialPatternReco4D::wants2DSegments ( )
inlinevirtual

Implements DTRecSegment4DBaseAlgo.

Definition at line 59 of file DTCombinatorialPatternReco4D.h.

References allDTRecHits.

Member Data Documentation

bool DTCombinatorialPatternReco4D::allDTRecHits
private
bool DTCombinatorialPatternReco4D::applyT0corr
private

Definition at line 86 of file DTCombinatorialPatternReco4D.h.

Referenced by DTCombinatorialPatternReco4D(), and reconstruct().

bool DTCombinatorialPatternReco4D::computeT0corr
private

Definition at line 87 of file DTCombinatorialPatternReco4D.h.

Referenced by DTCombinatorialPatternReco4D(), and reconstruct().

bool DTCombinatorialPatternReco4D::debug
private
DTCombinatorialPatternReco* DTCombinatorialPatternReco4D::the2DAlgo
private
std::string DTCombinatorialPatternReco4D::theAlgoName
private

Definition at line 67 of file DTCombinatorialPatternReco4D.h.

Referenced by algoName().

const DTChamber* DTCombinatorialPatternReco4D::theChamber
private
edm::ESHandle<DTGeometry> DTCombinatorialPatternReco4D::theDTGeometry
private
std::vector<DTRecHit1DPair> DTCombinatorialPatternReco4D::theHitsFromPhi1
private
std::vector<DTRecHit1DPair> DTCombinatorialPatternReco4D::theHitsFromPhi2
private
std::vector<DTRecHit1DPair> DTCombinatorialPatternReco4D::theHitsFromTheta
private

Definition at line 92 of file DTCombinatorialPatternReco4D.h.

Referenced by reconstruct(), and setDTRecHit1DContainer().

std::vector<DTSLRecSegment2D> DTCombinatorialPatternReco4D::theSegments2DTheta
private

Definition at line 90 of file DTCombinatorialPatternReco4D.h.

Referenced by reconstruct(), and setDTRecSegment2DContainer().

DTSegmentUpdator* DTCombinatorialPatternReco4D::theUpdator
private