From 60721370906d4a7695f77297891811a5d1b15674 Mon Sep 17 00:00:00 2001 From: marian Date: Thu, 15 Jul 2010 09:38:44 +0000 Subject: [PATCH] AliDigits.cxx - Format Warning removal AliTPCcalibDB.cxx - Format warnings removal AliTPCcalibTracksGain.cxx - Format warnings removal AliTPCCalibViewerGUI.cxx - Format warnings removal AliTPCkalmanAlign.cxx - Format warnings removal AliTPCcalibAlign.cxx AliTPCcalibAlign.h - Tracklet residual histograms --- TPC/AliDigits.cxx | 4 +- TPC/AliTPCCalibViewerGUI.cxx | 4 +- TPC/AliTPCcalibAlign.cxx | 140 ++++++++++++++++++++++++++++++++-- TPC/AliTPCcalibAlign.h | 9 ++- TPC/AliTPCcalibDB.cxx | 6 +- TPC/AliTPCcalibTracksGain.cxx | 2 +- TPC/AliTPCkalmanAlign.cxx | 2 +- 7 files changed, 149 insertions(+), 18 deletions(-) diff --git a/TPC/AliDigits.cxx b/TPC/AliDigits.cxx index 3b8a655a756..2e16f5a9e47 100644 --- a/TPC/AliDigits.cxx +++ b/TPC/AliDigits.cxx @@ -126,8 +126,8 @@ AliDigits::~AliDigits() Bool_t AliDigits::OutOfBoundsError(const char *where, Int_t row, Int_t column) { // Generate an out-of-bounds error. Always returns false. - ::Error(where, "row %d col %d out of bounds (size: %d x %d, this: 0x%08x)", - row, column, fNrows, fNcols, this); + ::Error(where, "row %d col %d out of bounds (size: %d x %d, this: 0x%08lx)", + row, column, fNrows, fNcols, (ULong_t) this); return kFALSE; } diff --git a/TPC/AliTPCCalibViewerGUI.cxx b/TPC/AliTPCCalibViewerGUI.cxx index fa0b7e95228..898c75821f2 100644 --- a/TPC/AliTPCCalibViewerGUI.cxx +++ b/TPC/AliTPCCalibViewerGUI.cxx @@ -1841,7 +1841,7 @@ void AliTPCCalibViewerGUI::DoExport() { // create calPad according to drawCommand and cuts AliTPCCalPad *calPad = fViewer->GetCalPad(desiredData.Data(), (char*)cutsStr.Data(), (char*)calPadName); // finally export calPad to Cint: - gROOT->ProcessLine(Form("AliTPCCalPad* %s = (AliTPCCalPad*)0x%lx;", calPadName, calPad)); + gROOT->ProcessLine(Form("AliTPCCalPad* %s = (AliTPCCalPad*)0x%lx;", calPadName, (ULong_t)calPad)); fPreprocessor->AddComponent(calPad); Info("ExportCalPad", "Current 2D view has been exported to an AliTPCCalPad* with name '%s'", calPadName); } @@ -1872,7 +1872,7 @@ void AliTPCCalibViewerGUI::DoExportNorm() { // create calPad according to drawCommand and cuts AliTPCCalPad *calPad = fViewer->GetCalPad(desiredData.Data(), (char*)cutsStr.Data(), (char*)fComboExportName->GetTextEntry()->GetText()); // finally export calPad to Cint: - gROOT->ProcessLine(Form("AliTPCCalPad* %s = (AliTPCCalPad*)0x%lx;", calPadName, calPad)); + gROOT->ProcessLine(Form("AliTPCCalPad* %s = (AliTPCCalPad*)0x%lx;", calPadName, (ULong_t) calPad)); Info("ExportCalPad", "Current 2D view has been exported to an AliTPCCalPad* with name '%s'", calPadName); } diff --git a/TPC/AliTPCcalibAlign.cxx b/TPC/AliTPCcalibAlign.cxx index e2e804921b5..5a44932d478 100644 --- a/TPC/AliTPCcalibAlign.cxx +++ b/TPC/AliTPCcalibAlign.cxx @@ -181,7 +181,6 @@ AliTPCcalibAlign::AliTPCcalibAlign() fMatrixArray9(72*72), fMatrixArray6(72*72), fCombinedMatrixArray6(72), - fCompTracklet(0), // tracklet comparison fNoField(kFALSE), fXIO(0), fXmiddle(0), @@ -213,6 +212,12 @@ AliTPCcalibAlign::AliTPCcalibAlign() fClusterDelta[3]=0; // cluster residuals fClusterDelta[4]=0; // cluster residuals - ITS constrained fClusterDelta[5]=0; // cluster residuals + + + fTrackletDelta[0]=0; // tracklet residuals + fTrackletDelta[1]=0; // tracklet residuals + fTrackletDelta[2]=0; // tracklet residuals + fTrackletDelta[3]=0; // tracklet residuals } AliTPCcalibAlign::AliTPCcalibAlign(const Text_t *name, const Text_t *title) @@ -234,7 +239,6 @@ AliTPCcalibAlign::AliTPCcalibAlign(const Text_t *name, const Text_t *title) fMatrixArray9(72*72), fMatrixArray6(72*72), fCombinedMatrixArray6(72), - fCompTracklet(0), // tracklet comparison fNoField(kFALSE), fXIO(0), fXmiddle(0), @@ -270,8 +274,10 @@ AliTPCcalibAlign::AliTPCcalibAlign(const Text_t *name, const Text_t *title) fClusterDelta[4]=0; // cluster residuals - ITS constrained fClusterDelta[5]=0; // cluster residuals - - + fTrackletDelta[0]=0; // tracklet residuals + fTrackletDelta[1]=0; // tracklet residuals + fTrackletDelta[2]=0; // tracklet residuals + fTrackletDelta[3]=0; // tracklet residuals } @@ -296,7 +302,6 @@ AliTPCcalibAlign::AliTPCcalibAlign(const AliTPCcalibAlign &align) fMatrixArray9(align.fMatrixArray9), fMatrixArray6(align.fMatrixArray6), fCombinedMatrixArray6(align.fCombinedMatrixArray6), - fCompTracklet(align.fCompTracklet), // tracklet comparison fNoField(align.fNoField), fXIO(align.fXIO), fXmiddle(align.fXmiddle), @@ -383,6 +388,10 @@ AliTPCcalibAlign::AliTPCcalibAlign(const AliTPCcalibAlign &align) fClusterDelta[4]=0; // cluster residuals - ITS constrained fClusterDelta[5]=0; // cluster residuals + fTrackletDelta[0]=0; // tracklet residuals + fTrackletDelta[1]=0; // tracklet residuals + fTrackletDelta[2]=0; // tracklet residuals + fTrackletDelta[3]=0; // tracklet residuals } @@ -432,7 +441,6 @@ AliTPCcalibAlign::~AliTPCcalibAlign() { fMatrixArray9.Delete(); // array of transnformtation matrix fMatrixArray6.Delete(); // array of transnformtation matrix - if (fCompTracklet) delete fCompTracklet; fArraySectorIntParam.SetOwner(kTRUE); // array of sector alignment parameters fArraySectorIntCovar.SetOwner(kTRUE); // array of sector alignment covariances @@ -441,6 +449,12 @@ AliTPCcalibAlign::~AliTPCcalibAlign() { for (Int_t i=0; i<6; i++){ delete fClusterDelta[i]; // cluster residuals } + + for (Int_t i=0; i<4; i++){ + delete fTrackletDelta[i]; // tracklet residuals + } + + } void AliTPCcalibAlign::Process(AliESDEvent *event) { @@ -448,6 +462,7 @@ void AliTPCcalibAlign::Process(AliESDEvent *event) { // Process pairs of cosmic tracks // if (!fClusterDelta[0]) MakeResidualHistos(); + if (!fTrackletDelta[0]) MakeResidualHistosTracklet(); // fCurrentEvent=event; ExportTrackPoints(event); // export track points for external calibration @@ -906,7 +921,12 @@ void AliTPCcalibAlign::ProcessTracklets(const AliExternalTrackParam &tp1, // Int_t accept = AcceptTracklet(tp1,tp2); Int_t acceptLinear = AcceptTracklet(parLine1,parLine2); - + if (accept==0){ + FillHisto(&tp1,&tp2, s1,s2); + FillHisto(&tp2,&tp1, s2,s1); + } + + if (fStreamLevel>1 && seed){ TTreeSRedirector *cstream = GetDebugStreamer(); if (cstream){ @@ -1693,6 +1713,67 @@ void AliTPCcalibAlign::MakeResidualHistos(){ } + +void AliTPCcalibAlign::MakeResidualHistosTracklet(){ + // + // Make tracklet residual histograms + // + Double_t xminTrack[9], xmaxTrack[9]; + Int_t binsTrack[9]; + TString axisName[9],axisTitle[9]; + // + // 0 - delta of interest + // 1 - global phi in sector number as float + // 2 - local x + // 3 - local ky + // 4 - local kz + // 5 - sector 1 + // 5 - sector 0 + + axisName[0]="delta"; axisTitle[0]="#Delta (cm)"; + binsTrack[0]=60; xminTrack[0]=-0.6; xmaxTrack[0]=0.6; + // + axisName[1]="phi"; axisTitle[1]="#phi"; + binsTrack[1]=180; xminTrack[1]=-TMath::Pi(); xmaxTrack[1]=TMath::Pi(); + // + axisName[2]="localX"; axisTitle[2]="x (cm)"; + binsTrack[2]=10; xminTrack[2]=120.; xmaxTrack[2]=200.; + // + axisName[3]="kY"; axisTitle[3]="dy/dx"; + binsTrack[3]=10; xminTrack[3]=-0.5; xmaxTrack[3]=0.5; + // + axisName[4]="kZ"; axisTitle[4]="dz/dx"; + binsTrack[4]=22; xminTrack[4]=-1.1; xmaxTrack[4]=1.1; + // + axisName[5]="is1"; axisTitle[5]="is1"; + binsTrack[5]=72; xminTrack[5]=0; xmaxTrack[5]=72; + // + axisName[6]="is0"; axisTitle[6]="is0"; + binsTrack[6]=72; xminTrack[6]=0; xmaxTrack[6]=72; + + // + xminTrack[0]=-0.3; xmaxTrack[0]=0.3; + fTrackletDelta[0] = new THnSparseF("#Delta_{Y} (cm)","#Delta_{Y} (cm)", 7, binsTrack,xminTrack, xmaxTrack); + xminTrack[0]=-0.5; xmaxTrack[0]=0.5; + fTrackletDelta[1] = new THnSparseF("#Delta_{Z} (cm)","#Delta_{Z} (cm)", 7, binsTrack,xminTrack, xmaxTrack); + xminTrack[0]=-0.005; xmaxTrack[0]=0.005; + fTrackletDelta[2] = new THnSparseF("#Delta_{kY}","#Delta_{kY}", 7, binsTrack,xminTrack, xmaxTrack); + xminTrack[0]=-0.005; xmaxTrack[0]=0.005; + fTrackletDelta[3] = new THnSparseF("#Delta_{kZ}","#Delta_{kZ}", 7, binsTrack,xminTrack, xmaxTrack); + // + // + // + for (Int_t ivar=0;ivar<4;ivar++){ + for (Int_t ivar2=0;ivar2<7;ivar2++){ + fTrackletDelta[ivar]->GetAxis(ivar2)->SetName(axisName[ivar2].Data()); + fTrackletDelta[ivar]->GetAxis(ivar2)->SetTitle(axisName[ivar2].Data()); + } + } + +} + + + void AliTPCcalibAlign::FillHisto(const Double_t *t1, const Double_t *t2, Int_t s1,Int_t s2) { @@ -1725,6 +1806,42 @@ void AliTPCcalibAlign::FillHisto(const Double_t *t1, } +void AliTPCcalibAlign::FillHisto(const AliExternalTrackParam *tp1, + const AliExternalTrackParam *tp2, + Int_t s1,Int_t s2) { + // + // Fill residual histograms + // Track2-Track1 + Double_t x[8]={0,0,0,0,0,0,0,0}; + AliExternalTrackParam p1(*tp1); + AliExternalTrackParam p2(*tp2); + if (s1%18==s2%18) { + // inner outer - match at the IROC-OROC boundary + p1.PropagateTo(fXIO, AliTrackerBase::GetBz()); + } + p2.Rotate(p1.GetAlpha()); + p2.PropagateTo(p1.GetX(),AliTrackerBase::GetBz()); + Double_t xyz[3]; + p1.GetXYZ(xyz); + x[1]=TMath::ATan2(xyz[1],xyz[0]); + x[2]=p1.GetX(); + x[3]=0.5*(p1.GetSnp()+p2.GetSnp()); // mean snp + x[4]=0.5*(p1.GetTgl()+p2.GetTgl()); // mean tgl + x[5]=s2; + x[6]=s1; + + x[0]=p2.GetY()-p1.GetY(); + fTrackletDelta[0]->Fill(x); + x[0]=p2.GetZ()-p1.GetZ(); + fTrackletDelta[1]->Fill(x); + x[0]=p2.GetSnp()-p1.GetSnp(); + fTrackletDelta[2]->Fill(x); + x[0]=p2.GetTgl()-p1.GetTgl(); + fTrackletDelta[3]->Fill(x); + +} + + TH1 * AliTPCcalibAlign::GetHisto(HistoType type, Int_t s1, Int_t s2, Bool_t force) { @@ -2112,6 +2229,15 @@ void AliTPCcalibAlign::Add(AliTPCcalibAlign * align){ if (i==0) continue; // skip non constrained histo y if (align->fClusterDelta[i]) fClusterDelta[i]->Add(align->fClusterDelta[i]); } + + for (Int_t i=0; i<4; i++){ + if (!fTrackletDelta[i] && align->fTrackletDelta[i]) { + fTrackletDelta[i]= (THnSparse*)(align->fTrackletDelta[i]->Clone()); + continue; + } + if (align->fTrackletDelta[i]) fTrackletDelta[i]->Add(align->fTrackletDelta[i]); + } + } Double_t AliTPCcalibAlign::Correct(Int_t type, Int_t value, Int_t s1, Int_t s2, Double_t x1, Double_t y1, Double_t z1, Double_t dydx1,Double_t dzdx1){ diff --git a/TPC/AliTPCcalibAlign.h b/TPC/AliTPCcalibAlign.h index 0f130061c7b..56545de6197 100644 --- a/TPC/AliTPCcalibAlign.h +++ b/TPC/AliTPCcalibAlign.h @@ -132,15 +132,21 @@ public: // // void MakeResidualHistos(); + void MakeResidualHistosTracklet(); THnSparse * GetClusterDelta(Int_t index) const { return fClusterDelta[index];} + THnSparse * GetTrackletDelta(Int_t index) const { return fTrackletDelta[index];} public: void FillHisto(const Double_t *t1, const Double_t *t2, Int_t s1,Int_t s2); + void FillHisto(const AliExternalTrackParam *tp1, + const AliExternalTrackParam *tp2, + Int_t s1,Int_t s2); protected: THnSparse *fClusterDelta[6]; //clusters residuals + THnSparse *fTrackletDelta[4]; //track residuals TObjArray fDphiHistArray; // array of residual histograms phi -kPhi TObjArray fDthetaHistArray; // array of residual histograms theta -kTheta @@ -169,7 +175,6 @@ protected: // TObjArray fCombinedMatrixArray6; // array combeined transformation matrix // - AliExternalComparison *fCompTracklet; //tracklet comparison // Int_t fPoints[72*72]; // number of points in the fitter Bool_t fNoField; // flag - no field data @@ -198,7 +203,7 @@ protected: private: AliTPCcalibAlign& operator=(const AliTPCcalibAlign&);// not implemented - ClassDef(AliTPCcalibAlign,3) + ClassDef(AliTPCcalibAlign,4) }; diff --git a/TPC/AliTPCcalibDB.cxx b/TPC/AliTPCcalibDB.cxx index c1d95fcba79..aabccafc569 100644 --- a/TPC/AliTPCcalibDB.cxx +++ b/TPC/AliTPCcalibDB.cxx @@ -1311,9 +1311,9 @@ Float_t AliTPCcalibDB::GetDCSSensorMeanValue(AliDCSSensorArray *arr, const char } } if (sigDigits>=0){ - val/=10; + // val/=10; val=(Float_t)TMath::Floor(val * TMath::Power(10., sigDigits) + .5) / TMath::Power(10., sigDigits); - val*=10; + // val*=10; } return val; } @@ -1697,7 +1697,7 @@ Bool_t AliTPCcalibDB::CreateGUITree(const char* filename){ // TString file(filename); - if (file.IsNull()) file=Form("guiTreeRun_%d.root",fRun); + if (file.IsNull()) file=Form("guiTreeRun_%lld.root",fRun); prep.DumpToFile(file.Data()); return kTRUE; } diff --git a/TPC/AliTPCcalibTracksGain.cxx b/TPC/AliTPCcalibTracksGain.cxx index 33a4298d2d6..e453180a77a 100644 --- a/TPC/AliTPCcalibTracksGain.cxx +++ b/TPC/AliTPCcalibTracksGain.cxx @@ -420,7 +420,7 @@ AliTPCcalibTracksGain::~AliTPCcalibTracksGain() { // Destructor. // - Info("Destructor",""); + Info("Destructor",":"); if (fSimpleFitter) delete fSimpleFitter; if (fSqrtFitter) delete fSqrtFitter; if (fLogFitter) delete fLogFitter; diff --git a/TPC/AliTPCkalmanAlign.cxx b/TPC/AliTPCkalmanAlign.cxx index ba12df8e2d6..ca871d8dd2f 100644 --- a/TPC/AliTPCkalmanAlign.cxx +++ b/TPC/AliTPCkalmanAlign.cxx @@ -866,7 +866,7 @@ void AliTPCkalmanAlign::FitCE(){ strFitLX = TStatToolkit::FitPlane(chain,"deltaT-CEG.fElements-CELX.fElements", fstringL.Data(),cutSector+cutAll+"abs(deltaT-CEG.fElements-CELX.fElements)<0.4", chi2,npoints,vecL[isec],covar,-1,0, 10000000, kFALSE); printf("sec=%d\tchi2=%f\n",isec,TMath::Sqrt(chi2/npoints)); // - TString fitL=Form("((sector%36)==%d)++((sector%36)==%d)*(sector<36)++((sector%36)==%d)*(lx-133)/100.++((sector%36)==%d)*(sector<36)*(lx-133)/100.++((sector%36)==%d)*(ly)/100.++((sector%36)==%d)*(sector<36)*(ly)/100.",isec,isec,isec,isec); + TString fitL=Form("((sector%36)==%d)++((sector%36)==%d)*(sector<36)++((sector%36)==%d)*(lx-133)/100.++((sector%36)==%d)*(sector<36)*(lx-133)/100.++((sector%36)==%d)*(ly)/100.++((sector%36)==%d)*(sector<36)*(ly)/100.",isec,isec,isec,isec,isec); if (isec<18) padFitTmpCE=AliTPCCalPad::CreateCalPadFit(fitL.Data(),vecL[isec],dummy); if (isec>=18) padFitTmpCE=AliTPCCalPad::CreateCalPadFit(fitL.Data(),dummy,vecL[isec]); padFitLCE->Add(padFitTmpCE); -- 2.43.0