X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TPC%2FAliTPCtrackerParam.cxx;h=693e8da5ad9399e782e04ddac6a96d9618ef3ee3;hb=72600597e34e128f6b1e58cc3ebd220aeec02a5b;hp=3067362585d6c530c69ea7903713738c08c3ed6a;hpb=a654e2576b86596dc5a0d70b90fdc22849fd3ac3;p=u%2Fmrichter%2FAliRoot.git diff --git a/TPC/AliTPCtrackerParam.cxx b/TPC/AliTPCtrackerParam.cxx index 3067362585d..693e8da5ad9 100644 --- a/TPC/AliTPCtrackerParam.cxx +++ b/TPC/AliTPCtrackerParam.cxx @@ -76,6 +76,7 @@ #include #include #include +#include //------ AliRoot headers ------ #include "AliGausCorr.h" #include "AliTracker.h" @@ -120,15 +121,53 @@ ClassImp(AliTPCtrackerParam) //----------------------------------------------------------------------------- AliTPCtrackerParam::AliTPCtrackerParam(Int_t kcoll, Double_t kBz, - const char* evfoldname): - fEvFolderName(evfoldname) { + const char* evfoldname):TObject(), + fEvFolderName(evfoldname), + fBz(kBz), + fColl(kcoll), + fSelAndSmear(kTRUE), + fDBfileName(""), + fTrack(), + fCovTree(0), + fDBgrid(0), + fDBgridPi(), + fDBgridKa(), + fDBgridPr(), + fDBgridEl(), + fDBgridMu(), + fEff(0), + fEffPi(), + fEffKa(), + fEffPr(), + fEffEl(), + fEffMu(), + fPulls(0), + fRegPar(0), + fRegParPi(), + fRegParKa(), + fRegParPr(), + fRegParEl(), + fRegParMu(), + fdEdxMean(0), + fdEdxMeanPi(), + fdEdxMeanKa(), + fdEdxMeanPr(), + fdEdxMeanEl(), + fdEdxMeanMu(), + fdEdxRMS(0), + fdEdxRMSPi(), + fdEdxRMSKa(), + fdEdxRMSPr(), + fdEdxRMSEl(), + fdEdxRMSMu() +{ //----------------------------------------------------------------------------- // This is the class conctructor //----------------------------------------------------------------------------- - fBz = kBz; // value of the z component of L3 field (Tesla) - fColl = kcoll; // collision code (0: PbPb6000; 1: pp) - fSelAndSmear = kTRUE; // by default selection and smearing are done + // fBz = kBz; // value of the z component of L3 field (Tesla) + // fColl = kcoll; // collision code (0: PbPb6000; 1: pp) + // fSelAndSmear = kTRUE; // by default selection and smearing are done if(fBz!=0.4 && fBz!=0.5) { Fatal("AliTPCtrackerParam","AliTPCtrackerParam::AliTPCtrackerParam: Invalid field!\n Available: 0.4 or 0.5"); @@ -149,7 +188,46 @@ AliTPCtrackerParam::AliTPCtrackerParam(Int_t kcoll, Double_t kBz, //----------------------------------------------------------------------------- AliTPCtrackerParam::~AliTPCtrackerParam() {} //____________________________________________________________________________ -AliTPCtrackerParam::AliTPCtrackerParam( const AliTPCtrackerParam& p):TObject(p) +AliTPCtrackerParam::AliTPCtrackerParam( const AliTPCtrackerParam& p) + :TObject(p), + fEvFolderName(""), + fBz(0.), + fColl(0), + fSelAndSmear(0), + fDBfileName(""), + fTrack(), + fCovTree(0), + fDBgrid(0), + fDBgridPi(), + fDBgridKa(), + fDBgridPr(), + fDBgridEl(), + fDBgridMu(), + fEff(0), + fEffPi(), + fEffKa(), + fEffPr(), + fEffEl(), + fEffMu(), + fPulls(0), + fRegPar(0), + fRegParPi(), + fRegParKa(), + fRegParPr(), + fRegParEl(), + fRegParMu(), + fdEdxMean(0), + fdEdxMeanPi(), + fdEdxMeanKa(), + fdEdxMeanPr(), + fdEdxMeanEl(), + fdEdxMeanMu(), + fdEdxRMS(0), + fdEdxRMSPi(), + fdEdxRMSKa(), + fdEdxRMSPr(), + fdEdxRMSEl(), + fdEdxRMSMu() { // dummy copy constructor } @@ -157,17 +235,23 @@ AliTPCtrackerParam::AliTPCtrackerParam( const AliTPCtrackerParam& p):TObject(p) AliTPCtrackerParam::AliTPCseedGeant::AliTPCseedGeant( Double_t x,Double_t y,Double_t z, Double_t px,Double_t py,Double_t pz, - Int_t lab) { + Int_t lab) + :TObject(), + fXg(x), + fYg(y), + fZg(z), + fPx(px), + fPy(py), + fPz(pz), + fAlpha(0.), + fLabel(lab), + fSector(0) + +{ //---------------------------------------------------------------------------- // Constructor of the geant seeds //---------------------------------------------------------------------------- - fXg = x; - fYg = y; - fZg = z; - fPx = px; - fPy = py; - fPz = pz; - fLabel = lab; + Double_t a = TMath::ATan2(y,x)*180./TMath::Pi(); if(a<0) a += 360.; fSector = (Int_t)(a/20.); @@ -992,17 +1076,17 @@ void AliTPCtrackerParam::BuildTrack(AliTPCseedGeant *s,Int_t ch) { // fAlpha = Alpha Rotation angle the local (TPC sector) // fP0 = YL Y-coordinate of a track // fP1 = ZG Z-coordinate of a track - // fP2 = C*x0 x0 is center x in rotated frame + // fP2 = sin(phi) sine of the (local) azimuthal angle // fP3 = Tgl tangent of the track momentum dip angle // fP4 = C track curvature xx[0] = s->GetYL(); xx[1] = s->GetZL(); + xx[2] = ch/rho*(xref-x0); xx[3] = s->GetPz()/s->GetPt(); xx[4] = ch/rho; - xx[2] = xx[4]*x0; // create the object AliTPCtrack - AliTPCtrack track(0,xx,cc,xref,s->GetAlpha()); + AliTPCtrack track(xref,s->GetAlpha(),xx,cc,0); new(&fTrack) AliTPCtrack(track); return; @@ -1047,7 +1131,7 @@ void AliTPCtrackerParam::CompareTPCtracks( Double_t ptgener; Bool_t usethis; Int_t label; - Double_t cc[15],dAlpha; + Double_t dAlpha; Int_t pi=0,ka=0,mu=0,el=0,pr=0; Int_t *geaPi = new Int_t[effBins]; Int_t *geaKa = new Int_t[effBins]; @@ -1211,30 +1295,30 @@ void AliTPCtrackerParam::CompareTPCtracks( cmptrk.dP0 = kaltrack->GetY()-geatrack->GetY(); cmptrk.dP1 = kaltrack->GetZ()-geatrack->GetZ(); - cmptrk.dP2 = kaltrack->GetEta()-geatrack->GetEta(); + cmptrk.dP2 = kaltrack->GetSnp()-geatrack->GetSnp(); cmptrk.dP3 = kaltrack->GetTgl()-geatrack->GetTgl(); cmptrk.dP4 = kaltrack->GetC()-geatrack->GetC(); cmptrk.dpt = 1/kaltrack->Get1Pt()-1/geatrack->Get1Pt(); // get covariance matrix // beware: lines 3 and 4 in the matrix are inverted! - kaltrack->GetCovariance(cc); - - cmptrk.c00 = cc[0]; - cmptrk.c10 = cc[1]; - cmptrk.c11 = cc[2]; - cmptrk.c20 = cc[3]; - cmptrk.c21 = cc[4]; - cmptrk.c22 = cc[5]; - cmptrk.c30 = cc[10]; - cmptrk.c31 = cc[11]; - cmptrk.c32 = cc[12]; - cmptrk.c33 = cc[14]; - cmptrk.c40 = cc[6]; - cmptrk.c41 = cc[7]; - cmptrk.c42 = cc[8]; - cmptrk.c43 = cc[13]; - cmptrk.c44 = cc[9]; + //kaltrack->GetCovariance(cc); + + cmptrk.c00 = kaltrack->GetSigmaY2(); + cmptrk.c10 = kaltrack->GetSigmaZY(); + cmptrk.c11 = kaltrack->GetSigmaZ2(); + cmptrk.c20 = kaltrack->GetSigmaSnpY(); + cmptrk.c21 = kaltrack->GetSigmaSnpY(); + cmptrk.c22 = kaltrack->GetSigmaSnp2(); + cmptrk.c30 = kaltrack->GetSigmaTglY(); + cmptrk.c31 = kaltrack->GetSigmaTglZ(); + cmptrk.c32 = kaltrack->GetSigmaTglSnp(); + cmptrk.c33 = kaltrack->GetSigmaTgl2(); + cmptrk.c40 = kaltrack->GetSigma1PtY(); + cmptrk.c41 = kaltrack->GetSigma1PtZ(); + cmptrk.c42 = kaltrack->GetSigma1PtSnp(); + cmptrk.c43 = kaltrack->GetSigma1PtTgl(); + cmptrk.c44 = kaltrack->GetSigma1Pt2(); // fill tree cmptrktree->Fill(); @@ -1414,7 +1498,7 @@ void AliTPCtrackerParam::CookTrack(Double_t pt,Double_t eta) { alpha=fTrack.GetAlpha(); xx[0]=fTrack.GetY(); xx[1]=fTrack.GetZ(); - xx[2]=fTrack.GetX()*fTrack.GetC()-fTrack.GetSnp(); + xx[2]=fTrack.GetSnp(); xx[3]=fTrack.GetTgl(); xx[4]=fTrack.GetC(); @@ -1422,7 +1506,7 @@ void AliTPCtrackerParam::CookTrack(Double_t pt,Double_t eta) { xxsm[0]=xref; SmearTrack(xx,xxsm,covMatSmear); - AliTPCtrack track(0,xxsm,cc,xref,alpha); + AliTPCtrack track(xref,alpha,xxsm,cc,0); new(&fTrack) AliTPCtrack(track); return;