CGEM BOSS 6.6.5.f
BESIII Offline Software System
Loading...
Searching...
No Matches
MdcTrack Class Reference

#include <MdcTrack.h>

Public Member Functions

 MdcTrack (TrkRecoTrk *aTrack)
 
 MdcTrack (int nsupers, const TrkExchangePar &par, double chisq, TrkContext &, double trackT0)
 
 ~MdcTrack ()
 
bool operator== (const MdcTrack &tk) const
 
TrkRecoTrktrack ()
 
const TrkRecoTrktrack () const
 
void setTrack (TrkRecoTrk *trk)
 
int hasCurled () const
 
const MdcLayerfirstLayer () const
 
const MdcLayerlastLayer () const
 
void setHasCurled (bool c=true)
 
void setFirstLayer (const MdcLayer *l)
 
void setLastLayer (const MdcLayer *l)
 
int projectToR (double radius, BesAngle &phiIntersect, int lCurl=0) const
 
int projectToR (double radius, BesAngle &phiIntersect, double &arcLength, int lCurl=0) const
 
void storeTrack (int trackId, RecMdcTrackCol *trackList, RecMdcHitCol *hitList, int tkStat)
 
 MdcTrack (TrkRecoTrk *aTrack)
 
 MdcTrack (int nsupers, const TrkExchangePar &par, double chisq, TrkContext &, double trackT0)
 
 ~MdcTrack ()
 
bool operator== (const MdcTrack &tk) const
 
TrkRecoTrktrack ()
 
const TrkRecoTrktrack () const
 
void setTrack (TrkRecoTrk *trk)
 
int hasCurled () const
 
const MdcLayerfirstLayer () const
 
const MdcLayerlastLayer () const
 
void setHasCurled (bool c=true)
 
void setFirstLayer (const MdcLayer *l)
 
void setLastLayer (const MdcLayer *l)
 
int projectToR (double radius, BesAngle &phiIntersect, int lCurl=0) const
 
int projectToR (double radius, BesAngle &phiIntersect, double &arcLength, int lCurl=0) const
 
void storeTrack (int trackId, RecMdcTrackCol *trackList, RecMdcHitCol *hitList, int tkStat)
 

Detailed Description

Constructor & Destructor Documentation

◆ MdcTrack() [1/4]

MdcTrack::MdcTrack ( TrkRecoTrk aTrack)

Definition at line 45 of file MdcTrack.cxx.

45 {
46//************************************************************************/
47 _theTrack = aTrack;
48 _firstLayer = _lastLayer = 0;
49 _haveCurled = 0;
50}

◆ MdcTrack() [2/4]

MdcTrack::MdcTrack ( int  nsupers,
const TrkExchangePar par,
double  chisq,
TrkContext context,
double  trackT0 
)

Definition at line 53 of file MdcTrack.cxx.

54 {
55//************************************************************************/
56 TrkCircleMaker maker;
57 _theTrack = maker.makeTrack(par, chisq, context, trackT0);
58 _firstLayer = _lastLayer = 0;
59 _haveCurled = 0;
60}
TrkRecoTrk * makeTrack(const TrkExchangePar &helix, const double chi2, const TrkContext &, double trackT0) const

◆ ~MdcTrack() [1/2]

MdcTrack::~MdcTrack ( )

Definition at line 63 of file MdcTrack.cxx.

63 {
64//************************************************************************/
65 delete _theTrack;
66}

◆ MdcTrack() [3/4]

MdcTrack::MdcTrack ( TrkRecoTrk aTrack)

◆ MdcTrack() [4/4]

MdcTrack::MdcTrack ( int  nsupers,
const TrkExchangePar par,
double  chisq,
TrkContext ,
double  trackT0 
)

◆ ~MdcTrack() [2/2]

MdcTrack::~MdcTrack ( )

Member Function Documentation

◆ firstLayer() [1/2]

const MdcLayer * MdcTrack::firstLayer ( ) const
inline

Definition at line 31 of file InstallArea/include/MdcTrkRecon/MdcTrkRecon/MdcTrack.h.

31{return _firstLayer;}

Referenced by MdcTrackList::pickHits(), and MdcSegGrouper::transferHits().

◆ firstLayer() [2/2]

const MdcLayer * MdcTrack::firstLayer ( ) const
inline

Definition at line 31 of file Reconstruction/MdcPatRec/MdcTrkRecon/MdcTrkRecon-00-03-49/MdcTrkRecon/MdcTrack.h.

31{return _firstLayer;}

◆ hasCurled() [1/2]

int MdcTrack::hasCurled ( ) const
inline

Definition at line 30 of file InstallArea/include/MdcTrkRecon/MdcTrkRecon/MdcTrack.h.

30{return _haveCurled;}

Referenced by MdcTrackList::pickHits(), and MdcSegGrouper::transferHits().

◆ hasCurled() [2/2]

int MdcTrack::hasCurled ( ) const
inline

Definition at line 30 of file Reconstruction/MdcPatRec/MdcTrkRecon/MdcTrkRecon-00-03-49/MdcTrkRecon/MdcTrack.h.

30{return _haveCurled;}

◆ lastLayer() [1/2]

const MdcLayer * MdcTrack::lastLayer ( ) const
inline

Definition at line 32 of file InstallArea/include/MdcTrkRecon/MdcTrkRecon/MdcTrack.h.

32{return _lastLayer;}

Referenced by MdcTrackList::pickHits(), and MdcSegGrouper::transferHits().

◆ lastLayer() [2/2]

const MdcLayer * MdcTrack::lastLayer ( ) const
inline

◆ operator==() [1/2]

bool MdcTrack::operator== ( const MdcTrack tk) const

Definition at line 140 of file MdcTrack.cxx.

140 {
141//----------------------------------------------------------------
142
143 return (track() == tk.track());
144}

◆ operator==() [2/2]

bool MdcTrack::operator== ( const MdcTrack tk) const

◆ projectToR() [1/4]

int MdcTrack::projectToR ( double  radius,
BesAngle phiIntersect,
double &  arcLength,
int  lCurl = 0 
) const

Definition at line 100 of file MdcTrack.cxx.

101 {
102//************************************************************************/
103
104 //return -1 if no intersection
105 // Only valid for projecting track outwards from point of closest approach
106 // Returns arclength from POCA
107
108 const TrkFit* tkFit = track().fitResult();
109 if (tkFit == 0) return -1;
110 TrkExchangePar par = tkFit->helix(0.0);
111 double d0 = par.d0();
112 double omega = par.omega();
113 double phi0 = par.phi0();
114 double r2d2 = radius * radius - d0 * d0;
115 if (r2d2 < 0) return -1;
116 double rinv = 1./radius;
117 double k2dinv = 1./(1 + omega * d0);
118 if (k2dinv < 0.0) return -1;
119 double arg;
120
121 if (!lCurl) {
122 arg = d0 * rinv + 0.5*omega * rinv * r2d2 * k2dinv;
123 if (fabs(arg) > 1.0) return -1;
124 phiIntersect.setRad( phi0 + asin(arg) );
125 }
126 else {
127 arg = -d0 * rinv - 0.5*omega * rinv * r2d2 * k2dinv;
128 if (fabs(arg) > 1.0) return -1;
129 phiIntersect.setRad( phi0 + Constants::pi + asin(arg));
130 }
131
132 arg = 0.5*omega * sqrt(r2d2 * k2dinv);
133 arcLength = 2. * asin(arg) / omega;
134
135 return 0;
136}
double arg(const EvtComplex &c)
Definition: EvtComplex.hh:227
virtual TrkExchangePar helix(double fltL) const =0
const TrkFit * fitResult() const
Definition: TrkRecoTrk.cxx:387

◆ projectToR() [2/4]

int MdcTrack::projectToR ( double  radius,
BesAngle phiIntersect,
double &  arcLength,
int  lCurl = 0 
) const

◆ projectToR() [3/4]

int MdcTrack::projectToR ( double  radius,
BesAngle phiIntersect,
int  lCurl = 0 
) const

Definition at line 68 of file MdcTrack.cxx.

69 {
70//************************************************************************/
71 // note that these are currently circle-only routines
72
73 //return -1 if no intersection
74
75 const TrkFit* tkFit = track().fitResult();
76 if (tkFit == 0) return -1;
77 TrkExchangePar par = tkFit->helix(0.0);
78 double d0 = par.d0();
79 double omega = par.omega();
80 double phi0 = par.phi0();
81 double r2d2 = radius * radius - d0 * d0;
82 if (r2d2 < 0) return -1;
83 double rinv = 1./radius;
84 double k2dinv = 1./(1 + omega * d0);
85 if (!lCurl) {
86 double arg = d0 * rinv + 0.5*omega * rinv * r2d2 * k2dinv;
87 if (fabs(arg) > 1.0) return -1;
88 phiIntersect.setRad( phi0 + asin(arg) );
89 }
90 else {
91 double arg = -d0 * rinv - 0.5*omega * rinv * r2d2 * k2dinv;
92 if (fabs(arg) > 1.0) return -1;
93 phiIntersect.setRad( phi0 + Constants::pi + asin(arg) );
94 }
95
96 return 0;
97}

Referenced by MdcTrackList::pickHits().

◆ projectToR() [4/4]

int MdcTrack::projectToR ( double  radius,
BesAngle phiIntersect,
int  lCurl = 0 
) const

◆ setFirstLayer() [1/2]

void MdcTrack::setFirstLayer ( const MdcLayer l)
inline

Definition at line 35 of file InstallArea/include/MdcTrkRecon/MdcTrkRecon/MdcTrack.h.

35{_firstLayer = l;}

Referenced by MdcTrackList::pickHits(), and MdcSegGrouper::transferHits().

◆ setFirstLayer() [2/2]

void MdcTrack::setFirstLayer ( const MdcLayer l)
inline

◆ setHasCurled() [1/2]

void MdcTrack::setHasCurled ( bool  c = true)
inline

Definition at line 34 of file InstallArea/include/MdcTrkRecon/MdcTrkRecon/MdcTrack.h.

34{_haveCurled = c;}

Referenced by MdcTrackList::pickHits().

◆ setHasCurled() [2/2]

void MdcTrack::setHasCurled ( bool  c = true)
inline

◆ setLastLayer() [1/2]

void MdcTrack::setLastLayer ( const MdcLayer l)
inline

Definition at line 36 of file InstallArea/include/MdcTrkRecon/MdcTrkRecon/MdcTrack.h.

36{_lastLayer = l;}

Referenced by MdcTrackList::pickHits(), and MdcSegGrouper::transferHits().

◆ setLastLayer() [2/2]

void MdcTrack::setLastLayer ( const MdcLayer l)
inline

◆ setTrack() [1/2]

void MdcTrack::setTrack ( TrkRecoTrk trk)
inline

Definition at line 29 of file InstallArea/include/MdcTrkRecon/MdcTrkRecon/MdcTrack.h.

29{_theTrack = trk;}

Referenced by MdcTrackListBase::arbitrateHits().

◆ setTrack() [2/2]

void MdcTrack::setTrack ( TrkRecoTrk trk)
inline

◆ storeTrack() [1/2]

void MdcTrack::storeTrack ( int  trackId,
RecMdcTrackCol trackList,
RecMdcHitCol hitList,
int  tkStat 
)

Definition at line 152 of file MdcTrack.cxx.

152 {
153 //check the fit succeeded
154 // if (status().failure()) { return; }
155
156 //get the results of the fit to this track
157 const TrkFit* fitresult = track().fitResult();
158 //check the fit worked
159 if (fitresult == 0) return;
160
161 //new a Rec. Track MdcTrack
162 RecMdcTrack* recMdcTrack = new RecMdcTrack();
163 const TrkHitList* aList = track().hits();
164 //some track info
165 const BField& theField = track().bField();
166 double Bz = theField.bFieldZ();
167 //Fit info
168 int hitId = 0;
169 int nHits=0;
170 int nSt=0;
171 //int nAct=0; int nSeg=0;
172 //int maxlay = 0; int minlay = 43; int seg[11];/* 11 slayer */ int segme;
173 //****************************
174 //* active flag open this
175 //****************************
176 //* if (allHit>0){
177 //* nHits = aList->nHit();//add inActive hit also
178 //* }else{
179 //* nHits = fitresult->nMdc();// = nActive()
180 //* }
181 //****************************
182 //for 5.1.0 use all hits
183 nHits = aList->nHit();
184 //****************************
185 // use active only
186 // nHits = fitresult->nMdc();// = nActive()
187 //****************************
188
189 int q = fitresult->charge();
190 double chisq = fitresult->chisq();
191 int nDof = fitresult->nDof();
192 //track parameters at closest approach to beamline
193 double fltLenPoca = 0.0;
194 TrkExchangePar helix = fitresult->helix(fltLenPoca);
195 //std::cout<< __FILE__ << " phi0 " << helix.phi0() << " omega " <<helix.omega()<<std::endl;
196 double phi0 = helix.phi0();
197 double tanDip = helix.tanDip();
198 //double z0 = helix.z0();
199 double d0 = helix.d0();
200 //momenta and position
201 //CLHEP::Hep3Vector mom = fitresult->momentum(fltLenPoca);
202 HepPoint3D poca = fitresult->position(fltLenPoca);
203
204 double helixPar[5];
205 //dro =-d0
206 helixPar[0] = -d0;
207 //phi0 = phi0 - pi/2 [0,2pi)
208 double tphi0 = phi0 - Constants::pi/2.;
209 if (tphi0 < 0. ) tphi0 += Constants::pi * 2.;
210 helixPar[1] = tphi0;
211 //kappa = q/pxy
212 double pxy = fitresult->pt();
213 if (pxy == 0.) helixPar[2] = 9999.;
214 else helixPar[2] = q/fabs(pxy);
215 if(pxy>9999.) helixPar[2] = 0.00001;
216 //dz = z0
217 helixPar[3] = helix.z0();
218 //tanl
219 helixPar[4] = tanDip;
220 //error
221 //V(Y)=S * V(X) * ST , mS = S , mVy = V(Y) , helix.covariance() = V(X)
222 HepSymMatrix mS(helix.params().num_row(),0);
223 mS[0][0]=-1.;//dr0=-d0
224 mS[1][1]=1.;
225 mS[2][2]=-333.567/Bz;//pxy -> cpa
226 mS[3][3]=1.;
227 mS[4][4]=1.;
228 HepSymMatrix mVy = helix.covariance().similarity(mS);
229 double errorMat[15];
230 int k = 0;
231 for (int ie = 0 ; ie < 5 ; ie ++){
232 for (int je = ie ; je < 5 ; je ++) {
233 errorMat[k] = mVy[ie][je];
234 k++;
235 }
236 }
237 double p,px,py,pz;
238 px = pxy * (-sin(helixPar[1]));
239 py = pxy * cos(helixPar[1]);
240 pz = pxy * helixPar[4];
241 p = sqrt(pxy*pxy + pz*pz);
242 //theta, phi
243 double theta = acos(pz/p);
244 double phi = atan2(py,px);
245 recMdcTrack->setTrackId(trackId);
246 recMdcTrack->setHelix(helixPar);
247 recMdcTrack->setCharge(q);
248 recMdcTrack->setPxy(pxy);
249 recMdcTrack->setPx(px);
250 recMdcTrack->setPy(py);
251 recMdcTrack->setPz(pz);
252 recMdcTrack->setP(p);
253 recMdcTrack->setTheta(theta);
254 recMdcTrack->setPhi(phi);
255 recMdcTrack->setPoca(poca);
256 recMdcTrack->setX(poca.x());//poca
257 recMdcTrack->setY(poca.y());
258 recMdcTrack->setZ(poca.z());
259 recMdcTrack->setR(sqrt(poca.x()*poca.x() + poca.y()*poca.y()));
260 HepPoint3D pivot(0.,0.,0.);
261 recMdcTrack->setPivot(pivot);
262 recMdcTrack->setVX0(0.);//pivot
263 recMdcTrack->setVY0(0.);
264 recMdcTrack->setVZ0(0.);
265 recMdcTrack->setError(errorMat);
266 recMdcTrack->setError(mVy);
267 recMdcTrack->setChi2(chisq);
268 recMdcTrack->setStat(tkStat);
269 recMdcTrack->setNhits(nHits);
270 //-----------hit list-------------
271 HitRefVec hitRefVec;
272 ClusterRefVec clusterRefVec;
273 vector<int> vecHits;
274 map<int,int> clusterFitStat;
275 //for fiterm
276 int maxLayerId = -1;
277 int minLayerId = 43;
278 double fiTerm = 999.;
279 const MdcRecoHitOnTrack* fiTermHot = NULL;
280 TrkHitList::hot_iterator hot = aList->begin();
281 for (;hot!=aList->end();hot++){
282 //cout<<__FILE__ <<" "<<__LINE__ <<" "<< typeid(*hot).name()<<endl;
283 if(typeid(*hot)==typeid(MdcRecoHitOnTrack) || typeid(*hot)==typeid(MdcHitOnTrack) /*|| typeid(*hot)==typeid(TrkHitOnTrk)*/ ){
284 const MdcRecoHitOnTrack* recoHot;
285 recoHot = dynamic_cast<const MdcRecoHitOnTrack*> (&(*hot));
286 //if (!recoHot->mdcHit()) return;
287 RecMdcHit* recMdcHit = new RecMdcHit;
288 //id
289 recMdcHit->setId(hitId);
290 //---------BESIII----------
291 //phiWire - phiHit <0 flagLR=0 left driftleft<0 ;
292 //phiWire - phiHit >0 flagLR=1 right driftright>0;
293 //flag = 2 ambig;
294 //-----Babar wireAmbig----
295 //-1 -> right, 0 -> don't know, +1 -> left
296 //+1 phiWire-phiHit<0 Left,
297 //-1 phiWire-phiHit>0 Right,
298 //0 don't know
299 //ambig() w.r.t track direction
300 //wireAmbig() w.r.t. wire location
301 double hotWireAmbig = recoHot->wireAmbig();
302 double driftDist = fabs(recoHot->drift());
303 double sigma = recoHot->hitRms();
304 double doca = fabs(recoHot->dcaToWire());
305 int flagLR=2;
306 if ( hotWireAmbig == 1){
307 flagLR = 0; //left driftDist <0
308 doca *= -1.;//2012-07-19
309 }else if( hotWireAmbig == -1){
310 flagLR = 1; //right driftDist >0
311 }else if( hotWireAmbig == 0){
312 flagLR = 2; //don't know
313 }
314 recMdcHit->setFlagLR(flagLR);
315 recMdcHit->setDriftDistLeft((-1)*driftDist);
316 recMdcHit->setErrDriftDistLeft(sigma);
317 recMdcHit->setDriftDistRight(driftDist);
318 recMdcHit->setErrDriftDistRight(sigma);
319 //Mdc Id
320 Identifier mdcId = recoHot->mdcHit()->digi()->identify();
321 recMdcHit->setMdcId(mdcId);
322 //corrected ADC
323
324 //contribution to chisquare
325 //fill chisq
326 double res=999.,rese=999.;
327 if (recoHot->resid(res,rese,false)){
328 }else{}
329 double deltaChi=0;
330 recoHot->getFitStuff(deltaChi);//yzhang open 2010-09-20
331 recMdcHit->setChisqAdd( deltaChi * deltaChi );
332 //set tracks containing this hit
333 recMdcHit->setTrkId(trackId);
334 //doca
335 recMdcHit->setDoca(doca);//doca sign left<0
336 //entrance angle
337
338 recMdcHit->setEntra(recoHot->entranceAngle());
339 //z of hit
340 HepPoint3D pos; Hep3Vector dir;
341 double fltLen = recoHot->fltLen();
342 recMdcHit->setFltLen(fltLen);
343 recoHot->getParentRep()->traj().getInfo(fltLen,pos,dir);
344 recMdcHit->setZhit(pos.z());
345 double tof = recoHot->getParentRep()->arrivalTime(fltLen);
346 recMdcHit->setTdc(recoHot->mdcHit()->tdcIndex());
347 recMdcHit->setAdc(recoHot->mdcHit()->adcIndex());
348 //drift time
349 recMdcHit->setDriftT(recoHot->mdcHit()->driftTime(tof,pos.z()));
350 //for fiterm
351 int layerId = recoHot->mdcHit()->layernumber();
352 int wireId = recoHot->mdcHit()->wirenumber();
353 //std::cout<<" MdcTrack::store() ("<<layerId<<","<<wireId<<") fltLen "<<fltLen<<" wireAmbig "<<hotWireAmbig<<" y "<<pos.y()<<std::endl;
354 // <<recoHot->entranceAngle()<<std::endl;
355 if (layerId >= maxLayerId){
356 maxLayerId = layerId;
357 fiTermHot = recoHot;
358 }
359 if (layerId < minLayerId){
360 minLayerId = layerId;
361 }
362 // status flag
363 if (recoHot->isActive()) {
364 recMdcHit->setStat(1);
365 }else{
366 recMdcHit->setStat(0);
367 }
368 // for 5.1.0 use all hits
369 if (recoHot->layer()->view()) {
370 ++nSt;
371 }
372 hitList->push_back(recMdcHit);
373 SmartRef<RecMdcHit> refHit(recMdcHit);
374 hitRefVec.push_back(refHit);
375 vecHits.push_back(mdcId.get_value());
376 ++hitId;
377 }else if(typeid(*hot)==typeid(CgemHitOnTrack)){
378 const CgemHitOnTrack* recoHot = dynamic_cast<const CgemHitOnTrack*> (&(*hot));
379 const RecCgemCluster* recCgemCluster = recoHot->baseHit();
380 int clusterid = recCgemCluster->getclusterid();
381 int stat = recoHot->isActive();
382 clusterFitStat[clusterid] = stat;
383 //cout<<clusterid<<" "<<stat<<endl;
384 //cout<<"clusterid:"<< recCgemCluster->getclusterid()<<" layer:"<<recCgemCluster->getlayerid()<<endl;
385 clusterRefVec.push_back(recCgemCluster);
386 }
387 }
388 std::sort(clusterRefVec.begin(),clusterRefVec.end(),sortCluster);
389 //fi terminal angle
390 if (fiTermHot!=NULL){
391 fiTerm=(1./sqrt(1.+tanDip*tanDip))*fiTermHot->fltLen()*helix.omega();
392 }
393 recMdcTrack->setFiTerm(fiTerm);
394 // number of stereo hits contained
395 recMdcTrack->setNdof(nDof);
396 recMdcTrack->setNster(nSt);
397 //recMdcTrack->setFirstLayer(maxLayerId);
398 //recMdcTrack->setLastLayer(minLayerId);
399 recMdcTrack->setFirstLayer(minLayerId);
400 recMdcTrack->setLastLayer(maxLayerId);
401 recMdcTrack->setVecHits(hitRefVec);
402 //recMdcTrack->setClusterFitStat(clusterFitStat);
403 //recMdcTrack->setVecClusters(clusterRefVec);
404 recMdcTrack->setVecClusters(clusterRefVec,clusterFitStat);
405 recMdcTrack->setNcluster(clusterRefVec.size());
406 trackList->push_back(recMdcTrack);
407
408 //cout<<__FILE__ <<" "<<__LINE__ << endl;
409 //cout<<"nDof "<<nDof<<endl;
410 //cout<<"nSter "<<nSt<<endl;
411 //cout<<"maxLayerId "<<maxLayerId<<endl;
412 //cout<<"minLayerId "<<minLayerId<<endl;
413 //cout<<"nHits "<<nHits<<endl;
414 //cout<<"nHots "<<track().hots()->nHit()<<endl;
415 //cout<<"nActs "<<track().hots()->nActive()<<endl;
416 //cout<<"nCluster "<<clusterRefVec.size()<<endl;
417 //cout<<"nActive "<<fitresult->nActive()<<endl;
418 //cout<<endl;
419
420 //TrkHotList* hotList = track().hots();
421 //int nAct = 0;
422 //cout<<hotList->end() - hotList->begin()<<endl;
423 //for(TrkHotList::nc_hot_iterator i = hotList->begin();i!=hotList->end();++i){
424 //cout<<i->layerNumber()<<" "<<i->isActive()<<" "<<i->whatView()<<endl;
425 //}
426 //hot = aList->begin();
427 //for (;hot!=aList->end();hot++){
428 //cout<<hot->layerNumber()<<" "<<hot->isActive()<<" "<<hot->whatView()<<endl;
429 //}
430
431 //cout<<__FILE__ <<" "<<__LINE__ << endl;
432 //for(int i=0;i<clusterRefVec.size();i++)
433 //{
434 //cout<<clusterRefVec[i]->getlayerid()<<endl;
435 //}
436 //hot = aList->begin();
437 //for (;hot!=aList->end();hot++){
438 //if(typeid(*hot)==typeid(MdcRecoHitOnTrack) || typeid(*hot)==typeid(MdcHitOnTrack) /*|| typeid(*hot)==typeid(TrkHitOnTrk)*/ ){
439 //const MdcRecoHitOnTrack* recoHot;
440 //recoHot = dynamic_cast<const MdcRecoHitOnTrack*> (&(*hot));
441 //int layerId = recoHot->mdcHit()->layernumber();
442 //int wireId = recoHot->mdcHit()->wirenumber();
443 //cout<<"hit ("<<layerId<<","<<wireId<<")"<<endl;
444 //}else if(typeid(*hot)==typeid(CgemHitOnTrack)){
445 //const CgemHitOnTrack* recoHot = dynamic_cast<const CgemHitOnTrack*> (&(*hot));
446 //const RecCgemCluster* recCgemCluster = recoHot->baseHit();
447 //cout<<"hit ("<<recCgemCluster->getlayerid()<<","<<recCgemCluster->getclusterid()<<")"<<endl;
448 //clusterRefVec.push_back(recCgemCluster);
449 //}
450 //}
451}//end of storeTrack
bool sortCluster(const RecCgemCluster *clusterA, const RecCgemCluster *clusterB)
double sin(const BesAngle a)
double cos(const BesAngle a)
SmartRefVector< RecCgemCluster > ClusterRefVec
SmartRefVector< RecMdcHit > HitRefVec
****INTEGER imax DOUBLE PRECISION m_pi *DOUBLE PRECISION m_amfin DOUBLE PRECISION m_Chfin DOUBLE PRECISION m_Xenph DOUBLE PRECISION m_sinw2 DOUBLE PRECISION m_GFermi DOUBLE PRECISION m_MfinMin DOUBLE PRECISION m_ta2 INTEGER m_out INTEGER m_KeyFSR INTEGER m_KeyQCD *COMMON c_Semalib $ !copy of input $ !CMS energy $ !beam mass $ !final mass $ !beam charge $ !final charge $ !smallest final mass $ !Z mass $ !Z width $ !EW mixing angle $ !Gmu Fermi $ alphaQED at q
Definition: KKsem.h:33
void setError(double err[15])
void setHelix(double helix[5])
void setPoca(double poca[3])
int wireAmbig() const
double dcaToWire() const
double entranceAngle() const
const MdcLayer * layer() const
const MdcDigi * digi() const
double driftTime(double tof, double z) const
Definition: MdcHit.cxx:142
const MdcHit * mdcHit() const
virtual Identifier identify() const
Definition: RawData.cxx:15
void setVecClusters(ClusterRefVec vecclusters)
Definition: RecMdcTrack.cxx:86
void setVecHits(HitRefVec vechits)
Definition: RecMdcTrack.cxx:80
virtual void getInfo(double fltLen, HepPoint3D &pos, Hep3Vector &direction) const =0
virtual double pt(double fltL=0.) const =0
virtual double chisq() const =0
virtual int charge() const =0
virtual int nDof() const =0
virtual const TrkDifTraj & traj() const =0
virtual HepPoint3D position(double fltL) const =0
double resid(bool exclude=false) const
TrkErrCode getFitStuff(HepVector &derivs, double &deltaChi) const
virtual double arrivalTime(double fltL) const
Definition: TrkRep.cxx:192

Referenced by MdcTrackListBase::store(), MdcMergeDups::store(), and MdcxCosmicSewer::store().

◆ storeTrack() [2/2]

void MdcTrack::storeTrack ( int  trackId,
RecMdcTrackCol trackList,
RecMdcHitCol hitList,
int  tkStat 
)

◆ track() [1/4]

◆ track() [2/4]

TrkRecoTrk & MdcTrack::track ( )
inline

◆ track() [3/4]

const TrkRecoTrk & MdcTrack::track ( ) const
inline

Definition at line 28 of file InstallArea/include/MdcTrkRecon/MdcTrkRecon/MdcTrack.h.

28{return *_theTrack;}

◆ track() [4/4]

const TrkRecoTrk & MdcTrack::track ( ) const
inline

The documentation for this class was generated from the following files: