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

#include <PndPmtTask.h>

Inheritance diagram for PndPmtTask:
PndPmtPoormantracks

Public Member Functions

 PndPmtTask ()
 
 ~PndPmtTask ()
 
void Init ()
 
void Exec (Option_t *opt)
 
void Finish ()
 
void SetSigV (double a)
 
void SetSigP (double a)
 
void SetPtRange (double min, double max)
 
void SetDTheta (double a)
 
void SetPid (int a)
 
void SetNumTrk (int a)
 
void SetSeed (int a)
 
void SetVerbose (int a)
 
void EnergyCorrelations ()
 

Protected Member Functions

void EnergyCorrelations (RhoError &covP4, TLorentzVector p4)
 
TVector3 RollVertexBox (double widx, double widy, double widz)
 
void SmearVertex (TVector3 &vertex)
 
TVector3 RollMomentumBox (const TVector3 &vtx, double dtheta, double ptmin, double ptmax)
 
void SmearMomentum (TVector3 &momentum)
 
void PoorManTracks ()
 

Protected Attributes

TList * fHistoList
 
TH1F * fHVtxDiffX
 
TH1F * fHVtxDiffY
 
TH1F * fHVtxDiffZ
 
TH1F * fHVtxDiffPX
 
TH1F * fHVtxDiffPY
 
TH1F * fHVtxDiffPZ
 
TH1F * fHVtxDiffE
 
TH1F * fHVtxPullPX
 
TH1F * fHVtxPullPY
 
TH1F * fHVtxPullPZ
 
TH1F * fHVtxPullE
 
TH1F * fHVtxDiffThe
 
TH1F * fHVtxDiffPhi
 
TH1F * fHVtxPocaX
 
TH1F * fHVtxPocaY
 
TH1F * fHVtxPocaZ
 
TH1F * fHVtxPullPocaX
 
TH1F * fHVtxPullPocaY
 
TH1F * fHVtxPullPocaZ
 
TH1F * fHVtxPocas
 
TH1F * fHVtxPocaEmpty
 
TH2F * fHVtxPocaXY
 
TH2F * fHVtxPocaRZ
 
TH1F * fHVtxFastX
 
TH1F * fHVtxFastY
 
TH1F * fHVtxFastZ
 
TH1F * fHVtxErrFastX
 
TH1F * fHVtxErrFastY
 
TH1F * fHVtxErrFastZ
 
TH1F * fHVtxPullFastX
 
TH1F * fHVtxPullFastY
 
TH1F * fHVtxPullFastZ
 
TH1F * fHVtxChi2Fast
 
TH1F * fHVtxChiProbFast
 
TH2F * fHVtxFastXY
 
TH2F * fHVtxFastRZ
 
TH1F * fHVtxFitX
 
TH1F * fHVtxFitY
 
TH1F * fHVtxFitZ
 
TH1F * fHVtxErrFitX
 
TH1F * fHVtxErrFitY
 
TH1F * fHVtxErrFitZ
 
TH1F * fHVtxPullFitX
 
TH1F * fHVtxPullFitY
 
TH1F * fHVtxPullFitZ
 
TH1F * fHVtxDiffFitPX
 
TH1F * fHVtxDiffFitPY
 
TH1F * fHVtxDiffFitPZ
 
TH1F * fHVtxDiffFitE
 
TH1F * fHVtxDiffFitThe
 
TH1F * fHVtxDiffFitPhi
 
TH1F * fHVtxPullFitPX
 
TH1F * fHVtxPullFitPY
 
TH1F * fHVtxPullFitPZ
 
TH1F * fHVtxPullFitE
 
TH1F * fHVtxChi2Fit
 
TH1F * fHVtxChiProbFit
 
TH2F * fHVtxFitXY
 
TH2F * fHVtxFitRZ
 
TH1F * fHVtxKinX
 
TH1F * fHVtxKinY
 
TH1F * fHVtxKinZ
 
TH1F * fHVtxErrKinX
 
TH1F * fHVtxErrKinY
 
TH1F * fHVtxErrKinZ
 
TH1F * fHVtxPullKinX
 
TH1F * fHVtxPullKinY
 
TH1F * fHVtxPullKinZ
 
TH1F * fHVtxDiffKinPX
 
TH1F * fHVtxDiffKinPY
 
TH1F * fHVtxDiffKinPZ
 
TH1F * fHVtxDiffKinE
 
TH1F * fHVtxDiffKinThe
 
TH1F * fHVtxDiffKinPhi
 
TH1F * fHVtxPullKinPX
 
TH1F * fHVtxPullKinPY
 
TH1F * fHVtxPullKinPZ
 
TH1F * fHVtxPullKinE
 
TH1F * fHVtxChi2Kin
 
TH1F * fHVtxChiProbKin
 
TH2F * fHVtxKinXY
 
TH2F * fHVtxKinRZ
 
TH1F * fHPrgPull0
 
TH1F * fHPrgPull1
 
TH1F * fHPrgPull2
 
TH1F * fHPrgPull3
 
TH1F * fHPrgPull4
 
TH1D * fHCpu
 
TStopwatch fSwAll
 
TStopwatch fSwPMT
 
TStopwatch fSwPoca
 
TStopwatch fSwPrgfast
 
TStopwatch fSwPrgfull
 
TStopwatch fSwKin
 
TClonesArray * fMcCands
 
TClonesArray * fCands
 
double fSigVx
 
double fSigVy
 
double fSigVz
 
double fSigPx
 
double fSigPy
 
double fSigPz
 
double fCharge
 
double fDtheta
 
int fPID
 
TParticlePDG * fPDG
 
int fNumTrk
 
int niter
 
int fNDF
 
int fSeed
 
TVector3 fVertex
 
double fWidx
 
double fWidy
 
double fWidz
 
double fPtMin
 
double fPtMax
 
int fVerbose
 

Private Member Functions

virtual void SetParContainers ()
 
 ClassDef (PndPmtTask, 1)
 

Detailed Description

Definition at line 17 of file PndPmtTask.h.

Constructor & Destructor Documentation

PndPmtTask::PndPmtTask ( )

Default constructor

Definition at line 31 of file PndPmtTask.cxx.

References fHistoList, and fSwAll.

31  : PndPmtPoormantracks() // : FairTask("Poorman Track Task")
32 {
33  fSwAll.Start();
34  fHistoList = new TList();
35 }
TList * fHistoList
Definition: PndPmtTask.h:42
TStopwatch fSwAll
Definition: PndPmtTask.h:92
PndPmtTask::~PndPmtTask ( )

Destructor

Definition at line 39 of file PndPmtTask.cxx.

39 { }

Member Function Documentation

PndPmtTask::ClassDef ( PndPmtTask  ,
 
)
private
void PndPmtPoormantracks::EnergyCorrelations ( )
inherited
void PndPmtPoormantracks::EnergyCorrelations ( RhoError covP4,
TLorentzVector  p4 
)
protectedinherited

Definition at line 147 of file PndPmtPoormantracks.cxx.

148 {
149  double invE=1/p4.E();
150  covP4[3][3] = (p4.X()*p4.X()*covP4[0][0]+p4.Y()*p4.Y()*covP4[1][1]+p4.Z()*p4.Z()*covP4[2][2])*invE*invE;
151  covP4[0][3] = covP4[3][0] = p4.X()*covP4[0][0]*invE;
152  covP4[1][3] = covP4[3][1] = p4.Y()*covP4[1][1]*invE;
153  covP4[2][3] = covP4[3][2] = p4.Z()*covP4[2][2]*invE;
154 // covP4[0][3] = covP4[3][0] = (p4.X()*covP4[0][0]+p4.Y()*covP4[0][1]+p4.Z()*covP4[0][2])*invE;
155 // covP4[1][3] = covP4[3][1] = (p4.X()*covP4[1][0]+p4.Y()*covP4[1][1]+p4.Z()*covP4[1][2])*invE;
156 // covP4[2][3] = covP4[3][2] = (p4.X()*covP4[2][0]+p4.Y()*covP4[2][1]+p4.Z()*covP4[2][2])*invE;
157 
158 }
void PndPmtTask::Exec ( Option_t *  opt)

Virtual method Exec

Definition at line 327 of file PndPmtTask.cxx.

References Bool_t, RhoCandidate::Charge(), RhoCandidate::Combine(), RhoCandidate::Cov7(), RhoCandidate::Daughter(), PndPmtPoormantracks::fCands, fHPrgPull0, fHPrgPull1, fHPrgPull2, fHPrgPull3, fHPrgPull4, fHVtxChi2Fast, fHVtxChi2Fit, fHVtxChi2Kin, fHVtxChiProbFast, fHVtxChiProbFit, fHVtxChiProbKin, fHVtxDiffE, fHVtxDiffFitE, fHVtxDiffFitPhi, fHVtxDiffFitPX, fHVtxDiffFitPY, fHVtxDiffFitPZ, fHVtxDiffFitThe, fHVtxDiffKinE, fHVtxDiffKinPhi, fHVtxDiffKinPX, fHVtxDiffKinPY, fHVtxDiffKinPZ, fHVtxDiffKinThe, fHVtxDiffPhi, fHVtxDiffPX, fHVtxDiffPY, fHVtxDiffPZ, fHVtxDiffThe, fHVtxDiffX, fHVtxDiffY, fHVtxDiffZ, fHVtxErrFastX, fHVtxErrFastY, fHVtxErrFastZ, fHVtxErrFitX, fHVtxErrFitY, fHVtxErrFitZ, fHVtxErrKinX, fHVtxErrKinY, fHVtxErrKinZ, fHVtxFastRZ, fHVtxFastX, fHVtxFastXY, fHVtxFastY, fHVtxFastZ, fHVtxFitRZ, fHVtxFitX, fHVtxFitXY, fHVtxFitY, fHVtxFitZ, fHVtxKinRZ, fHVtxKinX, fHVtxKinXY, fHVtxKinY, fHVtxKinZ, fHVtxPocaRZ, fHVtxPocas, fHVtxPocaX, fHVtxPocaXY, fHVtxPocaY, fHVtxPocaZ, fHVtxPullE, fHVtxPullFastX, fHVtxPullFastY, fHVtxPullFastZ, fHVtxPullFitE, fHVtxPullFitPX, fHVtxPullFitPY, fHVtxPullFitPZ, fHVtxPullFitX, fHVtxPullFitY, fHVtxPullFitZ, fHVtxPullKinE, fHVtxPullKinPX, fHVtxPullKinPY, fHVtxPullKinPZ, fHVtxPullKinX, fHVtxPullKinY, fHVtxPullKinZ, fHVtxPullPocaX, fHVtxPullPocaY, fHVtxPullPocaZ, fHVtxPullPX, fHVtxPullPY, fHVtxPullPZ, RhoFitterBase::Fit(), RhoKalmanVtxFitter::FitVertexFast(), fSwKin, fSwPMT, fSwPoca, fSwPrgfast, fSwPrgfull, PndPmtPoormantracks::fVerbose, PndPmtPoormantracks::fVertex, PndPmtPoormantracks::fWidx, PndPmtPoormantracks::fWidy, PndPmtPoormantracks::fWidz, RhoFitterBase::GetChi2(), RhoCandidate::GetFit(), RhoCandidate::GetMcTruth(), RhoVtxPoca::GetPocaVtx(), RhoCandidate::GetPosition(), RhoFitterBase::GetProb(), mom, mommc, RhoCandidate::NDaughters(), RhoCandidate::P4(), RhoCandidate::P4Cov(), PndPmtPoormantracks::PoorManTracks(), RhoCandidate::Pos(), PndPmtPoormantracks::RollVertexBox(), RhoKalmanVtxFitter::SetExpansionPoint(), RhoKalmanVtxFitter::SetNIterations(), RhoKinVtxFitter::SetNIterationsExact(), RhoKalmanVtxFitter::SetSilent(), and sqrt().

Referenced by runpmt().

327  {
328 
329 
330  RhoCandidate *aCand=0,*bCand=0,*cCand=0,*dCand=0;
331  RhoCandidate *tmpcand=0,*mccand=0;
332  TVector3 vertexMC,vertexPoc,vertexFast,vertexFit,vertexKin,vertexDiff,vertexDiffFast,vertexDiffFit,vertexDiffKin;
333  TLorentzVector mom,mommc,momdiff;
334  const TVector3 nullpunkt(0.,0.,0.);
335  double rnd1=0.,rnd2=0.,rnd3=0.;
336  RhoError amomcov(4);
337  TMatrixD aposcov(3,3);
338  TMatrixD helixCov(5,5);
339  TMatrixD jacobian(5,7);
340  Float_t mcparams[5];
341  Float_t helixparams[5];
342  TMatrixD covV(3,3);
343  TMatrixD covVfit(3,3);
344 
345  //for(int i=0;i<nevt;i++)
346  //{
347  // printf("Event %i of %i. (seed=%i)\n",i,nevt,ranseed);
348  RhoCandidate *combiCand=0,*combiCand1=0,*combiCand2=0;
349  vertexMC = RollVertexBox(fWidx,fWidy,fWidz);
350  fVertex=vertexMC;
351 
352  fSwPMT.Start(kFALSE);
353  PoorManTracks();
354  fSwPMT.Stop();
355  if (fCands->GetEntriesFast()<2) {
356  cout<<"Warning: too few particles created."<<endl;
357  return;
358  }
359 
360  aCand=(RhoCandidate*)fCands->At(0);
361  bCand=(RhoCandidate*)fCands->At(1);
362  if(fCands->GetEntriesFast()==3)
363  {
364  cCand=(RhoCandidate*)fCands->At(2);
365  combiCand = aCand->Combine(bCand,cCand);
366  combiCand1 = aCand->Combine(bCand,cCand);
367  combiCand2 = aCand->Combine(bCand,cCand);
368  }else if(fCands->GetEntriesFast()==4)
369  {
370  cCand=(RhoCandidate*)fCands->At(2);
371  dCand=(RhoCandidate*)fCands->At(3);
372  combiCand = aCand->Combine(bCand,cCand,dCand);
373  combiCand1 = aCand->Combine(bCand,cCand,dCand);
374  combiCand2 = aCand->Combine(bCand,cCand,dCand);
375  }else{
376  combiCand = aCand->Combine(bCand);
377  combiCand1 = aCand->Combine(bCand);
378  combiCand2 = aCand->Combine(bCand);
379  }
380 
381  if(fVerbose>1) cout<<"aCand, bCand, comboCand, aPos, bPos, combipos"<<endl;
382  if(fVerbose>1) cout<<*aCand<<endl;
383  if(fVerbose>1) cout<<*bCand<<endl;
384  if(fVerbose>1) cout<<*combiCand<<endl;
385  if(fVerbose>1) aCand->GetPosition().Print();
386  if(fVerbose>1) bCand->GetPosition().Print();
387  if(fVerbose>1) combiCand->GetPosition().Print();
388 
389 
390  // CLEAN
391  for(int k=0;k<combiCand->NDaughters();k++)
392  {
393  tmpcand = combiCand->Daughter(k);
394  mccand = tmpcand->GetMcTruth();
395 
396  vertexDiff=mccand->Pos();vertexDiff-=tmpcand->Pos();
397  fHVtxDiffX->Fill(vertexDiff.X());
398  fHVtxDiffY->Fill(vertexDiff.Y());
399  fHVtxDiffZ->Fill(vertexDiff.Z());
400 
401  mommc=mccand->P4();
402  mom=tmpcand->P4();
403  momdiff=mommc-mom;
404  amomcov=tmpcand->P4Cov();
405  fHVtxDiffPX->Fill(momdiff.X());
406  fHVtxDiffPY->Fill(momdiff.Y());
407  fHVtxDiffPZ->Fill(momdiff.Z());
408  fHVtxDiffE->Fill(momdiff.E());
409 
410  fHVtxPullPX->Fill(momdiff.X()/sqrt(amomcov[0][0]));
411  fHVtxPullPY->Fill(momdiff.Y()/sqrt(amomcov[1][1]));
412  fHVtxPullPZ->Fill(momdiff.Z()/sqrt(amomcov[2][2]));
413  fHVtxPullE->Fill(momdiff.E()/sqrt(amomcov[3][3]));
414 
415  fHVtxDiffThe->Fill(mommc.Theta()-mom.Theta());
416  fHVtxDiffPhi->Fill(mommc.Phi()-mom.Phi());
417 
418  }
419 
420  // ********** POCA
421  RhoVtxPoca vPoca;
422  vertexPoc=vertexMC; //seed
423  if(fVerbose>0) cout<<"poca "<<flush;
424  fSwPoca.Start(kFALSE);
425  double dist = vPoca.GetPocaVtx(vertexPoc,combiCand);
426  fSwPoca.Stop();
427  if(fVerbose>0) cout<<" - Dist = "<<dist<<" \t";if(fVerbose>1)cout<<endl;
428  vertexDiff=vertexMC - vertexPoc;
429  if(fVerbose>1) vertexMC.Print();
430  if(fVerbose>1) vertexPoc.Print();
431  if(fVerbose>1) vertexDiff.Print();
432 
433  fHVtxPocaX->Fill(vertexDiff.X());
434  fHVtxPocaY->Fill(vertexDiff.Y());
435  fHVtxPocaZ->Fill(vertexDiff.Z());
436  fHVtxPocaXY->Fill(vertexDiff.X(),vertexDiff.Y());
437  fHVtxPocaRZ->Fill(vertexDiff.Z(),vertexMC.Perp()-vertexPoc.Perp());
438  fHVtxPocas->Fill(dist);
439  fHVtxPullPocaX->Fill(vertexDiff.X()/dist);
440  fHVtxPullPocaY->Fill(vertexDiff.Y()/dist);
441  fHVtxPullPocaZ->Fill(vertexDiff.Z()/dist);
442 
443  // ********** FAST FIT
444  RhoKalmanVtxFitter vFastter(combiCand);
445  vFastter.SetSilent();
446  //vFastter.SetDebug();
447  //PndAnalysisCalcTools::SetVerbose(3);
448  if(fVerbose>0) cout<<"prg "<<flush;
449  vertexFast=nullpunkt; //seed
450  double chiq = -5454;
451  vFastter.SetExpansionPoint(vertexFast);
452  fSwPrgfast.Start(kFALSE);
453  chiq = vFastter.FitVertexFast(vertexFast,covV,false,2); // 2 iterations, don't skip cov
454  fSwPrgfast.Stop();
455  if (chiq>=0){
456  if(fVerbose>0) cout<<" - chiq = "<<chiq<<" \t";if(fVerbose>1)cout<<endl;
457 
458  fHVtxChi2Fast->Fill(vFastter.GetChi2());
459  fHVtxChiProbFast->Fill(vFastter.GetProb());
460 
461  vertexDiffFast=vertexMC - vertexFast;
462  if(fVerbose>1) vertexMC.Print();
463  if(fVerbose>1) vertexFast.Print();
464  if(fVerbose>0) vertexDiffFast.Print();
465 
466  fHVtxFastX->Fill(vertexDiffFast.X());
467  fHVtxFastY->Fill(vertexDiffFast.Y());
468  fHVtxFastZ->Fill(vertexDiffFast.Z());
469  fHVtxFastXY->Fill(vertexDiffFast.X(),vertexDiffFast.Y());
470  fHVtxFastRZ->Fill(vertexDiffFast.Z(),vertexMC.Perp()-vertexFast.Perp());
471 
472  fHVtxErrFastX->Fill(sqrt(covV[0][0]));
473  fHVtxErrFastY->Fill(sqrt(covV[1][1]));
474  fHVtxErrFastZ->Fill(sqrt(covV[2][2]));
475  fHVtxPullFastX->Fill(vertexDiffFast.X()/sqrt(covV[0][0]));
476  fHVtxPullFastY->Fill(vertexDiffFast.Y()/sqrt(covV[1][1]));
477  fHVtxPullFastZ->Fill(vertexDiffFast.Z()/sqrt(covV[2][2]));
478  }
479  //vFastter.SetSilent();
480  //PndAnalysisCalcTools::SetVerbose(0);
481 
482  // ********** FULL FIT
483  RhoKalmanVtxFitter vFitter(combiCand1);
484  vFitter.SetSilent();
485  //PndAnalysisCalcTools::SetVerbose(5);
486  //if(laut)vFitter.SetDebug(true);
487  vertexFit=nullpunkt; //seed
488  vFitter.SetNIterations(2);
489  if(fVerbose>0) cout<<"prg "<<flush;
490  //if(laut>0) PndAnalysisCalcTools::SetVerbose(3);
491  fSwPrgfull.Start(kFALSE);
492  bool stat = vFitter.Fit();
493  fSwPrgfull.Stop();
494  //if(laut>0) PndAnalysisCalcTools::SetVerbose(0);
495  //if(fVerbose>0) cout<<" - chiq = "<<chiqfit<<" \t"<<flush;if(fVerbose>1)cout<<endl;
496  if (stat)
497  {
498  //PndAnalysisCalcTools::SetVerbose(0);
499  // fHVtxChi2Fit->Fill(chiqfit/fNDF);
500  // fHVtxChiProbFit->Fill(TMath::Prob(chiqfit,fNDF));
501  fHVtxChi2Fit->Fill(vFitter.GetChi2());
502  fHVtxChiProbFit->Fill(vFitter.GetProb());
503 
504  vertexFit=combiCand1->GetFit()->DecayVtx();
505  covVfit=combiCand1->GetFit()->DecayVtx().CovMatrix();
506  vertexDiffFit=vertexMC - vertexFit;
507  if(fVerbose>1) vertexMC.Print();
508  if(fVerbose>1) vertexFit.Print();
509  if(fVerbose>1) vertexDiffFit.Print();
510 
511  fHVtxFitX->Fill(vertexDiffFit.X());
512  fHVtxFitY->Fill(vertexDiffFit.Y());
513  fHVtxFitZ->Fill(vertexDiffFit.Z());
514  fHVtxFitXY->Fill(vertexDiffFit.X(),vertexDiffFit.Y());
515  fHVtxFitRZ->Fill(vertexDiffFit.Z(),vertexMC.Perp()-vertexFit.Perp());
516 
517  fHVtxErrFitX->Fill(sqrt(covVfit[0][0]));
518  fHVtxErrFitY->Fill(sqrt(covVfit[1][1]));
519  fHVtxErrFitZ->Fill(sqrt(covVfit[2][2]));
520  fHVtxPullFitX->Fill(vertexDiffFit.X()/sqrt(covVfit[0][0]));
521  fHVtxPullFitY->Fill(vertexDiffFit.Y()/sqrt(covVfit[1][1]));
522  fHVtxPullFitZ->Fill(vertexDiffFit.Z()/sqrt(covVfit[2][2]));
523 
524  for(int k=0;k<combiCand1->NDaughters();k++)
525  {
526  tmpcand = combiCand1->Daughter(k);
527  mccand = tmpcand->GetMcTruth();
528  tmpcand = tmpcand->GetFit();
529  mommc=mccand->P4();
530  mom=tmpcand->P4();
531  momdiff=mommc-mom;
532  amomcov=tmpcand->P4Cov();
533  fHVtxDiffFitPX->Fill(momdiff.X());
534  fHVtxDiffFitPY->Fill(momdiff.Y());
535  fHVtxDiffFitPZ->Fill(momdiff.Z());
536  fHVtxDiffFitE->Fill(momdiff.E());
537 
538  fHVtxPullFitPX->Fill(momdiff.X()/sqrt(amomcov[0][0]));
539  fHVtxPullFitPY->Fill(momdiff.Y()/sqrt(amomcov[1][1]));
540  fHVtxPullFitPZ->Fill(momdiff.Z()/sqrt(amomcov[2][2]));
541  fHVtxPullFitE->Fill(momdiff.E()/sqrt(amomcov[3][3]));
542 
543  fHVtxDiffFitThe->Fill(mommc.Theta()-mom.Theta());
544  fHVtxDiffFitPhi->Fill(mommc.Phi()-mom.Phi());
545  // Now check the PRG description....
546  Bool_t prgcheckmc = PndAnalysisCalcTools::P7toPRG(mccand->Pos(),mccand->P4(),mccand->Charge(),mccand->Cov7(),nullpunkt, mcparams, helixCov, jacobian, kFALSE);
547  Bool_t prgchecktc = PndAnalysisCalcTools::P7toPRG(tmpcand->Pos(),tmpcand->P4(),tmpcand->Charge(),tmpcand->Cov7(),nullpunkt, helixparams, helixCov, jacobian, kFALSE);
548  fHPrgPull0->Fill((mcparams[0]-helixparams[0])/sqrt(helixCov[0][0]));
549  fHPrgPull1->Fill((mcparams[1]-helixparams[1])/sqrt(helixCov[1][1]));
550  fHPrgPull2->Fill((mcparams[2]-helixparams[2])/sqrt(helixCov[2][2]));
551  fHPrgPull3->Fill((mcparams[3]-helixparams[3])/sqrt(helixCov[3][3]));
552  fHPrgPull4->Fill((mcparams[4]-helixparams[4])/sqrt(helixCov[4][4]));
553  }
554  }
555 
556  // ********** Kin FIT
557  RhoKinVtxFitter kFitter(combiCand2);
558  kFitter.SetNIterationsExact(2);
559  vertexFit=nullpunkt; //seed
560  if(fVerbose>0) cout<<"kin "<<flush;
561  fSwKin.Start(kFALSE);
562  kFitter.Fit();
563  fSwKin.Stop();
564  bool ksta = kFitter.GetChi2();
565  //if(laut>0) PndAnalysisCalcTools::SetVerbose(0);
566  //if(fVerbose>0) cout<<" - chiq = "<<chiqfit<<" \t"<<flush;if(fVerbose>1)cout<<endl;
567  if (ksta)
568  {
569  //PndAnalysisCalcTools::SetVerbose(0);
570  vertexKin=combiCand2->GetFit()->DecayVtx();
571  aposcov=combiCand2->GetFit()->DecayVtx().CovMatrix();
572  fHVtxChi2Kin->Fill(kFitter.GetChi2());
573  fHVtxChiProbKin->Fill(kFitter.GetProb());
574 
575  vertexDiffKin=vertexMC - vertexKin;
576  if(fVerbose>1) vertexMC.Print();
577  if(fVerbose>1) vertexKin.Print();
578  if(fVerbose>0) vertexDiffKin.Print();
579 
580  fHVtxKinX->Fill(vertexDiffKin.X());
581  fHVtxKinY->Fill(vertexDiffKin.Y());
582  fHVtxKinZ->Fill(vertexDiffKin.Z());
583  fHVtxKinXY->Fill(vertexDiffKin.X(),vertexDiffKin.Y());
584  fHVtxKinRZ->Fill(vertexDiffKin.Z(),vertexMC.Perp()-vertexKin.Perp());
585 
586  fHVtxErrKinX->Fill(sqrt(aposcov[0][0]));
587  fHVtxErrKinY->Fill(sqrt(aposcov[1][1]));
588  fHVtxErrKinZ->Fill(sqrt(aposcov[2][2]));
589  fHVtxPullKinX->Fill(vertexDiffKin.X()/sqrt(aposcov[0][0]));
590  fHVtxPullKinY->Fill(vertexDiffKin.Y()/sqrt(aposcov[1][1]));
591  fHVtxPullKinZ->Fill(vertexDiffKin.Z()/sqrt(aposcov[2][2]));
592 
593  for(int k=0;k<combiCand2->NDaughters();k++)
594  {
595  tmpcand = combiCand2->Daughter(k);
596  mccand = tmpcand->GetMcTruth();
597  tmpcand = tmpcand->GetFit();
598  mommc=mccand->P4();
599  mom=tmpcand->P4();
600  momdiff=mommc-mom;
601  amomcov=tmpcand->P4Cov();
602  fHVtxDiffKinPX->Fill(momdiff.X());
603  fHVtxDiffKinPY->Fill(momdiff.Y());
604  fHVtxDiffKinPZ->Fill(momdiff.Z());
605  fHVtxDiffKinE->Fill(momdiff.E());
606 
607  fHVtxPullKinPX->Fill(momdiff.X()/sqrt(amomcov[0][0]));
608  fHVtxPullKinPY->Fill(momdiff.Y()/sqrt(amomcov[1][1]));
609  fHVtxPullKinPZ->Fill(momdiff.Z()/sqrt(amomcov[2][2]));
610  fHVtxPullKinE->Fill(momdiff.E()/sqrt(amomcov[3][3]));
611 
612  fHVtxDiffKinThe->Fill(mommc.Theta()-mom.Theta());
613  fHVtxDiffKinPhi->Fill(mommc.Phi()-mom.Phi());
614  }
615  }
616  // } // event loop
617 
618  //cout<<" ---------- calculations done, writing histograms."<<endl;
619  //manipulate & fit histos now
620 
621 
622 }
TH1F * fHVtxPullFitE
Definition: PndPmtTask.h:65
TH1F * fHVtxErrFitZ
Definition: PndPmtTask.h:65
TH1F * fHVtxPullFitPX
Definition: PndPmtTask.h:65
TH1F * fHVtxPocaX
Definition: PndPmtTask.h:50
RhoCandidate * Combine(RhoCandidate *c)
TH1F * fHVtxKinZ
Definition: PndPmtTask.h:77
TH1F * fHVtxPullKinZ
Definition: PndPmtTask.h:77
TH1F * fHVtxDiffKinE
Definition: PndPmtTask.h:77
TH1F * fHVtxErrFastY
Definition: PndPmtTask.h:57
TH1F * fHVtxErrFastZ
Definition: PndPmtTask.h:57
TH1F * fHVtxDiffPY
Definition: PndPmtTask.h:44
TH1F * fHVtxErrKinZ
Definition: PndPmtTask.h:77
friend F32vec4 sqrt(const F32vec4 &a)
Definition: P4_F32vec4.h:29
TH2F * fHVtxPocaXY
Definition: PndPmtTask.h:54
TH1F * fHVtxPullPZ
Definition: PndPmtTask.h:44
TH2F * fHVtxKinXY
Definition: PndPmtTask.h:85
TH1F * fHVtxPocaZ
Definition: PndPmtTask.h:50
TH1F * fHVtxDiffKinPhi
Definition: PndPmtTask.h:77
TVector3 Pos() const
Definition: RhoCandidate.h:186
TH1F * fHVtxDiffPhi
Definition: PndPmtTask.h:44
TStopwatch fSwPrgfull
Definition: PndPmtTask.h:92
TH1F * fHVtxErrFitX
Definition: PndPmtTask.h:65
TH1F * fHPrgPull1
Definition: PndPmtTask.h:88
TH1F * fHVtxKinX
Definition: PndPmtTask.h:77
TH1F * fHVtxDiffFitPY
Definition: PndPmtTask.h:65
RhoCandidate * Daughter(Int_t n)
TVector3 mommc
Definition: anaLmdDigi.C:64
TH1F * fHVtxDiffE
Definition: PndPmtTask.h:44
TH1F * fHVtxDiffFitPX
Definition: PndPmtTask.h:65
Double_t mom
Definition: plot_dirc.C:14
TH1F * fHVtxPullFitX
Definition: PndPmtTask.h:65
TH1F * fHVtxErrFastX
Definition: PndPmtTask.h:57
TH1F * fHVtxPullPocaX
Definition: PndPmtTask.h:50
TH2F * fHVtxKinRZ
Definition: PndPmtTask.h:85
TH1F * fHVtxDiffKinThe
Definition: PndPmtTask.h:77
TH1F * fHVtxPullFitPY
Definition: PndPmtTask.h:65
TH1F * fHVtxPocas
Definition: PndPmtTask.h:50
TH2F * fHVtxFitRZ
Definition: PndPmtTask.h:73
TH1F * fHVtxFastX
Definition: PndPmtTask.h:57
TH1F * fHVtxChiProbKin
Definition: PndPmtTask.h:77
TH1F * fHVtxPullE
Definition: PndPmtTask.h:44
TH1F * fHVtxErrKinX
Definition: PndPmtTask.h:77
TH1F * fHVtxDiffPZ
Definition: PndPmtTask.h:44
TH1F * fHVtxDiffPX
Definition: PndPmtTask.h:44
TH1F * fHVtxPullFastX
Definition: PndPmtTask.h:57
TVector3 GetPosition() const
Definition: RhoCandidate.h:185
TH1F * fHVtxChiProbFit
Definition: PndPmtTask.h:65
Double_t GetPocaVtx(TVector3 &vertex, RhoCandidate *composite)
Definition: RhoVtxPoca.cxx:27
TH1F * fHVtxPullKinPZ
Definition: PndPmtTask.h:77
TH1F * fHVtxDiffKinPY
Definition: PndPmtTask.h:77
TH1F * fHVtxPullPocaY
Definition: PndPmtTask.h:50
TH2F * fHVtxPocaRZ
Definition: PndPmtTask.h:54
TH1F * fHVtxDiffThe
Definition: PndPmtTask.h:44
TH1F * fHVtxFastY
Definition: PndPmtTask.h:57
TH1F * fHVtxChi2Fit
Definition: PndPmtTask.h:65
TH1F * fHVtxKinY
Definition: PndPmtTask.h:77
TH1F * fHVtxPullPX
Definition: PndPmtTask.h:44
TH1F * fHVtxPullKinE
Definition: PndPmtTask.h:77
TLorentzVector P4() const
Definition: RhoCandidate.h:195
TH1F * fHVtxPullKinPX
Definition: PndPmtTask.h:77
RhoCandidate * GetMcTruth() const
Definition: RhoCandidate.h:437
TH1F * fHVtxFitX
Definition: PndPmtTask.h:65
TH1F * fHPrgPull0
Definition: PndPmtTask.h:88
TH1F * fHVtxPullFastY
Definition: PndPmtTask.h:57
TH1F * fHVtxFastZ
Definition: PndPmtTask.h:57
RhoError P4Cov() const
TH1F * fHVtxPullPocaZ
Definition: PndPmtTask.h:50
TMatrixD Cov7() const
TH1F * fHVtxDiffFitE
Definition: PndPmtTask.h:65
TH1F * fHVtxDiffKinPX
Definition: PndPmtTask.h:77
TStopwatch fSwPrgfast
Definition: PndPmtTask.h:92
TH1F * fHVtxChi2Fast
Definition: PndPmtTask.h:57
TH1F * fHPrgPull2
Definition: PndPmtTask.h:88
TH1F * fHVtxChiProbFast
Definition: PndPmtTask.h:57
TH1F * fHVtxPullFitZ
Definition: PndPmtTask.h:65
TH1F * fHVtxPullFastZ
Definition: PndPmtTask.h:57
TH1F * fHVtxPullFitPZ
Definition: PndPmtTask.h:65
Int_t NDaughters() const
RhoCandidate * GetFit() const
Definition: RhoCandidate.h:293
Double_t Charge() const
Definition: RhoCandidate.h:184
TH2F * fHVtxFitXY
Definition: PndPmtTask.h:73
TH1F * fHVtxChi2Kin
Definition: PndPmtTask.h:77
TH1F * fHVtxPullKinPY
Definition: PndPmtTask.h:77
TH1F * fHVtxDiffFitPZ
Definition: PndPmtTask.h:65
TH1F * fHVtxDiffZ
Definition: PndPmtTask.h:44
TH1F * fHPrgPull3
Definition: PndPmtTask.h:88
TH1F * fHVtxPullFitY
Definition: PndPmtTask.h:65
TH1F * fHVtxPocaY
Definition: PndPmtTask.h:50
TH1F * fHVtxErrKinY
Definition: PndPmtTask.h:77
TH1F * fHVtxErrFitY
Definition: PndPmtTask.h:65
TH1F * fHVtxDiffFitPhi
Definition: PndPmtTask.h:65
TH1F * fHVtxFitZ
Definition: PndPmtTask.h:65
TH1F * fHVtxDiffKinPZ
Definition: PndPmtTask.h:77
TH1F * fHVtxDiffFitThe
Definition: PndPmtTask.h:65
TH1F * fHVtxFitY
Definition: PndPmtTask.h:65
TH1F * fHVtxDiffY
Definition: PndPmtTask.h:44
TH1F * fHVtxPullKinY
Definition: PndPmtTask.h:77
TH1F * fHVtxPullPY
Definition: PndPmtTask.h:44
TH1F * fHVtxDiffX
Definition: PndPmtTask.h:44
TStopwatch fSwKin
Definition: PndPmtTask.h:92
TH1F * fHPrgPull4
Definition: PndPmtTask.h:88
TH2F * fHVtxFastXY
Definition: PndPmtTask.h:62
TMatrixT< double > TMatrixD
Definition: PndLmdDim.h:52
TVector3 RollVertexBox(double widx, double widy, double widz)
TH1F * fHVtxPullKinX
Definition: PndPmtTask.h:77
TStopwatch fSwPoca
Definition: PndPmtTask.h:92
TH2F * fHVtxFastRZ
Definition: PndPmtTask.h:62
TStopwatch fSwPMT
Definition: PndPmtTask.h:92
void PndPmtTask::Finish ( )

Definition at line 625 of file PndPmtTask.cxx.

References fHCpu, fHistoList, fSwAll, fSwKin, fSwPMT, fSwPoca, fSwPrgfast, fSwPrgfull, and TString.

Referenced by runpmt().

626 {
627  fSwAll.Stop();
628  //Read Stopwatches
629  //fHCpu->Fill("PMT",fSwPMT.RealTime()/fSwAll.RealTime());
630  //fHCpu->Fill("POCA",fSwPoca.RealTime()/fSwAll.RealTime());
631  //fHCpu->Fill("PRG Fast",fSwPrgfast.RealTime()/fSwAll.RealTime());
632  //fHCpu->Fill("PRG Full",fSwPrgfull.RealTime()/fSwAll.RealTime());
633  //fHCpu->Fill("KinVtx",fSwKin.RealTime()/fSwAll.RealTime());
634  fHCpu->Fill("PMT",1000*fSwPMT.RealTime()/fSwPMT.Counter());
635  fHCpu->Fill("POCA",1000*fSwPoca.RealTime()/fSwPMT.Counter());
636  fHCpu->Fill("PRG Fast",1000*fSwPrgfast.RealTime()/fSwPMT.Counter());
637  fHCpu->Fill("PRG Full",1000*fSwPrgfull.RealTime()/fSwPMT.Counter());
638  fHCpu->Fill("KinVtx",1000*fSwKin.RealTime()/fSwPMT.Counter());
639 
640 
641  //Write and Plot all histos from List
642  TString hfile="Data/HistoVertexing";
643  // if(seed>=0){hfile+="-";hfile+=ranseed;}
644  hfile+=".root";
645  TFile* histofile = new TFile(hfile.Data(),"RECREATE");
646  histofile->cd();
647  TListIter iter(fHistoList);
648  TH1* tmph=NULL;
649  while( tmph=(TH1*)iter() ) tmph->Write();
650  histofile->Close();
651 }
TH1D * fHCpu
Definition: PndPmtTask.h:90
TStopwatch fSwPrgfull
Definition: PndPmtTask.h:92
TList * fHistoList
Definition: PndPmtTask.h:42
TStopwatch fSwAll
Definition: PndPmtTask.h:92
TStopwatch fSwPrgfast
Definition: PndPmtTask.h:92
TStopwatch fSwKin
Definition: PndPmtTask.h:92
TStopwatch fSwPoca
Definition: PndPmtTask.h:92
TStopwatch fSwPMT
Definition: PndPmtTask.h:92
void PndPmtTask::Init ( )

Virtual method Init

Definition at line 46 of file PndPmtTask.cxx.

References fHCpu, fHistoList, fHPrgPull0, fHPrgPull1, fHPrgPull2, fHPrgPull3, fHPrgPull4, fHVtxChi2Fast, fHVtxChi2Fit, fHVtxChi2Kin, fHVtxChiProbFast, fHVtxChiProbFit, fHVtxChiProbKin, fHVtxDiffE, fHVtxDiffFitE, fHVtxDiffFitPhi, fHVtxDiffFitPX, fHVtxDiffFitPY, fHVtxDiffFitPZ, fHVtxDiffFitThe, fHVtxDiffKinE, fHVtxDiffKinPhi, fHVtxDiffKinPX, fHVtxDiffKinPY, fHVtxDiffKinPZ, fHVtxDiffKinThe, fHVtxDiffPhi, fHVtxDiffPX, fHVtxDiffPY, fHVtxDiffPZ, fHVtxDiffThe, fHVtxDiffX, fHVtxDiffY, fHVtxDiffZ, fHVtxErrFastX, fHVtxErrFastY, fHVtxErrFastZ, fHVtxErrFitX, fHVtxErrFitY, fHVtxErrFitZ, fHVtxErrKinX, fHVtxErrKinY, fHVtxErrKinZ, fHVtxFastRZ, fHVtxFastX, fHVtxFastXY, fHVtxFastY, fHVtxFastZ, fHVtxFitRZ, fHVtxFitX, fHVtxFitXY, fHVtxFitY, fHVtxFitZ, fHVtxKinRZ, fHVtxKinX, fHVtxKinXY, fHVtxKinY, fHVtxKinZ, fHVtxPocaEmpty, fHVtxPocaRZ, fHVtxPocas, fHVtxPocaX, fHVtxPocaXY, fHVtxPocaY, fHVtxPocaZ, fHVtxPullE, fHVtxPullFastX, fHVtxPullFastY, fHVtxPullFastZ, fHVtxPullFitE, fHVtxPullFitPX, fHVtxPullFitPY, fHVtxPullFitPZ, fHVtxPullFitX, fHVtxPullFitY, fHVtxPullFitZ, fHVtxPullKinE, fHVtxPullKinPX, fHVtxPullKinPY, fHVtxPullKinPZ, fHVtxPullKinX, fHVtxPullKinY, fHVtxPullKinZ, fHVtxPullPocaX, fHVtxPullPocaY, fHVtxPullPocaZ, fHVtxPullPX, fHVtxPullPY, fHVtxPullPZ, RhoCalculationTools::ForceConstantBz(), PndPmtPoormantracks::fSeed, fSwKin, fSwPMT, fSwPoca, fSwPrgfast, fSwPrgfull, PndPmtPoormantracks::fWidx, PndPmtPoormantracks::fWidy, PndPmtPoormantracks::fWidz, max(), min(), and SetVerbose().

Referenced by runpmt().

46  {
47 
48  gRandom->SetSeed(fSeed);
49  RhoCalculationTools::ForceConstantBz(20.); // [kGs]=[0.1T]
51 
52  //PArameters
53  fWidx=1.5,
54  fWidy=1.5,
55  fWidz=1.5; //[cm] maximum vertex position off origin
56 
57  int bins=100;
58  double min=0,max=4.5,mdf=2.0; // GeV/c
59  double min2=0.13,max2=0.15;
60  double min3=1.,max3=1.5;
61  double max4=0.3;//cm
62  double minchi = -0.05;
63  double maxchi = 2.5;
64  double vrange = 0.05; // cm
65  double pullrange =4.;
66  double momrange=0.1;//GeV/c
67  double angdiffran=0.05; //rad
68 
69 
70  // NO FIT
71  fHVtxDiffX=new TH1F("hvtxDiffx","Vertex Smearing;(x_{mc}-x)/cm",bins,-vrange,vrange);
72  fHVtxDiffY=new TH1F("hvtxDiffy","Vertex Smearing;(y_{mc}-y)/cm",bins,-vrange,vrange);
73  fHVtxDiffZ=new TH1F("hvtxDiffz","Vertex Smearing;(z_{mc}-z)/cm",bins,-vrange,vrange);
74 
75  fHVtxDiffPX=new TH1F("hvtxdiffpx","Momentum reco;(p_{x,mc}-p_{x} / GeV/c)",bins,-momrange,momrange);
76  fHVtxDiffPY=new TH1F("hvtxdiffpy","Momentum reco;(p_{y,mc}-p_{y} / GeV/c)",bins,-momrange,momrange);
77  fHVtxDiffPZ=new TH1F("hvtxdiffpz","Momentum reco;(p_{z,mc}-p_{z}) / GeV/c",bins,-momrange,momrange);
78  fHVtxDiffE=new TH1F("hvtxdiffe","Energy reco;(E_{mc}-E) / GeV",bins,-momrange,momrange);
79 
80  fHVtxPullPX=new TH1F("hvtxpullpx","Momentum pull distribution reco;(p_{x,mc}-p_{x})/#sigma_{p_{x}}",bins,-pullrange,pullrange);
81  fHVtxPullPY=new TH1F("hvtxpullpy","Momentum pull distribution reco;(p_{y,mc}-p_{y})/#sigma_{p_{y}}",bins,-pullrange,pullrange);
82  fHVtxPullPZ=new TH1F("hvtxpullpz","Momentum pull distribution reco;(p_{z,mc}-p_{z})/#sigma_{p_{z}}",bins,-pullrange,pullrange);
83  fHVtxPullE=new TH1F("hvtxpulle","Energy pull distribution reco;(E_{mc}-E)/#sigma_{E}",bins,-pullrange,pullrange);
84 
85  fHVtxDiffThe=new TH1F("hvtxdiffthe","Momentum reco;(#Theta_{mc}-#Theta}) / GeV/c",bins,-angdiffran,angdiffran);
86  fHVtxDiffPhi=new TH1F("hvtxdiffphi","Momentum reco;(#Phi_{mc}-#Phi}) / GeV/c",bins,-angdiffran,angdiffran);
87 
88  // POCA
89 
90  fHVtxPocaX=new TH1F("hvtxPocax","Vertex POCA;(x_{mc}-x)/cm",bins,-vrange,vrange);
91  fHVtxPocaY=new TH1F("hvtxPocay","Vertex POCA;(y_{mc}-y)/cm",bins,-vrange,vrange);
92  fHVtxPocaZ=new TH1F("hvtxPocaz","Vertex POCA;(z_{mc}-z)/cm",bins,-vrange,vrange);
93 
94  fHVtxPocaXY=new TH2F("hvtxPocaxy","Vertex POCA X-Y view;(x_{mc}-x)/#mum;(y_{mc}-y)/cm",bins,-vrange,vrange,bins,-vrange,vrange);
95  fHVtxPocaRZ=new TH2F("hvtxPocarz","Vertex POCA R-Z view;(z_{mc}-z)/#mum;(r_{mc}-r)/cm",bins,-vrange,vrange,bins,-vrange,vrange);
96 
97  fHVtxPullPocaX=new TH1F("hvtxpullpocax","Vertex pull distribution POCA;(x_{mc}-x)/#sigma_{x}",bins,-pullrange,pullrange);
98  fHVtxPullPocaY=new TH1F("hvtxpullpocay","Vertex pull distribution POCA;(y_{mc}-y)/#sigma_{y}",bins,-pullrange,pullrange);
99  fHVtxPullPocaZ=new TH1F("hvtxpullpocaz","Vertex pull distribution POCA;(z_{mc}-z)/#sigma_{z}",bins,-pullrange,pullrange);
100 
101  fHVtxPocas=new TH1F("hvtxpocas","Vertex POCA D value;D/cm",bins,0.,vrange);
102  fHVtxPocaEmpty=new TH1F("hvtxcpocaempty","",0,0.,1.);
103 
104  // FAST FIT
105 
106  fHVtxFastX=new TH1F("hvtxFastx","Vertex fast fit;(x_{mc}-x)/cm",bins,-vrange,vrange);
107  fHVtxFastY=new TH1F("hvtxTasty","Vertex fast fit;(y_{mc}-y)/cm",bins,-vrange,vrange);
108  fHVtxFastZ=new TH1F("hvtxFastz","Vertex fast fit;(z_{mc}-z)/cm",bins,-vrange,vrange);
109 
110  fHVtxFastXY=new TH2F("hvtxfastxy","Vertex fast fit X-Y view;(x_{mc}-x)/#mum;(y_{mc}-y)/cm",bins,-vrange,vrange,bins,-vrange,vrange);
111  fHVtxFastRZ=new TH2F("hvtxfastrz","Vertex fast fit R-Z view;(z_{mc}-z)/#mum;(r_{mc}-r)/cm",bins,-vrange,vrange,bins,-vrange,vrange);
112 
113  fHVtxErrFastX=new TH1F("hvtxerrfastx","Vertex error distribution fast;#sigma_{x}",bins,0.,vrange);
114  fHVtxErrFastY=new TH1F("hvtxerrfasty","Vertex error distribution fast;#sigma_{y}",bins,0.,vrange);
115  fHVtxErrFastZ=new TH1F("hvtxerrfastz","Vertex error distribution fast;#sigma_{z}",bins,0.,vrange);
116  fHVtxPullFastX=new TH1F("hvtxpullfastx","Vertex pull distribution fast;(x_{mc}-x)/#sigma_{x}",bins,-pullrange,pullrange);
117  fHVtxPullFastY=new TH1F("hvtxpullfasty","Vertex pull distribution fast;(y_{mc}-y)/#sigma_{y}",bins,-pullrange,pullrange);
118  fHVtxPullFastZ=new TH1F("hvtxpullfastz","Vertex pull distribution fast;(z_{mc}-z)/#sigma_{z}",bins,-pullrange,pullrange);
119 
120  fHVtxChi2Fast=new TH1F("hvtxchi2fast","Vertex Fast #Chi^{2};#Chi^{2}",bins,minchi,maxchi);
121  fHVtxChiProbFast=new TH1F("hvtxchipropfast","P(#Chi^{2}) Fast;p",bins,0.,1.);
122 
123  // FULL FIT
124  fHVtxFitX=new TH1F("hvtxFitx","Vertex full fit;(x_{mc}-x)/cm",bins,-vrange,vrange);
125  fHVtxFitY=new TH1F("hvtxFity","Vertex full fit;(y_{mc}-y)/cm",bins,-vrange,vrange);
126  fHVtxFitZ=new TH1F("hvtxFitz","Vertex full fit;(z_{mc}-z)/cm",bins,-vrange,vrange);
127 
128  fHVtxFitXY=new TH2F("hvtxfitxy","Vertex full fit X-Y view;(x_{mc}-x)/#mum;(y_{mc}-y)/cm",bins,-vrange,vrange,bins,-vrange,vrange);
129  fHVtxFitRZ=new TH2F("hvtxfitrz","Vertex full fit R-Z view;(z_{mc}-z)/#mum;(r_{mc}-r)/cm",bins,-vrange,vrange,bins,-vrange,vrange);
130 
131  fHVtxErrFitX=new TH1F("hvtxerrfitx","Vertex error distribution full fit;#sigma_{x}",bins,0.,vrange);
132  fHVtxErrFitY=new TH1F("hvtxerrfity","Vertex error distribution full fit;#sigma_{y}",bins,0.,vrange);
133  fHVtxErrFitZ=new TH1F("hvtxerrfitz","Vertex error distribution full fit;#sigma_{z}",bins,0.,vrange);
134  fHVtxPullFitX=new TH1F("hvtxpullfitx","Vertex pull distribution full fit;(x_{mc}-x)/#sigma_{x}",bins,-pullrange,pullrange);
135  fHVtxPullFitY=new TH1F("hvtxpullfity","Vertex pull distribution full fit;(y_{mc}-y)/#sigma_{y}",bins,-pullrange,pullrange);
136  fHVtxPullFitZ=new TH1F("hvtxpullfitz","Vertex pull distribution full fit;(z_{mc}-z)/#sigma_{z}",bins,-pullrange,pullrange);
137  fHVtxDiffFitPX=new TH1F("hvtxdifffitpx","Momentum full fit;(p_{x,mc}-p_{x} / GeV/c)",bins,-momrange,momrange);
138  fHVtxDiffFitPY=new TH1F("hvtxdifffitpy","Momentum full fit;(p_{y,mc}-p_{y} / GeV/c)",bins,-momrange,momrange);
139  fHVtxDiffFitPZ=new TH1F("hvtxdifffitpz","Momentum full fit;(p_{z,mc}-p_{z}) / GeV/c",bins,-momrange,momrange);
140  fHVtxDiffFitE=new TH1F("hvtxdifffite","Energy full fit;(E_{mc}-E) / GeV",bins,-momrange,momrange);
141  fHVtxDiffFitThe=new TH1F("hvtxdifffitthe","Momentum full fit;(#Theta_{mc}-#Theta}) / GeV/c",bins,-angdiffran,angdiffran);
142  fHVtxDiffFitPhi=new TH1F("hvtxdifffitphi","Momentum full fit;(#Phi_{mc}-#Phi}) / GeV/c",bins,-angdiffran,angdiffran);
143 
144  fHVtxPullFitPX=new TH1F("hvtxpullfitpx","Momentum pull distribution full fit;(p_{x,mc}-p_{x})/#sigma_{p_{x}}",bins,-pullrange,pullrange);
145  fHVtxPullFitPY=new TH1F("hvtxpullfitpy","Momentum pull distribution full fit;(p_{y,mc}-p_{y})/#sigma_{p_{y}}",bins,-pullrange,pullrange);
146  fHVtxPullFitPZ=new TH1F("hvtxpullfitpz","Momentum pull distribution full fit;(p_{z,mc}-p_{z})/#sigma_{p_{z}}",bins,-pullrange,pullrange);
147  fHVtxPullFitE=new TH1F("hvtxpullfite","Energy pull distribution full fit;(E_{mc}-E)/#sigma_{E}",bins,-pullrange,pullrange);
148 
149  fHVtxChi2Fit=new TH1F("hvtxchi2fit","Vertex Fit #Chi^{2};#Chi^{2}",bins,minchi,maxchi);
150  fHVtxChiProbFit=new TH1F("hvtxchipropfit","P(#Chi^{2}) Fit;p",bins,0.,1.);
151 
152  // KIN Fit
153 
154  fHVtxKinX=new TH1F("hvtxKinx","Vertex full kin;(x_{mc}-x)/cm",bins,-vrange,vrange);
155  fHVtxKinY=new TH1F("hvtxKiny","Vertex full kin;(y_{mc}-y)/cm",bins,-vrange,vrange);
156  fHVtxKinZ=new TH1F("hvtxKinz","Vertex full kin;(z_{mc}-z)/cm",bins,-vrange,vrange);
157 
158  fHVtxKinXY=new TH2F("hvtxkinxy","Vertex full kin X-Y view;(x_{mc}-x)/#mum;(y_{mc}-y)/cm",bins,-vrange,vrange,bins,-vrange,vrange);
159  fHVtxKinRZ=new TH2F("hvtxkinrz","Vertex full kin R-Z view;(z_{mc}-z)/#mum;(r_{mc}-r)/cm",bins,-vrange,vrange,bins,-vrange,vrange);
160 
161  fHVtxErrKinX=new TH1F("hvtxerrkinx","Vertex error distribution full kin;#sigma_{x}",bins,0.,vrange);
162  fHVtxErrKinY=new TH1F("hvtxerrkiny","Vertex error distribution full kin;#sigma_{y}",bins,0.,vrange);
163  fHVtxErrKinZ=new TH1F("hvtxerrkinz","Vertex error distribution full kin;#sigma_{z}",bins,0.,vrange);
164  fHVtxPullKinX=new TH1F("hvtxpullkinx","Vertex pull distribution full kin;(x_{mc}-x)/#sigma_{x}",bins,-pullrange,pullrange);
165  fHVtxPullKinY=new TH1F("hvtxpullkiny","Vertex pull distribution full kin;(y_{mc}-y)/#sigma_{y}",bins,-pullrange,pullrange);
166  fHVtxPullKinZ=new TH1F("hvtxpullkinz","Vertex pull distribution full kin;(z_{mc}-z)/#sigma_{z}",bins,-pullrange,pullrange);
167  fHVtxDiffKinPX=new TH1F("hvtxdiffkinpx","Momentum full kin;(p_{x,mc}-p_{x} / GeV/c)",bins,-momrange,momrange);
168  fHVtxDiffKinPY=new TH1F("hvtxdiffkinpy","Momentum full kin;(p_{y,mc}-p_{y} / GeV/c)",bins,-momrange,momrange);
169  fHVtxDiffKinPZ=new TH1F("hvtxdiffkinpz","Momentum full kin;(p_{z,mc}-p_{z}) / GeV/c",bins,-momrange,momrange);
170  fHVtxDiffKinE=new TH1F("hvtxdiffkine","Energy full kin;(E_{mc}-E) / GeV",bins,-momrange,momrange);
171  fHVtxDiffKinThe=new TH1F("hvtxdiffkinthe","Momentum full kin;(#Theta_{mc}-#Theta}) / GeV/c",bins,-angdiffran,angdiffran);
172  fHVtxDiffKinPhi=new TH1F("hvtxdiffkinphi","Momentum full kin;(#Phi_{mc}-#Phi}) / GeV/c",bins,-angdiffran,angdiffran);
173 
174  fHVtxPullKinPX=new TH1F("hvtxpullkinpx","Momentum pull distribution full kin;(p_{x,mc}-p_{x})/#sigma_{p_{x}}",bins,-pullrange,pullrange);
175  fHVtxPullKinPY=new TH1F("hvtxpullkinpy","Momentum pull distribution full kin;(p_{y,mc}-p_{y})/#sigma_{p_{y}}",bins,-pullrange,pullrange);
176  fHVtxPullKinPZ=new TH1F("hvtxpullkinpz","Momentum pull distribution full kin;(p_{z,mc}-p_{z})/#sigma_{p_{z}}",bins,-pullrange,pullrange);
177  fHVtxPullKinE=new TH1F("hvtxpullkine","Energy pull distribution full kin;(E_{mc}-E)/#sigma_{E}",bins,-pullrange,pullrange);
178 
179  fHVtxChi2Kin=new TH1F("hvtxchi2kin","Vertex Kin #Chi^{2};#Chi^{2}",bins,minchi,maxchi);
180  fHVtxChiProbKin=new TH1F("hvtxchipropkin","P(#Chi^{2}) Kin;p",bins,0.,1.);
181 
182  // Helix Params
183  fHPrgPull0 = new TH1F("hprgpull0","PRG Pull Distribution (0)",bins,-pullrange,pullrange);
184  fHPrgPull1 = new TH1F("hprgpull1","PRG Pull Distribution (1)",bins,-pullrange,pullrange);
185  fHPrgPull2 = new TH1F("hprgpull2","PRG Pull Distribution (2)",bins,-pullrange,pullrange);
186  fHPrgPull3 = new TH1F("hprgpull3","PRG Pull Distribution (3)",bins,-pullrange,pullrange);
187  fHPrgPull4 = new TH1F("hprgpull4","PRG Pull Distribution (4)",bins,-pullrange,pullrange);
188 
189  fHCpu = new TH1D("hcpu","CPU loads (ms)",5,0,5);
190  fHCpu->GetXaxis()->SetBinLabel(1,"PMT");
191  fHCpu->GetXaxis()->SetBinLabel(2,"POCA");
192  fHCpu->GetXaxis()->SetBinLabel(3,"PRG Fast");
193  fHCpu->GetXaxis()->SetBinLabel(4,"PRG Full");
194  fHCpu->GetXaxis()->SetBinLabel(5,"KinVtx");
195 
196  fHistoList->Add(fHVtxDiffX);
197  fHistoList->Add(fHVtxDiffY);
198  fHistoList->Add(fHVtxDiffZ);
199 
200  fHistoList->Add(fHVtxPocaX);
201  fHistoList->Add(fHVtxPocaY);
202  fHistoList->Add(fHVtxPocaZ);
203 
204  fHistoList->Add(fHVtxFastX);
205  fHistoList->Add(fHVtxFastY);
206  fHistoList->Add(fHVtxFastZ);
207 
208  fHistoList->Add(fHVtxFitX);
209  fHistoList->Add(fHVtxFitY);
210  fHistoList->Add(fHVtxFitZ);
211 
212  fHistoList->Add(fHVtxKinX);
213  fHistoList->Add(fHVtxKinY);
214  fHistoList->Add(fHVtxKinZ);
215 
219 
220  fHistoList->Add(fHVtxErrFitX);
221  fHistoList->Add(fHVtxErrFitY);
222  fHistoList->Add(fHVtxErrFitZ);
223 
224  fHistoList->Add(fHVtxErrKinX);
225  fHistoList->Add(fHVtxErrKinY);
226  fHistoList->Add(fHVtxErrKinZ);
227 
231 
235 
239 
243 
244  fHistoList->Add(fHVtxDiffPX);
245  fHistoList->Add(fHVtxDiffPY);
246  fHistoList->Add(fHVtxDiffPZ);
247 
248  fHistoList->Add(fHVtxPullPX);
249  fHistoList->Add(fHVtxPullPY);
250  fHistoList->Add(fHVtxPullPZ);
251 
255 
259 
263 
267 
268  fHistoList->Add(fHVtxDiffE);
271  fHistoList->Add(fHVtxPullE);
274 
275  fHistoList->Add(fHVtxDiffThe);
276  fHistoList->Add(fHVtxDiffPhi);
277 
280 
283 
284  fHistoList->Add(fHVtxPocas);
286  fHistoList->Add(fHVtxChi2Fit);
287  fHistoList->Add(fHVtxChi2Kin);
291 
292  fHistoList->Add(fHVtxPocaXY);
293  fHistoList->Add(fHVtxFastXY);
294  fHistoList->Add(fHVtxFitXY);
295  fHistoList->Add(fHVtxKinXY);
296  fHistoList->Add(fHVtxPocaRZ);
297  fHistoList->Add(fHVtxFastRZ);
298  fHistoList->Add(fHVtxFitRZ);
299  fHistoList->Add(fHVtxKinRZ);
300 
301  fHistoList->Add(fHPrgPull0);
302  fHistoList->Add(fHPrgPull1);
303  fHistoList->Add(fHPrgPull2);
304  fHistoList->Add(fHPrgPull3);
305  fHistoList->Add(fHPrgPull4);
306 
307  fHistoList->Add(fHCpu);
308 
309  fSwPMT.Reset();
310  fSwPoca.Reset();
311  fSwPrgfast.Reset();
312  fSwPrgfull.Reset();
313  fSwKin.Reset();
314 }
TH1F * fHVtxPullFitE
Definition: PndPmtTask.h:65
TH1F * fHVtxErrFitZ
Definition: PndPmtTask.h:65
TH1F * fHVtxPullFitPX
Definition: PndPmtTask.h:65
TH1F * fHVtxPocaX
Definition: PndPmtTask.h:50
TH1D * fHCpu
Definition: PndPmtTask.h:90
TH1F * fHVtxKinZ
Definition: PndPmtTask.h:77
TH1F * fHVtxPullKinZ
Definition: PndPmtTask.h:77
TH1F * fHVtxDiffKinE
Definition: PndPmtTask.h:77
TH1F * fHVtxErrFastY
Definition: PndPmtTask.h:57
TH1F * fHVtxErrFastZ
Definition: PndPmtTask.h:57
TH1F * fHVtxDiffPY
Definition: PndPmtTask.h:44
TH1F * fHVtxErrKinZ
Definition: PndPmtTask.h:77
TH2F * fHVtxPocaXY
Definition: PndPmtTask.h:54
TH1F * fHVtxPullPZ
Definition: PndPmtTask.h:44
TH2F * fHVtxKinXY
Definition: PndPmtTask.h:85
TH1F * fHVtxPocaZ
Definition: PndPmtTask.h:50
TH1F * fHVtxDiffKinPhi
Definition: PndPmtTask.h:77
TH1F * fHVtxDiffPhi
Definition: PndPmtTask.h:44
TStopwatch fSwPrgfull
Definition: PndPmtTask.h:92
TH1F * fHVtxErrFitX
Definition: PndPmtTask.h:65
TH1F * fHPrgPull1
Definition: PndPmtTask.h:88
TH1F * fHVtxKinX
Definition: PndPmtTask.h:77
TH1F * fHVtxDiffFitPY
Definition: PndPmtTask.h:65
TH1F * fHVtxDiffE
Definition: PndPmtTask.h:44
TH1F * fHVtxDiffFitPX
Definition: PndPmtTask.h:65
TH1F * fHVtxPullFitX
Definition: PndPmtTask.h:65
TH1F * fHVtxErrFastX
Definition: PndPmtTask.h:57
friend F32vec4 max(const F32vec4 &a, const F32vec4 &b)
Definition: P4_F32vec4.h:26
TList * fHistoList
Definition: PndPmtTask.h:42
TH1F * fHVtxPullPocaX
Definition: PndPmtTask.h:50
TH2F * fHVtxKinRZ
Definition: PndPmtTask.h:85
TH1F * fHVtxDiffKinThe
Definition: PndPmtTask.h:77
TH1F * fHVtxPullFitPY
Definition: PndPmtTask.h:65
TH1F * fHVtxPocas
Definition: PndPmtTask.h:50
TH2F * fHVtxFitRZ
Definition: PndPmtTask.h:73
TH1F * fHVtxFastX
Definition: PndPmtTask.h:57
TH1F * fHVtxChiProbKin
Definition: PndPmtTask.h:77
TH1F * fHVtxPullE
Definition: PndPmtTask.h:44
static void ForceConstantBz(Double_t bz=0.)
Force a constant B field value for all positions.
TH1F * fHVtxErrKinX
Definition: PndPmtTask.h:77
TH1F * fHVtxDiffPZ
Definition: PndPmtTask.h:44
TH1F * fHVtxDiffPX
Definition: PndPmtTask.h:44
TH1F * fHVtxPullFastX
Definition: PndPmtTask.h:57
TH1F * fHVtxChiProbFit
Definition: PndPmtTask.h:65
TH1F * fHVtxPullKinPZ
Definition: PndPmtTask.h:77
TH1F * fHVtxDiffKinPY
Definition: PndPmtTask.h:77
TH1F * fHVtxPullPocaY
Definition: PndPmtTask.h:50
TH2F * fHVtxPocaRZ
Definition: PndPmtTask.h:54
TH1F * fHVtxDiffThe
Definition: PndPmtTask.h:44
TH1F * fHVtxFastY
Definition: PndPmtTask.h:57
TH1F * fHVtxChi2Fit
Definition: PndPmtTask.h:65
TH1F * fHVtxKinY
Definition: PndPmtTask.h:77
TH1F * fHVtxPullPX
Definition: PndPmtTask.h:44
TH1F * fHVtxPullKinE
Definition: PndPmtTask.h:77
TH1F * fHVtxPocaEmpty
Definition: PndPmtTask.h:50
TH1F * fHVtxPullKinPX
Definition: PndPmtTask.h:77
friend F32vec4 min(const F32vec4 &a, const F32vec4 &b)
Definition: P4_F32vec4.h:25
TH1F * fHVtxFitX
Definition: PndPmtTask.h:65
TH1F * fHPrgPull0
Definition: PndPmtTask.h:88
TH1F * fHVtxPullFastY
Definition: PndPmtTask.h:57
TH1F * fHVtxFastZ
Definition: PndPmtTask.h:57
TH1F * fHVtxPullPocaZ
Definition: PndPmtTask.h:50
TH1F * fHVtxDiffFitE
Definition: PndPmtTask.h:65
TH1F * fHVtxDiffKinPX
Definition: PndPmtTask.h:77
TStopwatch fSwPrgfast
Definition: PndPmtTask.h:92
TH1F * fHVtxChi2Fast
Definition: PndPmtTask.h:57
TH1F * fHPrgPull2
Definition: PndPmtTask.h:88
TH1F * fHVtxChiProbFast
Definition: PndPmtTask.h:57
TH1F * fHVtxPullFitZ
Definition: PndPmtTask.h:65
TH1F * fHVtxPullFastZ
Definition: PndPmtTask.h:57
TH1F * fHVtxPullFitPZ
Definition: PndPmtTask.h:65
TH2F * fHVtxFitXY
Definition: PndPmtTask.h:73
TH1F * fHVtxChi2Kin
Definition: PndPmtTask.h:77
TH1F * fHVtxPullKinPY
Definition: PndPmtTask.h:77
TH1F * fHVtxDiffFitPZ
Definition: PndPmtTask.h:65
TH1F * fHVtxDiffZ
Definition: PndPmtTask.h:44
TH1F * fHPrgPull3
Definition: PndPmtTask.h:88
TH1F * fHVtxPullFitY
Definition: PndPmtTask.h:65
TH1F * fHVtxPocaY
Definition: PndPmtTask.h:50
TH1F * fHVtxErrKinY
Definition: PndPmtTask.h:77
TH1F * fHVtxErrFitY
Definition: PndPmtTask.h:65
TH1F * fHVtxDiffFitPhi
Definition: PndPmtTask.h:65
drchit SetVerbose(iVerbose)
TH1F * fHVtxFitZ
Definition: PndPmtTask.h:65
TH1F * fHVtxDiffKinPZ
Definition: PndPmtTask.h:77
TH1F * fHVtxDiffFitThe
Definition: PndPmtTask.h:65
TH1F * fHVtxFitY
Definition: PndPmtTask.h:65
TH1F * fHVtxDiffY
Definition: PndPmtTask.h:44
TH1F * fHVtxPullKinY
Definition: PndPmtTask.h:77
TH1F * fHVtxPullPY
Definition: PndPmtTask.h:44
TH1F * fHVtxDiffX
Definition: PndPmtTask.h:44
TStopwatch fSwKin
Definition: PndPmtTask.h:92
TH1F * fHPrgPull4
Definition: PndPmtTask.h:88
TH2F * fHVtxFastXY
Definition: PndPmtTask.h:62
TH1F * fHVtxPullKinX
Definition: PndPmtTask.h:77
TStopwatch fSwPoca
Definition: PndPmtTask.h:92
TH2F * fHVtxFastRZ
Definition: PndPmtTask.h:62
TStopwatch fSwPMT
Definition: PndPmtTask.h:92
void PndPmtPoormantracks::PoorManTracks ( )
protectedinherited

Definition at line 95 of file PndPmtPoormantracks.cxx.

References PndPmtPoormantracks::EnergyCorrelations(), PndPmtPoormantracks::fCands, PndPmtPoormantracks::fCharge, PndPmtPoormantracks::fDtheta, PndPmtPoormantracks::fMcCands, PndPmtPoormantracks::fNumTrk, PndPmtPoormantracks::fPDG, PndPmtPoormantracks::fPID, PndPmtPoormantracks::fPtMax, PndPmtPoormantracks::fPtMin, PndPmtPoormantracks::fSigPx, PndPmtPoormantracks::fSigPy, PndPmtPoormantracks::fSigPz, PndPmtPoormantracks::fSigVx, PndPmtPoormantracks::fSigVy, PndPmtPoormantracks::fSigVz, PndPmtPoormantracks::fVerbose, PndPmtPoormantracks::fVertex, RhoCandidate::GetPosition(), p, RhoCandidate::P3Cov(), RhoCandidate::P4(), Pi, PndPmtPoormantracks::RollMomentumBox(), RhoCandidate::SetCov7(), RhoCandidate::SetMcTruth(), RhoCandidate::SetPos(), PndPmtPoormantracks::SmearMomentum(), and PndPmtPoormantracks::SmearVertex().

Referenced by Exec().

96 {
97  if(fVerbose>1) cout<<" --------------------------------------------------- "<<endl;
98  if(fVerbose>0) cout<<"Poor man tracks."<<endl;
99  fMcCands->Clear("C");
100  fCands->Clear("C");
101 
102  RhoError covPos(3), covP4(4);
103  covPos[0][0]=fSigVx*fSigVx;
104  covPos[1][1]=fSigVy*fSigVy;
105  covPos[2][2]=fSigVz*fSigVz;
106  covP4[0][0]=fSigPx*fSigPx;
107  covP4[1][1]=fSigPy*fSigPy;
108  covP4[2][2]=fSigPz*fSigPz;
109 
110  for (int iTr=0; iTr<fNumTrk; iTr++)
111  {
112  fPDG = TDatabasePDG::Instance()->GetParticle(fPID);
113  TVector3 momentum = RollMomentumBox(fVertex,fDtheta*TMath::Pi(),fPtMin,fPtMax);
114 
115  int sizeMc = fMcCands->GetEntriesFast();
116  RhoCandidate *pmc=new ((*fMcCands)[sizeMc]) RhoCandidate(momentum,fPDG);
117  pmc->SetPos(fVertex);
118 
119  // Smeared "reco"
120  int size = fCands->GetEntriesFast();
121  TVector3 vertexMeasure = fVertex;
122  SmearVertex(vertexMeasure);
123  TVector3 momMeasure = momentum;
124  SmearMomentum(momMeasure);
125 
126 
127  RhoCandidate *p=new ((*fCands)[size]) RhoCandidate(momMeasure,fPDG);//TODO charge
128  p->SetMcTruth(pmc);
129  p->SetPos(vertexMeasure);
130  EnergyCorrelations(covP4,p->P4());
131  p->SetCov7(covPos,covP4);
132 
133  if(fVerbose>1) cout<<" ---------\n pmc, p, pmcpos, ppos, fVertex"<<endl;
134  if(fVerbose>1) std::cout<<*pmc<<std::endl;
135  if(fVerbose>1) std::cout<<*p<<std::endl;
136  if(fVerbose>1) p->P3Cov().Print();
137  if(fVerbose>1) pmc->GetPosition().Print();
138  if(fVerbose>1) p->GetPosition().Print();
139  if(fVerbose>1) fVertex.Print();
140  // print helix parameters and cov together with RhoCandidate V-P4 and cov7
141 
142  // alternate particle type
143  fCharge*=-1;
144  fPID*=-1;
145  }
146 }
TVector3 RollMomentumBox(const TVector3 &vtx, double dtheta, double ptmin, double ptmax)
RhoError P3Cov() const
void SetPos(const TVector3 &pos)
Definition: RhoCandidate.h:235
void SmearVertex(TVector3 &vertex)
Double_t p
Definition: anasim.C:58
TVector3 GetPosition() const
Definition: RhoCandidate.h:185
void SmearMomentum(TVector3 &momentum)
TLorentzVector P4() const
Definition: RhoCandidate.h:195
void SetMcTruth(RhoCandidate *mct)
Definition: RhoCandidate.h:436
Double_t Pi
void SetCov7(const TMatrixD &cov7)
TVector3 PndPmtPoormantracks::RollMomentumBox ( const TVector3 &  vtx,
double  dtheta,
double  ptmin,
double  ptmax 
)
protectedinherited

Definition at line 72 of file PndPmtPoormantracks.cxx.

References PndPmtPoormantracks::fVerbose, phi, pt(), theta, and CAMath::TwoPi().

Referenced by PndPmtPoormantracks::PoorManTracks().

73 {
74  // allow whole phi range
75  double phi=TMath::TwoPi()*gRandom->Rndm();
76  // allow theta at vertex pointing theta +- dtheta
77  double theta = vtx.Theta() + dtheta*2*(0.5-gRandom->Rndm());
78  // allow transverse momentum in [ptmin,ptmax]
79  double pt = ptmin + (ptmax-ptmin)*gRandom->Rndm();
80  TVector3 momentum;
81  momentum.SetPtThetaPhi(pt,theta,phi);
82  if(fVerbose>2) cout<<"RollMomentumBox: ("<<momentum.x()<<","<<momentum.y()<<","<<momentum.z()<<")"<<endl;
83  return momentum;
84 }
TString pt(TString pts, TString exts="px py pz")
Definition: invexp.C:133
double dtheta
Definition: anaLmdCluster.C:54
static float TwoPi()
Definition: PndCAMath.h:61
TVector3 PndPmtPoormantracks::RollVertexBox ( double  widx,
double  widy,
double  widz 
)
protectedinherited

Definition at line 51 of file PndPmtPoormantracks.cxx.

References PndPmtPoormantracks::fVerbose.

Referenced by Exec().

52 {
53  double rnd1=widx*2*(0.5-gRandom->Rndm());
54  double rnd2=widy*2*(0.5-gRandom->Rndm());
55  double rnd3=widz*2*(0.5-gRandom->Rndm());
56  TVector3 vertex(rnd1,rnd2,rnd3);
57  if(fVerbose>2) cout<<"RollVertexBox: ("<<vertex.x()<<","<<vertex.y()<<","<<vertex.z()<<")"<<endl;
58  return vertex;
59 }
void PndPmtPoormantracks::SetDTheta ( double  a)
inlineinherited

Definition at line 20 of file PndPmtPoormantracks.h.

References a, and PndPmtPoormantracks::fDtheta.

20 {fDtheta=a;};
Int_t a
Definition: anaLmdDigi.C:126
void PndPmtPoormantracks::SetNumTrk ( int  a)
inlineinherited

Definition at line 22 of file PndPmtPoormantracks.h.

References a, and PndPmtPoormantracks::fNumTrk.

22 {fNumTrk=a;};
Int_t a
Definition: anaLmdDigi.C:126
void PndPmtTask::SetParContainers ( )
privatevirtual

Get parameter containers

Definition at line 316 of file PndPmtTask.cxx.

316  {
317  // Get run and runtime database
318  //FairRunAna* run = FairRunAna::Instance();
319  //if ( ! run ) Fatal("SetParContainers", "No analysis run");
320  //FairRuntimeDb* db = run->GetRuntimeDb();
321  //if ( ! db ) Fatal("SetParContainers", "No runtime database");
322 }
void PndPmtPoormantracks::SetPid ( int  a)
inlineinherited

Definition at line 21 of file PndPmtPoormantracks.h.

References a, and PndPmtPoormantracks::fPID.

21 {fPID=a;};
Int_t a
Definition: anaLmdDigi.C:126
void PndPmtPoormantracks::SetPtRange ( double  min,
double  max 
)
inlineinherited

Definition at line 19 of file PndPmtPoormantracks.h.

References PndPmtPoormantracks::fPtMax, PndPmtPoormantracks::fPtMin, max(), and min().

19 {fPtMin=min;fPtMax=max;};
friend F32vec4 max(const F32vec4 &a, const F32vec4 &b)
Definition: P4_F32vec4.h:26
friend F32vec4 min(const F32vec4 &a, const F32vec4 &b)
Definition: P4_F32vec4.h:25
void PndPmtPoormantracks::SetSeed ( int  a)
inlineinherited

Definition at line 23 of file PndPmtPoormantracks.h.

References a, and PndPmtPoormantracks::fSeed.

23 {fSeed=a;};
Int_t a
Definition: anaLmdDigi.C:126
void PndPmtPoormantracks::SetSigP ( double  a)
inlineinherited
void PndPmtPoormantracks::SetSigV ( double  a)
inlineinherited
void PndPmtPoormantracks::SetVerbose ( int  a)
inlineinherited

Definition at line 24 of file PndPmtPoormantracks.h.

References a, and PndPmtPoormantracks::fVerbose.

24 {fVerbose=a;};
Int_t a
Definition: anaLmdDigi.C:126
void PndPmtPoormantracks::SmearMomentum ( TVector3 &  momentum)
protectedinherited

Definition at line 86 of file PndPmtPoormantracks.cxx.

References PndPmtPoormantracks::fSigPx, PndPmtPoormantracks::fSigPy, and PndPmtPoormantracks::fSigPz.

Referenced by PndPmtPoormantracks::PoorManTracks().

87 {
88  double rnd1=gRandom->Gaus(momentum.Px(),fSigPx);
89  double rnd2=gRandom->Gaus(momentum.Py(),fSigPy);
90  double rnd3=gRandom->Gaus(momentum.Pz(),fSigPz);
91  momentum.SetXYZ(rnd1,rnd2,rnd3);
92  return;
93 }
void PndPmtPoormantracks::SmearVertex ( TVector3 &  vertex)
protectedinherited

Definition at line 61 of file PndPmtPoormantracks.cxx.

References PndPmtPoormantracks::fSigVx, PndPmtPoormantracks::fSigVy, PndPmtPoormantracks::fSigVz, and PndPmtPoormantracks::fVerbose.

Referenced by PndPmtPoormantracks::PoorManTracks().

62 {
63  double rnd1=gRandom->Gaus(vertex.x(),fSigVx);
64  double rnd2=gRandom->Gaus(vertex.y(),fSigVy);
65  double rnd3=gRandom->Gaus(vertex.z(),fSigVz);
66  if(fVerbose>2) cout<<"SmearVertex (B): ("<<vertex.x()<<","<<vertex.y()<<","<<vertex.z()<<")"<<endl;
67  vertex.SetXYZ(rnd1,rnd2,rnd3);
68  if(fVerbose>2) cout<<"SmearVertex (A): ("<<vertex.x()<<","<<vertex.y()<<","<<vertex.z()<<")"<<endl;
69  return;
70 }

Member Data Documentation

TClonesArray* PndPmtPoormantracks::fCands
protectedinherited
double PndPmtPoormantracks::fCharge
protectedinherited
double PndPmtPoormantracks::fDtheta
protectedinherited
TH1D* PndPmtTask::fHCpu
protected

Definition at line 90 of file PndPmtTask.h.

Referenced by Finish(), and Init().

TList* PndPmtTask::fHistoList
protected

Definition at line 42 of file PndPmtTask.h.

Referenced by Finish(), Init(), and PndPmtTask().

TH1F* PndPmtTask::fHPrgPull0
protected

Definition at line 88 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHPrgPull1
protected

Definition at line 88 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHPrgPull2
protected

Definition at line 88 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHPrgPull3
protected

Definition at line 88 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHPrgPull4
protected

Definition at line 88 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxChi2Fast
protected

Definition at line 57 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxChi2Fit
protected

Definition at line 65 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxChi2Kin
protected

Definition at line 77 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxChiProbFast
protected

Definition at line 57 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxChiProbFit
protected

Definition at line 65 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxChiProbKin
protected

Definition at line 77 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxDiffE
protected

Definition at line 44 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxDiffFitE
protected

Definition at line 65 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxDiffFitPhi
protected

Definition at line 65 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxDiffFitPX
protected

Definition at line 65 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxDiffFitPY
protected

Definition at line 65 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxDiffFitPZ
protected

Definition at line 65 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxDiffFitThe
protected

Definition at line 65 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxDiffKinE
protected

Definition at line 77 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxDiffKinPhi
protected

Definition at line 77 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxDiffKinPX
protected

Definition at line 77 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxDiffKinPY
protected

Definition at line 77 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxDiffKinPZ
protected

Definition at line 77 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxDiffKinThe
protected

Definition at line 77 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxDiffPhi
protected

Definition at line 44 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxDiffPX
protected

Definition at line 44 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxDiffPY
protected

Definition at line 44 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxDiffPZ
protected

Definition at line 44 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxDiffThe
protected

Definition at line 44 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F* PndPmtTask::fHVtxDiffX
protected

Definition at line 44 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxDiffY
protected

Definition at line 44 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxDiffZ
protected

Definition at line 44 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxErrFastX
protected

Definition at line 57 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxErrFastY
protected

Definition at line 57 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxErrFastZ
protected

Definition at line 57 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxErrFitX
protected

Definition at line 65 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxErrFitY
protected

Definition at line 65 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxErrFitZ
protected

Definition at line 65 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxErrKinX
protected

Definition at line 77 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxErrKinY
protected

Definition at line 77 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxErrKinZ
protected

Definition at line 77 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH2F * PndPmtTask::fHVtxFastRZ
protected

Definition at line 62 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F* PndPmtTask::fHVtxFastX
protected

Definition at line 57 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH2F* PndPmtTask::fHVtxFastXY
protected

Definition at line 62 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxFastY
protected

Definition at line 57 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxFastZ
protected

Definition at line 57 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH2F * PndPmtTask::fHVtxFitRZ
protected

Definition at line 73 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F* PndPmtTask::fHVtxFitX
protected

Definition at line 65 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH2F* PndPmtTask::fHVtxFitXY
protected

Definition at line 73 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxFitY
protected

Definition at line 65 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxFitZ
protected

Definition at line 65 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH2F * PndPmtTask::fHVtxKinRZ
protected

Definition at line 85 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F* PndPmtTask::fHVtxKinX
protected

Definition at line 77 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH2F* PndPmtTask::fHVtxKinXY
protected

Definition at line 85 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxKinY
protected

Definition at line 77 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxKinZ
protected

Definition at line 77 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxPocaEmpty
protected

Definition at line 50 of file PndPmtTask.h.

Referenced by Init().

TH2F * PndPmtTask::fHVtxPocaRZ
protected

Definition at line 54 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxPocas
protected

Definition at line 50 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F* PndPmtTask::fHVtxPocaX
protected

Definition at line 50 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH2F* PndPmtTask::fHVtxPocaXY
protected

Definition at line 54 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxPocaY
protected

Definition at line 50 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxPocaZ
protected

Definition at line 50 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxPullE
protected

Definition at line 44 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxPullFastX
protected

Definition at line 57 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxPullFastY
protected

Definition at line 57 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxPullFastZ
protected

Definition at line 57 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxPullFitE
protected

Definition at line 65 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxPullFitPX
protected

Definition at line 65 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxPullFitPY
protected

Definition at line 65 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxPullFitPZ
protected

Definition at line 65 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxPullFitX
protected

Definition at line 65 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxPullFitY
protected

Definition at line 65 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxPullFitZ
protected

Definition at line 65 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxPullKinE
protected

Definition at line 77 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxPullKinPX
protected

Definition at line 77 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxPullKinPY
protected

Definition at line 77 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxPullKinPZ
protected

Definition at line 77 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxPullKinX
protected

Definition at line 77 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxPullKinY
protected

Definition at line 77 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxPullKinZ
protected

Definition at line 77 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxPullPocaX
protected

Definition at line 50 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxPullPocaY
protected

Definition at line 50 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxPullPocaZ
protected

Definition at line 50 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxPullPX
protected

Definition at line 44 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxPullPY
protected

Definition at line 44 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TH1F * PndPmtTask::fHVtxPullPZ
protected

Definition at line 44 of file PndPmtTask.h.

Referenced by Exec(), and Init().

TClonesArray* PndPmtPoormantracks::fMcCands
protectedinherited
int PndPmtPoormantracks::fNDF
protectedinherited

Definition at line 52 of file PndPmtPoormantracks.h.

int PndPmtPoormantracks::fNumTrk
protectedinherited
TParticlePDG* PndPmtPoormantracks::fPDG
protectedinherited
int PndPmtPoormantracks::fPID
protectedinherited
double PndPmtPoormantracks::fPtMax
protectedinherited
double PndPmtPoormantracks::fPtMin
protectedinherited
int PndPmtPoormantracks::fSeed
protectedinherited
double PndPmtPoormantracks::fSigPx
protectedinherited
double PndPmtPoormantracks::fSigPy
protectedinherited
double PndPmtPoormantracks::fSigPz
protectedinherited
double PndPmtPoormantracks::fSigVx
protectedinherited
double PndPmtPoormantracks::fSigVy
protectedinherited
double PndPmtPoormantracks::fSigVz
protectedinherited
TStopwatch PndPmtTask::fSwAll
protected

Definition at line 92 of file PndPmtTask.h.

Referenced by Finish(), and PndPmtTask().

TStopwatch PndPmtTask::fSwKin
protected

Definition at line 92 of file PndPmtTask.h.

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

TStopwatch PndPmtTask::fSwPMT
protected

Definition at line 92 of file PndPmtTask.h.

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

TStopwatch PndPmtTask::fSwPoca
protected

Definition at line 92 of file PndPmtTask.h.

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

TStopwatch PndPmtTask::fSwPrgfast
protected

Definition at line 92 of file PndPmtTask.h.

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

TStopwatch PndPmtTask::fSwPrgfull
protected

Definition at line 92 of file PndPmtTask.h.

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

int PndPmtPoormantracks::fVerbose
protectedinherited
TVector3 PndPmtPoormantracks::fVertex
protectedinherited

Definition at line 54 of file PndPmtPoormantracks.h.

Referenced by Exec(), and PndPmtPoormantracks::PoorManTracks().

double PndPmtPoormantracks::fWidx
protectedinherited

Definition at line 55 of file PndPmtPoormantracks.h.

Referenced by Exec(), and Init().

double PndPmtPoormantracks::fWidy
protectedinherited

Definition at line 55 of file PndPmtPoormantracks.h.

Referenced by Exec(), and Init().

double PndPmtPoormantracks::fWidz
protectedinherited

Definition at line 55 of file PndPmtPoormantracks.h.

Referenced by Exec(), and Init().

int PndPmtPoormantracks::niter
protectedinherited

Definition at line 51 of file PndPmtPoormantracks.h.


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