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

#include <PndLmdQATask.h>

Inheritance diagram for PndLmdQATask:

Public Member Functions

 PndLmdQATask (TString mcHitBranch="LMDPoint", TString mcTrkBranch="MCTrack", TString clusterBranch="LMDPixelClusterCand", TString digiBrunch="LMDPixelDigis", TString hitBranch="LmdHits", TString TrkCandBranch="LMDTrackCand", TString trackBranch="LMDTrack", TString geaneBranch="GeaneTrackFinal", TString outFile="tmpOutput/QA.root")
 
 PndLmdQATask (const PndLmdQATask &)=delete
 
PndLmdQATaskoperator= (const PndLmdQATask &)=delete
 
virtual ~PndLmdQATask ()
 
void SetVerboseLevel (int verbose)
 
void WriteHists ()
 
virtual InitStatus Init ()
 
virtual void FinishTask ()
 
virtual void Exec (Option_t *opt)
 

Protected Member Functions

void ResoAndPulls ()
 
bool HitReco ()
 
 ClassDef (PndLmdQATask, 1)
 

Protected Attributes

int verboseLevel
 
TClonesArray * fmcHitArray
 
TClonesArray * fmcTrkArray
 
TClonesArray * fHitArray
 
TClonesArray * fClusterArray
 
TClonesArray * fDigiArray
 
TClonesArray * fTrkCandArray
 
TClonesArray * fTrkArray
 
TClonesArray * fGeaneArray
 
TString fmcHitName
 
TString fmcTrkName
 
TString fHitName
 
TString fDigiName
 
TString fClusterName
 
TString fTrkCandName
 
TString fTrkName
 
TString fGeaneName
 
TString foutFile
 
Double_t trkpar [4]
 
int tot
 
int all
 
int uneff
 
int mistrk
 
int ghosttrk
 
Int_t fEvent
 
TH1 * hResMom
 
TH1 * hErrMom
 
TH1 * hPullMom
 
TH1 * hResTheta
 
TH2 * hResTheta_th
 
TH2 * hResTheta_ph
 
TH1 * hErrTheta
 
TH1 * hPullTheta
 
TH1 * hResPhi
 
TH1 * hErrPhi
 
TH1 * hPullPhi
 
TH1 * hResPointPx
 
TH1 * hErrPointPx
 
TH1 * hPullPointPx
 
TH1 * hResPointPy
 
TH1 * hErrPointPy
 
TH1 * hPullPointPy
 
TH1 * hResPointPz
 
TH1 * hErrPointPz
 
TH1 * hPullPointPz
 
TH1 * hResPointX
 
TH1 * hPullPointX
 
TH1 * hResPointY
 
TH1 * hPullPointY
 
TH1 * hResPointZ
 
TH1 * hPullPointZ
 
TH1 * hResHitX
 
TH1 * hResHitY
 
TH1 * hResHitZ
 
TH1 * hhits
 
TH1 * hchi2
 
TH1 * hResLumiTrkMom
 
TH1 * hResLumiTrkTheta
 
TH1 * hResLumiTrkPhi
 
TH2 * hResLumiTrkTheta2D
 
TH2 * hMCLumiTrkTheta2D
 
TH2 * hRecLumiTrkTheta2D
 
TH1 * hResLumiTrkPointX
 
TH1 * hResLumiTrkPointY
 
TH1 * hResLumiTrkPointZ
 
TH1 * hResLumiTrkPointPx
 
TH1 * hResLumiTrkPointPy
 
TH1 * hResLumiTrkPointPz
 
TH1 * hResLumiTrkPointXErr
 
TH1 * hResLumiTrkPointYErr
 
TH1 * hResLumiTrkPointZErr
 
TH1 * hResLumiTrkPointPxErr
 
TH1 * hResLumiTrkPointPyErr
 
TH1 * hResLumiTrkPointPzErr
 
TH1 * hResLumiTrkPointXPull
 
TH1 * hResLumiTrkPointYPull
 
TH1 * hResLumiTrkPointZPull
 
TH1 * hResLumiTrkPointPxPull
 
TH1 * hResLumiTrkPointPyPull
 
TH1 * hResLumiTrkPointPzPull
 
TH1 * hResLumiTrkThetaPull
 
TH1 * hResLumiTrkPhiPull
 

Detailed Description

Definition at line 28 of file PndLmdQATask.h.

Constructor & Destructor Documentation

PndLmdQATask::PndLmdQATask ( TString  mcHitBranch = "LMDPoint",
TString  mcTrkBranch = "MCTrack",
TString  clusterBranch = "LMDPixelClusterCand",
TString  digiBrunch = "LMDPixelDigis",
TString  hitBranch = "LmdHits",
TString  TrkCandBranch = "LMDTrackCand",
TString  trackBranch = "LMDTrack",
TString  geaneBranch = "GeaneTrackFinal",
TString  outFile = "tmpOutput/QA.root" 
)

Definition at line 48 of file PndLmdQATask.cxx.

References fClusterName, fDigiName, fEvent, fGeaneName, fHitName, fmcHitName, fmcTrkName, foutFile, fTrkCandName, fTrkName, outFile, and verboseLevel.

49  : FairTask("Histogram creator")
50 {
51  fmcHitName=mcHitBranch;
52  fmcTrkName=mcTrkBranch;
53  fHitName=hitBranch;
54  fClusterName = clusterBranch;
55  fDigiName = digiBrunch;
56  fTrkCandName = trkCandBranch;
57  fTrkName=trackBranch;
58  fGeaneName=geaneBranch;
60  fEvent=0;
61  verboseLevel=false;
62  // fPlab = Plab;
63 }
TString fmcHitName
Definition: PndLmdQATask.h:60
TString fTrkCandName
Definition: PndLmdQATask.h:65
TString outFile
Definition: hit_dirc.C:17
TString fmcTrkName
Definition: PndLmdQATask.h:61
TString fGeaneName
Definition: PndLmdQATask.h:67
TString fTrkName
Definition: PndLmdQATask.h:66
TString fClusterName
Definition: PndLmdQATask.h:64
TString fHitName
Definition: PndLmdQATask.h:62
TString foutFile
Definition: PndLmdQATask.h:70
TString fDigiName
Definition: PndLmdQATask.h:63
PndLmdQATask::PndLmdQATask ( const PndLmdQATask )
delete
PndLmdQATask::~PndLmdQATask ( )
virtual

Definition at line 65 of file PndLmdQATask.cxx.

66 {
67  // cout<<"start... PndLmdQATask::~PndLmdQATask()"<<endl;
68  // delete hResMom;
69  // delete hErrMom;
70  // delete hPullMom;
71  // delete hResTheta;
72  // delete hErrTheta;
73  // delete hPullTheta;
74  // delete hResPhi;
75  // delete hErrPhi;
76  // delete hPullPhi;
77 
78  // delete hResPointPx;
79  // delete hErrPointPx;
80  // delete hPullPointPx;
81 
82  // delete hResPointPy;
83  // delete hErrPointPy;
84  // delete hPullPointPy;
85 
86  // delete hResPointPz;
87  // delete hErrPointPz;
88  // delete hPullPointPz;
89 
90  // delete hResPointX;
91  // delete hPullPointX;
92  // delete hResPointY;
93  // delete hPullPointY;
94  // delete hResPointZ;
95  // delete hPullPointZ;
96 
97  // delete hhits;
98  // delete hchi2;
99  // delete hResLumiTrkMom;
100  // delete hResLumiTrkTheta;
101  // delete hResLumiTrkPhi;
102  // delete hResLumiTrkPointX;
103  // delete hResLumiTrkPointY;
104  // delete hResLumiTrkPointZ;
105 
106  // delete hResLumiTrkPointPx;
107  // delete hResLumiTrkPointPy;
108  // delete hResLumiTrkPointPz;
109 
110  // delete hResLumiTrkPointXErr;
111  // delete hResLumiTrkPointYErr;
112  // delete hResLumiTrkPointZErr;
113  // delete hResLumiTrkPointPxErr;
114  // delete hResLumiTrkPointPyErr;
115  // delete hResLumiTrkPointPzErr;
116 
117  // delete hResLumiTrkPointXPull;
118  // delete hResLumiTrkPointYPull;
119  // delete hResLumiTrkPointZPull;
120 
121  // delete hResLumiTrkPointPxPull;
122  // delete hResLumiTrkPointPyPull;
123  // delete hResLumiTrkPointPzPull;
124  // delete hResLumiTrkThetaPull;
125  // delete hResLumiTrkPhiPull;
126 
127  cout<<"PndLmdQATask::~PndLmdQATask().. finished"<<endl;
128 }

Member Function Documentation

PndLmdQATask::ClassDef ( PndLmdQATask  ,
 
)
protected
void PndLmdQATask::Exec ( Option_t *  opt)
virtual

Definition at line 786 of file PndLmdQATask.cxx.

References fEvent, HitReco(), and ResoAndPulls().

787 {
788 fEvent++;
789  // std::cout<<"PndLmdQATask::Exec"<<std::endl;
790  bool isPr = HitReco();
791  if(isPr) ResoAndPulls();
792 
793  return;
794 }
void ResoAndPulls()
void PndLmdQATask::FinishTask ( )
virtual

Definition at line 531 of file PndLmdQATask.cxx.

References ghosttrk, mistrk, and WriteHists().

532 {
533  // cout<<"PndLmdQATask::FinishTask()"<<endl;
534 
535  cout<<"Number of missed tracks is "<<mistrk<<" and number of ghost tracks is "<<ghosttrk<<endl;
536  WriteHists();
537 
538  //clean up stuff
539  // delete c1;
540  // delete c2;
541 
542 }
bool PndLmdQATask::HitReco ( )
protected

Definition at line 796 of file PndLmdQATask.cxx.

References fClusterArray, fDigiArray, fHitArray, fmcHitArray, PndSdsHit::GetClusterIndex(), PndSdsCluster::GetDigiIndex(), PndSdsDigi::GetIndex(), PndSdsMCPoint::GetXOut(), PndSdsMCPoint::GetYOut(), PndSdsMCPoint::GetZOut(), hit, hResHitX, hResHitY, hResHitZ, and i.

Referenced by Exec().

797 {
798  bool isProblem = true;
799  //const int nMCHits = fmcHitArray->GetEntriesFast(); //[R.K. 01/2017] unused variable
800  const int nRecHits = fHitArray->GetEntriesFast();
801 
802  for (Int_t i=0; i<nRecHits; i++){
803 
804  PndSdsHit* hit = (PndSdsHit*)(fHitArray->At(i));
805  //for pixel design
807  PndSdsDigiPixel* astripdigi = (PndSdsDigiPixel*)(fDigiArray->At(myCluster->GetDigiIndex(0)));
808  if (astripdigi->GetIndex(0) == -1)
809  continue;
810  PndSdsMCPoint* mc = (PndSdsMCPoint*)(fmcHitArray->At(astripdigi->GetIndex(0)));
811  //int MCidTOP = mc->GetTrackID(); //[R.K. 01/2017] unused variable
812  // PndSdsHit *hit = (PndSdsHit*) fHitArray->At(i);
813  // if(hit->GetRefIndex()<0) continue;
814  // PndSdsMCPoint *mc = (PndSdsMCPoint*) fmcHitArray->At(hit->GetRefIndex());
815  // if(!mc) continue;
816 
817  TVector3 recovec(hit->GetX(),hit->GetY(),hit->GetZ());
818  TVector3 mcvec(mc->GetX()+mc->GetXOut(),mc->GetY()+mc->GetYOut(),mc->GetZ()+mc->GetZOut()); mcvec*=0.5;
819 
820  // TVector3 mcvec(mc->GetXOut(),mc->GetYOut(),mc->GetZOut());
821  TVector3 dvec(recovec-mcvec);
822  // if(1e4*(mc->GetZOut()-mc->GetZ())<0)
823  // cout<<"For MCtrk#"<<MCidTOP<<" mc.Z() = "<<0.5*(mc->GetZ()+mc->GetZOut())<<" diff rec- mc [mkm] (x,y,z) = ("<<1e4*dvec.X()<<", "<<1e4*dvec.Y()<<", "<<1e4*dvec.Z()<<")"<<endl;
824 
825  // if(hit->GetZ()<1135.) //Acc of first plane
826  // h2dPnts->Fill(mc->GetX(),mc->GetY()); // = new TH2D("h2dPnts", "xy reconstructed points, cm",2e2,-20.,20., 2e2,-20.,20.);
827 
828 
829  // if(fabs(dvec.X())<2*0.0015 && fabs(dvec.Y())<2*0.0015){
830  // if(1e4*(mc->GetZOut()-mc->GetZ())<0){// secondary!
831  //if(1e4*(mc->GetZOut()-mc->GetZ())>0 && abs(dvec.Z())>0.0100){// primary & merged hits!@15 GeV/c
832  //if(1e4*(mc->GetZOut()-mc->GetZ())>0 && abs(dvec.Z())<0.0100){// primary & not-merged (single) hits!@15 GeV/c
833  if(1e4*(mc->GetZOut()-mc->GetZ())>0){// primary
834  hResHitX->Fill(dvec.X()); // = new TH1F("hResPointX","X_{MC}-X_{rec};#deltaX,cm",2e2,-1.5,1.5);
835  hResHitY->Fill(dvec.Y()); // = new TH1F("hResPointY","Y_{MC}-Y_{rec};#deltaY,cm",2e2,-1.5,1.5);
836  hResHitZ->Fill(dvec.Z()); // = new TH1F("hResPointZ","Z_{MC}-Z_{rec};#deltaZ,cm",2e2,-3e-2,3e-2);
837  isProblem=true;
838  // cout<<"NOW!!!"<<endl;
839  }
840  else
841  isProblem=false;
842  // cout<<"Event #"<<fEvent<<endl;
843 
844  // //TODO
845  // hErrHitX->Fill(0); // = new TH1F("hErrPointX","#sigma_{X};#sigmaX,cm",1e2,0,5e-1);
846  // hErrHitY->Fill(0); // = new TH1F("hErrPointY","#sigma_{Y};#sigmaY,cm",1e2,0,5e-1);
847  // hErrHitZ->Fill(0); // = new TH1F("hErrPointZ","#sigma_{Z};#sigmaZ,cm",1e2,0,5e-3);
848  // hPullHitX->Fill(0); // = new TH1F("hPullPointX","(X_{MC}-X_{rec})/#sigma_{X};",1e2,-10,10);
849  // hPullHitY->Fill(0); // = new TH1F("hPullPointY","(Y_{MC}-Y_{rec})/#sigma_{Y};",1e2,-10,10);
850  // hPullHitZ->Fill(0); // = new TH1F("hPullPointZ","(Z_{MC}-Z_{rec})/#sigma_{Z};",1e2,-10,10);
851 
852  }
853  // //----------------------------------------------------------------------------------
854  return isProblem;
855 }
Double_t GetXOut() const
Definition: PndSdsMCPoint.h:81
Int_t i
Definition: run_full.C:25
Double_t GetZOut() const
Definition: PndSdsMCPoint.h:83
Int_t GetIndex(int i=0) const
Definition: PndSdsDigi.h:63
TClonesArray * fmcHitArray
Definition: PndLmdQATask.h:51
Int_t GetDigiIndex(Int_t i) const
Definition: PndSdsCluster.h:40
TClonesArray * fClusterArray
Definition: PndLmdQATask.h:54
Double_t GetYOut() const
Definition: PndSdsMCPoint.h:82
TClonesArray * fHitArray
Definition: PndLmdQATask.h:53
Data class to store the digi output of a pixel module.
Int_t GetClusterIndex() const
Definition: PndSdsHit.h:94
PndSdsMCPoint * hit
Definition: anasim.C:70
TClonesArray * fDigiArray
Definition: PndLmdQATask.h:55
InitStatus PndLmdQATask::Init ( )
virtual

Definition at line 544 of file PndLmdQATask.cxx.

References all, fClusterArray, fClusterName, fDigiArray, fDigiName, fGeaneArray, fGeaneName, fHitArray, fHitName, fmcHitArray, fmcHitName, fmcTrkArray, fmcTrkName, fTrkArray, fTrkCandArray, fTrkCandName, fTrkName, ghosttrk, hchi2, hErrPhi, hErrPointPx, hErrPointPy, hErrPointPz, hErrTheta, hhits, hMCLumiTrkTheta2D, hPullPhi, hPullPointPx, hPullPointPy, hPullPointPz, hPullPointX, hPullPointY, hPullPointZ, hPullTheta, hRecLumiTrkTheta2D, hResHitX, hResHitY, hResHitZ, hResLumiTrkMom, hResLumiTrkPhi, hResLumiTrkPhiPull, hResLumiTrkPointPx, hResLumiTrkPointPxErr, hResLumiTrkPointPxPull, hResLumiTrkPointPy, hResLumiTrkPointPyErr, hResLumiTrkPointPyPull, hResLumiTrkPointPz, hResLumiTrkPointPzErr, hResLumiTrkPointPzPull, hResLumiTrkPointX, hResLumiTrkPointXErr, hResLumiTrkPointXPull, hResLumiTrkPointY, hResLumiTrkPointYErr, hResLumiTrkPointYPull, hResLumiTrkPointZ, hResLumiTrkPointZErr, hResLumiTrkPointZPull, hResLumiTrkTheta, hResLumiTrkTheta2D, hResLumiTrkThetaPull, hResMom, hResPhi, hResPointPx, hResPointPy, hResPointPz, hResPointX, hResPointY, hResPointZ, hResTheta, hResTheta_ph, hResTheta_th, mistrk, Pi, tot, and uneff.

Referenced by QA_LMD(), runLumi7QA(), and runLumiPixel7QA().

545 {
546  tot = 0;
547  all=0; uneff=0; mistrk=0; ghosttrk=0;
548 
549  // fouthists = new TFile(foutFile,"RECREATE");
550 
551  //Get ROOT Manager
552  FairRootManager* ioman= FairRootManager::Instance();
553 
554  if(ioman==0)
555  {
556  Error("PndLmdQATask::Init","RootManager not instantiated!");
557  return kERROR;
558  }
559 
560  // Get input collection
561  fmcHitArray=(TClonesArray*) ioman->GetObject(fmcHitName);
562  if(fmcHitArray==0)
563  {
564  Error("PndLmdQATask::Init","mcHit-array not found!");
565  return kERROR;
566  }
567 
568  fHitArray=(TClonesArray*) ioman->GetObject(fHitName);
569  if(fHitArray==0)
570  {
571  Error("PndLmdQATask::Init","hit-array not found!");
572  return kERROR;
573  }
574 
575  fTrkArray=(TClonesArray*) ioman->GetObject(fTrkName);
576  if(fTrkArray==0)
577  {
578  Error("PndLmdQATask::Init","track-array not found!");
579  return kERROR;
580  }
581 
582  fmcTrkArray=(TClonesArray*) ioman->GetObject(fmcTrkName);
583  if(fmcTrkArray==0)
584  {
585  Error("PndLmdQATask::Init","mcTrk-array not found!");
586  return kERROR;
587  }
588 
589  fGeaneArray=(TClonesArray*) ioman->GetObject(fGeaneName);
590  if(fGeaneArray==0)
591  {
592  Error("PndLmdQATask::Init","geane-array not found!");
593  return kERROR;
594  }
595  fTrkCandArray=(TClonesArray*) ioman->GetObject(fTrkCandName);
596  if(fTrkCandArray==0)
597  {
598  Error("PndLmdQATask::Init","trk-cand--array not found!");
599  return kERROR;
600  }
601  fClusterArray=(TClonesArray*) ioman->GetObject(fClusterName);
602  if(fClusterArray==0)
603  {
604  Error("PndLmdQATask::Init","cluster-array not found!");
605  return kERROR;
606  }
607  fDigiArray=(TClonesArray*) ioman->GetObject(fDigiName);
608  if(fDigiArray==0)
609  {
610  Error("PndLmdQATask::Init","digi-array not found!");
611  return kERROR;
612  }
613  // double thetarange[2]={0.001,0.01};
614  double thetam = 3.;
615  // double thetarange[2]={1.5,10.};
616  // double thetam = thetarange[0];
617  // if(fPlab<4) thetam = thetarange[1];
618  //Near IP
619  hResMom = new TH1F("hResMom","P_{MC}-P_{REC};#deltaP,GeV/c",1e3,-1e-1,1e-1);
620  // hErrMom = new TH1F("hErrMom","#sigma_{P};#sigmaP,GeV/c",1e3,0,1e-3);
621  // hPullMom = new TH1F("hPullMom","(P_{MC}-P_{REC})/#sigma_{P};",1e3,-1e1,1e1);
622  hResTheta = new TH1F("hResTheta","#theta_{MC}-#theta_{REC};#delta#theta,mrad",1e2,-thetam,thetam);//TEST
623  hResTheta_th = new TH2F("hResTheta_th","#theta_{MC}-#theta_{REC};#theta_{MC}, mrad; #delta#theta,mrad",2e2,0,10,6e2,-thetam,thetam);//TEST
624  hResTheta_ph = new TH2F("hResTheta_ph","#theta_{MC}-#theta_{REC};#phi_{MC}, rad; #delta#theta,mrad",2e2,-TMath::Pi(),TMath::Pi(),2e2,-thetam,thetam);//TEST
625  hErrTheta = new TH1F("hErrTheta","#sigma(#theta_{REC});#sigma,rad",1e3,0,10*thetam);
626  hPullTheta = new TH1F("hPullTheta","(#theta_{MC}-#theta_{REC})/#sigma_{#theta};",1e2,-10,10);
627  hResPhi = new TH1F("hResPhi","#phi_{MC}-#phi_{REC};#delta#phi,rad",2e3,-1.,1.);
628  hErrPhi = new TH1F("hErrPhi","#sigma(#phi_{REC});#sigma,rad",1e3,0,0.1);
629  hPullPhi = new TH1F("hPullPhi","(#phi_{MC}-#phi_{REC})/#sigma_{#phi};",1e2,-10,10);
630 
631  hResPointPx = new TH1F("hResPointPx","Px_{MC}-Px_{REC};#deltaPx, GeV/c",1e2,-0.01,0.01);
632  hErrPointPx = new TH1F("hErrPointPx","#sigma_{Px};#sigmaPx, GeV/c",1e3,0,0.001);
633  hPullPointPx = new TH1F("hPullPointPx","(Px_{MC}-Px_{REC})/#sigma_{Px};(Px_{MC}-Px_{REC})/#sigma_{Px}",1e2,-10,10);
634 
635  hResPointPy = new TH1F("hResPointPy","Py_{MC}-Py_{REC};#deltaPy, GeV/c",1e2,-0.01,0.01);
636  hErrPointPy = new TH1F("hErrPointPy","#sigma_{Py};#sigmaPy, GeV/c",1e3,0,0.001);
637  hPullPointPy = new TH1F("hPullPointPy","(Py_{MC}-Py_{REC})/#sigma_{Py};(Py_{MC}-Py_{REC})/#sigma_{Py}",1e2,-10,10);
638 
639  hResPointPz = new TH1F("hResPointPz","Pz_{MC}-Pz_{REC};#deltaPz, GeV/c",1e2,-1e-4,1e-4);
640  hErrPointPz = new TH1F("hErrPointPz","#sigma_{Pz};#sigmaPz, GeV/c",1e3,0,1e-3);
641  hPullPointPz = new TH1F("hPullPointPz","(Pz_{MC}-Pz_{REC})/#sigma_{Pz};(Pz_{MC}-Pz_{REC})/#sigma_{Pz}",1e2,-10,10);
642 
643  hResPointX = new TH1F("hResPointX","X_{MC}-X_{REC};#deltaX,cm",1e2,-2.,2.);
644  hPullPointX = new TH1F("hPullPointX","(X_{MC}-X_{REC})/#sigma_{X};(X_{MC}-X_{REC})/#sigma_{X}",1e2,-10,10);
645  hResPointY = new TH1F("hResPointY","Y_{MC}-Y_{REC};#deltaY,cm",1e2,-2.,2.);
646  hPullPointY = new TH1F("hPullPointY","(Y_{MC}-Y_{REC})/#sigma_{Y};(Y_{MC}-Y_{REC})/#sigma_{Y}",1e2,-10,10);
647  hResPointZ = new TH1F("hResPointZ","Z_{MC}-Z_{REC};#deltaZ,cm",1e3,-0.15,0.15);
648  hPullPointZ = new TH1F("hPullPointZ","(Z_{MC}-Z_{REC})/#sigma_{Z};(Z_{MC}-Z_{REC})/#sigma_{Z}",1e2,-10,10);
649 
650  // //back-propagation QA candidates
651 // hPullLikePointX = new TH1F("hPullLikePointX","X_{REC}/#sigma_{X};X_{REC}/#sigma_{X}",1e2,-10,10);
652 // hPullLikePointY = new TH1F("hPullLikePointY","Y_{REC}/#sigma_{Y};Y_{REC}/#sigma_{Y}",1e2,-10,10);
653 // hPullLikePointZ = new TH1F("hPullLikePointZ","Z_{REC}/#sigma_{Z};Z_{REC}/#sigma_{Z}",1e2,-10,10);
654 // hPullLikeX_Zmc = new TH2D("hPullLikeX_Zmc",";Z_{MC}, cm;X_{REC}/#sigma_{X}",1e3,-60,60,1e3,-10,10);
655 // hPullLikeY_Zmc = new TH2D("hPullLikeY_Zmc",";Z_{MC}, cm;Y_{REC}/#sigma_{Y}",1e3,-60,60,1e2,-10,10);
656 // hPullLikeZ_Zmc = new TH2D("hPullLikeZ_Zmc",";Z_{MC}, cm;Z_{REC}/#sigma_{Z}",1e3,-60,60,1e2,-10,10);
657 // hPullLikeTh_Zmc = new TH2D("hPullLikeTh_Zmc",";Z_{MC}, cm;#theta_{REC}/#sigma_{#theta}",1e3,-60,60,2e3,-1000,1000);
658 // hPullLikePh_Zmc = new TH2D("hPullLikePh_Zmc",";Z_{MC}, cm;#phi_{REC}/#sigma_{#phi}",1e3,-60,60,2e3,-1000,1000);
659 // hPullLikeP_Zmc = new TH2D("hPullLikeP_Zmc",";Z_{MC}, cm;P_{REC}/P_{#phi}",1e3,-60,60,2e3,0,2e4);
660 // hXrecZmc = new TH2D("hXrecZmc","; Z_{MC}, cm; X_{REC}, cm",1e3,-60,60,1e3,-5,5);
661 // hYrecZmc = new TH2D("hYrecZmc","; Z_{MC}, cm; Y_{REC}, cm",1e3,-60,60,1e3,-5,5);
662 // // hZrecZmc = new TH2D("hZrecZmc","; Z_{MC}, cm; Z_{REC}, cm",1e3,-60,60,2e3,-110.,110.); //LINE
663 // hZrecZmc = new TH2D("hZrecZmc","; Z_{MC}, cm; Z_{REC}, cm",1e3,-60,60,2e3,-1.,1.);//PCA
664 // hThrecZmc = new TH2D("hThrecZmc","; Z_{MC}, cm; #theta_{REC}, mrad",1e3,-60,60,1e3,0,20);
665 // hPhrecZmc = new TH2D("hPhrecZmc","; Z_{MC}, cm; #phi_{REC}, rad",1e3,-60,60,1e3,-3.15,3.15);
666 // hPrecZmc = new TH2D("hPrecZmc","; Z_{MC}, cm; P_{REC}, GeV/c",1e3,-60,60,1e3,0,2);
667 // hResXrecZmc = new TH2D("hResXrecZmc","; Z_{MC}, cm; X_{MC}-X_{REC}, cm",3e2,-60,60,1e3,-5,5);
668 // hResYrecZmc = new TH2D("hResYrecZmc","; Z_{MC}, cm; Y_{MC}-Y_{REC}, cm",3e2,-60,60,1e3,-5,5);
669 // hResZrecZmc = new TH2D("hResZrecZmc","; Z_{MC}, cm; Z_{MC}-Z_{REC}, cm",3e2,-60,60,2e3,-200,200);
670 // hResThrecZmc = new TH2D("hResThrecZmc","; Z_{MC}, cm; #theta_{MC}-#theta_{REC}, mrad",3e2,-60,60,1e3,-3,3);
671 // hResPhrecZmc = new TH2D("hResPhrecZmc","; Z_{MC}, cm; #phi_{MC}-#phi_{REC}, rad",3e2,-60,60,1e3,-2.,2.);
672 // hResPrecZmc = new TH2D("hResPrecZmc","; Z_{MC}, cm; P_{MC}-P_{REC}, GeV/c",3e2,-60,60,1e3,-10.,10.);
673 
674 // herrXrecZmc = new TH2D("herrXrecZmc","; Z_{MC}, cm; #sigma(X_{REC}), cm",1e3,-60,60,1e3,0,2);
675 // herrYrecZmc = new TH2D("herrYrecZmc","; Z_{MC}, cm; #sigma(Y_{REC}), cm",1e3,-60,60,1e3,0,2);
676 // herrZrecZmc = new TH2D("herrZrecZmc","; Z_{MC}, cm; #sigma(Z_{REC}), cm",1e3,-60,60,1e3,0,0.1);
677 // herrThrecZmc = new TH2D("herrThrecZmc","; Z_{MC}, cm; #sigma(#theta_{REC}), mrad",1e3,-60,60,1e3,0,2.);
678 // herrPhrecZmc = new TH2D("herrPhrecZmc","; Z_{MC}, cm; #sigma(#phi_{REC}), rad",1e3,-60,60,1e3,0,1.);
679 // herrPrecZmc = new TH2D("herrPrecZmc","; Z_{MC}, cm; #sigma(P_{REC}), GeV/c",1e3,-60,60,1e3,0,0.1);
680 
681 
682 // hPullLikeX_Xmc = new TH2D("hPullLikeX_Xmc",";X_{MC}, cm;X_{REC}/#sigma_{X}",1e3,-2,2,1e3,-10,10);
683 // hPullLikeY_Xmc = new TH2D("hPullLikeY_Xmc",";X_{MC}, cm;Y_{REC}/#sigma_{Y}",1e3,-2,2,1e2,-10,10);
684 // hPullLikeZ_Xmc = new TH2D("hPullLikeZ_Xmc",";X_{MC}, cm;Z_{REC}/#sigma_{Z}",1e3,-2,2,1e2,-10,10);
685 // hPullLikeTh_Xmc = new TH2D("hPullLikeTh_Xmc",";X_{MC}, cm;#theta_{REC}/#sigma_{#theta}",1e3,-2,2,2e3,-1000,1000);
686 // hPullLikePh_Xmc = new TH2D("hPullLikePh_Xmc",";X_{MC}, cm;#phi_{REC}/#sigma_{#phi}",1e3,-2,2,2e3,-1000,1000);
687 // hPullLikeP_Xmc = new TH2D("hPullLikeP_Xmc",";X_{MC}, cm;P_{REC}/P_{#phi}",1e3,-2,2,2e3,0,2e4);
688 // hXrecXmc = new TH2D("hXrecXmc","; X_{MC}, cm; X_{REC}, cm",1e3,-2,2,1e3,-5,5);
689 // hYrecXmc = new TH2D("hYrecXmc","; X_{MC}, cm; Y_{REC}, cm",1e3,-2,2,1e3,-5,5);
690 // // hZrecXmc = new TH2D("hZrecXmc","; X_{MC}, cm; Z_{REC}, cm",1e3,-2,2,2e3,-110.,110.);//LINE
691 // hZrecXmc = new TH2D("hZrecXmc","; X_{MC}, cm; Z_{REC}, cm",1e3,-2,2,2e3,-1.,1.);//PCA
692 // hThrecXmc = new TH2D("hThrecXmc","; X_{MC}, cm; #theta_{REC}, mrad",1e3,-2,2,1e3,0,20);
693 // hPhrecXmc = new TH2D("hPhrecXmc","; X_{MC}, cm; #phi_{REC}, rad",1e3,-2,2,1e3,-3.15,3.15);
694 // hPrecXmc = new TH2D("hPrecXmc","; X_{MC}, cm; P_{REC}, GeV/c",1e3,-2,2,1e3,0,2);
695 // hResXrecXmc = new TH2D("hResXrecXmc","; X_{MC}, cm; X_{MC}-X_{REC}, cm",3e2,-2,2,1e3,-5,5);
696 // hResYrecXmc = new TH2D("hResYrecXmc","; X_{MC}, cm; Y_{MC}-Y_{REC}, cm",3e2,-2,2,1e3,-5,5);
697 // hResZrecXmc = new TH2D("hResZrecXmc","; X_{MC}, cm; Z_{MC}-Z_{REC}, cm",3e2,-2,2,2e3,-200,200);
698 // hResThrecXmc = new TH2D("hResThrecXmc","; X_{MC}, cm; #theta_{MC}-#theta_{REC}, mrad",3e2,-2,2,1e3,-3,3);
699 // hResPhrecXmc = new TH2D("hResPhrecXmc","; X_{MC}, cm; #phi_{MC}-#phi_{REC}, rad",3e2,-2,2,1e3,-2.,2.);
700 // hResPrecXmc = new TH2D("hResPrecXmc","; X_{MC}, cm; P_{MC}-P_{REC}, GeV/c",3e2,-2,2,1e3,-10.,10.);
701 
702 // herrXrecXmc = new TH2D("herrXrecXmc","; X_{MC}, cm; #sigma(X_{REC}), cm",1e3,-2,2,1e3,0,2);
703 // herrYrecXmc = new TH2D("herrYrecXmc","; X_{MC}, cm; #sigma(Y_{REC}), cm",1e3,-2,2,1e3,0,2);
704 // herrZrecXmc = new TH2D("herrZrecXmc","; X_{MC}, cm; #sigma(Z_{REC}), cm",1e3,-2,2,1e3,0,0.1);
705 // herrThrecXmc = new TH2D("herrThrecXmc","; X_{MC}, cm; #sigma(#theta_{REC}), mrad",1e3,-2,2,1e3,0,2.);
706 // herrPhrecXmc = new TH2D("herrPhrecXmc","; X_{MC}, cm; #sigma(#phi_{REC}), rad",1e3,-2,2,1e3,0,1.);
707 // herrPrecXmc = new TH2D("herrPrecXmc","; X_{MC}, cm; #sigma(P_{REC}), GeV/c",1e3,-2,2,1e3,0,0.1);
708 
709 
710 // ////////////
711 
712 // hPullLikeX_Ymc = new TH2D("hPullLikeX_Ymc",";Y_{MC}, cm;X_{REC}/#sigma_{X}",1e3,-2,2,1e3,-10,10);
713 // hPullLikeY_Ymc = new TH2D("hPullLikeY_Ymc",";Y_{MC}, cm;Y_{REC}/#sigma_{Y}",1e3,-2,2,1e2,-10,10);
714 // hPullLikeZ_Ymc = new TH2D("hPullLikeZ_Ymc",";Y_{MC}, cm;Z_{REC}/#sigma_{Z}",1e3,-2,2,1e2,-10,10);
715 // hPullLikeTh_Ymc = new TH2D("hPullLikeTh_Ymc",";Y_{MC}, cm;#theta_{REC}/#sigma_{#theta}",1e3,-2,2,2e3,-1000,1000);
716 // hPullLikePh_Ymc = new TH2D("hPullLikePh_Ymc",";Y_{MC}, cm;#phi_{REC}/#sigma_{#phi}",1e3,-2,2,2e3,-1000,1000);
717 // hPullLikeP_Ymc = new TH2D("hPullLikeP_Ymc",";Y_{MC}, cm;P_{REC}/P_{#phi}",1e3,-2,2,2e3,0,2e4);
718 // hXrecYmc = new TH2D("hXrecYmc","; Y_{MC}, cm; X_{REC}, cm",1e3,-2,2,1e3,-5,5);
719 // hYrecYmc = new TH2D("hYrecYmc","; Y_{MC}, cm; Y_{REC}, cm",1e3,-2,2,1e3,-5,5);
720 // // hZrecYmc = new TH2D("hZrecYmc","; X_{MC}, cm; Z_{REC}, cm",1e3,-2,2,2e3,-110.,110.);//LINE
721 // hZrecYmc = new TH2D("hZrecYmc","; Y_{MC}, cm; Z_{REC}, cm",1e3,-2,2,2e3,-1.,1.);//PCA
722 // hThrecYmc = new TH2D("hThrecYmc","; Y_{MC}, cm; #theta_{REC}, mrad",1e3,-2,2,1e3,0,20);
723 // hPhrecYmc = new TH2D("hPhrecYmc","; Y_{MC}, cm; #phi_{REC}, rad",1e3,-2,2,1e3,-3.15,3.15);
724 // hPrecYmc = new TH2D("hPrecYmc","; Y_{MC}, cm; P_{REC}, GeV/c",1e3,-2,2,1e3,0,2);
725 // hResXrecYmc = new TH2D("hResXrecYmc","; Y_{MC}, cm; X_{MC}-X_{REC}, cm",3e2,-2,2,1e3,-5,5);
726 // hResYrecYmc = new TH2D("hResYrecYmc","; Y_{MC}, cm; Y_{MC}-Y_{REC}, cm",3e2,-2,2,1e3,-5,5);
727 // hResZrecYmc = new TH2D("hResZrecYmc","; Y_{MC}, cm; Z_{MC}-Z_{REC}, cm",3e2,-2,2,2e3,-200,200);
728 // hResThrecYmc = new TH2D("hResThrecYmc","; Y_{MC}, cm; #theta_{MC}-#theta_{REC}, mrad",3e2,-2,2,1e3,-3,3);
729 // hResPhrecYmc = new TH2D("hResPhrecYmc","; Y_{MC}, cm; #phi_{MC}-#phi_{REC}, rad",3e2,-2,2,1e3,-2.,2.);
730 // hResPrecYmc = new TH2D("hResPrecYmc","; Y_{MC}, cm; P_{MC}-P_{REC}, GeV/c",3e2,-2,2,1e3,-10.,10.);
731 
732 // herrXrecYmc = new TH2D("herrXrecYmc","; Y_{MC}, cm; #sigma(X_{REC}), cm",1e3,-2,2,1e3,0,2);
733 // herrYrecYmc = new TH2D("herrYrecYmc","; Y_{MC}, cm; #sigma(Y_{REC}), cm",1e3,-2,2,1e3,0,2);
734 // herrZrecYmc = new TH2D("herrZrecYmc","; Y_{MC}, cm; #sigma(Z_{REC}), cm",1e3,-2,2,1e3,0,0.1);
735 // herrThrecYmc = new TH2D("herrThrecYmc","; Y_{MC}, cm; #sigma(#theta_{REC}), mrad",1e3,-2,2,1e3,0,2.);
736 // herrPhrecYmc = new TH2D("herrPhrecYmc","; Y_{MC}, cm; #sigma(#phi_{REC}), rad",1e3,-2,2,1e3,0,1.);
737 // herrPrecYmc = new TH2D("herrPrecYmc","; Y_{MC}, cm; #sigma(P_{REC}), GeV/c",1e3,-2,2,1e3,0,0.1);
738 
739  //Near 1st LMD plane
740  hhits = new TH1I("hhits","number of hits in trk",7,0,7);
741  hchi2 = new TH1F("hchi2","#chi^2 for reconstructed tracks;#chi^2;",1.5e2,-1,15.);
742  hResLumiTrkMom = new TH1F("hResLumiTrkMom","P_{MC}-P_{REC}(near Lumi);#deltaP,GeV/c",1e3,-6e-7,6e-7);
743  hResLumiTrkTheta = new TH1F("hResLumiTrkTheta","#theta_{MC}-#theta_{REC}(near Lumi);#delta#theta,rad",1e3,-6e-3,6e-3);
744  hResLumiTrkTheta2D = new TH2D("hResLumiTrkTheta2D", ";#Delta#theta_{x}(near Lumi);#Delta#theta_{y},rad", 1e3,-0.0005, 0.0005, 1e3,-0.0005, 0.0005);
745  hMCLumiTrkTheta2D = new TH2D("hMCLumiTrkTheta2D", ";#theta_{x}(MC near Lumi);#theta_{y},rad", 1e3, 0.030, 0.050, 1e3,-0.012, 0.012);
746  hRecLumiTrkTheta2D = new TH2D("hRecLumiTrkTheta2D", ";#theta_{x}(Rec near Lumi);#theta_{y},rad", 1e3, 0.030, 0.050, 1e3,-0.012, 0.012);
747 
748 
749  hResLumiTrkPhi = new TH1F("hResLumiTrkPhi","#phi_{MC}-#phi_{REC}(near Lumi);#delta#phi,rad",2e3,-1e-1,1e-1);
750  hResLumiTrkPointX = new TH1F("hResLumiTrkPointX","X_{MC}-X_{REC}(near Lumi);#deltaX,cm",1e2,-0.02,0.02);
751  hResLumiTrkPointY = new TH1F("hResLumiTrkPointY","Y_{MC}-Y_{REC}(near Lumi);#deltaY,cm",1e2,-0.02,0.02);
752  hResLumiTrkPointZ = new TH1F("hResLumiTrkPointZ","Z_{MC}-Z_{REC}(near Lumi);#deltaZ,cm",1e2,-0.02,0.02);
753 
754  hResLumiTrkPointPx = new TH1F("hResLumiTrkPointPx","Px_{MC}-Px_{REC}(near Lumi);#deltaPx, GeV/c",1e2,-0.01,0.01);
755  hResLumiTrkPointPy = new TH1F("hResLumiTrkPointPy","Py_{MC}-Py_{REC}(near Lumi);#deltaPy, GeV/c",1e2,-0.01,0.01);
756  hResLumiTrkPointPz = new TH1F("hResLumiTrkPointPz","Pz_{MC}-Pz_{REC}(near Lumi);#deltaPz, GeV/c",1e2,-5e-4,5e-4);
757 
758  hResLumiTrkPointXErr = new TH1F("hResLumiTrkPointXErr","#sigma(X_{REC})(near Lumi);#sigma_{X},cm",1e2,0,0.02);
759  hResLumiTrkPointYErr = new TH1F("hResLumiTrkPointYErr","#sigma(Y_{REC})(near Lumi);#sigma_{Y},cm",1e2,0,0.02);
760  hResLumiTrkPointZErr = new TH1F("hResLumiTrkPointZErr","#sigma(Z_{REC})(near Lumi);#sigma_{Z},cm",1e2,0,0.02);
761  hResLumiTrkPointPxErr = new TH1F("hResLumiTrkPointPxErr","#sigma(Px_{REC})(near Lumi);#sigma_{Px}, GeV/c",1e2,0,0.001);
762  hResLumiTrkPointPyErr = new TH1F("hResLumiTrkPointPyErr","#sigma(Py_{REC})(near Lumi);#sigma_{Py}, GeV/c",1e2,0,0.001);
763  hResLumiTrkPointPzErr = new TH1F("hResLumiTrkPointPzErr","#sigma(Pz_{REC})(near Lumi);#sigma_{Pz}, GeV/c",1e2,0,0.0001);
764 
765  hResLumiTrkPointXPull = new TH1F("hResLumiTrkPointXPull","(X_{MC}-X_{REC})/#sigma (near Lumi) ;(X_{MC}-X_{REC})/#sigma",1e2,-10.,10.);
766  hResLumiTrkPointYPull = new TH1F("hResLumiTrkPointYPull","(Y_{MC}-Y_{REC})/#sigma (near Lumi);(Y_{MC}-Y_{REC})/#sigma",1e2,-10.,10.);
767  hResLumiTrkPointZPull = new TH1F("hResLumiTrkPointZPull","(Z_{MC}-Z_{REC})/#sigma (near Lumi);(Z_{MC}-Z_{REC})/#sigma",1e3,-100.,100.);
768 
769  hResLumiTrkPointPxPull = new TH1F("hResLumiTrkPointPxPull","(Px_{MC}-Px_{REC})/#sigma (near Lumi);(Px_{MC}-Px_{REC})/#sigma",1e2,-10,10.);
770  hResLumiTrkPointPyPull = new TH1F("hResLumiTrkPointPyPull","(Py_{MC}-Py_{REC})/#sigma (near Lumi);(Py_{MC}-Py_{REC})/#sigma",1e2,-10,10);
771  hResLumiTrkPointPzPull = new TH1F("hResLumiTrkPointPzPull","(Pz_{MC}-Pz_{REC})/#sigma (near Lumi);(Pz_{MC}-Pz_{REC})/#sigma",1e2,-10,10);
772  hResLumiTrkThetaPull = new TH1F("hResLumiTrkThetaPull","(#theta_{MC}-#theta_{REC})/#sigma (near Lumi);#delta#theta, rad",1e2,-10,10);
773  hResLumiTrkPhiPull = new TH1F("hResLumiTrkPhiPull","(#phi_{MC}-#phi_{REC})/#sigma (near Lumi);#delta#phi, rad",1e2,-10,10);
774 
775 
776  //info about hits
777  hResHitX = new TH1F("hResHitX","X_{MC}-X_{rec};#deltaX,cm",2e3,-0.5,0.5);
778  hResHitY = new TH1F("hResHitY","Y_{MC}-Y_{rec};#deltaY,cm",2e3,-0.5,0.5);
779  hResHitZ = new TH1F("hResHitZ","Z_{MC}-Z_{rec};#deltaZ,cm",2e2,-3e-2,3e-2);
780 
781 
782  std::cout << "-I- PndLmdQATask: Initialisation successfull" << std::endl;
783  return kSUCCESS;
784 }
TH1 * hResLumiTrkPointPzErr
Definition: PndLmdQATask.h:217
TH1 * hResLumiTrkPointPyErr
Definition: PndLmdQATask.h:216
TH1 * hResLumiTrkPointPx
Definition: PndLmdQATask.h:208
TH1 * hResLumiTrkPointXErr
Definition: PndLmdQATask.h:212
TH2 * hMCLumiTrkTheta2D
Definition: PndLmdQATask.h:202
TString fmcHitName
Definition: PndLmdQATask.h:60
TString fTrkCandName
Definition: PndLmdQATask.h:65
TH1 * hResLumiTrkPointPyPull
Definition: PndLmdQATask.h:224
TString fmcTrkName
Definition: PndLmdQATask.h:61
TClonesArray * fmcHitArray
Definition: PndLmdQATask.h:51
TH1 * hResLumiTrkPointPz
Definition: PndLmdQATask.h:210
TH1 * hResLumiTrkPhiPull
Definition: PndLmdQATask.h:227
TH1 * hResPointPx
Definition: PndLmdQATask.h:94
TH1 * hResLumiTrkMom
Definition: PndLmdQATask.h:198
TH1 * hResPointPy
Definition: PndLmdQATask.h:98
TH1 * hResPointX
Definition: PndLmdQATask.h:106
TH1 * hResLumiTrkPointPxPull
Definition: PndLmdQATask.h:223
TH1 * hResLumiTrkPointXPull
Definition: PndLmdQATask.h:219
TString fGeaneName
Definition: PndLmdQATask.h:67
TString fTrkName
Definition: PndLmdQATask.h:66
TH1 * hPullPointPy
Definition: PndLmdQATask.h:100
TClonesArray * fTrkCandArray
Definition: PndLmdQATask.h:56
TH1 * hResLumiTrkThetaPull
Definition: PndLmdQATask.h:226
TH2 * hResLumiTrkTheta2D
Definition: PndLmdQATask.h:201
TH1 * hResTheta
Definition: PndLmdQATask.h:86
TH1 * hResLumiTrkPointYPull
Definition: PndLmdQATask.h:220
TH1 * hResLumiTrkPointPzPull
Definition: PndLmdQATask.h:225
TH1 * hErrPointPz
Definition: PndLmdQATask.h:103
TH1 * hPullPointPx
Definition: PndLmdQATask.h:96
TH1 * hResLumiTrkPointZ
Definition: PndLmdQATask.h:206
TClonesArray * fClusterArray
Definition: PndLmdQATask.h:54
TH1 * hErrPointPx
Definition: PndLmdQATask.h:95
TH1 * hResLumiTrkPointPy
Definition: PndLmdQATask.h:209
TH1 * hResPointY
Definition: PndLmdQATask.h:108
TH1 * hResPointZ
Definition: PndLmdQATask.h:110
TH1 * hResLumiTrkTheta
Definition: PndLmdQATask.h:199
TH1 * hPullPointX
Definition: PndLmdQATask.h:107
TH1 * hPullPointPz
Definition: PndLmdQATask.h:104
TH1 * hResLumiTrkPointX
Definition: PndLmdQATask.h:204
TH1 * hPullPhi
Definition: PndLmdQATask.h:93
TH1 * hResLumiTrkPhi
Definition: PndLmdQATask.h:200
TH1 * hResLumiTrkPointPxErr
Definition: PndLmdQATask.h:215
TClonesArray * fTrkArray
Definition: PndLmdQATask.h:57
TH1 * hErrPointPy
Definition: PndLmdQATask.h:99
TH1 * hPullPointZ
Definition: PndLmdQATask.h:111
TH1 * hPullPointY
Definition: PndLmdQATask.h:109
TString fClusterName
Definition: PndLmdQATask.h:64
TString fHitName
Definition: PndLmdQATask.h:62
TH1 * hResLumiTrkPointYErr
Definition: PndLmdQATask.h:213
TH1 * hResLumiTrkPointZPull
Definition: PndLmdQATask.h:221
TH2 * hRecLumiTrkTheta2D
Definition: PndLmdQATask.h:203
TH2 * hResTheta_ph
Definition: PndLmdQATask.h:88
TH1 * hErrTheta
Definition: PndLmdQATask.h:89
TH1 * hResLumiTrkPointZErr
Definition: PndLmdQATask.h:214
TH1 * hResLumiTrkPointY
Definition: PndLmdQATask.h:205
TClonesArray * fHitArray
Definition: PndLmdQATask.h:53
Double_t Pi
TClonesArray * fmcTrkArray
Definition: PndLmdQATask.h:52
TH1 * hResPointPz
Definition: PndLmdQATask.h:102
TH2 * hResTheta_th
Definition: PndLmdQATask.h:87
TClonesArray * fGeaneArray
Definition: PndLmdQATask.h:58
TClonesArray * fDigiArray
Definition: PndLmdQATask.h:55
TString fDigiName
Definition: PndLmdQATask.h:63
TH1 * hPullTheta
Definition: PndLmdQATask.h:90
PndLmdQATask& PndLmdQATask::operator= ( const PndLmdQATask )
delete
void PndLmdQATask::ResoAndPulls ( )
protected

Read REC track parameters near IP -----——————————

Read REC track parameters near LMD --------—————————



Comporision between MC tracks, reconstructed tracks near LMD and back propagated tracks -————

Read MC track parameters near IP ---------------------—————


Read MC track parameters near LMD ---------------------------———


Comporision between MC tracks, reconstructed tracks near LMD and back propagated tracks (END) --—

Definition at line 857 of file PndLmdQATask.cxx.

References CAMath::ASin(), CAMath::Cos(), Double_t, fClusterArray, fDigiArray, fEvent, fGeaneArray, fHitArray, fmcHitArray, fmcTrkArray, fTrkArray, fTrkCandArray, PndSdsHit::GetClusterIndex(), PndSdsCluster::GetDigiIndex(), PndTrackCandHit::GetHitId(), PndSdsDigi::GetIndex(), PndMCTrack::GetMomentum(), PndTrackCand::GetNHits(), PndSdsMCPoint::GetPosition(), PndTrackCand::GetSortedHit(), PndMCTrack::GetStartVertex(), ghosttrk, hchi2, hErrPhi, hErrPointPx, hErrPointPy, hErrPointPz, hErrTheta, hhits, hMCLumiTrkTheta2D, hPullPhi, hPullPointPx, hPullPointPy, hPullPointPz, hPullPointX, hPullPointY, hPullPointZ, hPullTheta, hRecLumiTrkTheta2D, hResLumiTrkPhi, hResLumiTrkPhiPull, hResLumiTrkPointPx, hResLumiTrkPointPxErr, hResLumiTrkPointPxPull, hResLumiTrkPointPy, hResLumiTrkPointPyErr, hResLumiTrkPointPyPull, hResLumiTrkPointPz, hResLumiTrkPointPzErr, hResLumiTrkPointPzPull, hResLumiTrkPointX, hResLumiTrkPointXErr, hResLumiTrkPointXPull, hResLumiTrkPointY, hResLumiTrkPointYErr, hResLumiTrkPointYPull, hResLumiTrkPointZ, hResLumiTrkPointZErr, hResLumiTrkPointZPull, hResLumiTrkTheta, hResLumiTrkTheta2D, hResLumiTrkThetaPull, hResMom, hResPhi, hResPointPx, hResPointPy, hResPointPz, hResPointX, hResPointY, hResPointZ, hResTheta, hResTheta_ph, hResTheta_th, MCPoint, mistrk, sqrt(), CAMath::Sqrt(), CAMath::Tan(), and verboseLevel.

Referenced by Exec().

858 {
859 
860  // Read GEANE & MC info -----------------------------------------------------------------
861  const int nGeaneTrks = fGeaneArray->GetEntriesFast();
862  const int nParticles = fmcTrkArray->GetEntriesFast();
863  //const int nRecHits = fHitArray->GetEntriesFast(); //[R.K. 01/2017] unused variable
864  const int nRecTrks = fTrkArray->GetEntriesFast();
865 
866  if(nGeaneTrks<nParticles)
867  mistrk += nParticles-nGeaneTrks;
868 
869  if(nGeaneTrks>nParticles)
870  ghosttrk += nGeaneTrks-nParticles;
871  if(verboseLevel>0) {
872  if(nParticles!=1)
873  std::cout<<"Hey, QA task is implemented only for 1 trk/event case. In Ev #"<<fEvent-1<<" you have "<<nParticles<<" MC tracks!"<<std::endl;
874  }
875  // if(nParticles!=1) return; //TODO: currently works only 1 trk/event !
876  if(verboseLevel>0)
877  cout<<"# "<< fEvent-1 <<"\t nGeaneTrks="<<nGeaneTrks<<" nParticles="<<nParticles<<" nRecTrks="<<nRecTrks<<endl;
878  //TODO: correct assignment between MC and REC trks
879  // vector<int> missedTrk;
880  // missedTrk.resize(nParticles);
881  // vector<int> ghostTrk;
882  // ghostTrk.resize(nGeaneTrks);
883 
884  for (Int_t iN=0; iN<nGeaneTrks; iN++){// loop over all reconstructed trks
885  FairTrackParH *fRes = (FairTrackParH*)fGeaneArray->At(iN);
886  Double_t lyambda = fRes->GetLambda();
887  if(lyambda==0){
888  cout<<"GEANE didn't propagate this trk!"<<endl;
889  // glBADGEANE++;
890  }
891  if(lyambda==0) continue;
892 
894  TVector3 MomRecPCA = fRes->GetMomentum();
895  // MomRecPCA *= fPlab/MomRecPCA.Mag();
896  TVector3 PosRecPCA = fRes->GetPosition();
897  Double_t errPx = fRes->GetDPx();
898  Double_t errPy = fRes->GetDPy();
899  Double_t errPz = fRes->GetDPz();
900  TVector3 errMomRecPCA(errPx,errPy,errPz);
901  Double_t errX = fRes->GetDX();
902  Double_t errY = fRes->GetDY();
903  Double_t errZ = fRes->GetDZ();
904  TVector3 errPosRecPCA(errX,errY,errZ);
905 
906  //Double_t thetaBP = TMath::Pi()/2. - lyambda; //[R.K. 01/2017] unused variable
907  // Double_t err_lyambda = fRes->GetDLambda();
908  //Double_t phiBP = fRes->GetPhi(); //[R.K. 01/2017] unused variable
909  // Double_t err_phi = fRes->GetDPhi();
910 
911  //calculate theta & phi errors
912  double fLmPCA = TMath::ASin(MomRecPCA.Z()/MomRecPCA.Mag());
913  double cLmPCA= TMath::Cos(fLmPCA);
914  //double sLmPCA= TMath::Sin(fLmPCA); //[R.K. 01/2017] unused variable
915  Double_t fPPCA =sqrt(MomRecPCA.X()*MomRecPCA.X()+MomRecPCA.Y()*MomRecPCA.Y()+MomRecPCA.Z()*MomRecPCA.Z());
916  Double_t fDPPCA= (2*MomRecPCA.X()*errMomRecPCA.X()+2*MomRecPCA.Y()*errMomRecPCA.Y()+2*MomRecPCA.Z()*errMomRecPCA.Z())/(2*fPPCA); //dp
917  Double_t err_lyambda = (-((MomRecPCA.Z()*fDPPCA)/pow(fPPCA,2)) + errMomRecPCA.Z()/fPPCA)/ TMath::Sqrt(1 - pow(MomRecPCA.Z(),2)/pow(fPPCA,2));
918  Double_t err_phi = (-((MomRecPCA.Y()*fDPPCA/cLmPCA)/pow(fPPCA,2)) + (errMomRecPCA.Y()/cLmPCA)/fPPCA +(MomRecPCA.Y()*err_lyambda*TMath::Tan(fLmPCA)/cLmPCA)/fPPCA) /TMath::Sqrt(1 - (pow(MomRecPCA.Y(),2)*pow(1/cLmPCA,2))/pow(fPPCA,2));
919 
920 
921  // Double_t CovGEANELAB[6][6];
922  // fRes->GetMARSCov(CovGEANELAB);
923  // Double_t errMomRecBP = fRes->GetDQp();
924  // ///get rid from most probably ghost track ----------
925  // //TODO: find reason for such trks in Kalman
926  // double pca_lim = 1.;//=10*sigma_Xpca~10*{0.093,0.11,0.12,0.22,0.55};
927  // if(fPlab<5) pca_lim = 2.;
928  // if(fPlab<2) pca_lim = 5.;
929  // if(fabs(PosRecPCA.X())>pca_lim && fabs(PosRecPCA.Y())>pca_lim) continue; // PCA_x and PCA_y should be < 10sigmaX
930  // ///get rid from most probably ghost track (END) ---
931  // ///------------------------------------------------------------------------------------
932 
934  PndTrack *trkpnd = (PndTrack*)fTrkArray->At(iN);
935  double chi2 = trkpnd->GetChi2();
936  hchi2->Fill(chi2);
937  FairTrackParP fFittedTrkP = trkpnd->GetParamFirst();
938  TVector3 PosRecLMD(fFittedTrkP.GetX(),fFittedTrkP.GetY(),fFittedTrkP.GetZ());
939  TVector3 MomRecLMD(fFittedTrkP.GetPx(),fFittedTrkP.GetPy(),fFittedTrkP.GetPz());
940  // MomRecLMD *=fPlab/MomRecLMD.Mag();
941  double covMARS[6][6];
942  fFittedTrkP.GetMARSCov(covMARS);
943  TVector3 errMomRecLMD(sqrt(covMARS[0][0]),sqrt(covMARS[1][1]),sqrt(covMARS[2][2]));
944  TVector3 errPosRecLMD(sqrt(covMARS[3][3]),sqrt(covMARS[4][4]),sqrt(covMARS[5][5]));
945 
946  //calculate theta & phi errors
947  double fLm = TMath::ASin(MomRecLMD.Z()/MomRecLMD.Mag());
948  double cLm= TMath::Cos(fLm);
949  //double sLm= TMath::Sin(fLm); //[R.K. 01/2017] unused variable
950  Double_t fP =sqrt(MomRecLMD.X()*MomRecLMD.X()+MomRecLMD.Y()*MomRecLMD.Y()+MomRecLMD.Z()*MomRecLMD.Z());
951  Double_t fDP= (2*MomRecLMD.X()*errMomRecLMD.X()+2*MomRecLMD.Y()*errMomRecLMD.Y()+2*MomRecLMD.Z()*errMomRecLMD.Z())/(2*fP); //dp
952  Double_t err_lyambdaLMD = (-((MomRecLMD.Z()*fDP)/pow(fP,2)) + errMomRecLMD.Z()/fP)/ TMath::Sqrt(1 - pow(MomRecLMD.Z(),2)/pow(fP,2));
953  Double_t err_phiLMD = (-((MomRecLMD.Y()*fDP/cLm)/pow(fP,2)) + (errMomRecLMD.Y()/cLm)/fP +(MomRecLMD.Y()*err_lyambdaLMD*TMath::Tan(fLm)/cLm)/fP) /TMath::Sqrt(1 - (pow(MomRecLMD.Y(),2)*pow(1/cLm,2))/pow(fP,2));
955 
956 
957 
958  //Matching between MC & Rec on 1st hit level-----------------------------------
959  int candID = trkpnd->GetRefIndex();
960  PndTrackCand *trkcand = (PndTrackCand*)fTrkCandArray->At(candID);
961  const int Ntrkcandhits= trkcand->GetNHits();
962  PndSdsMCPoint* MCPointHit;
963  int MCid;
964  bool hitmix = false;
965  //if(Ntrkcandhits<4) continue; //require trks with hits on all planes
966  // if(Ntrkcandhits>3) continue; //require trks with hits not on all planes
967  hhits->Fill(Ntrkcandhits);
968  for (Int_t iHit = 0; iHit < Ntrkcandhits; iHit++){ // loop over rec.hits
969  PndTrackCandHit candhit = (PndTrackCandHit)(trkcand->GetSortedHit(iHit));
970  Int_t hitID = candhit.GetHitId();
971  PndSdsHit* myHit = (PndSdsHit*)(fHitArray->At(hitID));
972 
973  //for pixel design
975  PndSdsDigiPixel* astripdigi = (PndSdsDigiPixel*)(fDigiArray->At(myCluster->GetDigiIndex(0)));
976  if (astripdigi->GetIndex(0) == -1)
977  continue;
978  PndSdsMCPoint* MCPoint = (PndSdsMCPoint*)(fmcHitArray->At(astripdigi->GetIndex(0)));
979  int MCidTOP = MCPoint->GetTrackID();
980  if(iHit<1){
981  MCPointHit = MCPoint;
982  MCid = MCidTOP;
983  }
984  else
985  if(MCid!=MCidTOP){
986  cout<<"REC trk contains hits from different MC trks! Skip event #"<<fEvent<<endl;
987  hitmix = true;
988  }
989  }
990  if(hitmix) continue;
992 
993 
995  if(MCid<0) continue;
997  PndMCTrack *mctrk =(PndMCTrack*) fmcTrkArray->At(MCid);
998  //Int_t mcID = mctrk->GetPdgCode(); //[R.K. 01/2017] unused variable
999  TVector3 MomMCpca = mctrk->GetMomentum();
1000  TVector3 PosMCpca = mctrk->GetStartVertex();
1001  //Double_t thetaMC = MomMCpca.Theta(); //[R.K. 01/2017] unused variable
1002  //Double_t phiMC = MomMCpca.Phi(); //[R.K. 01/2017] unused variable
1004 
1005  MomRecPCA *= MomMCpca.Mag()/MomRecPCA.Mag();
1006  hResPointPx->Fill(MomMCpca.X()-MomRecPCA.X());
1007  hResPointPy->Fill(MomMCpca.Y()-MomRecPCA.Y());
1008  hResPointPz->Fill(MomMCpca.Z()-MomRecPCA.Z());
1009  hErrPointPx->Fill(errMomRecPCA.X());
1010  hErrPointPy->Fill(errMomRecPCA.Y());
1011  hErrPointPz->Fill(errMomRecPCA.Z());
1012  hPullPointPx->Fill((MomMCpca.X()-MomRecPCA.X())/errMomRecPCA.X());
1013  hPullPointPy->Fill((MomMCpca.Y()-MomRecPCA.Y())/errMomRecPCA.Y());
1014  hPullPointPz->Fill((MomMCpca.Z()-MomRecPCA.Z())/errMomRecPCA.Z());
1015  hResPointX->Fill(PosMCpca.X()-PosRecPCA.X());
1016  hResPointY->Fill(PosMCpca.Y()-PosRecPCA.Y());
1017  hResPointZ->Fill(PosMCpca.Z()-PosRecPCA.Z());
1018  hPullPointX->Fill((PosMCpca.X()-PosRecPCA.X())/errPosRecPCA.X());
1019  hPullPointY->Fill((PosMCpca.Y()-PosRecPCA.Y())/errPosRecPCA.Y());
1020  hPullPointZ->Fill((PosMCpca.Z()-PosRecPCA.Z())/errPosRecPCA.Z());
1021 
1022  // hPullLikePointX->Fill(PosRecPCA.X()/errPosRecPCA.X());
1023  // hPullLikePointY->Fill(PosRecPCA.Y()/errPosRecPCA.Y());
1024  // hPullLikePointZ->Fill(PosRecPCA.Z()/errPosRecPCA.Z());
1025 
1026  // hXrecZmc->Fill(PosMCpca.Z(),PosRecPCA.X());
1027  // hYrecZmc->Fill(PosMCpca.Z(),PosRecPCA.Y());
1028  // hZrecZmc->Fill(PosMCpca.Z(),PosRecPCA.Z());
1029  // hThrecZmc->Fill(PosMCpca.Z(),1e3*MomRecPCA.Theta());
1030  // hPhrecZmc->Fill(PosMCpca.Z(),MomRecPCA.Phi());
1031  // hPrecZmc->Fill(PosMCpca.Z(),MomRecPCA.Mag());
1032 
1033  // hResXrecZmc->Fill(PosMCpca.Z(),PosMCpca.X()-PosRecPCA.X());
1034  // hResYrecZmc->Fill(PosMCpca.Z(),PosMCpca.Y()-PosRecPCA.Y());
1035  // hResZrecZmc->Fill(PosMCpca.Z(),PosMCpca.Z()-PosRecPCA.Z());
1036  // hResThrecZmc->Fill(PosMCpca.Z(),1e3*(MomMCpca.Theta()-MomRecPCA.Theta()));
1037  // hResPhrecZmc->Fill(PosMCpca.Z(),MomMCpca.Phi()-MomRecPCA.Phi());
1038  // hResPrecZmc->Fill(PosMCpca.Z(),MomMCpca.Mag()-MomRecPCA.Mag());
1039 
1040  // herrXrecZmc->Fill(PosMCpca.Z(),errPosRecPCA.X());
1041  // herrYrecZmc->Fill(PosMCpca.Z(),errPosRecPCA.Y());
1042  // herrZrecZmc->Fill(PosMCpca.Z(),errPosRecPCA.Z());
1043  // herrThrecZmc->Fill(PosMCpca.Z(),1e3*err_lyambda);
1044  // herrPhrecZmc->Fill(PosMCpca.Z(),err_phi);
1045  // herrPrecZmc->Fill(PosMCpca.Z(),errMomRecPCA.Mag());
1046 
1047  // hPullLikeX_Zmc->Fill(PosMCpca.Z(),PosRecPCA.X()/errPosRecPCA.X());
1048  // hPullLikeY_Zmc->Fill(PosMCpca.Z(),PosRecPCA.Y()/errPosRecPCA.Y());
1049  // hPullLikeZ_Zmc->Fill(PosMCpca.Z(),PosRecPCA.Z()/errPosRecPCA.Z());
1050  // hPullLikeTh_Zmc->Fill(PosMCpca.Z(),MomRecPCA.Theta()/err_lyambda);
1051  // hPullLikePh_Zmc->Fill(PosMCpca.Z(),MomRecPCA.Phi()/err_phi);
1052  // hPullLikeP_Zmc->Fill(PosMCpca.Z(),MomRecPCA.Mag()/errMomRecPCA.Mag());
1053 
1054 
1055  // hXrecXmc->Fill(PosMCpca.X(),PosRecPCA.X());
1056  // hYrecXmc->Fill(PosMCpca.X(),PosRecPCA.Y());
1057  // hZrecXmc->Fill(PosMCpca.X(),PosRecPCA.Z());
1058  // hThrecXmc->Fill(PosMCpca.X(),1e3*MomRecPCA.Theta());
1059  // hPhrecXmc->Fill(PosMCpca.X(),MomRecPCA.Phi());
1060  // hPrecXmc->Fill(PosMCpca.X(),MomRecPCA.Mag());
1061 
1062  // hResXrecXmc->Fill(PosMCpca.X(),PosMCpca.X()-PosRecPCA.X());
1063  // hResYrecXmc->Fill(PosMCpca.X(),PosMCpca.Y()-PosRecPCA.Y());
1064  // hResZrecXmc->Fill(PosMCpca.X(),PosMCpca.Z()-PosRecPCA.Z());
1065  // hResThrecXmc->Fill(PosMCpca.X(),1e3*(MomMCpca.Theta()-MomRecPCA.Theta()));
1066  // hResPhrecXmc->Fill(PosMCpca.X(),MomMCpca.Phi()-MomRecPCA.Phi());
1067  // hResPrecXmc->Fill(PosMCpca.X(),MomMCpca.Mag()-MomRecPCA.Mag());
1068 
1069  // herrXrecXmc->Fill(PosMCpca.X(),errPosRecPCA.X());
1070  // herrYrecXmc->Fill(PosMCpca.X(),errPosRecPCA.Y());
1071  // herrZrecXmc->Fill(PosMCpca.X(),errPosRecPCA.Z());
1072  // herrThrecXmc->Fill(PosMCpca.X(),1e3*err_lyambda);
1073  // herrPhrecXmc->Fill(PosMCpca.X(),err_phi);
1074  // herrPrecXmc->Fill(PosMCpca.X(),errMomRecPCA.Mag());
1075 
1076  // hPullLikeX_Xmc->Fill(PosMCpca.X(),PosRecPCA.X()/errPosRecPCA.X());
1077  // hPullLikeY_Xmc->Fill(PosMCpca.X(),PosRecPCA.Y()/errPosRecPCA.Y());
1078  // hPullLikeZ_Xmc->Fill(PosMCpca.X(),PosRecPCA.Z()/errPosRecPCA.Z());
1079  // hPullLikeTh_Xmc->Fill(PosMCpca.X(),MomRecPCA.Theta()/err_lyambda);
1080  // hPullLikePh_Xmc->Fill(PosMCpca.X(),MomRecPCA.Phi()/err_phi);
1081  // hPullLikeP_Xmc->Fill(PosMCpca.X(),MomRecPCA.Mag()/errMomRecPCA.Mag());
1082 
1083 
1084  // ///////
1085  // hXrecYmc->Fill(PosMCpca.Y(),PosRecPCA.X());
1086  // hYrecYmc->Fill(PosMCpca.Y(),PosRecPCA.Y());
1087  // hZrecYmc->Fill(PosMCpca.Y(),PosRecPCA.Z());
1088  // hThrecYmc->Fill(PosMCpca.Y(),1e3*MomRecPCA.Theta());
1089  // hPhrecYmc->Fill(PosMCpca.Y(),MomRecPCA.Phi());
1090  // hPrecYmc->Fill(PosMCpca.Y(),MomRecPCA.Mag());
1091 
1092  // hResXrecYmc->Fill(PosMCpca.Y(),PosMCpca.X()-PosRecPCA.X());
1093  // hResYrecYmc->Fill(PosMCpca.Y(),PosMCpca.Y()-PosRecPCA.Y());
1094  // hResZrecYmc->Fill(PosMCpca.Y(),PosMCpca.Z()-PosRecPCA.Z());
1095  // hResThrecYmc->Fill(PosMCpca.Y(),1e3*(MomMCpca.Theta()-MomRecPCA.Theta()));
1096  // hResPhrecYmc->Fill(PosMCpca.Y(),MomMCpca.Phi()-MomRecPCA.Phi());
1097  // hResPrecYmc->Fill(PosMCpca.Y(),MomMCpca.Mag()-MomRecPCA.Mag());
1098 
1099  // herrXrecYmc->Fill(PosMCpca.Y(),errPosRecPCA.X());
1100  // herrYrecYmc->Fill(PosMCpca.Y(),errPosRecPCA.Y());
1101  // herrZrecYmc->Fill(PosMCpca.Y(),errPosRecPCA.Z());
1102  // herrThrecYmc->Fill(PosMCpca.Y(),1e3*err_lyambda);
1103  // herrPhrecYmc->Fill(PosMCpca.Y(),err_phi);
1104  // herrPrecYmc->Fill(PosMCpca.Y(),errMomRecPCA.Mag());
1105 
1106  // hPullLikeX_Ymc->Fill(PosMCpca.Y(),PosRecPCA.X()/errPosRecPCA.X());
1107  // hPullLikeY_Ymc->Fill(PosMCpca.Y(),PosRecPCA.Y()/errPosRecPCA.Y());
1108  // hPullLikeZ_Ymc->Fill(PosMCpca.Y(),PosRecPCA.Z()/errPosRecPCA.Z());
1109  // hPullLikeTh_Ymc->Fill(PosMCpca.Y(),MomRecPCA.Theta()/err_lyambda);
1110  // hPullLikePh_Ymc->Fill(PosMCpca.Y(),MomRecPCA.Phi()/err_phi);
1111  // hPullLikeP_Ymc->Fill(PosMCpca.Y(),MomRecPCA.Mag()/errMomRecPCA.Mag());
1112 
1113  hResTheta->Fill(1e3*(MomMCpca.Theta()-MomRecPCA.Theta()));
1114  hResTheta_th->Fill(1e3*MomMCpca.Theta(),1e3*(MomMCpca.Theta()-MomRecPCA.Theta()));
1115  hResTheta_ph->Fill(MomMCpca.Phi(),1e3*(MomMCpca.Theta()-MomRecPCA.Theta()));
1116  hResPhi->Fill(MomMCpca.Phi()-MomRecPCA.Phi());
1117  hPullTheta->Fill((MomMCpca.Theta()-MomRecPCA.Theta())/err_lyambda);
1118  hPullPhi->Fill((MomMCpca.Phi()-MomRecPCA.Phi())/err_phi);
1119  hErrTheta->Fill(err_lyambda);
1120  hErrPhi->Fill(err_phi);
1121  hResMom->Fill(MomMCpca.Mag()-MomRecPCA.Mag());
1122  //Near 1st LMD plane
1124  TVector3 PosMClmd = MCPointHit->GetPosition();
1125  double pxTrue = MCPointHit->GetPx();
1126  double pyTrue = MCPointHit->GetPy();
1127  double pzTrue = MCPointHit->GetPz();
1128  TVector3 MomMClmd(pxTrue,pyTrue,pzTrue);
1129  TVector3 dirMClmd = MomMClmd;
1130  dirMClmd *=1./MomMClmd.Mag();
1131  double deltaZ = -PosMClmd.Z()+PosRecLMD.Z();
1132  // double deltaZ = 0;
1133  double xneu=PosMClmd.X()+dirMClmd.X()*deltaZ;
1134  double yneu=PosMClmd.Y()+dirMClmd.Y()*deltaZ;
1135  double zneu = PosMClmd.Z()+deltaZ;
1136  PosMClmd.SetXYZ(xneu,yneu,zneu);
1137  // MomMClmd = dirMClmd*MomMClmd.Mag();
1138  MomMClmd = dirMClmd*MomRecLMD.Mag();
1139  // hResLumiTrkPointP->Fill((MomMClmd.Mag()-MomRecLMD.Mag()));
1140  // hResLumiTrkPointPmcPrec->Fill(MomRecLMD.Mag(),MomMClmd.Mag());
1141 
1142 
1143  // MomMClmd *=1./MomMClmd.Mag();//TEST
1144  // MomRecLMD *=1./MomRecLMD.Mag();//TEST
1145  // errMomRecLMD *=1./MomRecLMD.Mag();//TEST
1146 
1147  //cout<<"MomMClmd.Mag() = "<<MomMClmd.Mag()<<" MomRecLMD.Mag() = "<<MomRecLMD.Mag()<<endl;
1148  // cout<<" MC - REC = "<<1e3*(MomMClmd.Mag()-MomRecLMD.Mag())<<" MeV"<<endl;
1150  hResLumiTrkPointX->Fill(PosMClmd.X()-PosRecLMD.X());
1151  hResLumiTrkPointY->Fill(PosMClmd.Y()-PosRecLMD.Y());
1152  hResLumiTrkPointZ->Fill(PosMClmd.Z()-PosRecLMD.Z());
1153  hResLumiTrkPointXPull->Fill((PosMClmd.X()-PosRecLMD.X())/errPosRecLMD.X());
1154  hResLumiTrkPointYPull->Fill((PosMClmd.Y()-PosRecLMD.Y())/errPosRecLMD.Y());
1155  hResLumiTrkPointZPull->Fill((PosMClmd.Z()-PosRecLMD.Z())/errPosRecLMD.Z());
1156 
1157  hResLumiTrkPointPx->Fill(MomMClmd.X()-MomRecLMD.X());
1158  hResLumiTrkPointPy->Fill(MomMClmd.Y()-MomRecLMD.Y());
1159  hResLumiTrkPointPz->Fill(MomMClmd.Z()-MomRecLMD.Z());
1160  hResLumiTrkPointPxPull->Fill((MomMClmd.X()-MomRecLMD.X())/errMomRecLMD.X());
1161  hResLumiTrkPointPyPull->Fill((MomMClmd.Y()-MomRecLMD.Y())/errMomRecLMD.Y());
1162  hResLumiTrkPointPzPull->Fill((MomMClmd.Z()-MomRecLMD.Z())/errMomRecLMD.Z());
1163 
1164 
1165  hResLumiTrkTheta2D->Fill((MomMClmd.X()/MomMClmd.Z()-MomRecLMD.X()/MomRecLMD.Z()), (MomMClmd.Y()/MomMClmd.Z()-MomRecLMD.Y()/MomRecLMD.Z()));
1166  hMCLumiTrkTheta2D->Fill(MomMClmd.X()/MomMClmd.Z(), MomMClmd.Y()/MomMClmd.Z());
1167  hRecLumiTrkTheta2D->Fill(MomRecLMD.X()/MomRecLMD.Z(), MomRecLMD.Y()/MomRecLMD.Z());
1168 
1169 
1170  hResLumiTrkTheta->Fill(MomMClmd.Theta()-MomRecLMD.Theta());
1171  hResLumiTrkPhi->Fill(MomMClmd.Phi()-MomRecLMD.Phi());
1172  hResLumiTrkThetaPull->Fill((MomMClmd.Theta()-MomRecLMD.Theta())/err_lyambdaLMD);
1173  hResLumiTrkPhiPull->Fill((MomMClmd.Phi()-MomRecLMD.Phi())/err_phiLMD);
1174  hResLumiTrkPointXErr->Fill(errPosRecLMD.X());
1175  hResLumiTrkPointYErr->Fill(errPosRecLMD.Y());
1176  hResLumiTrkPointZErr->Fill(errPosRecLMD.Z());
1177  hResLumiTrkPointPxErr->Fill(errMomRecLMD.X());
1178  hResLumiTrkPointPyErr->Fill(errMomRecLMD.Y());
1179  hResLumiTrkPointPzErr->Fill(errMomRecLMD.Z());
1180 
1182  }
1183 
1184  return;
1185 }
TH1 * hResLumiTrkPointPzErr
Definition: PndLmdQATask.h:217
static T ASin(const T &x)
TH1 * hResLumiTrkPointPyErr
Definition: PndLmdQATask.h:216
TH1 * hResLumiTrkPointPx
Definition: PndLmdQATask.h:208
TH1 * hResLumiTrkPointXErr
Definition: PndLmdQATask.h:212
TH2 * hMCLumiTrkTheta2D
Definition: PndLmdQATask.h:202
friend F32vec4 sqrt(const F32vec4 &a)
Definition: P4_F32vec4.h:29
static T Sqrt(const T &x)
Definition: PndCAMath.h:37
TH1 * hResLumiTrkPointPyPull
Definition: PndLmdQATask.h:224
Int_t GetIndex(int i=0) const
Definition: PndSdsDigi.h:63
PndTrackCandHit GetSortedHit(UInt_t i)
Definition: PndTrackCand.h:54
TClonesArray * fmcHitArray
Definition: PndLmdQATask.h:51
TH1 * hResLumiTrkPointPz
Definition: PndLmdQATask.h:210
TH1 * hResLumiTrkPhiPull
Definition: PndLmdQATask.h:227
TFile * MCPoint
Definition: anaLmdDigi.C:25
TVector3 GetMomentum() const
Definition: PndMCTrack.h:78
TH1 * hResPointPx
Definition: PndLmdQATask.h:94
float Tan(float x)
Definition: PndCAMath.h:165
TH1 * hResPointPy
Definition: PndLmdQATask.h:98
TH1 * hResPointX
Definition: PndLmdQATask.h:106
TH1 * hResLumiTrkPointPxPull
Definition: PndLmdQATask.h:223
TH1 * hResLumiTrkPointXPull
Definition: PndLmdQATask.h:219
static T Cos(const T &x)
Definition: PndCAMath.h:43
TH1 * hPullPointPy
Definition: PndLmdQATask.h:100
TClonesArray * fTrkCandArray
Definition: PndLmdQATask.h:56
TH1 * hResLumiTrkThetaPull
Definition: PndLmdQATask.h:226
TH2 * hResLumiTrkTheta2D
Definition: PndLmdQATask.h:201
TH1 * hResTheta
Definition: PndLmdQATask.h:86
TH1 * hResLumiTrkPointYPull
Definition: PndLmdQATask.h:220
TH1 * hResLumiTrkPointPzPull
Definition: PndLmdQATask.h:225
TH1 * hErrPointPz
Definition: PndLmdQATask.h:103
Int_t GetDigiIndex(Int_t i) const
Definition: PndSdsCluster.h:40
TH1 * hPullPointPx
Definition: PndLmdQATask.h:96
TH1 * hResLumiTrkPointZ
Definition: PndLmdQATask.h:206
TClonesArray * fClusterArray
Definition: PndLmdQATask.h:54
TH1 * hErrPointPx
Definition: PndLmdQATask.h:95
TH1 * hResLumiTrkPointPy
Definition: PndLmdQATask.h:209
TH1 * hResPointY
Definition: PndLmdQATask.h:108
Double_t
TH1 * hResPointZ
Definition: PndLmdQATask.h:110
TH1 * hResLumiTrkTheta
Definition: PndLmdQATask.h:199
TH1 * hPullPointX
Definition: PndLmdQATask.h:107
TH1 * hPullPointPz
Definition: PndLmdQATask.h:104
TH1 * hResLumiTrkPointX
Definition: PndLmdQATask.h:204
TH1 * hPullPhi
Definition: PndLmdQATask.h:93
TH1 * hResLumiTrkPhi
Definition: PndLmdQATask.h:200
TH1 * hResLumiTrkPointPxErr
Definition: PndLmdQATask.h:215
TClonesArray * fTrkArray
Definition: PndLmdQATask.h:57
TH1 * hErrPointPy
Definition: PndLmdQATask.h:99
TH1 * hPullPointZ
Definition: PndLmdQATask.h:111
TH1 * hPullPointY
Definition: PndLmdQATask.h:109
TVector3 GetPosition() const
Definition: PndSdsMCPoint.h:90
TH1 * hResLumiTrkPointYErr
Definition: PndLmdQATask.h:213
TH1 * hResLumiTrkPointZPull
Definition: PndLmdQATask.h:221
TH2 * hRecLumiTrkTheta2D
Definition: PndLmdQATask.h:203
TH2 * hResTheta_ph
Definition: PndLmdQATask.h:88
TH1 * hErrTheta
Definition: PndLmdQATask.h:89
TH1 * hResLumiTrkPointZErr
Definition: PndLmdQATask.h:214
TH1 * hResLumiTrkPointY
Definition: PndLmdQATask.h:205
UInt_t GetNHits() const
Definition: PndTrackCand.h:59
TClonesArray * fHitArray
Definition: PndLmdQATask.h:53
Data class to store the digi output of a pixel module.
Int_t GetClusterIndex() const
Definition: PndSdsHit.h:94
TVector3 GetStartVertex() const
Definition: PndMCTrack.h:76
Int_t GetHitId() const
TClonesArray * fmcTrkArray
Definition: PndLmdQATask.h:52
TH1 * hResPointPz
Definition: PndLmdQATask.h:102
TH2 * hResTheta_th
Definition: PndLmdQATask.h:87
TClonesArray * fGeaneArray
Definition: PndLmdQATask.h:58
TClonesArray * fDigiArray
Definition: PndLmdQATask.h:55
TH1 * hPullTheta
Definition: PndLmdQATask.h:90
void PndLmdQATask::SetVerboseLevel ( int  verbose)
inline

Definition at line 39 of file PndLmdQATask.h.

References verbose, and verboseLevel.

#define verbose
void PndLmdQATask::WriteHists ( )

Definition at line 130 of file PndLmdQATask.cxx.

References c1, c2, f, foutFile, hchi2, hErrPhi, hErrPointPx, hErrPointPy, hErrPointPz, hErrTheta, hhits, hMCLumiTrkTheta2D, hPullPhi, hPullPointPx, hPullPointPy, hPullPointPz, hPullPointX, hPullPointY, hPullPointZ, hPullTheta, hRecLumiTrkTheta2D, hResHitX, hResHitY, hResHitZ, hResLumiTrkMom, hResLumiTrkPhi, hResLumiTrkPhiPull, hResLumiTrkPointPx, hResLumiTrkPointPxErr, hResLumiTrkPointPxPull, hResLumiTrkPointPy, hResLumiTrkPointPyErr, hResLumiTrkPointPyPull, hResLumiTrkPointPz, hResLumiTrkPointPzErr, hResLumiTrkPointPzPull, hResLumiTrkPointX, hResLumiTrkPointXErr, hResLumiTrkPointXPull, hResLumiTrkPointY, hResLumiTrkPointYErr, hResLumiTrkPointYPull, hResLumiTrkPointZ, hResLumiTrkPointZErr, hResLumiTrkPointZPull, hResLumiTrkTheta, hResLumiTrkTheta2D, hResLumiTrkThetaPull, hResMom, hResPhi, hResPointPx, hResPointPy, hResPointPz, hResPointX, hResPointY, hResPointZ, hResTheta, hResTheta_ph, and hResTheta_th.

Referenced by FinishTask().

130  {
131 
132  // //Write histos
133  TFile *f = new TFile(foutFile,"RECREATE");
134  f->Print();
135 
136  //OutputResolutionAndPulls Directory
137  f->mkdir("NearIP");
138  f->cd("NearIP");
139 
140  hResMom->Write();
141  // hErrMom->Write();
142  // hPullMom->Write();
143  hResTheta->Write();
144  hResTheta_th->Write();
145  hResTheta_ph->Write();
146  hErrTheta->Write();
147  hPullTheta->Write();
148  hResPhi->Write();
149  hErrPhi->Write();
150  hPullPhi->Write();
151 
152  hResPointPx->Write();
153  hErrPointPx->Write();
154  hPullPointPx->Write();
155 
156  hResPointPy->Write();
157  hErrPointPy->Write();
158  hPullPointPy->Write();
159 
160  hResPointPz->Write();
161  hErrPointPz->Write();
162  hPullPointPz->Write();
163 
164  hResPointX->Write();
165  hPullPointX->Write();
166  hResPointY->Write();
167  hPullPointY->Write();
168  hResPointZ->Write();
169  hPullPointZ->Write();
170  f->cd();
171 
172  f->mkdir("NearLMD");
173  f->cd("NearLMD");
174  //Near 1st LMD plane
175  hResHitX->Write();
176  hResHitY->Write();
177  hResHitZ->Write();
178  hchi2->Write();
179  hhits->Write();
180  hResLumiTrkMom->Write();
181  hResLumiTrkTheta->Write();
182 
183  hResLumiTrkTheta2D->Write();
184  hMCLumiTrkTheta2D->Write();
185  hRecLumiTrkTheta2D->Write();
186 
187  hResLumiTrkPhi->Write();
188  hResLumiTrkPointX->Write();
189  hResLumiTrkPointY->Write();
190  hResLumiTrkPointZ->Write();
191 
192  hResLumiTrkPointPx->Write();
193  hResLumiTrkPointPy->Write();
194  hResLumiTrkPointPz->Write();
195  hResLumiTrkPointXErr->Write();
196  hResLumiTrkPointYErr->Write();
197  hResLumiTrkPointZErr->Write();
198  hResLumiTrkPointPxErr->Write();
199  hResLumiTrkPointPyErr->Write();
200  hResLumiTrkPointPzErr->Write();
201 
202  hResLumiTrkPointXPull->Write();
203  hResLumiTrkPointYPull->Write();
204  hResLumiTrkPointZPull->Write();
205 
206  hResLumiTrkPointPxPull->Write();
207  hResLumiTrkPointPyPull->Write();
208  hResLumiTrkPointPzPull->Write();
209  hResLumiTrkThetaPull->Write();
210  hResLumiTrkPhiPull->Write();
211  f->cd();
212 
213  //RecoReso Directory
214  f->mkdir("Pulls");
215  f->cd("Pulls");
216 
217  TCanvas *c1 = new TCanvas("pulls_before_bp");
218  c1->Divide(3,2);
219  c1->cd(1);
220  hResLumiTrkPointXPull->Draw();
221  c1->cd(2);
222  hResLumiTrkPointYPull->Draw();
223  c1->cd(3);
224  hResLumiTrkPointZPull->Draw();
225  c1->cd(4);
226  hResLumiTrkPointPxPull->Draw();
227  c1->cd(5);
228  hResLumiTrkPointPyPull->Draw();
229  c1->cd(6);
230  hResLumiTrkPointPzPull->Draw();
231  c1->Write();
232  c1->Close();
233 
234  TCanvas *c2 = new TCanvas("pulls_after_bp");
235  c2->Divide(3,2);
236  c2->cd(1);
237  hPullPointX->Draw();
238  c2->cd(2);
239  hPullPointY->Draw();
240  c2->cd(3);
241  hPullPointZ->Draw();
242  c2->cd(4);
243  hPullPointPx->Draw();
244  c2->cd(5);
245  hPullPointPy->Draw();
246  c2->cd(6);
247  hPullPointPz->Draw();
248  c2->Write();
249  c2->Close();
250  // f->cd();
251 
252 // f->mkdir("QA_cand");
253 // f->cd("QA_cand");
254 // TCanvas *c3 = new TCanvas("QA_candidates_PCA_zMC");
255 // c3->Divide(3,3);
256 // c3->cd(1);
257 // hXrecZmc->Draw("colz");
258 // c3->cd(2);
259 // hYrecZmc->Draw("colz");
260 // c3->cd(3);
261 // hZrecZmc->Draw("colz");
262 // c3->cd(4);
263 // herrXrecZmc->Draw("colz");
264 // c3->cd(5);
265 // herrYrecZmc->Draw("colz");
266 // c3->cd(6);
267 // herrZrecZmc->Draw("colz");
268 // c3->cd(7);
269 // hPullLikeX_Zmc->Draw("colz");
270 // c3->cd(8);
271 // hPullLikeY_Zmc->Draw("colz");
272 // c3->cd(9);
273 // hPullLikeZ_Zmc->Draw("colz");
274 // c3->Write();
275 // c3->Close();
276 
277 // TCanvas *c4 = new TCanvas("QA_candidates_dir_zMC");
278 // c4->Divide(3,3);
279 // c4->cd(1);
280 // hThrecZmc->Draw("colz");
281 // c4->cd(2);
282 // hPhrecZmc->Draw("colz");
283 // c4->cd(3);
284 // hPrecZmc->Draw("colz");
285 // c4->cd(4);
286 // herrThrecZmc->Draw("colz");
287 // c4->cd(5);
288 // herrPhrecZmc->Draw("colz");
289 // c4->cd(6);
290 // herrPrecZmc->Draw("colz");
291 // c4->cd(7);
292 // hPullLikeTh_Zmc->Draw("colz");
293 // c4->cd(8);
294 // hPullLikePh_Zmc->Draw("colz");
295 // c4->cd(9);
296 // hPullLikeP_Zmc->Draw("colz");
297 // c4->Write();
298 // c4->Close();
299 
300 // TCanvas *c5 = new TCanvas("QA_resolution_vs_zMC");
301 // c5->Divide(3,2);
302 // c5->cd(1);
303 // hResXrecZmc->Draw("colz");
304 // c5->cd(2);
305 // hResYrecZmc->Draw("colz");
306 // c5->cd(3);
307 // hResZrecZmc->Draw("colz");
308 // c5->cd(4);
309 // hResThrecZmc->Draw("colz");
310 // c5->cd(5);
311 // hResPhrecZmc->Draw("colz");
312 // c5->cd(6);
313 // hResPrecZmc->Draw("colz");
314 // c5->Write();
315 // c5->Close();
316 
317 // /////////////////////////
318 // TCanvas *c31 = new TCanvas("QA_candidates_PCA_xMC");
319 // c31->Divide(3,3);
320 // c31->cd(1);
321 // hXrecXmc->Draw("colz");
322 // c31->cd(2);
323 // hYrecXmc->Draw("colz");
324 // c31->cd(3);
325 // hZrecXmc->Draw("colz");
326 // c31->cd(4);
327 // herrXrecXmc->Draw("colz");
328 // c31->cd(5);
329 // herrYrecXmc->Draw("colz");
330 // c31->cd(6);
331 // herrZrecXmc->Draw("colz");
332 // c31->cd(7);
333 // hPullLikeX_Xmc->Draw("colz");
334 // c31->cd(8);
335 // hPullLikeY_Xmc->Draw("colz");
336 // c31->cd(9);
337 // hPullLikeZ_Xmc->Draw("colz");
338 // c31->Write();
339 // c31->Close();
340 
341 // TCanvas *c41 = new TCanvas("QA_candidates_dir_xMC");
342 // c41->Divide(3,3);
343 // c41->cd(1);
344 // hThrecXmc->Draw("colz");
345 // c41->cd(2);
346 // hPhrecXmc->Draw("colz");
347 // c41->cd(3);
348 // hPrecXmc->Draw("colz");
349 // c41->cd(4);
350 // herrThrecXmc->Draw("colz");
351 // c41->cd(5);
352 // herrPhrecXmc->Draw("colz");
353 // c41->cd(6);
354 // herrPrecXmc->Draw("colz");
355 // c41->cd(7);
356 // hPullLikeTh_Xmc->Draw("colz");
357 // c41->cd(8);
358 // hPullLikePh_Xmc->Draw("colz");
359 // c41->cd(9);
360 // hPullLikeP_Xmc->Draw("colz");
361 // c41->Write();
362 // c41->Close();
363 
364 // TCanvas *c51 = new TCanvas("QA_resolution_vs_xMC");
365 // c51->Divide(3,2);
366 // c51->cd(1);
367 // hResXrecXmc->Draw("colz");
368 // c51->cd(2);
369 // hResYrecXmc->Draw("colz");
370 // c51->cd(3);
371 // hResZrecXmc->Draw("colz");
372 // c51->cd(4);
373 // hResThrecXmc->Draw("colz");
374 // c51->cd(5);
375 // hResPhrecXmc->Draw("colz");
376 // c51->cd(6);
377 // hResPrecXmc->Draw("colz");
378 // c51->Write();
379 // c51->Close();
380 
381 
382 // /////////////////////////
383 // TCanvas *c32 = new TCanvas("QA_candidates_PCA_yMC");
384 // c32->Divide(3,3);
385 // c32->cd(1);
386 // hXrecYmc->Draw("colz");
387 // c32->cd(2);
388 // hYrecYmc->Draw("colz");
389 // c32->cd(3);
390 // hZrecYmc->Draw("colz");
391 // c32->cd(4);
392 // herrXrecYmc->Draw("colz");
393 // c32->cd(5);
394 // herrYrecYmc->Draw("colz");
395 // c32->cd(6);
396 // herrZrecYmc->Draw("colz");
397 // c32->cd(7);
398 // hPullLikeX_Ymc->Draw("colz");
399 // c32->cd(8);
400 // hPullLikeY_Ymc->Draw("colz");
401 // c32->cd(9);
402 // hPullLikeZ_Ymc->Draw("colz");
403 // c32->Write();
404 // c32->Close();
405 
406 // TCanvas *c42 = new TCanvas("QA_candidates_dir_yMC");
407 // c42->Divide(3,3);
408 // c42->cd(1);
409 // hThrecYmc->Draw("colz");
410 // c42->cd(2);
411 // hPhrecYmc->Draw("colz");
412 // c42->cd(3);
413 // hPrecYmc->Draw("colz");
414 // c42->cd(4);
415 // herrThrecYmc->Draw("colz");
416 // c42->cd(5);
417 // herrPhrecYmc->Draw("colz");
418 // c42->cd(6);
419 // herrPrecYmc->Draw("colz");
420 // c42->cd(7);
421 // hPullLikeTh_Ymc->Draw("colz");
422 // c42->cd(8);
423 // hPullLikePh_Ymc->Draw("colz");
424 // c42->cd(9);
425 // hPullLikeP_Ymc->Draw("colz");
426 // c42->Write();
427 // c42->Close();
428 
429 // TCanvas *c52 = new TCanvas("QA_resolution_vs_yMC");
430 // c52->Divide(3,2);
431 // c52->cd(1);
432 // hResXrecYmc->Draw("colz");
433 // c52->cd(2);
434 // hResYrecYmc->Draw("colz");
435 // c52->cd(3);
436 // hResZrecYmc->Draw("colz");
437 // c52->cd(4);
438 // hResThrecYmc->Draw("colz");
439 // c52->cd(5);
440 // hResPhrecYmc->Draw("colz");
441 // c52->cd(6);
442 // hResPrecYmc->Draw("colz");
443 // c52->Write();
444 // c52->Close();
445 
446 
447 // hPullLikePointX->Write();
448 // hPullLikePointY->Write();
449 // hPullLikePointZ->Write();
450 // hPullLikeX_Zmc->Write();
451 // hPullLikeY_Zmc->Write();
452 // hPullLikeZ_Zmc->Write();
453 // hPullLikeTh_Zmc->Write();
454 // hPullLikePh_Zmc->Write();
455 // hPullLikeP_Zmc->Write();
456 // hXrecZmc->Write();
457 // hYrecZmc->Write();
458 // hZrecZmc->Write();
459 // hThrecZmc->Write();
460 // hPhrecZmc->Write();
461 // hPrecZmc->Write();
462 // hResXrecZmc->Write();
463 // hResYrecZmc->Write();
464 // hResZrecZmc->Write();
465 // hResThrecZmc->Write();
466 // hResPhrecZmc->Write();
467 // hResPrecZmc->Write();
468 // herrXrecZmc->Write();
469 // herrYrecZmc->Write();
470 // herrZrecZmc->Write();
471 // herrThrecZmc->Write();
472 // herrPhrecZmc->Write();
473 // herrPrecZmc->Write();
474 
475 // hPullLikeX_Xmc->Write();
476 // hPullLikeY_Xmc->Write();
477 // hPullLikeZ_Xmc->Write();
478 // hPullLikeTh_Xmc->Write();
479 // hPullLikePh_Xmc->Write();
480 // hPullLikeP_Xmc->Write();
481 // hXrecXmc->Write();
482 // hYrecXmc->Write();
483 // hZrecXmc->Write();
484 // hThrecXmc->Write();
485 // hPhrecXmc->Write();
486 // hPrecXmc->Write();
487 // hResXrecXmc->Write();
488 // hResYrecXmc->Write();
489 // hResZrecXmc->Write();
490 // hResThrecXmc->Write();
491 // hResPhrecXmc->Write();
492 // hResPrecXmc->Write();
493 // herrXrecXmc->Write();
494 // herrYrecXmc->Write();
495 // herrZrecXmc->Write();
496 // herrThrecXmc->Write();
497 // herrPhrecXmc->Write();
498 // herrPrecXmc->Write();
499 
500 // hPullLikeX_Ymc->Write();
501 // hPullLikeY_Ymc->Write();
502 // hPullLikeZ_Ymc->Write();
503 // hPullLikeTh_Ymc->Write();
504 // hPullLikePh_Ymc->Write();
505 // hPullLikeP_Ymc->Write();
506 // hXrecYmc->Write();
507 // hYrecYmc->Write();
508 // hZrecYmc->Write();
509 // hThrecYmc->Write();
510 // hPhrecYmc->Write();
511 // hPrecYmc->Write();
512 // hResXrecYmc->Write();
513 // hResYrecYmc->Write();
514 // hResZrecYmc->Write();
515 // hResThrecYmc->Write();
516 // hResPhrecYmc->Write();
517 // hResPrecYmc->Write();
518 // herrXrecYmc->Write();
519 // herrYrecYmc->Write();
520 // herrZrecYmc->Write();
521 // herrThrecYmc->Write();
522 // herrPhrecYmc->Write();
523 // herrPrecYmc->Write();
524 
525 // f->cd();
526  f->Write();
527  f->Close();
528  std::cout<<"PndLmdQATask::WriteHists() Finished successfull"<<std::endl;
529 }
TH1 * hResLumiTrkPointPzErr
Definition: PndLmdQATask.h:217
TH1 * hResLumiTrkPointPyErr
Definition: PndLmdQATask.h:216
TH1 * hResLumiTrkPointPx
Definition: PndLmdQATask.h:208
TH1 * hResLumiTrkPointXErr
Definition: PndLmdQATask.h:212
TH2 * hMCLumiTrkTheta2D
Definition: PndLmdQATask.h:202
TH1 * hResLumiTrkPointPyPull
Definition: PndLmdQATask.h:224
TH1 * hResLumiTrkPointPz
Definition: PndLmdQATask.h:210
TH1 * hResLumiTrkPhiPull
Definition: PndLmdQATask.h:227
TH1 * hResPointPx
Definition: PndLmdQATask.h:94
c2
Definition: plot_dirc.C:39
TH1 * hResLumiTrkMom
Definition: PndLmdQATask.h:198
TH1 * hResPointPy
Definition: PndLmdQATask.h:98
TH1 * hResPointX
Definition: PndLmdQATask.h:106
TH1 * hResLumiTrkPointPxPull
Definition: PndLmdQATask.h:223
TH1 * hResLumiTrkPointXPull
Definition: PndLmdQATask.h:219
TH1 * hPullPointPy
Definition: PndLmdQATask.h:100
TH1 * hResLumiTrkThetaPull
Definition: PndLmdQATask.h:226
TH2 * hResLumiTrkTheta2D
Definition: PndLmdQATask.h:201
TH1 * hResTheta
Definition: PndLmdQATask.h:86
TH1 * hResLumiTrkPointYPull
Definition: PndLmdQATask.h:220
TH1 * hResLumiTrkPointPzPull
Definition: PndLmdQATask.h:225
TH1 * hErrPointPz
Definition: PndLmdQATask.h:103
TH1 * hPullPointPx
Definition: PndLmdQATask.h:96
TH1 * hResLumiTrkPointZ
Definition: PndLmdQATask.h:206
TH1 * hErrPointPx
Definition: PndLmdQATask.h:95
TH1 * hResLumiTrkPointPy
Definition: PndLmdQATask.h:209
TH1 * hResPointY
Definition: PndLmdQATask.h:108
TH1 * hResPointZ
Definition: PndLmdQATask.h:110
TH1 * hResLumiTrkTheta
Definition: PndLmdQATask.h:199
TH1 * hPullPointX
Definition: PndLmdQATask.h:107
TH1 * hPullPointPz
Definition: PndLmdQATask.h:104
TH1 * hResLumiTrkPointX
Definition: PndLmdQATask.h:204
TH1 * hPullPhi
Definition: PndLmdQATask.h:93
TH1 * hResLumiTrkPhi
Definition: PndLmdQATask.h:200
TFile * f
Definition: bump_analys.C:12
TH1 * hResLumiTrkPointPxErr
Definition: PndLmdQATask.h:215
TH1 * hErrPointPy
Definition: PndLmdQATask.h:99
TH1 * hPullPointZ
Definition: PndLmdQATask.h:111
TH1 * hPullPointY
Definition: PndLmdQATask.h:109
c1
Definition: plot_dirc.C:35
TH1 * hResLumiTrkPointYErr
Definition: PndLmdQATask.h:213
TH1 * hResLumiTrkPointZPull
Definition: PndLmdQATask.h:221
TH2 * hRecLumiTrkTheta2D
Definition: PndLmdQATask.h:203
TH2 * hResTheta_ph
Definition: PndLmdQATask.h:88
TH1 * hErrTheta
Definition: PndLmdQATask.h:89
TH1 * hResLumiTrkPointZErr
Definition: PndLmdQATask.h:214
TString foutFile
Definition: PndLmdQATask.h:70
TH1 * hResLumiTrkPointY
Definition: PndLmdQATask.h:205
TH1 * hResPointPz
Definition: PndLmdQATask.h:102
TH2 * hResTheta_th
Definition: PndLmdQATask.h:87
TH1 * hPullTheta
Definition: PndLmdQATask.h:90

Member Data Documentation

int PndLmdQATask::all
protected

Definition at line 73 of file PndLmdQATask.h.

Referenced by Init().

TClonesArray* PndLmdQATask::fClusterArray
protected

Definition at line 54 of file PndLmdQATask.h.

Referenced by HitReco(), Init(), and ResoAndPulls().

TString PndLmdQATask::fClusterName
protected

Definition at line 64 of file PndLmdQATask.h.

Referenced by Init(), and PndLmdQATask().

TClonesArray* PndLmdQATask::fDigiArray
protected

Definition at line 55 of file PndLmdQATask.h.

Referenced by HitReco(), Init(), and ResoAndPulls().

TString PndLmdQATask::fDigiName
protected

Definition at line 63 of file PndLmdQATask.h.

Referenced by Init(), and PndLmdQATask().

Int_t PndLmdQATask::fEvent
protected

Definition at line 74 of file PndLmdQATask.h.

Referenced by Exec(), PndLmdQATask(), and ResoAndPulls().

TClonesArray* PndLmdQATask::fGeaneArray
protected

Definition at line 58 of file PndLmdQATask.h.

Referenced by Init(), and ResoAndPulls().

TString PndLmdQATask::fGeaneName
protected

Definition at line 67 of file PndLmdQATask.h.

Referenced by Init(), and PndLmdQATask().

TClonesArray* PndLmdQATask::fHitArray
protected

Definition at line 53 of file PndLmdQATask.h.

Referenced by HitReco(), Init(), and ResoAndPulls().

TString PndLmdQATask::fHitName
protected

Definition at line 62 of file PndLmdQATask.h.

Referenced by Init(), and PndLmdQATask().

TClonesArray* PndLmdQATask::fmcHitArray
protected

Definition at line 51 of file PndLmdQATask.h.

Referenced by HitReco(), Init(), and ResoAndPulls().

TString PndLmdQATask::fmcHitName
protected

Definition at line 60 of file PndLmdQATask.h.

Referenced by Init(), and PndLmdQATask().

TClonesArray* PndLmdQATask::fmcTrkArray
protected

Definition at line 52 of file PndLmdQATask.h.

Referenced by Init(), and ResoAndPulls().

TString PndLmdQATask::fmcTrkName
protected

Definition at line 61 of file PndLmdQATask.h.

Referenced by Init(), and PndLmdQATask().

TString PndLmdQATask::foutFile
protected

Definition at line 70 of file PndLmdQATask.h.

Referenced by PndLmdQATask(), and WriteHists().

TClonesArray* PndLmdQATask::fTrkArray
protected

Definition at line 57 of file PndLmdQATask.h.

Referenced by Init(), and ResoAndPulls().

TClonesArray* PndLmdQATask::fTrkCandArray
protected

Definition at line 56 of file PndLmdQATask.h.

Referenced by Init(), and ResoAndPulls().

TString PndLmdQATask::fTrkCandName
protected

Definition at line 65 of file PndLmdQATask.h.

Referenced by Init(), and PndLmdQATask().

TString PndLmdQATask::fTrkName
protected

Definition at line 66 of file PndLmdQATask.h.

Referenced by Init(), and PndLmdQATask().

int PndLmdQATask::ghosttrk
protected

Definition at line 73 of file PndLmdQATask.h.

Referenced by FinishTask(), Init(), and ResoAndPulls().

TH1* PndLmdQATask::hchi2
protected

Definition at line 197 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hErrMom
protected

Definition at line 84 of file PndLmdQATask.h.

TH1* PndLmdQATask::hErrPhi
protected

Definition at line 92 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hErrPointPx
protected

Definition at line 95 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hErrPointPy
protected

Definition at line 99 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hErrPointPz
protected

Definition at line 103 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hErrTheta
protected

Definition at line 89 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hhits
protected

Definition at line 196 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH2* PndLmdQATask::hMCLumiTrkTheta2D
protected

Definition at line 202 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hPullMom
protected

Definition at line 85 of file PndLmdQATask.h.

TH1* PndLmdQATask::hPullPhi
protected

Definition at line 93 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hPullPointPx
protected

Definition at line 96 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hPullPointPy
protected

Definition at line 100 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hPullPointPz
protected

Definition at line 104 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hPullPointX
protected

Definition at line 107 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hPullPointY
protected

Definition at line 109 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hPullPointZ
protected

Definition at line 111 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hPullTheta
protected

Definition at line 90 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH2* PndLmdQATask::hRecLumiTrkTheta2D
protected

Definition at line 203 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hResHitX
protected

Definition at line 193 of file PndLmdQATask.h.

Referenced by HitReco(), Init(), and WriteHists().

TH1* PndLmdQATask::hResHitY
protected

Definition at line 194 of file PndLmdQATask.h.

Referenced by HitReco(), Init(), and WriteHists().

TH1* PndLmdQATask::hResHitZ
protected

Definition at line 195 of file PndLmdQATask.h.

Referenced by HitReco(), Init(), and WriteHists().

TH1* PndLmdQATask::hResLumiTrkMom
protected

Definition at line 198 of file PndLmdQATask.h.

Referenced by Init(), and WriteHists().

TH1* PndLmdQATask::hResLumiTrkPhi
protected

Definition at line 200 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hResLumiTrkPhiPull
protected

Definition at line 227 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hResLumiTrkPointPx
protected

Definition at line 208 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hResLumiTrkPointPxErr
protected

Definition at line 215 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hResLumiTrkPointPxPull
protected

Definition at line 223 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hResLumiTrkPointPy
protected

Definition at line 209 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hResLumiTrkPointPyErr
protected

Definition at line 216 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hResLumiTrkPointPyPull
protected

Definition at line 224 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hResLumiTrkPointPz
protected

Definition at line 210 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hResLumiTrkPointPzErr
protected

Definition at line 217 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hResLumiTrkPointPzPull
protected

Definition at line 225 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hResLumiTrkPointX
protected

Definition at line 204 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hResLumiTrkPointXErr
protected

Definition at line 212 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hResLumiTrkPointXPull
protected

Definition at line 219 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hResLumiTrkPointY
protected

Definition at line 205 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hResLumiTrkPointYErr
protected

Definition at line 213 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hResLumiTrkPointYPull
protected

Definition at line 220 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hResLumiTrkPointZ
protected

Definition at line 206 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hResLumiTrkPointZErr
protected

Definition at line 214 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hResLumiTrkPointZPull
protected

Definition at line 221 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hResLumiTrkTheta
protected

Definition at line 199 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH2* PndLmdQATask::hResLumiTrkTheta2D
protected

Definition at line 201 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hResLumiTrkThetaPull
protected

Definition at line 226 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hResMom
protected

Definition at line 83 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hResPhi
protected

Definition at line 91 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hResPointPx
protected

Definition at line 94 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hResPointPy
protected

Definition at line 98 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hResPointPz
protected

Definition at line 102 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hResPointX
protected

Definition at line 106 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hResPointY
protected

Definition at line 108 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hResPointZ
protected

Definition at line 110 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH1* PndLmdQATask::hResTheta
protected

Definition at line 86 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH2* PndLmdQATask::hResTheta_ph
protected

Definition at line 88 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

TH2* PndLmdQATask::hResTheta_th
protected

Definition at line 87 of file PndLmdQATask.h.

Referenced by Init(), ResoAndPulls(), and WriteHists().

int PndLmdQATask::mistrk
protected

Definition at line 73 of file PndLmdQATask.h.

Referenced by FinishTask(), Init(), and ResoAndPulls().

int PndLmdQATask::tot
protected

Definition at line 72 of file PndLmdQATask.h.

Referenced by Init().

Double_t PndLmdQATask::trkpar[4]
protected

Definition at line 71 of file PndLmdQATask.h.

int PndLmdQATask::uneff
protected

Definition at line 73 of file PndLmdQATask.h.

Referenced by Init().

int PndLmdQATask::verboseLevel
protected

Definition at line 48 of file PndLmdQATask.h.

Referenced by PndLmdQATask(), ResoAndPulls(), and SetVerboseLevel().


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