Fork me on GitHub

Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • external/TrackCovariance/VertexFit.cc

    r537d24f r127644a  
    4646        fWinvi = new TMatrixDSym * [Ntr];       // ACA'
    4747        for (Int_t i = 0; i < Ntr; i++) fWinvi[i] = new TMatrixDSym(3);
    48        
     48
    4949}
    5050// ObsTrk list
     
    6565        {
    6666                fPar[i] = new TVectorD(track[i]->GetObsPar());
    67                 //cout << "fPar = " << endl; fPar[i]->Print();
     67                //std::cout << "fPar = " << std::endl; fPar[i]->Print();
    6868                fCov[i] = new TMatrixDSym(track[i]->GetCov());
    69                 //cout << "fCov = " << endl; fCov[i]->Print();
     69                //std::cout << "fCov = " << std::endl; fCov[i]->Print();
    7070        }
    7171        //
     
    8383        for (Int_t i = 0; i < Ntr; i++) fWinvi[i] = new TMatrixDSym(3);
    8484
    85         //cout << "VertexFit constructor executed" << endl;
     85        //std::cout << "VertexFit constructor executed" << std::endl;
    8686}
    8787//
     
    8989VertexFit::~VertexFit()
    9090{
    91         fxCst.Clear(); 
     91        fxCst.Clear();
    9292        fCovCst.Clear();
    93         fXv.Clear();   
    94         fcovXv.Clear(); 
     93        fXv.Clear();
     94        fcovXv.Clear();
    9595        fChi2List.Clear();
    9696        //
    9797        for (Int_t i= 0; i < fNtr; i++)
    9898        {
    99                 fPar[i]->Clear(); 
     99                fPar[i]->Clear();
    100100                fCov[i]->Clear();
    101101                //
     
    195195                if (Ntry > NtryMax)
    196196                {
    197                         cout << "FastRv: maximum number of iteration reached" << endl;
     197                        std::cout << "FastRv: maximum number of iteration reached" << std::endl;
    198198                        break;
    199199                }
     
    217217        if (N != 3)
    218218        {
    219                 cout << "RegInv3 called with  matrix size != 3. Abort & return standard inversion." << endl;
     219                std::cout << "RegInv3 called with  matrix size != 3. Abort & return standard inversion." << std::endl;
    220220                return Smat.Invert();
    221221        }
     
    263263        else
    264264        {
    265                 cout << "RegInv3: found negative elements in diagonal. Return standard inversion." << endl;
     265                std::cout << "RegInv3: found negative elements in diagonal. Return standard inversion." << std::endl;
    266266                return Smat.Invert();
    267267        }
     
    273273{
    274274        //
    275         // Derivative of track 3D position vector with respect to track parameters at constant phase 
     275        // Derivative of track 3D position vector with respect to track parameters at constant phase
    276276        //
    277277        // par = vector of track parameters
     
    395395        //
    396396        // Stored quantities
    397         Double_t *fi = new Double_t[fNtr];                              // Phases 
     397        Double_t *fi = new Double_t[fNtr];                              // Phases
    398398        TVectorD **x0i = new TVectorD*[fNtr];                   // Track expansion point
    399399        TVectorD **ai = new TVectorD*[fNtr];                            // dx/dphi
     
    416416        // Find track pair with largest phi difference
    417417        Int_t isel=0; Int_t jsel=0; // selected track indices
    418         Double_t dphiMax = 0.0; // Max phi difference 
     418        Double_t dphiMax = 0.0; // Max phi difference
    419419        for (Int_t i = 0; i < fNtr-1; i++)
    420420        {
     
    438438        }
    439439        //
    440         // 
     440        //
    441441        //ObsTrk* t1 = tracks[isel];
    442442        TVectorD p1 = *fPar[isel];
     
    447447        R = 0.9*R + 0.1*Rd;
    448448        //
    449         //cout << "VertexFinder: fast R = " << R << endl;
     449        //std::cout << "VertexFinder: fast R = " << R << std::endl;
    450450        //
    451451        // Iteration properties
     
    464464                H.Zero();               // Reset H matrix
    465465                DW1D.Zero();
    466                 // 
    467                 //cout << "VertexFinder: start loop on tracks" << endl;
     466                //
     467                //std::cout << "VertexFinder: start loop on tracks" << std::endl;
    468468                for (Int_t i = 0; i < fNtr; i++)
    469469                {
    470                         // Get track helix parameters and their covariance matrix 
     470                        // Get track helix parameters and their covariance matrix
    471471                        //ObsTrk *t = tracks[i];
    472472                        TVectorD par = *fPar[i];
    473                         TMatrixDSym Cov = *fCov[i]; 
     473                        TMatrixDSym Cov = *fCov[i];
    474474                        Double_t fs;
    475475                        if (Ntry <= 0)  // Initialize all phases on first pass
     
    485485                        //
    486486                        fs = fi[i];                                                             // Get phase
    487                         //cout << "VertexFinder: phase fs set" << endl;
     487                        //std::cout << "VertexFinder: phase fs set" << std::endl;
    488488                        TVectorD xs = Fill_x(par, fs);
    489                         //cout << "VertexFinder: position xs set" << endl;
     489                        //std::cout << "VertexFinder: position xs set" << std::endl;
    490490                        x0i[i] = new TVectorD(xs);                              // Start helix position
    491                         //cout << "VertexFinder: position x0i stored" << endl;
     491                        //std::cout << "VertexFinder: position x0i stored" << std::endl;
    492492                        // W matrix = (A*C*A')^-1; W^-1 = A*C*A'
    493493                        TMatrixD A = Fill_A(par, fs);                   // A = dx/da = derivatives wrt track parameters
    494                         //cout << "VertexFinder: derivatives A set" << endl;
     494                        //std::cout << "VertexFinder: derivatives A set" << std::endl;
    495495                        TMatrixDSym Winv = Cov.Similarity(A);   // W^-1 = A*C*A'
    496496                        Winvi[i] = new TMatrixDSym(Winv);               // Store W^-1 matrix
    497                         //cout << "VertexFinder: Winvi stored" << endl;
     497                        //std::cout << "VertexFinder: Winvi stored" << std::endl;
    498498                        TMatrixDSym W = RegInv3(Winv);                  // W = (A*C*A')^-1
    499499                        Wi[i] = new TMatrixDSym(W);                             // Store W matrix
    500                         //cout << "VertexFinder: Wi stored" << endl;
     500                        //std::cout << "VertexFinder: Wi stored" << std::endl;
    501501                        TVectorD a = Fill_a(par, fs);                   // a = dx/ds = derivatives wrt phase
    502                         //cout << "VertexFinder: derivatives a set" << endl;
     502                        //std::cout << "VertexFinder: derivatives a set" << std::endl;
    503503                        ai[i] = new TVectorD(a);                                // Store a
    504                         //cout << "VertexFinder: derivatives a stored" << endl;
     504                        //std::cout << "VertexFinder: derivatives a stored" << std::endl;
    505505                        Double_t a2 = W.Similarity(a);
    506506                        a2i[i] = a2;                                                    // Store a2
    507507                        // Build D matrix
    508                         TMatrixDSym B(3); 
     508                        TMatrixDSym B(3);
    509509                        B.Rank1Update(a, 1.0);
    510510                        B *= -1. / a2;
     
    512512                        TMatrixDSym Ds = W+B;                                   // D matrix
    513513                        Di[i] = new TMatrixDSym(Ds);                    // Store D matrix
    514                         //cout << "VertexFinder: matrix Di stored" << endl;
     514                        //std::cout << "VertexFinder: matrix Di stored" << std::endl;
    515515                        TMatrixDSym DsW1Ds = Winv.Similarity(Ds);       // Service matrix to calculate covX
    516                         DW1D += DsW1Ds;                                                         
     516                        DW1D += DsW1Ds;
    517517                        // Update hessian
    518518                        H += Ds;
     
    524524                TMatrixDSym H1 = RegInv3(H);
    525525                x = H1*cterm;
    526                 //cout << "VertexFinder: x vertex set" << endl;
     526                //std::cout << "VertexFinder: x vertex set" << std::endl;
    527527                // Update vertex covariance
    528528                covX = DW1D.Similarity(H1);
    529                 //cout << "VertexFinder: cov vertex set" << endl;
     529                //std::cout << "VertexFinder: cov vertex set" << std::endl;
    530530                // Update phases and chi^2
    531531                Chi2 = 0.0;
     
    541541                }
    542542
    543                 //cout << "VertexFinder: end chi2 calculation" << endl;
     543                //std::cout << "VertexFinder: end chi2 calculation" << std::endl;
    544544                //
    545545                TVectorD dx = x - x0;
     
    559559                //
    560560
    561                 //cout << "VertexFinder: before store intermediate data" << endl;
     561                //std::cout << "VertexFinder: before store intermediate data" << std::endl;
    562562                for (Int_t i = 0; i < fNtr; i++)
    563563                {
    564                         //cout << "VertexFinder: inside store intermediate data" << endl;
    565                         //cout << "i = " << i << ", fi[i] = " << fi[i] << endl;
    566                         //cout << "i = " << i << ", ffi[i] = " << ffi[i] << endl;
     564                        //std::cout << "VertexFinder: inside store intermediate data" << std::endl;
     565                        //std::cout << "i = " << i << ", fi[i] = " << fi[i] << std::endl;
     566                        //std::cout << "i = " << i << ", ffi[i] = " << ffi[i] << std::endl;
    567567                        ffi[i] = fi[i];                         // Fit phases
    568                         //cout << "VertexFinder: fi stored" << endl;
     568                        //std::cout << "VertexFinder: fi stored" << std::endl;
    569569                        fx0i[i] = x0i[i];                       // Track expansion points
    570                         //cout << "VertexFinder: x0i stored" << endl;
     570                        //std::cout << "VertexFinder: x0i stored" << std::endl;
    571571                        fai[i] = ai[i];                         // dx/dphi
    572                         //cout << "VertexFinder: ai stored" << endl;
     572                        //std::cout << "VertexFinder: ai stored" << std::endl;
    573573                        fa2i[i] = a2i[i];                       // a'Wa
    574                         //cout << "VertexFinder: a2i stored" << endl;
     574                        //std::cout << "VertexFinder: a2i stored" << std::endl;
    575575                        fDi[i] = Di[i];                         // W-WBW
    576                         //cout << "VertexFinder: Di stored" << endl;
     576                        //std::cout << "VertexFinder: Di stored" << std::endl;
    577577                        fWi[i] = Wi[i];                         // (ACA')^-1
    578                         //cout << "VertexFinder: Wi stored" << endl;
     578                        //std::cout << "VertexFinder: Wi stored" << std::endl;
    579579                        fWinvi[i] = Winvi[i];           // ACA'
    580                         //cout << "VertexFinder: Winvi stored" << endl;
     580                        //std::cout << "VertexFinder: Winvi stored" << std::endl;
    581581                }
    582                 //cout << "Iteration " << Ntry << " completed - Before cleanup" << endl;
     582                //std::cout << "Iteration " << Ntry << " completed - Before cleanup" << std::endl;
    583583                //
    584584                // Cleanup
     
    599599                }
    600600
    601                 //cout << "Iteration " << Ntry << " completed - After cleanup" << endl;
     601                //std::cout << "Iteration " << Ntry << " completed - After cleanup" << std::endl;
    602602        }
    603603        //
    604604        fVtxDone = kTRUE;       // Set fitting completion flag
    605605        //
    606         delete[] fi;            // Phases 
     606        delete[] fi;            // Phases
    607607        delete[] x0i;           // Track expansion point
    608608        delete[] ai;            // dx/dphi
     
    615615TVectorD VertexFit::GetVtx()
    616616{
    617         //cout << "GetVtx: flag set to " << fVtxDone << endl;
     617        //std::cout << "GetVtx: flag set to " << fVtxDone << std::endl;
    618618        if (!fVtxDone)VertexFinder();
    619619        return fXv;
     
    641641void VertexFit::AddVtxConstraint(TVectorD xv, TMatrixDSym cov)  // Add gaussian vertex constraint
    642642{
    643         cout << "VertexFit::AddVtxConstraint: Not implemented yet" << endl;
     643        std::cout << "VertexFit::AddVtxConstraint: Not implemented yet" << std::endl;
    644644}
    645645//
    646646void VertexFit::AddTrk(TVectorD par, TMatrixDSym Cov)                   // Add track to input list
    647647{
    648         cout << "VertexFit::AddTrk: Not implemented yet" << endl;
     648        std::cout << "VertexFit::AddTrk: Not implemented yet" << std::endl;
    649649}
    650650void VertexFit::RemoveTrk(Int_t iTrk)                                                   // Remove iTrk track
    651651{
    652         cout << "VertexFit::RemoveTrk: Not implemented yet" << endl;
    653 }
     652        std::cout << "VertexFit::RemoveTrk: Not implemented yet" << std::endl;
     653}
Note: See TracChangeset for help on using the changeset viewer.