FairRoot/PandaRoot
Public Member Functions | Private Member Functions | Private Attributes | List of all members
PndLmdBPtestTask Class Reference

#include <PndLmdBPtestTask.h>

Inheritance diagram for PndLmdBPtestTask:

Public Member Functions

 PndLmdBPtestTask ()
 
 PndLmdBPtestTask (Double_t pBeam, TVector3 IP)
 Set up beam momuntum value and position of interaction point. More...
 
 ~PndLmdBPtestTask ()
 
virtual void SetParContainers ()
 
virtual InitStatus Init ()
 
virtual void Exec (Option_t *opt)
 
virtual void Finish ()
 
FairTrackParP * PropToPlane (FairTrackParP *fStartPst, double zpos, int dir, bool &isProp)
 

Private Member Functions

void Register ()
 
void Reset ()
 
void ProduceHits ()
 
std::map< int, std::vector< int > > AssignHitsToTracks ()
 
 ClassDef (PndLmdBPtestTask, 1)
 

Private Attributes

TClonesArray * fTrackParGeane
 
TClonesArray * fTrackParIni
 
TClonesArray * fTrackParFinal
 
TClonesArray * fDetName
 
FairGeanePro * fPro
 
PndGeoHandlingfGeoH
 
int fEventNr
 
bool fUseMVDPoint
 
Double_t fPbeam
 
Int_t fPDGid
 
TVector3 vtx
 
FairField * pndField
 
std::map< int, std::vector< int > > fTrackPixHitIdMap
 
std::map< int, std::vector< int > > fTrackStripHitIdMap
 
TClonesArray * fMCHits
 
TClonesArray * fMCTracks
 
TClonesArray * fTracks
 
TClonesArray * fHits
 
TClonesArray * fRecHits
 
TClonesArray * fRecCandTracks
 
TTree * tprop
 
double fxrec
 
double fyrec
 
double fzrec
 
double fprec
 
double fthetarec
 
double fphirec
 
double fxmc
 
double fymc
 
double fzmc
 
double fpmc
 
double fthetamc
 
double fphimc
 
double fxmclmd
 
double fymclmd
 
double fzmclmd
 
double fpmclmd
 
double fthetamclmd
 
double fphimclmd
 
double fxrec_err
 
double fyrec_err
 
double fxmc_err
 
double fymc_err
 
double fxmclmd_err
 
double fymclmd_err
 
double fbx
 
double fby
 
double fbz
 
double fvrec
 
double fwrec
 
double ftvrec
 
double ftwrec
 
double fvrec_err
 
double fwrec_err
 
double ftvrec_err
 
double ftwrec_err
 
double fvmc
 
double fwmc
 
double ftvmc
 
double ftwmc
 
double fvmc_err
 
double fwmc_err
 
double ftvmc_err
 
double ftwmc_err
 
double fvmclmd
 
double fwmclmd
 
double ftvmclmd
 
double ftwmclmd
 
double fvmclmd_err
 
double fwmclmd_err
 
double ftvmclmd_err
 
double ftwmclmd_err
 

Detailed Description

Definition at line 35 of file PndLmdBPtestTask.h.

Constructor & Destructor Documentation

PndLmdBPtestTask::PndLmdBPtestTask ( )

Default constructor

Definition at line 40 of file PndLmdBPtestTask.cxx.

41  : FairTask("test with Geane Task for PANDA Lmd"),
42  fEventNr(0),
43  fUseMVDPoint(false) {
44  // tprop = new TNtuple();
45 }
PndLmdBPtestTask::PndLmdBPtestTask ( Double_t  pBeam,
TVector3  IP 
)

Set up beam momuntum value and position of interaction point.

Definition at line 48 of file PndLmdBPtestTask.cxx.

References fbx, fby, fbz, fPbeam, fPDGid, fphimc, fphimclmd, fphirec, fpmc, fpmclmd, fprec, fthetamc, fthetamclmd, fthetarec, ftvmc, ftvmc_err, ftvmclmd, ftvmclmd_err, ftvrec, ftvrec_err, ftwmc, ftwmc_err, ftwmclmd, ftwmclmd_err, ftwrec, ftwrec_err, fvmc, fvmc_err, fvmclmd, fvmclmd_err, fvrec, fvrec_err, fwmc, fwmc_err, fwmclmd, fwmclmd_err, fwrec, fwrec_err, fxmc, fxmc_err, fxmclmd, fxmclmd_err, fxrec, fxrec_err, fymc, fymc_err, fymclmd, fymclmd_err, fyrec, fyrec_err, fzmc, fzmclmd, fzrec, tprop, and vtx.

49  : FairTask("Geane Task for PANDA Lmd"), fEventNr(0), fUseMVDPoint(false) {
50  fPDGid = -2212;
51  fPbeam = pBeam;
52  cout << "Beam Momentum for particle with PDGid#" << fPDGid << " this run is "
53  << fPbeam << endl;
54  vtx = IP;
55  cout << "Interaction Point:" << endl;
56  vtx.Print();
57  // tprop = new TNtuple("tprop","forward MC vs. backward
58  // rec","xrec:yrec:zrec:prec:thetarec:phirec:xmc:ymc:zmc:pmc:thetamc:phimc") ;
59  tprop = new TTree("tprop",
60  "forward MC vs. backward rec with Mag.Field comp@MC point");
61  tprop->Branch("xrec", &fxrec);
62  tprop->Branch("yrec", &fyrec);
63  tprop->Branch("zrec", &fzrec);
64  tprop->Branch("xmc", &fxmc);
65  tprop->Branch("ymc", &fymc);
66  tprop->Branch("zmc", &fzmc);
67  tprop->Branch("xmclmd", &fxmclmd);
68  tprop->Branch("ymclmd", &fymclmd);
69  tprop->Branch("zmclmd", &fzmclmd);
70  tprop->Branch("thetarec", &fthetarec);
71  tprop->Branch("phirec", &fphirec);
72  tprop->Branch("prec", &fprec);
73  tprop->Branch("thetamc", &fthetamc);
74  tprop->Branch("phimc", &fphimc);
75  tprop->Branch("pmc", &fpmc);
76  tprop->Branch("thetamclmd", &fthetamclmd);
77  tprop->Branch("phimclmd", &fphimclmd);
78  tprop->Branch("pmclmd", &fpmclmd);
79  tprop->Branch("xrec_err", &fxrec_err);
80  tprop->Branch("yrec_err", &fyrec_err);
81  tprop->Branch("xmc_err", &fxmc_err);
82  tprop->Branch("ymc_err", &fymc_err);
83  tprop->Branch("xmclmd_err", &fxmclmd_err);
84  tprop->Branch("ymclmd_err", &fymclmd_err);
85 
86  tprop->Branch("vrec", &fvrec);
87  tprop->Branch("wrec", &fwrec);
88  tprop->Branch("tvrec", &ftvrec);
89  tprop->Branch("twrec", &ftwrec);
90  tprop->Branch("vrec_err", &fvrec_err);
91  tprop->Branch("wrec_err", &fwrec_err);
92  tprop->Branch("tvrec_err", &ftvrec_err);
93  tprop->Branch("twrec_err", &ftwrec_err);
94  tprop->Branch("vmc", &fvmc);
95  tprop->Branch("wmc", &fwmc);
96  tprop->Branch("tvmc", &ftvmc);
97  tprop->Branch("twmc", &ftwmc);
98  tprop->Branch("vmc_err", &fvmc_err);
99  tprop->Branch("wmc_err", &fwmc_err);
100  tprop->Branch("tvmc_err", &ftvmc_err);
101  tprop->Branch("twmc_err", &ftwmc_err);
102  tprop->Branch("twmclmd_err", &ftwmclmd_err);
103  tprop->Branch("vmclmd", &fvmclmd);
104  tprop->Branch("wmclmd", &fwmclmd);
105  tprop->Branch("tvmclmd", &ftvmclmd);
106  tprop->Branch("twmclmd", &ftwmclmd);
107  tprop->Branch("vmclmd_err", &fvmclmd_err);
108  tprop->Branch("wmclmd_err", &fwmclmd_err);
109  tprop->Branch("tvmclmd_err", &ftvmclmd_err);
110  tprop->Branch("twmclmd_err", &ftwmclmd_err);
111 
112  tprop->Branch("Bx", &fbx);
113  tprop->Branch("By", &fby);
114  tprop->Branch("Bz", &fbz);
115 }
PndLmdBPtestTask::~PndLmdBPtestTask ( )

Destructor

Definition at line 118 of file PndLmdBPtestTask.cxx.

118 {}

Member Function Documentation

std::map< int, std::vector< int > > PndLmdBPtestTask::AssignHitsToTracks ( )
private

Definition at line 714 of file PndLmdBPtestTask.cxx.

References fMCHits, and i.

Referenced by Exec().

714  {
715  std::map<int, std::vector<int> > result;
716  for (int i = 0; i < fMCHits->GetEntriesFast(); i++) { // get all MC Hits
717  PndSdsMCPoint *myPoint =
718  (PndSdsMCPoint *)(fMCHits->At(i)); // sort MCHits with Tracks
719  // PndMCTrack* myTrack =
720  // (PndMCTrack*)(fMCTracks->At(myPoint->GetTrackID()));
721  result[myPoint->GetTrackID()].push_back(i);
722  }
723  return result;
724 }
Int_t i
Definition: run_full.C:25
TClonesArray * fMCHits
PndLmdBPtestTask::ClassDef ( PndLmdBPtestTask  ,
 
)
private
void PndLmdBPtestTask::Exec ( Option_t *  opt)
virtual

Virtual method Exec

Propagate to the PCA (a space point) in 7 steps

and now Propagate to the PCA (a space point) in one step


Definition at line 204 of file PndLmdBPtestTask.cxx.

References AssignHitsToTracks(), Bool_t, Double_t, fbx, fby, fbz, fDetName, fEventNr, fMCHits, fMCTracks, fParticle, fPbeam, fphimc, fphimclmd, fphirec, fpmc, fpmclmd, fprec, fPro, fRecCandTracks, fRecHits, fthetamc, fthetamclmd, fthetarec, fTrackParFinal, fTrackParGeane, fTrackParIni, fTracks, ftvmc, ftvmc_err, ftvmclmd, ftvmclmd_err, ftvrec, ftvrec_err, ftwmc, ftwmc_err, ftwmclmd, ftwmclmd_err, ftwrec, ftwrec_err, fVerbose, fvmc, fvmc_err, fvmclmd, fvmclmd_err, fvrec, fvrec_err, fwmc, fwmc_err, fwmclmd, fwmclmd_err, fwrec, fwrec_err, fxmc, fxmc_err, fxmclmd, fxmclmd_err, fxrec, fxrec_err, fymc, fymc_err, fymclmd, fymclmd_err, fyrec, fyrec_err, fzmc, fzmclmd, fzrec, PndTrackCandHit::GetHitId(), PndMCTrack::GetMomentum(), PndMCTrack::GetMotherID(), PndTrack::GetParamFirst(), PndSdsMCPoint::GetPosition(), PndTrack::GetRefIndex(), PndSdsMergedHit::GetSecondMCHit(), PndTrackCand::GetSortedHit(), PndMCTrack::GetStartVertex(), i, is, pndField, pnt, PropToPlane(), sqrt(), tprop, vtx, and z0.

204  {
205  // if(fVerbose>5){
206  // if((fTracks->GetEntries())!=(fMCTracks->GetEntries()))
207  // return;
208  // }
209  // cout<<"PndLmdBPtestTask::Exec starts!"<<endl;
210  std::map<int, std::vector<int> > mcHitMap; // Track -> MCHits
211  fTrackParGeane->Delete();
212  fTrackParIni->Delete();
213  fTrackParFinal->Delete();
214  fDetName->Delete();
215 
216  mcHitMap = AssignHitsToTracks();
217 
218  if (fVerbose > 2) {
219  cout << " ---- Info: " << fEventNr << endl;
220  }
221  fEventNr++;
222  // Charge & mass of particle
223  Int_t PDGCode = -2212; // antiproton
224  // Int_t PDGCode = fPDGid;
225  TDatabasePDG *fdbPDG = TDatabasePDG::Instance();
226  TParticlePDG *fParticle = fdbPDG->GetParticle(PDGCode);
227  Double_t fCharge = fParticle->Charge() / 3.;
228  // cout<<"fCharge = "<<fCharge<<endl;
229 
230  // go through all tracks
231  int glI = fTracks->GetEntriesFast();
232  // cout<<"glI = "<<glI<<endl;
233  Int_t counterGeaneTrk = 0;
234 
235  for (Int_t i = 0; i < glI; i++) {
236  // cout<<"PndLmdBPtestTask::Exec for track#"<<i<<endl;
237  TVector3 StartPos, StartPosErr, StartMom, StartMomErr, StartO, StartU,
238  StartV;
239  // int p = 0; //[R.K. 01/2017] unused variable
240 
241  PndTrack *recTrack = (PndTrack *)(fTracks->At(i));
242  FairTrackParP fFittedTrkP = recTrack->GetParamFirst();
243 
244  TVector3 PosRecLMD(fFittedTrkP.GetX(), fFittedTrkP.GetY(),
245  fFittedTrkP.GetZ());
246  if (fFittedTrkP.GetZ() > 1130)
247  continue; // TEST: skip trks from 2nd plane. TODO: check are they fine???
248  TVector3 MomRecLMD(fFittedTrkP.GetPx(), fFittedTrkP.GetPy(),
249  fFittedTrkP.GetPz());
250  MomRecLMD *= fPbeam / MomRecLMD.Mag(); // external assumption about mom
251  // magnitude //<- commented as TEST
252  fFittedTrkP.SetPx(MomRecLMD.X());
253  fFittedTrkP.SetPy(MomRecLMD.Y());
254  fFittedTrkP.SetPz(MomRecLMD.Z());
255  double covMARS[6][6];
256  fFittedTrkP.GetMARSCov(covMARS);
257  TVector3 errMomRecLMD(sqrt(covMARS[0][0]), sqrt(covMARS[1][1]),
258  sqrt(covMARS[2][2]));
259  TVector3 errPosRecLMD(sqrt(covMARS[3][3]), sqrt(covMARS[4][4]),
260  sqrt(covMARS[5][5]));
261 
262  StartPos = PosRecLMD;
263  StartPosErr = errPosRecLMD;
264  StartMom = MomRecLMD;
265  StartMomErr = errMomRecLMD;
266 
267  // Make true2 track from MC info on 1st plane of LMD-----------
268  FairTrackParP *fStartMCLMD = new FairTrackParP();
269  if (fVerbose > 5 && (fTracks->GetEntries() == fMCTracks->GetEntries())) {
270  int candID = recTrack->GetRefIndex();
271  PndTrackCand *trkcand = (PndTrackCand *)fRecCandTracks->At(candID);
272  PndTrackCandHit candhit =
273  (PndTrackCandHit)(trkcand->GetSortedHit(0)); // 1st hit info
274  Int_t hitID = candhit.GetHitId();
275  PndSdsMergedHit *myHit = (PndSdsMergedHit *)(fRecHits->At(hitID));
276  int mcrefbot = myHit->GetSecondMCHit();
277  int mcreftop = myHit->GetRefIndex();
278  PndSdsMCPoint *MCPointHit;
279  if (mcreftop >= 0) {
280  MCPointHit = (PndSdsMCPoint *)(fMCHits->At(mcreftop));
281  } else {
282  MCPointHit = (PndSdsMCPoint *)(fMCHits->At(mcrefbot));
283  }
284 
285  TVector3 PosMClmd = MCPointHit->GetPosition();
286  double pxTrue = MCPointHit->GetPx();
287  double pyTrue = MCPointHit->GetPy();
288  double pzTrue = MCPointHit->GetPz();
289  TVector3 MomMClmd(pxTrue, pyTrue, pzTrue);
290  TVector3 dirMClmd = MomMClmd;
291  dirMClmd *= 1. / (MomMClmd.Mag());
292  MomMClmd *= fPbeam / (MomMClmd.Mag()); //<- commented as TEST
293  double xMClmdNew = PosMClmd.X() - (dirMClmd.X() * 0.010);
294  double yMClmdNew = PosMClmd.Y() - (dirMClmd.Y() * 0.010);
295  double zMClmdNew = PosMClmd.Z() - (dirMClmd.Z() * 0.010);
296  PosMClmd.SetXYZ(xMClmdNew, yMClmdNew, zMClmdNew); // shift 100 mkm to
297  // adoid adding MC
298  // errors during back
299  // propagation;
300  TVector3 ocMC(0, 0, 0); // define plane perpendicular to z-axis in IP
301  TVector3 djMC(1., 0., 0.);
302  TVector3 dkMC(0., 1., 0.);
303  TVector3 PosMClmderr(0., 0., 0.);
304  TVector3 MomMClmderr(0., 0., 0.);
305  fStartMCLMD = new FairTrackParP(PosMClmd, MomMClmd, PosMClmderr,
306  MomMClmderr, fCharge, ocMC, djMC, dkMC);
307  }
308  //-------------------------------------------------------------------------------
309 
312  // Comment: seems back propagation in one step (for 11 m) is too much
313  // //try smoothing it by small steps, which follow mag.field
314  // const int nstep=7;
315  // double zbend[nstep]={661, 660.5, 660., 659, 319, 316, 220};//entarance
316  // and exit mag.field
317  // //TEST for backward and forward propagation: more steps!
318  // const int nstep=50;
319  // double zbend[nstep];
320  // const double z0=fFittedTrkP.GetZ();
321  // const double z1=1;
322  // const double zstep=(z0-z1)/nstep;
323  // for(int js=0;js<nstep;js++){
324  // zbend[js]=z0-zstep*js;
325  // }
326 
327  const int nstep0 = 10;
328  // double zbend0[nstep0]={fFittedTrkP.GetZ(), 661, 660.5, 660., 659,
329  // 319, 316, 220,10};//entarance and exit mag.field
330  double zbend0[nstep0] = {fFittedTrkP.GetZ(),
331  660,
332  602,
333  450,
334  342,
335  283,
336  248,
337  180,
338  100,
339  1}; // entarance and exit mag.field
340  // TEST for backward and forward propagation: more steps!
341  const int nintstep = 100;
342  const int nstep = nstep0 * nintstep;
343  double zbend[nstep];
344  for (int is = 1; is <= nstep0; is++) {
345  const double z0 = zbend0[is - 1];
346  const double z1 = zbend0[is];
347  const double zstep = (z0 - z1) / nintstep;
348  // cout<<"is = "<<is<<": z0 = "<<z0<<" z1 = "<<z1<<" zstep =
349  //"<<zstep<<endl;
350  for (int js = 0; js < nintstep; js++) {
351  int curint = (is - 1) * nintstep + js;
352  zbend[curint] = z0 - zstep * js;
353  // cout<<"zbend["<<curint<<"]="<<zbend[curint]<<endl;
354  }
355  }
356 
357  vector<double> vxmc(nstep), vymc(nstep), vxmc_err(nstep), vymc_err(nstep),
358  vzmc(nstep), vthetamc(nstep), vphimc(nstep), vpmc(nstep), vvmc(nstep),
359  vwmc(nstep), vtvmc(nstep), vtwmc(nstep), vvmc_err(nstep),
360  vwmc_err(nstep), vtvmc_err(nstep), vtwmc_err(nstep);
361  FairTrackParP *fStartMC = new FairTrackParP();
362  if (fVerbose > 2) {
363  cout << "------------------------------------------" << endl;
364  cout << "StartPos:" << endl;
365  StartPos.Print();
366  cout << "StartPosErr:" << endl;
367  StartPosErr.Print();
368 
369  cout << "StartMom: " << StartMom.Mag() << endl;
370  StartMom.Print();
371  cout << "StartMomErr: " << StartMomErr.Mag() << endl;
372  StartMomErr.Print();
373  cout << "" << endl;
374 
375  if (fVerbose > 5 && (fTracks->GetEntries() ==
376  fMCTracks->GetEntries())) { // check results for MC
377  // track propagation to
378  // LMD plane
379  FairTrackParP *fStartPst = new FairTrackParP(fFittedTrkP);
380  TVector3 istLMD(fStartPst->GetIVer());
381  TVector3 jstLMD(fStartPst->GetJVer());
382  TVector3 kstLMD(fStartPst->GetKVer());
383  // cout<<"i,j,k of LMD trk:"<<endl;
384  // istLMD+=StartPos;
385  istLMD = StartPos;
386  // istLMD.Print();
387  // jstLMD.Print();
388  // kstLMD.Print();
389  TVector3 ocMC(0, 0, 0); // define plane perpendicular to z-axis in IP
390  TVector3 djMC(1., 0., 0.);
391  TVector3 dkMC(0., 1., 0.);
392  djMC.SetMag(1);
393  dkMC.SetMag(1);
394 
395  PndMCTrack *mctrk = (PndMCTrack *)(fMCTracks->At(i));
396  TVector3 MomMC = mctrk->GetMomentum();
397  TVector3 PosMC = mctrk->GetStartVertex();
398  TVector3 MomMCerr(0., 0., 0.);
399  TVector3 PosMCerr(0., 0., 0.);
400  // if(PosMC.Z()>0){
401  if (PosMC.Z() > 1) {
402  cout << "!!! Achtung: " << PosMC.Z() << endl;
403  break;
404  }
405 
406  fStartMC = new FairTrackParP(PosMC, MomMC, PosMCerr, MomMCerr, fCharge,
407  ocMC, djMC, dkMC);
408  for (int sj = nstep - 1; sj > -1; sj--) {
409  // cout<<"MC forward: to z="<<zbend[sj]<<endl;
410  bool isPropMC;
411  FairTrackParP *fResMC = PropToPlane(fStartMC, zbend[sj], +1,
412  isPropMC); // forward propagation
413  if (isPropMC) {
414  delete fStartMC;
415  fStartMC = fResMC;
416  vxmc[sj] = fResMC->GetX();
417  vxmc_err[sj] = fResMC->GetDX();
418  vymc_err[sj] = fResMC->GetDY();
419  vymc[sj] = fResMC->GetY();
420  vzmc[sj] = fResMC->GetZ();
421  TVector3 finDirMC(fResMC->GetPx(), fResMC->GetPy(),
422  fResMC->GetPz());
423  vpmc[sj] = finDirMC.Mag();
424  vthetamc[sj] = finDirMC.Theta();
425  vphimc[sj] = finDirMC.Phi();
426 
427  vvmc[sj] = fResMC->GetV();
428  vwmc[sj] = fResMC->GetW();
429  vtvmc[sj] = fResMC->GetTV();
430  vtwmc[sj] = fResMC->GetTW();
431  vvmc_err[sj] = fResMC->GetDV();
432  vwmc_err[sj] = fResMC->GetDW();
433  vtvmc_err[sj] = fResMC->GetDTV();
434  vtwmc_err[sj] = fResMC->GetDTW();
435  // cout<<"Next step;)"<<endl;
436  } else
437  break;
438  }
439  }
440  }
441  if (abs(fStartMC->GetZ() - fFittedTrkP.GetZ()) > 10 && fVerbose > 5)
442  break; // MC particle wasn't propagated to LMD plane ????
443  TClonesArray &clref1 = *fTrackParIni;
444  Int_t size1 = clref1.GetEntriesFast();
445 
446  FairTrackParP *fStartPst = new FairTrackParP(fFittedTrkP); // REC
447  FairTrackParP *fStartPstMCLMD =
448  new FairTrackParP(*fStartMCLMD); // MC in LMD, should be treated as REC
449  for (int js = 1; js < nstep; js++) {
450  // cout<<"step#"<<js<<endl;
451  bool isProp;
452  // cout<<"REC backward "<<endl;
453  FairTrackParP *fResPst =
454  PropToPlane(fStartPst, zbend[js], -1, isProp); // back propagation
455  if (isProp) {
456  delete fStartPst;
457  fStartPst = fResPst;
458  if (fVerbose > 5) {
459  bool isPropMClmd;
460  FairTrackParP *fResPstMCLMD = PropToPlane(
461  fStartPstMCLMD, zbend[js], -1, isPropMClmd); // back propagation
462  if (isPropMClmd) {
463  TVector3 finPosMCLMD(fResPstMCLMD->GetX(), fResPstMCLMD->GetY(),
464  fResPstMCLMD->GetZ());
465  TVector3 finDirMCLMD(fResPstMCLMD->GetPx(), fResPstMCLMD->GetPy(),
466  fResPstMCLMD->GetPz());
467 
468  TVector3 finPos(fResPst->GetX(), fResPst->GetY(), fResPst->GetZ());
469  TVector3 finDir(fResPst->GetPx(), fResPst->GetPy(),
470  fResPst->GetPz());
471 
472  // double pnt[3]={finPosMC.X(),finPosMC.Y(),finPosMC.Z()};
473  // //Position where to get field strength
474  double pnt[3] = {vxmc[js], vymc[js], vzmc[js]};
475  double Bf[3]; // result goes here
476  // retrieve the field from the framework
477  pndField->Field(pnt, Bf); //[kGs]
478  fbx = Bf[0];
479  fby = Bf[1];
480  fbz = Bf[2];
481  fxrec = finPos.X();
482  fyrec = finPos.Y();
483  fxrec_err = fResPst->GetDX();
484  fyrec_err = fResPst->GetDY();
485  fzrec = finPos.Z();
486  fprec = finDir.Mag();
487  fthetarec = finDir.Theta();
488  fphirec = finDir.Phi();
489  fxmc = vxmc[js];
490  fymc = vymc[js];
491  fzmc = vzmc[js];
492  fxmc_err = vxmc_err[js];
493  fymc_err = vymc_err[js];
494  fpmc = vpmc[js];
495  fthetamc = vthetamc[js];
496  fphimc = vphimc[js];
497 
498  fxmclmd = finPosMCLMD.X();
499  fymclmd = finPosMCLMD.Y();
500  fxmclmd_err = fResPstMCLMD->GetDX();
501  fymclmd_err = fResPstMCLMD->GetDY();
502  fzmclmd = finPosMCLMD.Z();
503  fpmclmd = finDirMCLMD.Mag();
504  fthetamclmd = finDirMCLMD.Theta();
505  fphimclmd = finDirMCLMD.Phi();
506 
507  fvmc = vvmc[js];
508  fwmc = vwmc[js];
509  ftvmc = vtvmc[js];
510  ftwmc = vtwmc[js];
511  fvmc_err = vvmc_err[js];
512  fwmc_err = vwmc_err[js];
513  ftvmc_err = vtvmc_err[js];
514  ftwmc_err = vtwmc_err[js];
515 
516  fvrec = fResPst->GetV();
517  fwrec = fResPst->GetW();
518  ftvrec = fResPst->GetTV();
519  ftwrec = fResPst->GetTW();
520  fvrec_err = fResPst->GetDV();
521  fwrec_err = fResPst->GetDW();
522  ftvrec_err = fResPst->GetDTV();
523  ftwrec_err = fResPst->GetDTW();
524 
525  fvmclmd = fResPstMCLMD->GetV();
526  fwmclmd = fResPstMCLMD->GetW();
527  ftvmclmd = fResPstMCLMD->GetTV();
528  ftwmclmd = fResPstMCLMD->GetTW();
529  fvmclmd_err = fResPstMCLMD->GetDV();
530  fwmclmd_err = fResPstMCLMD->GetDW();
531  ftvmclmd_err = fResPstMCLMD->GetDTV();
532  ftwmclmd_err = fResPstMCLMD->GetDTW();
533 
534  tprop->Fill();
535  delete fStartPstMCLMD;
536  fStartPstMCLMD = fResPstMCLMD;
537  } else
538  break;
539  }
540  } else
541  break;
542  }
543 
546  int ierr = 0;
547  FairTrackParH *fStart = new (clref1[size1]) FairTrackParH(fStartPst, ierr);
548  TClonesArray &clref = *fTrackParGeane;
549  Int_t size = clref.GetEntriesFast();
550  FairTrackParH *fRes = new (clref[size]) FairTrackParH();
551  fPro->SetPoint(vtx);
552  fPro->PropagateToPCA(1, -1); // back-propagate to point
553  Bool_t isProp = fPro->Propagate(fStart, fRes, PDGCode);
554 
555  // ///----------------------------------------------------------------------
556  delete fStartPst;
557 
559 
560  //------- TEST of calculation errors -------
561  TVector3 gPos(fRes->GetX(), fRes->GetY(), fRes->GetZ());
562  TVector3 gMom(fRes->GetPx(), fRes->GetPy(), fRes->GetPz());
563 
564  TVector3 gErrPos(fRes->GetDX(), fRes->GetDY(), fRes->GetDZ());
565  TVector3 gErrMom(fRes->GetDPx(), fRes->GetDPy(), fRes->GetDPz());
566  // cout<<" "<<endl;
567  if (fVerbose > 2) {
568  // cout<<"================= %%%% ===================="<<endl;
569 
570  cout << "gPos:" << endl;
571  gPos.Print();
572  // cout<<"difference between final and initial point =
573  // "<<(-StartPos.Mag()+gPos.Mag())<<endl;
574  cout << "gErrPos:" << endl;
575  gErrPos.Print();
576  // cout<<"difference between final and initial point error =
577  // "<<(-StartPosErr.Mag()+gErrPos.Mag())<<endl;
578 
579  cout << "gMom: " << gMom.Mag() << endl;
580  gMom.Print();
581  // cout<<"difference between initial and final momentum =
582  // "<<(StartMom.Mag()-gMom.Mag())<<endl;
583  cout << "gErrMom: " << gErrMom.Mag() << endl;
584  // cout<<"difference between initial and final momentum error=
585  // "<<(StartMomErr.Mag()-gErrMom.Mag())<<endl;
586  gErrMom.Print();
587  if (fVerbose > 5 && (fTracks->GetEntries() == fMCTracks->GetEntries())) {
588  PndMCTrack *mctrk = (PndMCTrack *)(fMCTracks->At(i));
589  int motherID = mctrk->GetMotherID();
590  if (motherID >= 0) break;
591  TVector3 MomMC = mctrk->GetMomentum();
592  TVector3 PosMC = mctrk->GetStartVertex();
593  // cout<<"mcPos:"<<endl;
594  // PosMC.Print();
595  // cout<<"mcMom: "<<MomMC.Mag()<<endl;
596  // MomMC.Print();
597 
598  double pnt[3] = {PosMC.X(), PosMC.Y(),
599  PosMC.Z()}; // Position where to get field strength
600  double Bf[3]; // result goes here
601  // retrieve the field from the framework
602 
603  pndField->Field(pnt, Bf); //[kGs]
604  // cout<<"^^^^ Bf = ("<<Bf[0]<<", "<<Bf[1]<<", "<<Bf[2]<<")"<<endl;
605  fbx = Bf[0];
606  fby = Bf[1];
607  fbz = Bf[2];
608  fxrec = gPos.X();
609  fyrec = gPos.Y();
610  fzrec = gPos.Z();
611  fprec = gMom.Mag();
612  fthetarec = gMom.Theta();
613  fphirec = gMom.Phi();
614  fxmc = PosMC.X();
615  fymc = PosMC.Y();
616  fzmc = PosMC.Z();
617  fpmc = MomMC.Mag();
618  fthetamc = MomMC.Theta();
619  fphimc = MomMC.Phi();
620 
621  FairTrackParH *fStartMClmd = new FairTrackParH(fStartPstMCLMD, ierr);
622  fPro->SetPoint(vtx);
623  fPro->PropagateToPCA(1, -1); // back-propagate to point
624  FairTrackParH *fResMCLMD = new FairTrackParH();
625  fPro->Propagate(
626  fStartMClmd, fResMCLMD,
627  PDGCode); // Bool_t isPropMC = //[R.K.03/2017] unused variable
628  TVector3 gPosMC(fResMCLMD->GetX(), fResMCLMD->GetY(),
629  fResMCLMD->GetZ());
630  TVector3 gMomMC(fResMCLMD->GetPx(), fResMCLMD->GetPy(),
631  fResMCLMD->GetPz());
632  fxmclmd = gPosMC.X();
633  fymclmd = gPosMC.Y();
634  fzmclmd = gPosMC.Z();
635  fpmclmd = gMomMC.Mag();
636  fthetamclmd = gMomMC.Theta();
637  fphimclmd = gMomMC.Phi();
638  tprop->Fill();
639  delete fStartPstMCLMD;
640  }
641  cout << "================= %%%% ====================" << endl;
642  }
643  //------------------------------------------
644 
645  if (isProp == kTRUE) {
646  new ((*fTrackParFinal)[counterGeaneTrk])
647  FairTrackParH(*(fRes)); // save Track
648  // new((*fTrackParFinal)[counterGeaneTrk]) FairTrackParP(*(fRes));
650  counterGeaneTrk++;
651  if (fVerbose > 2) cout << "***** isProp TRUE *****" << endl;
652  } else {
653  if (fVerbose > 2) {
654  cout << "!!! Back-propagation with GEANE didn't return result !!!"
655  << endl;
656  cout << "StartPos:" << endl;
657  StartPos.Print();
658  cout << "StartPosErr:" << endl;
659  StartPosErr.Print();
660 
661  cout << "StartMom: " << StartMom.Mag() << endl;
662  StartMom.Print();
663  cout << "StartMomErr: " << StartMomErr.Mag() << endl;
664  StartMomErr.Print();
665  }
666  new ((*fTrackParFinal)[counterGeaneTrk]) FairTrackParH(); // save NULL
667  // new((*fTrackParFinal)[counterGeaneTrk]) FairTrackParP(); //save
668  //NULL
669  counterGeaneTrk++;
670  }
671  }
672  // fMCTracks->Delete();
673  // fMCHits->Delete();
674  if (fVerbose > 2) cout << "PndLmdBPtestTask::Exec END!" << endl;
675 }
Double_t z0
Definition: checkhelixhit.C:62
int fVerbose
Definition: poormantracks.C:24
TClonesArray * fTrackParFinal
Int_t i
Definition: run_full.C:25
friend F32vec4 sqrt(const F32vec4 &a)
Definition: P4_F32vec4.h:29
PndTrackCandHit GetSortedHit(UInt_t i)
Definition: PndTrackCand.h:54
TClonesArray * pnt
TVector3 GetMomentum() const
Definition: PndMCTrack.h:78
std::map< int, std::vector< int > > AssignHitsToTracks()
TClonesArray * fDetName
TClonesArray * fTracks
Int_t * fParticle
Definition: run_full.C:24
Double_t
TClonesArray * fMCHits
static int is
Definition: ranlxd.cxx:374
FairField * pndField
FairGeanePro * fPro
TVector3 GetPosition() const
Definition: PndSdsMCPoint.h:90
TClonesArray * fMCTracks
Int_t GetSecondMCHit() const
TClonesArray * fRecHits
TClonesArray * fTrackParIni
TClonesArray * fTrackParGeane
Int_t GetRefIndex() const
Definition: PndTrack.h:36
TVector3 GetStartVertex() const
Definition: PndMCTrack.h:76
Int_t GetMotherID() const
Definition: PndMCTrack.h:74
Int_t GetHitId() const
TClonesArray * fRecCandTracks
FairTrackParP GetParamFirst()
Definition: PndTrack.h:49
FairTrackParP * PropToPlane(FairTrackParP *fStartPst, double zpos, int dir, bool &isProp)
void PndLmdBPtestTask::Finish ( )
virtual

Definition at line 677 of file PndLmdBPtestTask.cxx.

References fVerbose, and tprop.

677  {
678  if (fVerbose > 5) {
679  TTree *nout1 = tprop->CloneTree();
680  nout1->Write();
681  }
682 }
int fVerbose
Definition: poormantracks.C:24
InitStatus PndLmdBPtestTask::Init ( )
virtual

Definition at line 121 of file PndLmdBPtestTask.cxx.

References fDetName, fGeoH, fMCHits, fMCTracks, fPro, fRecCandTracks, fRecHits, fTrackParFinal, fTrackParGeane, fTrackParIni, fTracks, PndGeoHandling::Instance(), and pndField.

121  {
122  // Get RootManager
123  FairRootManager *ioman = FairRootManager::Instance();
124  if (!ioman) {
125  std::cout << "-E- PndLmdBPtestTask::Init: "
126  << "RootManager not instantiated!" << std::endl;
127  return kFATAL;
128  }
129 
130  fMCHits = (TClonesArray *)ioman->GetObject("LMDPoint");
131  if (!fMCHits) {
132  std::cout << "-W- PndLmdBPtestTask::Init: "
133  << "No LMDPoint"
134  << " array!" << std::endl;
135  return kERROR;
136  }
137 
138  // Get MC tracks
139  fMCTracks = (TClonesArray *)ioman->GetObject("MCTrack");
140  if (!fMCTracks) {
141  std::cout << "-W- PndLmdTrkQTask::Init: "
142  << "No MCTrack"
143  << " array!" << std::endl;
144  return kERROR;
145  }
146 
147  // fTracks = (TClonesArray*) ioman->GetObject("LMDTrack");
148  fTracks = (TClonesArray *)ioman->GetObject("LMDPndTrackFilt");
149  if (!fTracks) {
150  std::cout << "-W- PndLmdBPtestTask::Init: "
151  << "No Track"
152  << " array!" << std::endl;
153  return kERROR;
154  }
155 
156  // Get trk cand [needed only for tests!!!]
157  fRecCandTracks = (TClonesArray *)ioman->GetObject("LMDTrackCand");
158  if (!fRecCandTracks) {
159  std::cout << "-W- PndLmdBPtestTask::Init: "
160  << "No LMDTrackCand [needed only for tests!!!]"
161  << " array!" << std::endl;
162  return kERROR;
163  }
164 
165  // Get rec. hits [needed only for tests!!!]
166  fRecHits = (TClonesArray *)ioman->GetObject("LMDHitsMerged");
167  if (!fRecHits) {
168  std::cout << "-W- PndLmdBPtestTask::Init: "
169  << "No LMDHitsMerged [needed only for tests!!!]"
170  << " array!" << std::endl;
171  return kERROR;
172  }
173 
174  fTrackParGeane = new TClonesArray("FairTrackParH");
175  ioman->Register("GeaneTrackPar", "Geane", fTrackParGeane, kTRUE);
176 
177  fTrackParIni = new TClonesArray("FairTrackParH");
178  ioman->Register("GeaneTrackIni", "Geane", fTrackParIni, kTRUE);
179 
180  fTrackParFinal = new TClonesArray("FairTrackParH");
181  ioman->Register("GeaneTrackFinal", "Geane", fTrackParFinal, kTRUE);
182 
183  fDetName = new TClonesArray("TObjString");
184  ioman->Register("DetName", "Geane", fDetName, kTRUE);
185 
186  fPro = new FairGeanePro();
188  // FairRun* fRun = FairRun::Instance(); //[R.K. 01/2017] unused variable?
189  // FairRuntimeDb* rtdb = fRun->GetRuntimeDb(); //[R.K. 01/2017] unused
190  // variable
191 
192  pndField = FairRunAna::Instance()->GetField();
193 
194  return kSUCCESS;
195 }
PndGeoHandling * fGeoH
TClonesArray * fTrackParFinal
TClonesArray * fDetName
TClonesArray * fTracks
TClonesArray * fMCHits
static PndGeoHandling * Instance()
FairField * pndField
FairGeanePro * fPro
TClonesArray * fMCTracks
TClonesArray * fRecHits
TClonesArray * fTrackParIni
TClonesArray * fTrackParGeane
TClonesArray * fRecCandTracks
void PndLmdBPtestTask::ProduceHits ( )
private
FairTrackParP * PndLmdBPtestTask::PropToPlane ( FairTrackParP *  fStartPst,
double  zpos,
int  dir,
bool &  isProp 
)

Definition at line 684 of file PndLmdBPtestTask.cxx.

References fPbeam, fPDGid, and fPro.

Referenced by Exec().

686  {
687  TVector3 stStartPos(fStartPst->GetX(), fStartPst->GetY(), fStartPst->GetZ());
688  if (zpos > 1e3) { // external assumption about mom magnitude [use it while in
689  // BOX and we know mom should be diff]
690  TVector3 MomStartPos(fStartPst->GetPx(), fStartPst->GetPy(),
691  fStartPst->GetPz());
692  MomStartPos *= fPbeam / MomStartPos.Mag(); //<- commented as TEST
693  fStartPst->SetPx(MomStartPos.X());
694  fStartPst->SetPy(MomStartPos.Y());
695  fStartPst->SetPz(MomStartPos.Z()); // correct mom.magnitude
696  }
697  // propagate plane-to-plane
698  TVector3 ist(fStartPst->GetIVer());
699  TVector3 jst(fStartPst->GetJVer());
700  TVector3 kst(fStartPst->GetKVer());
701  TVector3 oc(0, 0, zpos);
702  TVector3 dj(1., 0., 0.);
703  TVector3 dk(0., 1., 0.);
704  dj.SetMag(1);
705  dk.SetMag(1);
706  fPro->PropagateFromPlane(jst, kst); // 1st detector plane
707  fPro->PropagateToPlane(oc, dj, dk); // virtual plane at fixed z
708  if (dir < 0) fPro->setBackProp();
709  FairTrackParP *fResPst = new FairTrackParP();
710  isProp = fPro->Propagate(fStartPst, fResPst, fPDGid);
711  return fResPst;
712 }
const Double_t zpos
FairGeanePro * fPro
void PndLmdBPtestTask::Register ( )
private
void PndLmdBPtestTask::Reset ( )
private
void PndLmdBPtestTask::SetParContainers ( )
virtual

Virtual method Init

FairRun* ana = FairRun::Instance();

Definition at line 197 of file PndLmdBPtestTask.cxx.

197  {
198  // Get Base Container
200  // FairRuntimeDb* rtdb=ana->GetRuntimeDb();
201 }

Member Data Documentation

double PndLmdBPtestTask::fbx
private

Definition at line 91 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::fby
private

Definition at line 91 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::fbz
private

Definition at line 91 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

TClonesArray* PndLmdBPtestTask::fDetName
private

Definition at line 61 of file PndLmdBPtestTask.h.

Referenced by Exec(), and Init().

int PndLmdBPtestTask::fEventNr
private

Definition at line 65 of file PndLmdBPtestTask.h.

Referenced by Exec().

PndGeoHandling* PndLmdBPtestTask::fGeoH
private

Definition at line 64 of file PndLmdBPtestTask.h.

Referenced by Init().

TClonesArray* PndLmdBPtestTask::fHits
private

Definition at line 79 of file PndLmdBPtestTask.h.

TClonesArray* PndLmdBPtestTask::fMCHits
private

Definition at line 75 of file PndLmdBPtestTask.h.

Referenced by AssignHitsToTracks(), Exec(), and Init().

TClonesArray* PndLmdBPtestTask::fMCTracks
private

Definition at line 76 of file PndLmdBPtestTask.h.

Referenced by Exec(), and Init().

Double_t PndLmdBPtestTask::fPbeam
private

Definition at line 67 of file PndLmdBPtestTask.h.

Referenced by Exec(), PndLmdBPtestTask(), and PropToPlane().

Int_t PndLmdBPtestTask::fPDGid
private

Definition at line 68 of file PndLmdBPtestTask.h.

Referenced by PndLmdBPtestTask(), and PropToPlane().

double PndLmdBPtestTask::fphimc
private

Definition at line 87 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::fphimclmd
private

Definition at line 87 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::fphirec
private

Definition at line 87 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::fpmc
private

Definition at line 87 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::fpmclmd
private

Definition at line 87 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::fprec
private

Definition at line 87 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

FairGeanePro* PndLmdBPtestTask::fPro
private

Definition at line 63 of file PndLmdBPtestTask.h.

Referenced by Exec(), Init(), and PropToPlane().

TClonesArray* PndLmdBPtestTask::fRecCandTracks
private

Definition at line 82 of file PndLmdBPtestTask.h.

Referenced by Exec(), and Init().

TClonesArray* PndLmdBPtestTask::fRecHits
private

Definition at line 81 of file PndLmdBPtestTask.h.

Referenced by Exec(), and Init().

double PndLmdBPtestTask::fthetamc
private

Definition at line 87 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::fthetamclmd
private

Definition at line 87 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::fthetarec
private

Definition at line 87 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

TClonesArray* PndLmdBPtestTask::fTrackParFinal
private

Definition at line 60 of file PndLmdBPtestTask.h.

Referenced by Exec(), and Init().

TClonesArray* PndLmdBPtestTask::fTrackParGeane
private

Definition at line 58 of file PndLmdBPtestTask.h.

Referenced by Exec(), and Init().

TClonesArray* PndLmdBPtestTask::fTrackParIni
private

Definition at line 59 of file PndLmdBPtestTask.h.

Referenced by Exec(), and Init().

std::map<int, std::vector<int> > PndLmdBPtestTask::fTrackPixHitIdMap
private

Definition at line 71 of file PndLmdBPtestTask.h.

TClonesArray* PndLmdBPtestTask::fTracks
private

Definition at line 78 of file PndLmdBPtestTask.h.

Referenced by Exec(), and Init().

std::map<int, std::vector<int> > PndLmdBPtestTask::fTrackStripHitIdMap
private

Definition at line 72 of file PndLmdBPtestTask.h.

double PndLmdBPtestTask::ftvmc
private

Definition at line 94 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::ftvmc_err
private

Definition at line 94 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::ftvmclmd
private

Definition at line 95 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::ftvmclmd_err
private

Definition at line 95 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::ftvrec
private

Definition at line 92 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::ftvrec_err
private

Definition at line 92 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::ftwmc
private

Definition at line 94 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::ftwmc_err
private

Definition at line 94 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::ftwmclmd
private

Definition at line 95 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::ftwmclmd_err
private

Definition at line 95 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::ftwrec
private

Definition at line 92 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::ftwrec_err
private

Definition at line 92 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

bool PndLmdBPtestTask::fUseMVDPoint
private

Definition at line 66 of file PndLmdBPtestTask.h.

double PndLmdBPtestTask::fvmc
private

Definition at line 94 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::fvmc_err
private

Definition at line 94 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::fvmclmd
private

Definition at line 95 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::fvmclmd_err
private

Definition at line 95 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::fvrec
private

Definition at line 92 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::fvrec_err
private

Definition at line 92 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::fwmc
private

Definition at line 94 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::fwmc_err
private

Definition at line 94 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::fwmclmd
private

Definition at line 95 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::fwmclmd_err
private

Definition at line 95 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::fwrec
private

Definition at line 92 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::fwrec_err
private

Definition at line 92 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::fxmc
private

Definition at line 87 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::fxmc_err
private

Definition at line 90 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::fxmclmd
private

Definition at line 87 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::fxmclmd_err
private

Definition at line 90 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::fxrec
private

Definition at line 87 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::fxrec_err
private

Definition at line 90 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::fymc
private

Definition at line 87 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::fymc_err
private

Definition at line 90 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::fymclmd
private

Definition at line 87 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::fymclmd_err
private

Definition at line 90 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::fyrec
private

Definition at line 87 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::fyrec_err
private

Definition at line 90 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::fzmc
private

Definition at line 87 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::fzmclmd
private

Definition at line 87 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

double PndLmdBPtestTask::fzrec
private

Definition at line 87 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().

FairField* PndLmdBPtestTask::pndField
private

Definition at line 70 of file PndLmdBPtestTask.h.

Referenced by Exec(), and Init().

TTree* PndLmdBPtestTask::tprop
private

Definition at line 86 of file PndLmdBPtestTask.h.

Referenced by Exec(), Finish(), and PndLmdBPtestTask().

TVector3 PndLmdBPtestTask::vtx
private

Definition at line 69 of file PndLmdBPtestTask.h.

Referenced by Exec(), and PndLmdBPtestTask().


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