86 vector<DTRecHit1DPair> hitsFromPhi1(rangeHitsFromPhi1.first,rangeHitsFromPhi1.second);
87 vector<DTRecHit1DPair> hitsFromPhi2(rangeHitsFromPhi2.first,rangeHitsFromPhi2.second);
89 cout<<
"Number of DTRecHit1DPair in the SL 1 (Phi 1): " << hitsFromPhi1.size()<<endl
90 <<
"Number of DTRecHit1DPair in the SL 3 (Phi 2): " << hitsFromPhi2.size()<<endl;
99 vector<DTRecHit1DPair> hitsFromTheta(rangeHitsFromTheta.first,rangeHitsFromTheta.second);
101 cout<<
"Number of DTRecHit1DPair in the SL 2 (Theta): " << hitsFromTheta.size()<<endl;
117 vector<DTSLRecSegment2D> segments2DTheta(rangeTheta.first,rangeTheta.second);
120 cout <<
"Number of 2D-segments in the second SL (Theta): " << segments2DTheta.size() << endl;
134 cout <<
"Reconstructing Phi segments"<<endl;
137 vector<DTHitPairForFit*> pairPhiOwned;
140 if (
debug)
cout <<
"There are " << resultPhi.size() <<
" Phi cand" << endl;
148 if(
debug)
cout <<
"Reconstructing Theta segments"<<endl;
150 vector<DTSLRecSegment2D> segments2DTheta(thetaSegs.
begin(),thetaSegs.
end());
162 if (
debug)
cout <<
"No Theta candidates." << endl;
166 if(
debug)
cout<<
"Building the concrete DTRecSegment4D"<<endl;
167 if (resultPhi.size()) {
168 for (vector<DTSegmentCand*>::const_iterator
phi=resultPhi.begin();
169 phi!=resultPhi.end(); ++
phi) {
171 std::auto_ptr<DTChamberRecSegment2D> superPhi(**
phi);
174 if(
debug)
cout <<
"superPhi: " << *superPhi << endl;
203 if (
debug)
cout <<
"Created a 4D seg " << *newSeg << endl;
215 if (
debug)
cout <<
"Created a 4D segment using only the 2D Phi segment" << endl;
239 if (
debug)
cout <<
"Created a 4D segment using only the 2D Theta segment" << endl;
249 for (vector<DTSegmentCand*>::iterator
phi=resultPhi.begin();
250 phi!=resultPhi.end(); ++
phi)
delete *
phi;
251 for (vector<DTHitPairForFit*>::iterator phiPair = pairPhiOwned.begin();
252 phiPair!=pairPhiOwned.end(); ++phiPair)
delete *phiPair;
269 if(
debug)
cout<<
"DTMeantimerPatternReco4D::buildPhiSuperSegmentsCandidates: "
270 <<
"No Hits in the two Phi SL"<<endl;
271 return vector<DTSegmentCand*>();
280 copy(pairPhi2.begin(),pairPhi2.end(),back_inserter(pairPhi1));
282 pairPhiOwned.swap(pairPhi1);
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
virtual void setDTRecHit1DContainer(edm::Handle< DTRecHitCollection > all1DHits)
std::pair< const_iterator, const_iterator > range
iterator range
std::vector< DTRecHit1DPair > theHitsFromPhi2
bool existsAs(std::string const ¶meterName, bool trackiness=true) const
checks if a parameter exists as a given type
void update(DTRecSegment4D *seg, const bool calcT0=false) const
recompute hits position and refit the segment4D
virtual void setChamber(const DTChamberId &chId)
void calculateT0corr(DTRecSegment2D *seg) const
DTMeantimerPatternReco * the2DAlgo
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
static std::pair< DTLayerId, DTSuperLayerIdComparator > layersBySuperLayer(DTSuperLayerId slId)
Access by SL objects written into a RangeMap by layer.
DTMeantimerPatternReco4D(const edm::ParameterSet &pset)
Constructor.
LocalPoint toLocal(const GlobalPoint &gp) const
Conversion to the R.F. of the GeomDet.
std::vector< DTRecHit1DPair > theHitsFromPhi1
virtual void setES(const edm::EventSetup &setup)
void setES(const edm::EventSetup &setup)
set the setup
DTChamberId id() const
Return the DTChamberId of this chamber.
std::vector< DTHitPairForFit * > initHits(const DTSuperLayer *sl, const std::vector< DTRecHit1DPair > &hits)
std::vector< DTRecHit1DPair > theHitsFromTheta
std::vector< DTSegmentCand * > buildPhiSuperSegmentsCandidates(std::vector< DTHitPairForFit * > &pairPhiOwned)
std::vector< DTSLRecSegment2D > theSegments2DTheta
DTSegmentUpdator * theUpdator
std::vector< DTSegmentCand * > buildSegments(const DTSuperLayer *sl, const std::vector< DTHitPairForFit * > &hits)
virtual edm::OwnVector< DTSLRecSegment2D > reconstruct(const DTSuperLayer *sl, const std::vector< DTRecHit1DPair > &hits)
this function is called in the producer
edm::ESHandle< DTGeometry > theDTGeometry
const DTChamber * theChamber
virtual void setDTRecSegment2DContainer(edm::Handle< DTRecSegment2DCollection > all2DSegments)
virtual ~DTMeantimerPatternReco4D()
Destructor.
virtual void setES(const edm::EventSetup &setup)
void setup(std::vector< TH2F > &depth, std::string name, std::string units="")
virtual edm::OwnVector< DTRecSegment4D > reconstruct()
Operations.
const DTSuperLayer * superLayer(DTSuperLayerId id) const
Return the superlayer corresponding to the given id.