70 vector<DTSLRecSegment2D> segments2DPhi1(rangePhi1.first,rangePhi1.second);
71 vector<DTSLRecSegment2D> segments2DTheta(rangeTheta.first,rangeTheta.second);
72 vector<DTSLRecSegment2D> segments2DPhi2(rangePhi2.first,rangePhi2.second);
75 cout <<
"Number of 2D-segments in the first SL (Phi)" << segments2DPhi1.size() << endl
76 <<
"Number of 2D-segments in the second SL (Theta)" << segments2DTheta.size() << endl
77 <<
"Number of 2D-segments in the third SL (Phi)" << segments2DPhi2.size() << endl;
94 if (
debug)
cout <<
"There are " << resultPhi.size() <<
" Phi cand" << endl;
103 if (
debug)
cout <<
"No Theta SL" << endl;
107 if (!resultPhi.empty()) {
108 for (vector<DTChamberRecSegment2D>::const_iterator
phi=resultPhi.begin();
109 phi!=resultPhi.end(); ++
phi) {
129 if (
debug)
cout <<
"Created a 4D seg " << endl;
135 if (
debug)
cout <<
"Created a 4D segment using only the 2D Phi segment" << endl;
154 if (
debug)
cout <<
"Created a 4D segment using only the 2D Theta segment" << endl;
164 vector<DTChamberRecSegment2D>
result;
167 for(vector<DTSLRecSegment2D>::const_iterator segment2DPhi1 =
theSegments2DPhi1.begin();
169 for(vector<DTSLRecSegment2D>::const_iterator segment2DPhi2 =
theSegments2DPhi2.begin();
173 if(segment2DPhi1->chamberId() != segment2DPhi2->chamberId())
175 <<
"he phi segments have different chamber id"<<std::endl;
178 vector<DTRecHit1D> recHitsSeg2DPhi1 = segment2DPhi1->specificRecHits();
179 vector<DTRecHit1D> recHitsSeg2DPhi2 = segment2DPhi2->specificRecHits();
181 copy(recHitsSeg2DPhi2.begin(),recHitsSeg2DPhi2.end(),back_inserter(recHitsSeg2DPhi1));
183 const DTChamberId chId = segment2DPhi1->chamberId();
193 result.push_back(superPhi);
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
const DTSuperLayer * superLayer(const DTSuperLayerId &id) const
Return the superlayer corresponding to the given id.
std::vector< DTSLRecSegment2D > theSegments2DTheta
std::pair< const_iterator, const_iterator > range
iterator range
DTSegmentUpdator * theUpdator
const DTChamber * chamber(const DTChamberId &id) const
Return a DTChamber given its id.
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
void setChamber(const DTChamberId &chId) override
void setDTRecSegment2DContainer(edm::Handle< DTRecSegment2DCollection > all2DSegments) override
def setup(process, global_tag, zero_tesla=False)
LocalPoint toLocal(const GlobalPoint &gp) const
Conversion to the R.F. of the GeomDet.
DTRefitAndCombineReco4D(const edm::ParameterSet &pset)
Constructor.
void setES(const edm::EventSetup &setup)
set the setup
void setES(const edm::EventSetup &setup) override
const DTChamber * theChamber
DTChamberId id() const
Return the DTChamberId of this chamber.
double chi2() const override
the chi2 of the fit
std::vector< DTChamberRecSegment2D > refitSuperSegments()
std::vector< DTSLRecSegment2D > theSegments2DPhi1
edm::OwnVector< DTRecSegment4D > reconstruct() override
Operations.
std::vector< DTSLRecSegment2D > theSegments2DPhi2
void update(DTRecSegment4D *seg, const bool calcT0, bool allow3par) const
recompute hits position and refit the segment4D
bool fit(DTSegmentCand *seg, bool allow3par, const bool fitdebug) const
edm::ESHandle< DTGeometry > theDTGeometry