]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
TPC scaled resolution (Jacek Otwinowski)
authormarian <marian@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 6 Apr 2008 21:48:52 +0000 (21:48 +0000)
committermarian <marian@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 6 Apr 2008 21:48:52 +0000 (21:48 +0000)
PWG1/AliComparisonRes.cxx

index 3442b5e9a195ae97726bbaa2d262d8655a38a089..3bfa690f34510da19df0fd1b7d32f355cb56c148 100644 (file)
@@ -216,84 +216,84 @@ void AliComparisonRes::InitHisto(){
   // Parametrisation histograms\r
   // \r
 \r
-  f1Pt2Resol1PtTPC = new TH2F("f1Pt2Resol1PtTPC","(1/mcpt-1/pt)/(1+1/mcpt)^2 vs 1/pt)",100,0,10,200,-0.020,0.020);  \r
+  f1Pt2Resol1PtTPC = new TH2F("f1Pt2Resol1PtTPC","(1/mcpt-1/pt)/(1+1/mcpt)^2 vs 1/pt)",100,0,10,200,-0.010,0.010);  \r
   f1Pt2Resol1PtTPC->SetXTitle("1/mcp_{t}");\r
   f1Pt2Resol1PtTPC->SetYTitle("(1/mcp_{t}-1/p_{t})/(1+1/mcp_{t})^2)");\r
 \r
-  f1Pt2Resol1PtTPCITS = new TH2F("f1Pt2Resol1PtTPCITS","(1/mcpt-1/pt)/(1+1/mcpt)^2 vs 1/pt)",100,0,10,200,-0.020,0.020);  \r
+  f1Pt2Resol1PtTPCITS = new TH2F("f1Pt2Resol1PtTPCITS","(1/mcpt-1/pt)/(1+1/mcpt)^2 vs 1/pt)",100,0,10,200,-0.010,0.010);  \r
   f1Pt2Resol1PtTPCITS->SetXTitle("1/mcp_{t}");\r
   f1Pt2Resol1PtTPCITS->SetYTitle("(1/mcp_{t}-1/p_{t})/(1+1/mcp_{t})^2)");\r
 \r
-  fYResol1PtTPC = new TH2F("fYResol1PtTPC","fYResol1PtTPC",100, 0,10,200,-0.010,0.010);   \r
+  fYResol1PtTPC = new TH2F("fYResol1PtTPC","fYResol1PtTPC",100, 0,10,200,-1.0,1.0);   \r
   fYResol1PtTPC->SetXTitle("1/mcpt");\r
   fYResol1PtTPC->SetYTitle("#DeltaY");\r
 \r
-  fYResol1PtTPCITS = new TH2F("fYResol1PtTPCITS","fYResol1PtTPCITS",100, 0,10,200,-0.010,0.010);   \r
+  fYResol1PtTPCITS = new TH2F("fYResol1PtTPCITS","fYResol1PtTPCITS",100, 0,10,200,-0.05,0.05);   \r
   fYResol1PtTPCITS->SetXTitle("1/mcpt");\r
   fYResol1PtTPCITS->SetYTitle("#DeltaY");\r
 \r
-  fZResol1PtTPC = new TH2F("fZResol1PtTPC","fZResol1PtTPC",50, 0,10,200,-0.020,0.020);   \r
+  fZResol1PtTPC = new TH2F("fZResol1PtTPC","fZResol1PtTPC",100, 0,10,200,-1.0,1.0);   \r
   fZResol1PtTPC->SetXTitle("1/mcpt");\r
   fZResol1PtTPC->SetYTitle("#DeltaZ");\r
 \r
-  fZResol1PtTPCITS = new TH2F("fZResol1PtTPCITS","fZResol1PtTPCITS",50, 0,10,200,-0.020,0.020);   \r
+  fZResol1PtTPCITS = new TH2F("fZResol1PtTPCITS","fZResol1PtTPCITS",100, 0,10,200,-0.05,0.05);   \r
   fZResol1PtTPCITS->SetXTitle("1/mcpt");\r
   fZResol1PtTPCITS->SetYTitle("#DeltaZ");\r
 \r
-  fPhiResol1PtTPC = new TH2F("fPhiResol1PtTPC","fPhiResol1PtTPC",50, 0,10,200,-0.005,0.005);   \r
+  fPhiResol1PtTPC = new TH2F("fPhiResol1PtTPC","fPhiResol1PtTPC",100, 0,10,200,-0.025,0.025);   \r
   fPhiResol1PtTPC->SetXTitle("1/mcpt");\r
   fPhiResol1PtTPC->SetYTitle("#Delta#phi");\r
 \r
-  fPhiResol1PtTPCITS = new TH2F("fPhiResol1PtTPCITS","fPhiResol1PtTPCITS",50, 0,10,200,-0.005,0.005);   \r
+  fPhiResol1PtTPCITS = new TH2F("fPhiResol1PtTPCITS","fPhiResol1PtTPCITS",100, 0,10,200,-0.01,0.01);   \r
   fPhiResol1PtTPCITS->SetXTitle("1/mcpt");\r
   fPhiResol1PtTPCITS->SetYTitle("#Delta#phi");\r
 \r
-  fThetaResol1PtTPC = new TH2F("fThetaResol1PtTPC","fThetaResol1PtTPC",50, 0,10,200,-0.005,0.005);   \r
+  fThetaResol1PtTPC = new TH2F("fThetaResol1PtTPC","fThetaResol1PtTPC",100, 0,10,200,-0.025,0.025);   \r
   fThetaResol1PtTPC->SetXTitle("1/mcpt");\r
   fThetaResol1PtTPC->SetYTitle("#Delta#theta");\r
 \r
-  fThetaResol1PtTPCITS = new TH2F("fThetaResol1PtTPCITS","fThetaResol1PtTPCITS",50, 0,10,200,-0.005,0.005);   \r
+  fThetaResol1PtTPCITS = new TH2F("fThetaResol1PtTPCITS","fThetaResol1PtTPCITS",100, 0,10,200,-0.01,0.01);   \r
   fThetaResol1PtTPCITS->SetXTitle("1/mcpt");\r
   fThetaResol1PtTPCITS->SetYTitle("#Delta#theta");\r
   \r
   // constrained\r
-  fC1Pt2Resol1PtTPC = new TH2F("fC1Pt2Resol1PtTPC","(1/mcpt-1/pt)/(1+1/mcpt)^2 vs 1/pt)",100,0,10,200,-0.020,0.020);  \r
+  fC1Pt2Resol1PtTPC = new TH2F("fC1Pt2Resol1PtTPC","(1/mcpt-1/pt)/(1+1/mcpt)^2 vs 1/pt)",100,0,10,200,-0.010,0.010);  \r
   fC1Pt2Resol1PtTPC->SetXTitle("1/mcp_{t}");\r
   fC1Pt2Resol1PtTPC->SetYTitle("(1/mcp_{t}-1/p_{t})/(1+1/mcp_{t})^2)");\r
 \r
-  fC1Pt2Resol1PtTPCITS = new TH2F("fC1Pt2Resol1PtTPCITS","(1/mcpt-1/pt)/(1+1/mcpt)^2 vs 1/pt)",100,0,10,200,-0.020,0.020);  \r
+  fC1Pt2Resol1PtTPCITS = new TH2F("fC1Pt2Resol1PtTPCITS","(1/mcpt-1/pt)/(1+1/mcpt)^2 vs 1/pt)",100,0,10,200,-0.010,0.010);  \r
   fC1Pt2Resol1PtTPCITS->SetXTitle("1/mcp_{t}");\r
   fC1Pt2Resol1PtTPCITS->SetYTitle("(1/mcp_{t}-1/p_{t})/(1+1/mcp_{t})^2)");\r
 \r
-  fCYResol1PtTPC = new TH2F("fCYResol1PtTPC","fCYResol1PtTPC",100, 0,10,200,-0.010,0.010);   \r
+  fCYResol1PtTPC = new TH2F("fCYResol1PtTPC","fCYResol1PtTPC",100, 0,10,200,-1.0,1.0);   \r
   fCYResol1PtTPC->SetXTitle("1/mcpt");\r
   fCYResol1PtTPC->SetYTitle("#DeltaY");\r
 \r
-  fCYResol1PtTPCITS = new TH2F("fCYResol1PtTPCITS","fCYResol1PtTPCITS",100, 0,10,200,-0.010,0.010);   \r
+  fCYResol1PtTPCITS = new TH2F("fCYResol1PtTPCITS","fCYResol1PtTPCITS",100, 0,10,200,-0.05,0.05);   \r
   fCYResol1PtTPCITS->SetXTitle("1/mcpt");\r
   fCYResol1PtTPCITS->SetYTitle("#DeltaY");\r
 \r
-  fCZResol1PtTPC = new TH2F("fCZResol1PtTPC","fCZResol1PtTPC",50, 0,10,200,-0.020,0.020);   \r
+  fCZResol1PtTPC = new TH2F("fCZResol1PtTPC","fCZResol1PtTPC",100, 0,10,200,-1.0,1.0);   \r
   fCZResol1PtTPC->SetXTitle("1/mcpt");\r
   fCZResol1PtTPC->SetYTitle("#DeltaZ");\r
 \r
-  fCZResol1PtTPCITS = new TH2F("fCZResol1PtTPCITS","fCZResol1PtTPCITS",50, 0,10,200,-0.020,0.020);   \r
+  fCZResol1PtTPCITS = new TH2F("fCZResol1PtTPCITS","fCZResol1PtTPCITS",100, 0,10,200,-0.05,0.05);   \r
   fCZResol1PtTPCITS->SetXTitle("1/mcpt");\r
   fCZResol1PtTPCITS->SetYTitle("#DeltaZ");\r
 \r
-  fCPhiResol1PtTPC = new TH2F("fCPhiResol1PtTPC","fCPhiResol1PtTPC",50, 0,10,200,-0.005,0.005);   \r
+  fCPhiResol1PtTPC = new TH2F("fCPhiResol1PtTPC","fCPhiResol1PtTPC",100, 0,10,200,-0.025,0.025);   \r
   fCPhiResol1PtTPC->SetXTitle("1/mcpt");\r
   fCPhiResol1PtTPC->SetYTitle("#Delta#phi");\r
 \r
-  fCPhiResol1PtTPCITS = new TH2F("fCPhiResol1PtTPCITS","fCPhiResol1PtTPCITS",50, 0,10,200,-0.005,0.005);   \r
+  fCPhiResol1PtTPCITS = new TH2F("fCPhiResol1PtTPCITS","fCPhiResol1PtTPCITS",100, 0,10,200,-0.01,0.01);   \r
   fCPhiResol1PtTPCITS->SetXTitle("1/mcpt");\r
   fCPhiResol1PtTPCITS->SetYTitle("#Delta#phi");\r
 \r
-  fCThetaResol1PtTPC = new TH2F("fCThetaResol1PtTPC","fCThetaResol1PtTPC",50, 0,10,200,-0.005,0.005);   \r
+  fCThetaResol1PtTPC = new TH2F("fCThetaResol1PtTPC","fCThetaResol1PtTPC",100, 0,10,200,-0.025,0.025);   \r
   fCThetaResol1PtTPC->SetXTitle("1/mcpt");\r
   fCThetaResol1PtTPC->SetYTitle("#Delta#theta");\r
 \r
-  fCThetaResol1PtTPCITS = new TH2F("fCThetaResol1PtTPCITS","fCThetaResol1PtTPCITS",50, 0,10,200,-0.005,0.005);   \r
+  fCThetaResol1PtTPCITS = new TH2F("fCThetaResol1PtTPCITS","fCThetaResol1PtTPCITS",100, 0,10,200,-0.01,0.01);   \r
   fCThetaResol1PtTPCITS->SetXTitle("1/mcpt");\r
   fCThetaResol1PtTPCITS->SetYTitle("#Delta#theta");\r
 }\r
@@ -321,6 +321,9 @@ void AliComparisonRes::Process(AliMCInfo* infoMC, AliESDRecInfo *infoRC)
   Int_t clusterITS[200];\r
   Double_t dca[2], cov[3]; // dca_xy, dca_z, sigma_xy, sigma_xy_z, sigma_z\r
 \r
+  Float_t deltaPt, pullPt, deltaPhi, deltaTan, delta1Pt2, deltaY1Pt, deltaZ1Pt, deltaPhi1Pt, deltaTheta1Pt; \r
+  Float_t deltaPtTPC, pullPtTPC, deltaPhiTPC, deltaTanTPC, delta1Pt2TPC, deltaY1PtTPC, deltaZ1PtTPC, deltaPhi1PtTPC, deltaTheta1PtTPC; \r
+\r
   Float_t mcpt = infoMC->GetParticle().Pt();\r
 \r
   // distance to Prim. vertex \r
@@ -340,23 +343,30 @@ void AliComparisonRes::Process(AliMCInfo* infoMC, AliESDRecInfo *infoRC)
   fVertex->SetYv( infoMC->GetParticle().Vy() - dv[1] );\r
   fVertex->SetZv( infoMC->GetParticle().Vz() - dv[2] );\r
 \r
-  Float_t deltaPt= (mcpt-infoRC->GetESDtrack()->Pt())/mcpt;  \r
-  Float_t pullPt= (1/mcpt-infoRC->GetESDtrack()->OneOverPt())/TMath::Sqrt(infoRC->GetESDtrack()->GetSigma1Pt2());  \r
-  Float_t deltaPhi = TMath::ATan2(infoRC->GetESDtrack()->Py(),infoRC->GetESDtrack()->Px())-\r
+  deltaPt= (mcpt-infoRC->GetESDtrack()->Pt())/mcpt;  \r
+  pullPt= (1/mcpt-infoRC->GetESDtrack()->OneOverPt())/TMath::Sqrt(infoRC->GetESDtrack()->GetSigma1Pt2());  \r
+  deltaPhi = TMath::ATan2(infoRC->GetESDtrack()->Py(),infoRC->GetESDtrack()->Px())-\r
                      TMath::ATan2(infoMC->GetParticle().Py(),infoMC->GetParticle().Px());\r
 \r
-  Float_t deltaTan = TMath::ATan2(infoRC->GetESDtrack()->Pz(),infoRC->GetESDtrack()->Pt())-\r
+  deltaTan = TMath::ATan2(infoRC->GetESDtrack()->Pz(),infoRC->GetESDtrack()->Pt())-\r
                      TMath::ATan2(infoMC->GetParticle().Pz(),infoMC->GetParticle().Pt());\r
 \r
-  Float_t delta1Pt2 = (1/mcpt-infoRC->GetESDtrack()->OneOverPt())/TMath::Power(1+1/mcpt,2);       \r
+  delta1Pt2 = (1/mcpt-infoRC->GetESDtrack()->OneOverPt())/TMath::Power(1+1/mcpt,2);       \r
+  deltaY1Pt = (infoMC->GetParticle().Vy()-infoRC->GetESDtrack()->GetY()) / (0.2+1/mcpt);\r
+  deltaZ1Pt = (infoMC->GetParticle().Vz()-infoRC->GetESDtrack()->GetZ()) / (0.2+1/mcpt);\r
+  deltaPhi1Pt = deltaPhi   / (0.1+1/mcpt);\r
+  deltaTheta1Pt = deltaTan / (0.1+1/mcpt);\r
+\r
+  //track parameters at the first measured point (TPC) \r
+  //Double_t param[5],x,alpha; // [0]-Y [cm],[1]-Z [cm],[2]-sin(phi),[3]-tan(theta),[4]-1/pt [1/GeV]   \r
+  //infoRC->GetESDtrack()->GetInnerExternalParameters(alpha,x,param);\r
+  //const AliExternalTrackParam *innerTPC =  infoRC->GetESDtrack()->GetInnerParam(); \r
+  //const AliExternalTrackParam *innerTPC =  infoRC->GetESDtrack()->GetTPCInnerParam(); \r
 \r
-  Float_t deltaY1Pt = (infoMC->GetParticle().Vy()-infoRC->GetESDtrack()->GetY()) / (0.2+1/mcpt);\r
-  Float_t deltaZ1Pt = (infoMC->GetParticle().Vz()-infoRC->GetESDtrack()->GetZ()) / (0.2+1/mcpt);\r
-  Float_t deltaPhi1Pt = deltaPhi   / (0.1+1/mcpt);\r
-  Float_t deltaTheta1Pt = deltaTan / (0.1+1/mcpt);\r
 \r
   // calculate track parameters at vertex\r
-  if (infoRC->GetESDtrack()->GetTPCInnerParam())\r
+  const AliExternalTrackParam *innerTPC =  0;\r
+  if ((innerTPC = infoRC->GetESDtrack()->GetTPCInnerParam()) != 0)\r
   {\r
     if ((track = new AliExternalTrackParam(*infoRC->GetESDtrack()->GetTPCInnerParam())) != 0 )\r
     {\r
@@ -366,17 +376,31 @@ void AliComparisonRes::Process(AliMCInfo* infoMC, AliESDRecInfo *infoRC)
       // Fill parametrisation histograms (only TPC track)\r
       if(bStatus && bDCAStatus) \r
          {\r
-        f1Pt2Resol1PtTPC->Fill(1/mcpt,delta1Pt2);\r
-        fYResol1PtTPC->Fill(1/mcpt,deltaY1Pt);\r
-        fZResol1PtTPC->Fill(1/mcpt,deltaZ1Pt);\r
-        fPhiResol1PtTPC->Fill(1/mcpt,deltaPhi1Pt);\r
-        fThetaResol1PtTPC->Fill(1/mcpt,deltaTheta1Pt);\r
+                       deltaPtTPC= (mcpt-innerTPC->Pt())/mcpt;  \r
+                       pullPtTPC= (1/mcpt-innerTPC->OneOverPt())/TMath::Sqrt(innerTPC->GetSigma1Pt2());  \r
+                       deltaPhiTPC = TMath::ATan2(innerTPC->Py(),innerTPC->Px())-\r
+                                                               TMath::ATan2(infoMC->GetParticle().Py(),infoMC->GetParticle().Px());\r
+\r
+                       deltaTanTPC = TMath::ATan2(innerTPC->Pz(),innerTPC->Pt())-\r
+                                                               TMath::ATan2(infoMC->GetParticle().Pz(),infoMC->GetParticle().Pt());\r
+\r
+                       delta1Pt2TPC = (1/mcpt-innerTPC->OneOverPt())/TMath::Power(1+1/mcpt,2);       \r
+                       deltaY1PtTPC= (infoMC->GetParticle().Vy()-innerTPC->GetY()) / (0.2+1/mcpt);\r
+                       deltaZ1PtTPC = (infoMC->GetParticle().Vz()-innerTPC->GetZ()) / (0.2+1/mcpt);\r
+                       deltaPhi1PtTPC = deltaPhiTPC   / (0.1+1/mcpt);\r
+                       deltaTheta1PtTPC = deltaTanTPC / (0.1+1/mcpt);\r
+\r
+                       f1Pt2Resol1PtTPC->Fill(1/mcpt,delta1Pt2TPC);\r
+                       fYResol1PtTPC->Fill(1/mcpt,deltaY1PtTPC);\r
+                       fZResol1PtTPC->Fill(1/mcpt,deltaZ1PtTPC);\r
+                       fPhiResol1PtTPC->Fill(1/mcpt,deltaPhi1PtTPC);\r
+                       fThetaResol1PtTPC->Fill(1/mcpt,deltaTheta1PtTPC);\r
          }\r
          delete track;\r
     }\r
   }\r
 \r
- // TPC and ITS (nb. of clusters >2) in the system\r
 // TPC and ITS (nb. of clusters >2) in the system\r
   if(infoRC->GetESDtrack()->GetITSclusters(clusterITS)>2) \r
   {\r
       f1Pt2Resol1PtTPCITS->Fill(1/mcpt,delta1Pt2);\r
@@ -407,6 +431,9 @@ void AliComparisonRes::ProcessConstrained(AliMCInfo* infoMC, AliESDRecInfo *info
   Int_t clusterITS[200];\r
   Double_t dca[2], cov[3]; // dca_xy, dca_z, sigma_xy, sigma_xy_z, sigma_z\r
  \r
+  Float_t deltaPt, pullPt, deltaPhi, pullPhi, deltaTan, pullTan, delta1Pt2, deltaY1Pt, deltaZ1Pt, deltaPhi1Pt, deltaTheta1Pt; \r
+  Float_t deltaPtTPC, pullPtTPC, deltaPhiTPC, deltaTanTPC, delta1Pt2TPC, deltaY1PtTPC, deltaZ1PtTPC, deltaPhi1PtTPC, deltaTheta1PtTPC; \r
+\r
   Float_t mcpt = infoMC->GetParticle().Pt();\r
   Float_t tantheta = TMath::Tan(infoMC->GetParticle().Theta()-TMath::Pi()*0.5);\r
 \r
@@ -429,24 +456,25 @@ void AliComparisonRes::ProcessConstrained(AliMCInfo* infoMC, AliESDRecInfo *info
 \r
   // constrained parameters resolution\r
   const AliExternalTrackParam * cparam = infoRC->GetESDtrack()->GetConstrainedParam();\r
-  Float_t deltaPt= (mcpt-cparam->Pt())/mcpt;  \r
-  Float_t pullPt= (1/mcpt-cparam->OneOverPt())/TMath::Sqrt(cparam->GetSigma1Pt2());          \r
-  Float_t deltaPhi = TMath::ATan2(cparam->Py(),cparam->Px())-\r
+  deltaPt= (mcpt-cparam->Pt())/mcpt;  \r
+  pullPt= (1/mcpt-cparam->OneOverPt())/TMath::Sqrt(cparam->GetSigma1Pt2());          \r
+  deltaPhi = TMath::ATan2(cparam->Py(),cparam->Px())-\r
                      TMath::ATan2(infoMC->GetParticle().Py(),infoMC->GetParticle().Px());\r
-  Float_t pullPhi = deltaPhi/TMath::Sqrt(cparam->GetSigmaSnp2()); \r
-  Float_t deltaTan = TMath::ATan2(cparam->Pz(),cparam->Pt())-TMath::ATan2(infoMC->GetParticle().Pz(),infoMC->GetParticle().Pt());\r
-  Float_t pullTan = deltaPhi/TMath::Sqrt(cparam->GetSigmaSnp2()); \r
+  pullPhi = deltaPhi/TMath::Sqrt(cparam->GetSigmaSnp2()); \r
+  deltaTan = TMath::ATan2(cparam->Pz(),cparam->Pt())-TMath::ATan2(infoMC->GetParticle().Pz(),infoMC->GetParticle().Pt());\r
+  pullTan = deltaPhi/TMath::Sqrt(cparam->GetSigmaSnp2()); \r
 \r
 \r
-  Float_t delta1Pt2 = (1/mcpt-cparam->OneOverPt())/TMath::Power(1+1/mcpt,2);       \r
+  delta1Pt2 = (1/mcpt-cparam->OneOverPt())/TMath::Power(1+1/mcpt,2);       \r
 \r
-  Float_t deltaY1Pt = (infoMC->GetParticle().Vy()-cparam->GetY()) / (0.2+1/mcpt);\r
-  Float_t deltaZ1Pt = (infoMC->GetParticle().Vz()-cparam->GetZ()) / (0.2+1/mcpt);\r
-  Float_t deltaPhi1Pt = deltaPhi   / (0.1+1/mcpt);\r
-  Float_t deltaTheta1Pt = deltaTan / (0.1+1/mcpt);\r
+  deltaY1Pt = (infoMC->GetParticle().Vy()-cparam->GetY()) / (0.2+1/mcpt);\r
+  deltaZ1Pt = (infoMC->GetParticle().Vz()-cparam->GetZ()) / (0.2+1/mcpt);\r
+  deltaPhi1Pt = deltaPhi   / (0.1+1/mcpt);\r
+  deltaTheta1Pt = deltaTan / (0.1+1/mcpt);\r
 \r
   // calculate track parameters at vertex\r
-  if (infoRC->GetESDtrack()->GetTPCInnerParam())\r
+  const AliExternalTrackParam *innerTPC =  0;\r
+  if ((innerTPC = infoRC->GetESDtrack()->GetTPCInnerParam()) != 0)\r
   {\r
     if ((track = new AliExternalTrackParam(*infoRC->GetESDtrack()->GetTPCInnerParam())) != 0 )\r
     {\r
@@ -456,11 +484,25 @@ void AliComparisonRes::ProcessConstrained(AliMCInfo* infoMC, AliESDRecInfo *info
       // Fill parametrisation histograms (only TPC track)\r
       if(bStatus && bDCAStatus) \r
          {\r
-        fC1Pt2Resol1PtTPC->Fill(1/mcpt,delta1Pt2);\r
-        fCYResol1PtTPC->Fill(1/mcpt,deltaY1Pt);\r
-        fCZResol1PtTPC->Fill(1/mcpt,deltaZ1Pt);\r
-        fCPhiResol1PtTPC->Fill(1/mcpt,deltaPhi1Pt);\r
-        fCThetaResol1PtTPC->Fill(1/mcpt,deltaTheta1Pt);\r
+                 deltaPtTPC= (mcpt-innerTPC->Pt())/mcpt;  \r
+                 pullPtTPC= (1/mcpt-innerTPC->OneOverPt())/TMath::Sqrt(innerTPC->GetSigma1Pt2());  \r
+                 deltaPhiTPC = TMath::ATan2(innerTPC->Py(),innerTPC->Px())-\r
+                                                               TMath::ATan2(infoMC->GetParticle().Py(),infoMC->GetParticle().Px());\r
+\r
+                 deltaTanTPC = TMath::ATan2(innerTPC->Pz(),innerTPC->Pt())-\r
+                                                               TMath::ATan2(infoMC->GetParticle().Pz(),infoMC->GetParticle().Pt());\r
+\r
+                 delta1Pt2TPC = (1/mcpt-innerTPC->OneOverPt())/TMath::Power(1+1/mcpt,2);       \r
+                 deltaY1PtTPC= (infoMC->GetParticle().Vy()-innerTPC->GetY()) / (0.2+1/mcpt);\r
+                 deltaZ1PtTPC = (infoMC->GetParticle().Vz()-innerTPC->GetZ()) / (0.2+1/mcpt);\r
+                 deltaPhi1PtTPC = deltaPhiTPC   / (0.1+1/mcpt);\r
+                 deltaTheta1PtTPC = deltaTanTPC / (0.1+1/mcpt);\r
+\r
+          fC1Pt2Resol1PtTPC->Fill(1/mcpt,delta1Pt2TPC);\r
+          fCYResol1PtTPC->Fill(1/mcpt,deltaY1PtTPC);\r
+          fCZResol1PtTPC->Fill(1/mcpt,deltaZ1PtTPC);\r
+          fCPhiResol1PtTPC->Fill(1/mcpt,deltaPhi1PtTPC);\r
+          fCThetaResol1PtTPC->Fill(1/mcpt,deltaTheta1PtTPC);\r
          }\r
          delete track;\r
     }\r