BOSS 7.0.9
BESIII Offline Software System
Loading...
Searching...
No Matches
TrackPool Class Reference

#include <TrackPool.h>

+ Inheritance diagram for TrackPool:

Public Member Functions

 TrackPool ()
 
 ~TrackPool ()
 
void AddTrack (const int number, const double mass, const RecMdcTrack *trk)
 
void AddTrack (const int number, const double mass, const RecMdcKalTrack *trk)
 
void AddTrack (const int number, const double mass, const RecEmcShower *trk)
 
void AddTrack (const int number, const WTrackParameter wtrk)
 
void AddMissTrack (const int number, const double mass)
 
void AddMissTrack (const int number, const double mass, const HepLorentzVector p4)
 
void AddMissTrack (const int number, const double mass, const RecEmcShower *trk)
 
void AddMissTrack (const int number, const RecEmcShower *trk)
 
void AddMissTrack (const int number, const HepLorentzVector p4)
 
void AddTrackVertex (const int number, const double mass, const RecEmcShower *trk)
 
std::vector< int > AddList (int n1)
 
std::vector< int > AddList (int n1, int n2)
 
std::vector< int > AddList (int n1, int n2, int n3)
 
std::vector< int > AddList (int n1, int n2, int n3, int n4)
 
std::vector< int > AddList (int n1, int n2, int n3, int n4, int n5)
 
std::vector< int > AddList (int n1, int n2, int n3, int n4, int n5, int n6)
 
std::vector< int > AddList (int n1, int n2, int n3, int n4, int n5, int n6, int n7)
 
std::vector< int > AddList (int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8)
 
std::vector< int > AddList (int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9)
 
std::vector< int > AddList (int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, int n10)
 
std::vector< int > AddList (int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, int n10, int n11)
 
std::vector< int > AddList (int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, int n10, int n11, int n12)
 
std::vector< WTrackParameterwTrackOrigin () const
 
std::vector< WTrackParameterwTrackInfit () const
 
std::vector< int > wTrackList () const
 
WTrackParameter wTrackOrigin (int n) const
 
WTrackParameter wTrackInfit (int n) const
 
int wTrackList (int n) const
 
int numberWTrack () const
 
std::vector< GammaShapeGammaShapeValue () const
 
std::vector< int > GammaShapeList () const
 
GammaShape GammaShapeValue (int n) const
 
int GammaShapeList (int n) const
 
int numberGammaShape () const
 
void setWTrackOrigin (const int n, const WTrackParameter wtrk)
 
void setWTrackInfit (const int n, const WTrackParameter wtrk)
 
void setWTrackOrigin (const WTrackParameter wtrk)
 
void setWTrackInfit (const WTrackParameter wtrk)
 
void setWTrackList (const int n)
 
void clearWTrackOrigin ()
 
void clearWTrackInfit ()
 
void clearWTrackList ()
 
void clearone ()
 
void cleartwo ()
 
int numberone () const
 
int numbertwo () const
 
vector< int > mappositionA () const
 
vector< int > mappositionB () const
 
vector< int > mapkinematic () const
 
void clearMapkinematic ()
 
void clearMappositionA ()
 
void clearMappositionB ()
 
void setMapkinematic (const int n)
 
void setMappositionA (const int n)
 
void setMappositionB (const int n)
 
void setGammaShape (const int n, const GammaShape gammashape)
 
void setGammaShape (const GammaShape gammashape)
 
void setGammaShapeList (const int n)
 
void clearGammaShape ()
 
void clearGammaShapeList ()
 
void setBeamPosition (const HepPoint3D BeamPosition)
 
void setVBeamPosition (const HepSymMatrix VBeamPosition)
 
HepPoint3D getBeamPosition () const
 
HepSymMatrix getVBeamPosition () const
 

Detailed Description

Definition at line 28 of file TrackPool.h.

Constructor & Destructor Documentation

◆ TrackPool()

TrackPool::TrackPool ( )

Definition at line 6 of file TrackPool.cxx.

6 {
15 setBeamPosition(HepPoint3D(0.0,0.0,0.0));
16 setVBeamPosition(HepSymMatrix(3,0));
17 m_numberone = 0;
18 m_numbertwo = 0;
19}
HepGeom::Point3D< double > HepPoint3D
Definition: Gam4pikp.cxx:37
void setVBeamPosition(const HepSymMatrix VBeamPosition)
Definition: TrackPool.h:144
void clearMapkinematic()
Definition: TrackPool.h:124
void clearGammaShapeList()
Definition: TrackPool.h:140
void clearWTrackOrigin()
Definition: TrackPool.h:111
void clearMappositionB()
Definition: TrackPool.h:126
void clearWTrackList()
Definition: TrackPool.h:113
void clearMappositionA()
Definition: TrackPool.h:125
void clearGammaShape()
Definition: TrackPool.h:139
void clearWTrackInfit()
Definition: TrackPool.h:112
void setBeamPosition(const HepPoint3D BeamPosition)
Definition: TrackPool.h:143

◆ ~TrackPool()

TrackPool::~TrackPool ( )
inline

Definition at line 34 of file TrackPool.h.

34{;}

Member Function Documentation

◆ AddList() [1/12]

std::vector< int > TrackPool::AddList ( int  n1)

◆ AddList() [2/12]

std::vector< int > TrackPool::AddList ( int  n1,
int  n2 
)

Definition at line 490 of file TrackPool.cxx.

490 {
491 std::vector<int> lis;
492 lis.clear();
493 lis.push_back(n1);
494 lis.push_back(n2);
495 return lis;
496}
int n2
Definition: SD0Tag.cxx:55

◆ AddList() [3/12]

std::vector< int > TrackPool::AddList ( int  n1,
int  n2,
int  n3 
)

Definition at line 498 of file TrackPool.cxx.

498 {
499 std::vector<int> lis;
500 lis.clear();
501 lis.push_back(n1);
502 lis.push_back(n2);
503 lis.push_back(n3);
504 return lis;
505}

◆ AddList() [4/12]

std::vector< int > TrackPool::AddList ( int  n1,
int  n2,
int  n3,
int  n4 
)

Definition at line 507 of file TrackPool.cxx.

507 {
508 std::vector<int> lis;
509 lis.clear();
510 lis.push_back(n1);
511 lis.push_back(n2);
512 lis.push_back(n3);
513 lis.push_back(n4);
514 return lis;
515}

◆ AddList() [5/12]

std::vector< int > TrackPool::AddList ( int  n1,
int  n2,
int  n3,
int  n4,
int  n5 
)

Definition at line 517 of file TrackPool.cxx.

517 {
518 std::vector<int> lis;
519 lis.clear();
520 lis.push_back(n1);
521 lis.push_back(n2);
522 lis.push_back(n3);
523 lis.push_back(n4);
524 lis.push_back(n5);
525 return lis;
526}

◆ AddList() [6/12]

std::vector< int > TrackPool::AddList ( int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6 
)

Definition at line 528 of file TrackPool.cxx.

528 {
529 std::vector<int> lis;
530 lis.clear();
531 lis.push_back(n1);
532 lis.push_back(n2);
533 lis.push_back(n3);
534 lis.push_back(n4);
535 lis.push_back(n5);
536 lis.push_back(n6);
537 return lis;
538}

◆ AddList() [7/12]

std::vector< int > TrackPool::AddList ( int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7 
)

Definition at line 540 of file TrackPool.cxx.

540 {
541 std::vector<int> lis;
542 lis.clear();
543 lis.push_back(n1);
544 lis.push_back(n2);
545 lis.push_back(n3);
546 lis.push_back(n4);
547 lis.push_back(n5);
548 lis.push_back(n6);
549 lis.push_back(n7);
550 return lis;
551}

◆ AddList() [8/12]

std::vector< int > TrackPool::AddList ( int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7,
int  n8 
)

Definition at line 553 of file TrackPool.cxx.

553 {
554 std::vector<int> lis;
555 lis.clear();
556 lis.push_back(n1);
557 lis.push_back(n2);
558 lis.push_back(n3);
559 lis.push_back(n4);
560 lis.push_back(n5);
561 lis.push_back(n6);
562 lis.push_back(n7);
563 lis.push_back(n8);
564 return lis;
565}

◆ AddList() [9/12]

std::vector< int > TrackPool::AddList ( int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7,
int  n8,
int  n9 
)

Definition at line 567 of file TrackPool.cxx.

568 {
569 std::vector<int> lis;
570 lis.clear();
571 lis.push_back(n1);
572 lis.push_back(n2);
573 lis.push_back(n3);
574 lis.push_back(n4);
575 lis.push_back(n5);
576 lis.push_back(n6);
577 lis.push_back(n7);
578 lis.push_back(n8);
579 lis.push_back(n9);
580 return lis;
581}

◆ AddList() [10/12]

std::vector< int > TrackPool::AddList ( int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7,
int  n8,
int  n9,
int  n10 
)

Definition at line 583 of file TrackPool.cxx.

584 {
585 std::vector<int> lis;
586 lis.clear();
587 lis.push_back(n1);
588 lis.push_back(n2);
589 lis.push_back(n3);
590 lis.push_back(n4);
591 lis.push_back(n5);
592 lis.push_back(n6);
593 lis.push_back(n7);
594 lis.push_back(n8);
595 lis.push_back(n9);
596 lis.push_back(n10);
597 return lis;
598}

◆ AddList() [11/12]

std::vector< int > TrackPool::AddList ( int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7,
int  n8,
int  n9,
int  n10,
int  n11 
)

Definition at line 600 of file TrackPool.cxx.

601 {
602 std::vector<int> lis;
603 lis.clear();
604 lis.push_back(n1);
605 lis.push_back(n2);
606 lis.push_back(n3);
607 lis.push_back(n4);
608 lis.push_back(n5);
609 lis.push_back(n6);
610 lis.push_back(n7);
611 lis.push_back(n8);
612 lis.push_back(n9);
613 lis.push_back(n10);
614 lis.push_back(n11);
615 return lis;
616}

◆ AddList() [12/12]

std::vector< int > TrackPool::AddList ( int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7,
int  n8,
int  n9,
int  n10,
int  n11,
int  n12 
)

Definition at line 618 of file TrackPool.cxx.

619 {
620 std::vector<int> lis;
621 lis.clear();
622 lis.push_back(n1);
623 lis.push_back(n2);
624 lis.push_back(n3);
625 lis.push_back(n4);
626 lis.push_back(n5);
627 lis.push_back(n6);
628 lis.push_back(n7);
629 lis.push_back(n8);
630 lis.push_back(n9);
631 lis.push_back(n10);
632 lis.push_back(n11);
633 lis.push_back(n12);
634 return lis;
635}

◆ AddMissTrack() [1/5]

void TrackPool::AddMissTrack ( const int  number,
const double  mass 
)

Definition at line 375 of file TrackPool.cxx.

375 {
376 //
377 //parameters: mass px py pz, but px,py,pz 's error matrix is set as 10e^6
378 //
379 WTrackParameter wtrk;
380 wtrk.setMass(mass);
381 HepVector w(7,0);
382 HepSymMatrix Ew(7,0);
383 w[0] = 0.2;
384 w[1] = 0.2;
385 w[2] = 0.2;
386 w[3] = sqrt(0.2*0.2*3 + mass*mass);
387 Ew[0][0] = 1E+6;
388 Ew[1][1] = 1E+6;
389 Ew[2][2] = 1E+6;
390 wtrk.setW(w);
391 wtrk.setEw(Ew);
392 setWTrackOrigin(wtrk);
393 setWTrackInfit(wtrk);
394 setWTrackList(number);
396 setMappositionA(m_numberone);
397 setMappositionB(m_numbertwo);
398 m_numberone = m_numberone + 4;
399
400}
double mass
void setMappositionB(const int n)
Definition: TrackPool.h:130
void setWTrackList(const int n)
Definition: TrackPool.h:109
void setMappositionA(const int n)
Definition: TrackPool.h:129
void setMapkinematic(const int n)
Definition: TrackPool.h:128
void setWTrackOrigin(const int n, const WTrackParameter wtrk)
Definition: TrackPool.h:105
void setWTrackInfit(const int n, const WTrackParameter wtrk)
Definition: TrackPool.h:106
void setEw(const HepSymMatrix &Ew)
void setMass(const double mass)
void setW(const HepVector &w)

◆ AddMissTrack() [2/5]

void TrackPool::AddMissTrack ( const int  number,
const double  mass,
const HepLorentzVector  p4 
)

Definition at line 341 of file TrackPool.cxx.

341 {
342 //
343 //parameters: mass px py pz
344 //
345
346 double dphi = 1E+6;
347 double dthe = 1E+6;
348 double dE = 1E+6;
349 WTrackParameter wtrk(p4, dphi, dthe, dE);
350 HepVector plmp(4, 0);
351 double phipre = atan(p4[1]/p4[0]);
352
353 if(p4[0]<0){
354 phipre = atan(p4[1]/p4[0]) + 3.1415926;
355 }
356 plmp[0] = phipre;
357 plmp[1] = wtrk.Lambda();
358 plmp[2] = mass;
359 plmp[3] = p4[3];
360 HepSymMatrix Vplm(3, 0);
361 wtrk.setPlmp(plmp);
362 wtrk.setVplm(Vplm);
363 wtrk.setType(1);
364 setWTrackOrigin(wtrk);
365 setWTrackInfit(wtrk);
366 setWTrackList(number);
368 setMappositionA(m_numberone);
369 setMappositionB(m_numbertwo);
370 m_numberone = m_numberone + 1;
371 m_numbertwo = m_numbertwo + 3;
372}

◆ AddMissTrack() [3/5]

void TrackPool::AddMissTrack ( const int  number,
const double  mass,
const RecEmcShower trk 
)

Definition at line 159 of file TrackPool.cxx.

160 {
161 //
162 //parameters: phi lambda mass ptrk
163 //
164 double ptrk = trk->energy();
165 double e = sqrt(ptrk*ptrk + mass * mass);
166 double the = trk->theta();
167 double phi = trk->phi();
168 HepLorentzVector p4( e* sin(the) * cos(phi),
169 e * sin(the) * sin(phi),
170 e * cos(the),
171 e);
172 double dphi = trk->dphi();
173 double dthe = trk->dtheta();
174 double de = 1E+6;
175 double x = trk->x();
176 double y = trk->y();
177 double z = trk->z();
178
179 HepPoint3D x3 (x, y ,z);
180 WTrackParameter wtrk(x3, p4 ,dphi ,dthe, de);
181 HepSymMatrix Vpe = HepSymMatrix(2,0);
182 //=== get Vclus===
183 HepSymMatrix Vclus = HepSymMatrix (3,0);
184 Vclus = (wtrk.Ew()).sub(5,7);
185 double xpr = x - m_BeamPosition[0];
186 double ypr = y - m_BeamPosition[1];
187 double zpr = z - m_BeamPosition[2];
188 double Rpr = sqrt(xpr*xpr + ypr*ypr);
189 // === get jacobi ===
190 HepMatrix J(2,3,0);
191 J[0][0] = -ypr/(Rpr*Rpr);
192 J[0][1] = xpr/(Rpr*Rpr);
193 J[1][0] = -xpr * zpr/(Rpr*Rpr*Rpr);
194 J[1][1] = -ypr * zpr/(Rpr*Rpr*Rpr);
195 J[1][2] = 1/Rpr;
196 Vpe = Vclus.similarity(J) + m_VBeamPosition.similarity(J);
197 Vpe[0][1]=0;
198
199 double phipre = atan(ypr/xpr);
200
201 if(xpr<0){
202 phipre = atan(ypr/xpr) + 3.1415926;
203 }
204 double lambdapre = zpr/Rpr;
205
206
207 HepVector plmp(4 , 0);
208 plmp[0] = phipre;
209 plmp[1] = lambdapre;
210 plmp[2] = mass;
211 plmp[3] = ptrk;
212 wtrk.setPlmp(plmp);
213
214 HepSymMatrix Vplm(3,0);
215 Vplm[0][0] = Vpe[0][0];
216 Vplm[1][1] = Vpe[1][1];
217 wtrk.setVplm(Vplm);
218
219
220
221 // === set p4 ===
222 double p0x = ptrk*cos(phipre)/sqrt(1 + lambdapre*lambdapre);
223 double p0y = ptrk*sin(phipre)/sqrt(1 + lambdapre*lambdapre);
224 double p0z = ptrk*lambdapre/sqrt(1 + lambdapre*lambdapre);
225 double p0e = e;
226
227 wtrk.setW(0,p0x);
228 wtrk.setW(1,p0y);
229 wtrk.setW(2,p0z);
230 wtrk.setW(3,p0e);
231
232 wtrk.setType(1);
233 setWTrackOrigin(wtrk);
234 setWTrackInfit(wtrk);
235 setWTrackList(number);
236 GammaShape gtrk(p4,dphi,dthe,de);
237 setGammaShape(gtrk);
238 setGammaShapeList(number);
240 setMappositionA(m_numberone);
241 setMappositionB(m_numbertwo);
242
243 m_numberone = m_numberone + 3;
244 m_numbertwo = m_numbertwo + 1;
245}
double sin(const BesAngle a)
Definition: BesAngle.h:210
double cos(const BesAngle a)
Definition: BesAngle.h:213
Double_t x[10]
double dphi() const
Definition: DstEmcShower.h:44
double theta() const
Definition: DstEmcShower.h:38
double phi() const
Definition: DstEmcShower.h:39
double x() const
Definition: DstEmcShower.h:35
double z() const
Definition: DstEmcShower.h:37
double energy() const
Definition: DstEmcShower.h:45
double dtheta() const
Definition: DstEmcShower.h:43
double y() const
Definition: DstEmcShower.h:36
void setGammaShape(const int n, const GammaShape gammashape)
Definition: TrackPool.h:135
void setGammaShapeList(const int n)
Definition: TrackPool.h:137
double y[1000]
float ptrk

◆ AddMissTrack() [4/5]

void TrackPool::AddMissTrack ( const int  number,
const HepLorentzVector  p4 
)

Definition at line 403 of file TrackPool.cxx.

403 {
404 double dphi = 1E+3;
405 double dthe = 1E+3;
406 double dE = 1E+3;
407 WTrackParameter wtrk(p4, dphi, dthe, dE);
408 HepSymMatrix Ew = HepSymMatrix(7,0);
409 for (int i = 0; i < 7; i++) {
410 for (int j = 0; j < 7; j++) {
411 if(i==j) Ew[i][j] = 1E+6;
412 }
413 }
414 wtrk.setType(1);
415 wtrk.setEw(Ew);
416 setWTrackOrigin(wtrk);
417 setWTrackInfit(wtrk);
418 setWTrackList(number);
420 setMappositionA(m_numberone);
421 setMappositionB(m_numbertwo);
422 m_numbertwo = m_numbertwo + 4;
423}

◆ AddMissTrack() [5/5]

void TrackPool::AddMissTrack ( const int  number,
const RecEmcShower trk 
)

Definition at line 250 of file TrackPool.cxx.

250 {
251 //
252 //parameters: phi lambda mass E
253 //
254
255 double mass = 0;
256 double ptrk = trk->energy();
257 double e = sqrt(ptrk*ptrk + mass * mass);
258 double the = trk->theta();
259 double phi = trk->phi();
260 HepLorentzVector p4( e* sin(the) * cos(phi),
261 e * sin(the) * sin(phi),
262 e * cos(the),
263 e);
264 double dphi = trk->dphi();
265 double dthe = trk->dtheta();
266 double de = 1E+6;
267 double x = trk->x();
268 double y = trk->y();
269 double z = trk->z();
270
271 HepPoint3D x3 (x, y ,z);
272 WTrackParameter wtrk(x3, p4 ,dphi ,dthe, de);
273 HepSymMatrix Vpe = HepSymMatrix(2,0);
274 //=== get Vclus===
275 HepSymMatrix Vclus = HepSymMatrix (3,0);
276 Vclus = (wtrk.Ew()).sub(5,7);
277 double xpr = x - m_BeamPosition[0];
278 double ypr = y - m_BeamPosition[1];
279 double zpr = z - m_BeamPosition[2];
280 double Rpr = sqrt(xpr*xpr + ypr*ypr);
281 // === get jacobi ===
282 HepMatrix J(2,3,0);
283 J[0][0] = -ypr/(Rpr*Rpr);
284 J[0][1] = xpr/(Rpr*Rpr);
285 J[1][0] = -xpr * zpr/(Rpr*Rpr*Rpr);
286 J[1][1] = -ypr * zpr/(Rpr*Rpr*Rpr);
287 J[1][2] = 1/Rpr;
288 Vpe = Vclus.similarity(J) + m_VBeamPosition.similarity(J);
289 Vpe[0][1]=0;
290 double phipre = atan(ypr/xpr);
291
292 if(xpr<0){
293 phipre = atan(ypr/xpr) + 3.1415926;
294 }
295 double lambdapre = zpr/Rpr;
296
297
298 HepVector plmp(4 , 0);
299 plmp[0] = phipre;
300 plmp[1] = lambdapre;
301 plmp[2] = mass;
302 plmp[3] = e;
303 wtrk.setPlmp(plmp);
304
305 HepSymMatrix Vplm(2,0);
306 Vplm[0][0] = Vpe[0][0];
307 Vplm[1][1] = Vpe[1][1];
308 wtrk.setVplm(Vplm);
309
310
311
312 // === set p4 ===
313 double p0x = ptrk*cos(phipre)/sqrt(1 + lambdapre*lambdapre);
314 double p0y = ptrk*sin(phipre)/sqrt(1 + lambdapre*lambdapre);
315 double p0z = ptrk*lambdapre/sqrt(1 + lambdapre*lambdapre);
316 double p0e = e;
317
318 wtrk.setW(0,p0x);
319 wtrk.setW(1,p0y);
320 wtrk.setW(2,p0z);
321 wtrk.setW(3,p0e);
322
323 wtrk.setType(1);
324 setWTrackOrigin(wtrk);
325 setWTrackInfit(wtrk);
326 setWTrackList(number);
327 GammaShape gtrk(p4,dphi,dthe,de);
328 setGammaShape(gtrk);
329 setGammaShapeList(number);
331 setMappositionA(m_numberone);
332 setMappositionB(m_numbertwo);
333
334 m_numberone = m_numberone + 2;
335 m_numbertwo = m_numbertwo + 2;
336}

◆ AddTrack() [1/4]

void TrackPool::AddTrack ( const int  number,
const double  mass,
const RecEmcShower trk 
)

Definition at line 44 of file TrackPool.cxx.

45 {
46 //
47 //parameters: phi lambda mass energy
48 //
49 double ptrk = trk->energy();
50 double e = sqrt(ptrk*ptrk + mass * mass);
51 double the = trk->theta();
52 double phi = trk->phi();
53 HepLorentzVector p4(ptrk * sin(the) * cos(phi),
54 ptrk * sin(the) * sin(phi),
55 ptrk * cos(the),
56 e);
57 double dphi = trk->dphi();
58 double dthe = trk->dtheta();
59 double de = trk->dE();
60 double x = trk->x();
61 double y = trk->y();
62 double z = trk->z();
63 HepPoint3D x3 (x, y ,z);
64 WTrackParameter wtrk(x3, p4 ,dphi ,dthe, de);
65 HepSymMatrix Vpl = HepSymMatrix(2,0);
66 //=== get Vclus===
67 HepSymMatrix Vclus = HepSymMatrix (3,0);
68 Vclus = (wtrk.Ew()).sub(5,7);
69 double xpr = x - m_BeamPosition[0];
70 double ypr = y - m_BeamPosition[1];
71 double zpr = z - m_BeamPosition[2];
72 double Rpr = sqrt(xpr*xpr + ypr*ypr);
73 // === get jacobi ===
74 HepMatrix J(2,3,0);
75 J[0][0] = -ypr/(Rpr*Rpr);
76 J[0][1] = xpr/(Rpr*Rpr);
77 J[1][0] = -xpr * zpr/(Rpr*Rpr*Rpr);
78 J[1][1] = -ypr * zpr/(Rpr*Rpr*Rpr);
79 J[1][2] = 1/Rpr;
80 Vpl = Vclus.similarity(J) + m_VBeamPosition.similarity(J);
81 Vpl[0][1]=0;
82 // === get phipre, lambda===
83
84 double phipre = atan(ypr/xpr);
85
86 if(xpr<0){
87 phipre = atan(ypr/xpr) + 3.1415926;
88 }
89 double lambdapre = zpr/Rpr;
90
91
92 // === set p4 ===
93 double p0x = ptrk*cos(phipre)/sqrt(1 + lambdapre*lambdapre);
94 double p0y = ptrk*sin(phipre)/sqrt(1 + lambdapre*lambdapre);
95 double p0z = ptrk*lambdapre/sqrt(1 + lambdapre*lambdapre);
96 double p0e = e;
97
98
99 double p0ver = sqrt(p0x*p0x + p0y*p0y);
100
101
102 HepMatrix B(4,3,0);
103 B[0][0] = -p0y;
104 B[0][1] = -p0z * p0x * p0ver/(p0e * p0e);
105 B[0][2] = p0x/p0e;
106 B[1][0] = p0x;
107 B[1][1] = -p0z * p0y * p0ver/(p0e * p0e);
108 B[1][2] = p0y/p0e;
109 B[2][1] = p0ver * p0ver * p0ver/(p0e * p0e);
110 B[2][2] = p0z/p0e;
111 B[3][2] = 1;
112
113 HepSymMatrix Vple(3,0);
114 Vple[0][0] = Vpl[0][0];
115 Vple[1][1] = Vpl[1][1];
116 Vple[2][2] = de * de;
117
118 HepSymMatrix Vpxyze(4,0);
119 Vpxyze = Vple.similarity(B);
120
121 wtrk.setW(0,p0x);
122 wtrk.setW(1,p0y);
123 wtrk.setW(2,p0z);
124 wtrk.setW(3,p0e);
125
126 wtrk.setEw(Vpxyze);
127
128 HepSymMatrix Vplme(4,0);
129 Vplme[0][0] = Vpl[0][0];
130 Vplme[1][1] = Vpl[1][1];
131 Vplme[3][3] = de * de;
132 wtrk.setVplm(Vplme);
133
134 HepVector plmp(4 , 0);
135 plmp[0] = phipre;
136 plmp[1] = lambdapre;
137 plmp[2] = mass;
138 plmp[3] = e;
139 wtrk.setPlmp(plmp);
140
141
142 setWTrackOrigin(wtrk);
143 setWTrackInfit(wtrk);
144 setWTrackList(number);
145 if(number != numberWTrack()-1) {
146 std::cout << "TrackPool: wrong track index" <<" "
147 <<number<<" , " <<numberWTrack()<< std::endl;
148 }
149 GammaShape gtrk(p4,dphi,dthe,de);
150 setGammaShape(gtrk);
151 setGammaShapeList(number);
153 setMappositionA(m_numberone);
154 setMappositionB(m_numbertwo);
155 m_numberone = m_numberone + 4;
156}
double dE() const
Definition: DstEmcShower.h:46
int numberWTrack() const
Definition: TrackPool.h:79

◆ AddTrack() [2/4]

void TrackPool::AddTrack ( const int  number,
const double  mass,
const RecMdcKalTrack trk 
)

◆ AddTrack() [3/4]

void TrackPool::AddTrack ( const int  number,
const double  mass,
const RecMdcTrack trk 
)

Definition at line 22 of file TrackPool.cxx.

23 {
24 HepVector helix(5,0);
25 double error[15];
26 for(int i = 0; i < 5; i++)
27 helix[i] = trk->helix(i);
28 for(int i = 0; i < 15; i++)
29 error[i] = trk->err(i);
30 WTrackParameter wtrk(mass, helix, error);
31 setWTrackOrigin(wtrk);
32 setWTrackInfit(wtrk);
33 setWTrackList(number);
34 if(number != numberWTrack()-1) {
35 std::cout << "TrackPool: wrong track index" <<" "
36 <<number<<" , " <<numberWTrack()<< std::endl;
37 }
39 setMappositionA(m_numberone);
40 setMappositionB(m_numbertwo);
41 m_numberone = m_numberone + 4;
42}
const HepSymMatrix err() const
const HepVector helix() const
......
@ error
Definition: Core.h:24

Referenced by VertexFitRefine::AddTrack(), DQAKsInfo::calculate(), Gam4pikp::execute(), Ppjrhopi::execute(), Rhopi::execute(), inclks::execute(), incllambda::execute(), DQAKsKpi::execute(), DQAKsKpiDEDX::execute(), DQARhopi::execute(), JsiLL::execute(), CalibEventSelect::execute(), BeamParams::execute(), Pi0EtaToGGRecAlg::execute(), PrimaryVertex::execute(), KShortReconstruction::execute(), LambdaReconstruction::execute(), rhopi::execute(), Signal::execute(), TestV::execute(), VertexFitRefine::Fit(), K0kk::MTotal(), K0kpi::MTotal(), K0pi0::MTotal(), K0pipi::MTotal(), K0pipipi0::MTotal(), K3pi::MTotal(), K3pipi0::MTotal(), Kk::MTotal(), Kkpi0::MTotal(), Kkpipi::MTotal(), Kpi::MTotal(), Kpipi0::MTotal(), Kpipi0pi0::MTotal(), Pipi::MTotal(), Pipipi0::MTotal(), LocalKsSelector::operator()(), LocalLambdaSelector::operator()(), Pi0::Pi0ListToTDS(), utility::SecondaryVFit(), utility::SecondaryVFit_Lambda(), and utility::vfit().

◆ AddTrack() [4/4]

void TrackPool::AddTrack ( const int  number,
const WTrackParameter  wtrk 
)

Definition at line 429 of file TrackPool.cxx.

429 {
430 setWTrackOrigin(wtrk);
431 setWTrackInfit(wtrk);
432 setWTrackList(number);
433 if(number != numberWTrack()-1) {
434 std::cout << "TrackPool: wrong track index" <<" "
435 <<number<<" , " <<numberWTrack()<< std::endl;
436 }
438 setMappositionA(m_numberone);
439 setMappositionB(m_numbertwo);
440 m_numberone = m_numberone + 4;
441}

◆ AddTrackVertex()

void TrackPool::AddTrackVertex ( const int  number,
const double  mass,
const RecEmcShower trk 
)

Definition at line 444 of file TrackPool.cxx.

444 {
445 double ptrk = trk->energy();
446 double e = sqrt(ptrk*ptrk + mass * mass);
447 double the = trk->theta();
448 double phi = trk->phi();
449 HepLorentzVector p4(ptrk * sin(the) * cos(phi),
450 ptrk * sin(the) * sin(phi),
451 ptrk * cos(the),
452 e);
453 double dphi = trk->dphi();
454 double dthe = trk->dtheta();
455 double de = trk->dE();
456 double x = trk->x();
457 double y = trk->y();
458 double z = trk->z();
459 HepPoint3D x3 (x, y ,z);
460 WTrackParameter wtrk(x3, p4 ,dphi ,dthe, de);
461 setWTrackOrigin(wtrk);
462 setWTrackInfit(wtrk);
463 setWTrackList(number);
464 if(number != numberWTrack()-1) {
465 std::cout << "TrackPool: wrong track index" <<" "
466 <<number<<" , " <<numberWTrack()<< std::endl;
467 }
468 GammaShape gtrk(p4,dphi,dthe,de);
469 setGammaShape(gtrk);
470 setGammaShapeList(number);
472 m_numbertwo = 0;
473 setMappositionA(m_numberone);
474 setMappositionB(m_numbertwo);
475
476 m_numberone = m_numberone + 4;
477 m_numbertwo = m_numbertwo + 3;
478}

◆ clearGammaShape()

void TrackPool::clearGammaShape ( )
inline

Definition at line 139 of file TrackPool.h.

139{m_gammashape.clear();}

Referenced by KalmanKinematicFit::init(), KinematicFit::init(), VertexFit::init(), and TrackPool().

◆ clearGammaShapeList()

void TrackPool::clearGammaShapeList ( )
inline

Definition at line 140 of file TrackPool.h.

140{m_lgammashape.clear();}

Referenced by KalmanKinematicFit::init(), KinematicFit::init(), VertexFit::init(), and TrackPool().

◆ clearMapkinematic()

void TrackPool::clearMapkinematic ( )
inline

Definition at line 124 of file TrackPool.h.

124{m_mapkinematic.clear();}

Referenced by KalmanKinematicFit::init(), KinematicFit::init(), VertexFit::init(), and TrackPool().

◆ clearMappositionA()

void TrackPool::clearMappositionA ( )
inline

Definition at line 125 of file TrackPool.h.

125{m_mappositionA.clear();}

Referenced by KalmanKinematicFit::init(), KinematicFit::init(), VertexFit::init(), and TrackPool().

◆ clearMappositionB()

void TrackPool::clearMappositionB ( )
inline

Definition at line 126 of file TrackPool.h.

126{m_mappositionB.clear();}

Referenced by KalmanKinematicFit::init(), KinematicFit::init(), VertexFit::init(), and TrackPool().

◆ clearone()

void TrackPool::clearone ( )
inline

Definition at line 115 of file TrackPool.h.

115{m_numberone = 0;}

Referenced by KalmanKinematicFit::init(), KinematicFit::init(), and VertexFit::init().

◆ cleartwo()

void TrackPool::cleartwo ( )
inline

Definition at line 116 of file TrackPool.h.

116{m_numbertwo = 0;}

Referenced by KalmanKinematicFit::init(), KinematicFit::init(), and VertexFit::init().

◆ clearWTrackInfit()

void TrackPool::clearWTrackInfit ( )
inline

Definition at line 112 of file TrackPool.h.

112{m_wtrk_infit.clear();}

Referenced by KalmanKinematicFit::init(), KinematicFit::init(), SecondVertexFit::init(), VertexFit::init(), and TrackPool().

◆ clearWTrackList()

void TrackPool::clearWTrackList ( )
inline

Definition at line 113 of file TrackPool.h.

113{m_lwtrk.clear();}

Referenced by KalmanKinematicFit::init(), KinematicFit::init(), SecondVertexFit::init(), VertexFit::init(), and TrackPool().

◆ clearWTrackOrigin()

void TrackPool::clearWTrackOrigin ( )
inline

Definition at line 111 of file TrackPool.h.

111{m_wtrk_origin.clear();}

Referenced by KalmanKinematicFit::init(), KinematicFit::init(), SecondVertexFit::init(), VertexFit::init(), and TrackPool().

◆ GammaShapeList() [1/2]

std::vector< int > TrackPool::GammaShapeList ( ) const
inline

Definition at line 96 of file TrackPool.h.

96{return m_lgammashape;}

◆ GammaShapeList() [2/2]

int TrackPool::GammaShapeList ( int  n) const
inline

Definition at line 98 of file TrackPool.h.

98{return m_lgammashape[n];}
const Int_t n

◆ GammaShapeValue() [1/2]

std::vector< GammaShape > TrackPool::GammaShapeValue ( ) const
inline

Definition at line 95 of file TrackPool.h.

95{return m_gammashape;}

◆ GammaShapeValue() [2/2]

GammaShape TrackPool::GammaShapeValue ( int  n) const
inline

Definition at line 97 of file TrackPool.h.

97{return m_gammashape[n];}

◆ getBeamPosition()

HepPoint3D TrackPool::getBeamPosition ( ) const
inline

Definition at line 147 of file TrackPool.h.

147{return m_BeamPosition;}

Referenced by KalmanKinematicFit::Fit().

◆ getVBeamPosition()

HepSymMatrix TrackPool::getVBeamPosition ( ) const
inline

Definition at line 148 of file TrackPool.h.

148{return m_VBeamPosition;}

Referenced by KalmanKinematicFit::Fit().

◆ mapkinematic()

vector< int > TrackPool::mapkinematic ( ) const
inline

◆ mappositionA()

vector< int > TrackPool::mappositionA ( ) const
inline

◆ mappositionB()

vector< int > TrackPool::mappositionB ( ) const
inline

◆ numberGammaShape()

int TrackPool::numberGammaShape ( ) const
inline

Definition at line 99 of file TrackPool.h.

99{ return ((int)(m_lgammashape.size()) );}

◆ numberone()

int TrackPool::numberone ( ) const
inline

Definition at line 117 of file TrackPool.h.

117{return m_numberone;}

Referenced by KalmanKinematicFit::BuildVirtualParticle(), and KalmanKinematicFit::Fit().

◆ numbertwo()

int TrackPool::numbertwo ( ) const
inline

Definition at line 118 of file TrackPool.h.

118{return m_numbertwo;}

Referenced by KalmanKinematicFit::Fit().

◆ numberWTrack()

◆ setBeamPosition()

void TrackPool::setBeamPosition ( const HepPoint3D  BeamPosition)
inline

Definition at line 143 of file TrackPool.h.

143{m_BeamPosition = BeamPosition;}

Referenced by Gam4pikp::execute(), KalmanKinematicFit::init(), KinematicFit::init(), and TrackPool().

◆ setGammaShape() [1/2]

void TrackPool::setGammaShape ( const GammaShape  gammashape)
inline

Definition at line 136 of file TrackPool.h.

136{m_gammashape.push_back(gammashape);}

◆ setGammaShape() [2/2]

void TrackPool::setGammaShape ( const int  n,
const GammaShape  gammashape 
)
inline

Definition at line 135 of file TrackPool.h.

135{m_gammashape[n] = gammashape;}

Referenced by AddMissTrack(), AddTrack(), and AddTrackVertex().

◆ setGammaShapeList()

void TrackPool::setGammaShapeList ( const int  n)
inline

Definition at line 137 of file TrackPool.h.

137{m_lgammashape.push_back(n);}

Referenced by AddMissTrack(), AddTrack(), and AddTrackVertex().

◆ setMapkinematic()

void TrackPool::setMapkinematic ( const int  n)
inline

Definition at line 128 of file TrackPool.h.

128{m_mapkinematic.push_back(n);}

Referenced by AddMissTrack(), AddTrack(), and AddTrackVertex().

◆ setMappositionA()

void TrackPool::setMappositionA ( const int  n)
inline

Definition at line 129 of file TrackPool.h.

129{m_mappositionA.push_back(n);}

Referenced by AddMissTrack(), AddTrack(), and AddTrackVertex().

◆ setMappositionB()

void TrackPool::setMappositionB ( const int  n)
inline

Definition at line 130 of file TrackPool.h.

130{m_mappositionB.push_back(n);}

Referenced by AddMissTrack(), AddTrack(), and AddTrackVertex().

◆ setVBeamPosition()

void TrackPool::setVBeamPosition ( const HepSymMatrix  VBeamPosition)
inline

Definition at line 144 of file TrackPool.h.

144{m_VBeamPosition = VBeamPosition;}

Referenced by Gam4pikp::execute(), KalmanKinematicFit::init(), KinematicFit::init(), and TrackPool().

◆ setWTrackInfit() [1/2]

void TrackPool::setWTrackInfit ( const int  n,
const WTrackParameter  wtrk 
)
inline

◆ setWTrackInfit() [2/2]

void TrackPool::setWTrackInfit ( const WTrackParameter  wtrk)
inline

Definition at line 108 of file TrackPool.h.

108{m_wtrk_infit.push_back(wtrk);}

◆ setWTrackList()

void TrackPool::setWTrackList ( const int  n)
inline

Definition at line 109 of file TrackPool.h.

109{m_lwtrk.push_back(n);}

Referenced by AddMissTrack(), AddTrack(), and AddTrackVertex().

◆ setWTrackOrigin() [1/2]

void TrackPool::setWTrackOrigin ( const int  n,
const WTrackParameter  wtrk 
)
inline

Definition at line 105 of file TrackPool.h.

105{m_wtrk_origin[n] = wtrk;}

Referenced by AddMissTrack(), AddTrack(), and AddTrackVertex().

◆ setWTrackOrigin() [2/2]

void TrackPool::setWTrackOrigin ( const WTrackParameter  wtrk)
inline

Definition at line 107 of file TrackPool.h.

107{m_wtrk_origin.push_back(wtrk);}

◆ wTrackInfit() [1/2]

◆ wTrackInfit() [2/2]

WTrackParameter TrackPool::wTrackInfit ( int  n) const
inline

Definition at line 76 of file TrackPool.h.

76{return m_wtrk_infit[n];}

◆ wTrackList() [1/2]

std::vector< int > TrackPool::wTrackList ( ) const
inline

Definition at line 74 of file TrackPool.h.

74{return m_lwtrk;}

◆ wTrackList() [2/2]

int TrackPool::wTrackList ( int  n) const
inline

Definition at line 77 of file TrackPool.h.

77{return m_lwtrk[n];}

◆ wTrackOrigin() [1/2]

◆ wTrackOrigin() [2/2]

WTrackParameter TrackPool::wTrackOrigin ( int  n) const
inline

Definition at line 75 of file TrackPool.h.

75{return m_wtrk_origin[n];}

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