CMS 3D CMS Logo

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

std::string algoName () const override
 
 DTCombinatorialPatternReco4D (const edm::ParameterSet &pset)
 Constructor. More...
 
edm::OwnVector< DTRecSegment4Dreconstruct () override
 Operations. More...
 
void setChamber (const DTChamberId &chId) override
 
void setDTRecHit1DContainer (edm::Handle< DTRecHitCollection > all1DHits) override
 
void setDTRecSegment2DContainer (edm::Handle< DTRecSegment2DCollection > all2DSegments) override
 
void setES (const edm::EventSetup &setup) override
 
bool wants2DSegments () override
 
 ~DTCombinatorialPatternReco4D () override
 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 ( )
override

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

std::string DTCombinatorialPatternReco4D::algoName ( ) const
inlineoverridevirtual

Implements DTRecSegment4DBaseAlgo.

Definition at line 53 of file DTCombinatorialPatternReco4D.h.

References GeneralSetup::setup().

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

Definition at line 261 of file DTCombinatorialPatternReco4D.cc.

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

Referenced by reconstruct().

261  {
262 
263  DTSuperLayerId slId;
264 
265  if(!theHitsFromPhi1.empty())
266  slId = theHitsFromPhi1.front().wireId().superlayerId();
267  else
268  if(!theHitsFromPhi2.empty())
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)
def copy(args, dbName)
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
const DTSuperLayer * superLayer(const DTSuperLayerId &id) const
Return a DTSuperLayer given its id.
Definition: DTGeometry.cc:104
OwnVector< DTRecSegment4D > DTCombinatorialPatternReco4D::reconstruct ( )
overridevirtual

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.empty()){
158  hasZed = !theSegments2DTheta.empty();
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.empty()) {
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(),false);
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,false,false);
205  if (debug) cout << " seg updated " << *newSeg << endl;
206 
207 
209  if(applyT0corr) theUpdator->update(newSeg,true,false);
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,false);
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,false);
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
const DTSuperLayer * superLayer(const DTSuperLayerId &id) const
Return the superlayer corresponding to the given id.
Definition: DTChamber.cc:65
void calculateT0corr(DTRecSegment2D *seg) const
edm::OwnVector< DTSLRecSegment2D > reconstruct(const DTSuperLayer *sl, const std::vector< DTRecHit1DPair > &hits) override
this function is called in the producer
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
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
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)
void update(DTRecSegment4D *seg, const bool calcT0, bool allow3par) const
recompute hits position and refit the segment4D
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 vertices_cff::chi2, DTRecSegment2D::chi2(), funct::cos(), DTRecSegment2D::covMatrix(), DTRecHit1D::digiTime(), dir, hfClusterShapes_cfi::hits, 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 }
LocalError localPositionError() const override
local position error in SL frame
LocalPoint localPosition() const override
Local position in Chamber frame.
LocalVector localDirection() const override
Local direction in Chamber frame.
const DTChamberRecSegment2D * phiSegment() const
The superPhi segment: 0 if no phi projection available.
Geom::Theta< T > theta() const
Definition: PV3DBase.h:75
T z() const
Definition: PV3DBase.h:64
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
double chi2() const override
the chi2 of the fit
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
const DTSLRecSegment2D * zSegment() const
The Z segment: 0 if not zed projection available.
LocalPoint localPosition() const override
local position in SL frame
LocalVector localDirection() const override
the local direction in SL frame
CLHEP::HepSymMatrix AlgebraicSymMatrix
dbl *** dir
Definition: mlp_gen.cc:35
void DTCombinatorialPatternReco4D::setChamber ( const DTChamberId chId)
overridevirtual

Implements DTRecSegment4DBaseAlgo.

Definition at line 70 of file DTCombinatorialPatternReco4D.cc.

References DTGeometry::chamber(), theChamber, and theDTGeometry.

70  {
71  // Set the chamber
73 }
const DTChamber * chamber(const DTChamberId &id) const
Return a DTChamber given its id.
Definition: DTGeometry.cc:99
edm::ESHandle< DTGeometry > theDTGeometry
void DTCombinatorialPatternReco4D::setDTRecHit1DContainer ( edm::Handle< DTRecHitCollection all1DHits)
overridevirtual

Implements DTRecSegment4DBaseAlgo.

Definition at line 75 of file DTCombinatorialPatternReco4D.cc.

References allDTRecHits, gather_cfg::cout, debug, 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:50
static std::pair< DTLayerId, DTSuperLayerIdComparator > layersBySuperLayer(DTSuperLayerId slId)
Access by SL objects written into a RangeMap by layer.
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
void DTCombinatorialPatternReco4D::setDTRecSegment2DContainer ( edm::Handle< DTRecSegment2DCollection all2DSegments)
overridevirtual

Implements DTRecSegment4DBaseAlgo.

Definition at line 106 of file DTCombinatorialPatternReco4D.cc.

References allDTRecHits, gather_cfg::cout, debug, 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:50
DTChamberId id() const
Return the DTChamberId of this chamber.
Definition: DTChamber.cc:33
std::vector< DTSLRecSegment2D > theSegments2DTheta
void DTCombinatorialPatternReco4D::setES ( const edm::EventSetup setup)
overridevirtual

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
void setES(const edm::EventSetup &setup)
set the setup
edm::ESHandle< DTGeometry > theDTGeometry
T get() const
Definition: EventSetup.h:63
void setES(const edm::EventSetup &setup) override
bool DTCombinatorialPatternReco4D::wants2DSegments ( )
inlineoverridevirtual

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.

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