Ignore:
Timestamp:
05/13/03 15:16:54 (21 years ago)
Author:
tbretz
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Mars/mranforest
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/mranforest/MRanForest.cc

    r2071 r2114  
    8585void MRanForest::SetPriors(Float_t prior_had, Float_t prior_gam)
    8686{
    87     Float_t sum;
    88 
    89     sum=prior_gam+prior_had;
     87    const Float_t sum=prior_gam+prior_had;
    9088
    9189    prior_gam/=sum;
     
    9896}
    9997
    100 Double_t MRanForest::CalcHadroness(TVector &event)
     98Double_t MRanForest::CalcHadroness(const TVector &event)
    10199{
    102100    Double_t hadroness=0;
    103101    Int_t ntree=0;
     102
     103    TIter forest(fForest);
     104
    104105    MRanTree *tree;
    105 
    106     TIter forest(fForest);
    107     forest.Reset();
    108 
    109106    while ((tree=(MRanTree*)forest.Next()))
    110107    {
  • trunk/MagicSoft/Mars/mranforest/MRanForest.h

    r2071 r2114  
    9696 
    9797    // use forest to calculate hadronness of event
    98     Double_t CalcHadroness(TVector &event);
     98    Double_t CalcHadroness(const TVector &event);
    9999
    100100    Bool_t AsciiWrite(ostream &out) const;
  • trunk/MagicSoft/Mars/mranforest/MRanForestCalc.cc

    r2071 r2114  
    137137Bool_t MRanForestCalc::Process()
    138138{
    139     const Double_t ncols = fData->GetNumEntries();
    140     TVector event(ncols);
    141 
    142     for (int i=0; i<fData->GetNumEntries(); i++)
    143         event(i) = (*fData)(i);
     139    // first copy the data from the data array to a vector event
     140    TVector event;
     141    *fData >> event;
    144142
    145143    Double_t hadroness=fRanForest->CalcHadroness(event);
  • trunk/MagicSoft/Mars/mranforest/MRanTree.cc

    r2071 r2114  
    178178    // (Gini-index as criterium crit)
    179179
    180     critmax=-1.0e20;
     180    critmax=-1.0e20;  // FIXME: Replace by a constant from limits.h
    181181
    182182    // random split selection, number of trials = fNumTry
     
    301301    for(Int_t n=ndstart;n<=ndend;n++)
    302302        ncase[n]=datasort[msplit*numdata+n];
    303 
    304     return;
    305303}
    306304
     
    459457            fBestSplit[kn]/=(classpop[0*nrnodes+kn]+classpop[1*nrnodes+kn]);
    460458        }
    461 
    462     return;
    463459}
    464460
     
    468464}
    469465
    470 Double_t MRanTree::TreeHad(TVector &event)
    471 {
    472     Int_t kt=0;
    473     // to optimize on storage space node status and node class
    474     // are coded into fBestVar:
    475     // status of node kt = TMath::Sign(1,fBestVar[kt])
    476     // hadronness assigned to node kt = fBestSplit[kt]
    477 
    478     for (Int_t k=0;k<fNumNodes;k++)
    479     {
    480         if (fBestVar[kt]<0)
    481             break;
    482 
    483         Int_t m=fBestVar[kt];
    484 
    485         if (event(m)<=fBestSplit[kt])
    486             kt=fTreeMap1[kt];
    487         else
    488             kt=fTreeMap2[kt];
    489     }
    490 
    491     return fBestSplit[kt];
    492 }
    493 
    494 Double_t MRanTree::TreeHad()
    495 {
    496     const Double_t ncols = fData->GetNumEntries();
    497     TVector event(ncols);
    498 
    499     for (int i=0; i<fData->GetNumEntries(); i++)
    500         event(i) = (*fData)(i);
    501 
     466Double_t MRanTree::TreeHad(const TVector &event)
     467{
    502468    Int_t kt=0;
    503469    // to optimize on storage space node status and node class
     
    513479            break;
    514480
    515         Int_t m=fBestVar[kt];
    516 
    517         if (event(m)<=fBestSplit[kt])
    518             kt=fTreeMap1[kt];
    519         else
    520             kt=fTreeMap2[kt];
    521 
     481        const Int_t m=fBestVar[kt];
     482
     483        kt = event(m)<=fBestSplit[kt] ? fTreeMap1[kt] : fTreeMap2[kt];
    522484    }
    523485
    524486    return fBestSplit[kt];
     487}
     488
     489Double_t MRanTree::TreeHad()
     490{
     491    TVector event;
     492    *fData >> event;
     493
     494    return TreeHad(event);
    525495}
    526496
  • trunk/MagicSoft/Mars/mranforest/MRanTree.h

    r2071 r2114  
    8181                   TArrayF &wl,Int_t ninbag);
    8282
    83     Double_t TreeHad(TVector &event);
     83    Double_t TreeHad(const TVector &event);
    8484    Double_t TreeHad();
    8585
Note: See TracChangeset for help on using the changeset viewer.