Ignore:
Timestamp:
07/19/07 19:59:27 (18 years ago)
Author:
tbretz
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Mars/mjoptim
Files:
2 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/mjoptim/MJOptimize.cc

    r8244 r8643  
    111111#include "MMatrixLoop.h"
    112112#include "MFillH.h"
     113#include "MParameterCalc.h"
     114#include "MContinue.h"
    113115
    114116// filters
     
    225227}
    226228
    227 MJOptimize::MJOptimize() : fDebug(-1), fNumEvents(0), fType(kSimplex), fNumMaxCalls(0), fTolerance(0), fTestTrain(0), fNameMinimizationValue("MinimizationValue")
     229MJOptimize::MJOptimize() : /*fDebug(-1),*/ fNumEvents(0), fType(kSimplex), fNumMaxCalls(0), fTolerance(0), fTestTrain(0), fNameMinimizationValue("MinimizationValue")
    228230{
    229231    fRules.SetOwner();
     
    287289}
    288290
    289 //------------------------------------------------------------------------
    290 //
    291 // Add a parameter used in your filters (see AddFilter) The parameter
    292 // index is returned,
    293 //
    294 //   Int_t idx = AddParameter("log10(MHillas.fSize)");
    295 //
    296 // The indices area starting with 0 always.
    297 //
    298 Int_t MJOptimize::AddParameter(const char *rule)
    299 {
    300     fRules.Add(new TNamed(rule, ""));
    301     return fRules.GetSize()-1;
    302 }
    303291
    304292//------------------------------------------------------------------------
     
    319307{
    320308    fFilter.Add(new MFDataPhrase(rule));
    321 }
    322 
    323 //------------------------------------------------------------------------
    324 //
    325 // Add a cut which is used to fill the matrix, eg "MMcEvt.fOartId<1.5"
    326 // (The rule is applied, nit inverted: The matrix is filled with
    327 // the events fullfilling the condition)
    328 //
    329 void MJOptimize::AddPreCut(const char *rule)
    330 {
    331     MFilter *f = new MFDataPhrase(rule);
    332     f->SetBit(kCanDelete);
    333     AddPreCut(f);
    334 }
    335 
    336 //------------------------------------------------------------------------
    337 //
    338 // Add a cut which is used to fill the matrix. If kCanDelete is set
    339 // MJOptimize takes the ownership.
    340 //
    341 void MJOptimize::AddPreCut(MFilter *f)
    342 {
    343     fPreCuts.Add(f);
    344309}
    345310
     
    739704    m->Print("cols");
    740705
    741     //MParList parlist;
    742 
    743706    //    MGeomCamMagic cam;
    744707    //    parlist.AddToList(&cam);
    745708
    746     MTaskList tlist;
    747     parlist.Replace(&tlist);
    748 
    749     MFillH fillh(m);
    750 
    751     tlist.AddToList(&read);
    752 
     709    // Setup filter and apply filter to filling of matrix
    753710    MFilterList list;
    754711    if (!list.AddToList(fPreCuts))
     
    757714        SetupFilters(list);
    758715    list.SetName("PreCuts");  // reset Name      set by SetupFilters
    759     list.SetInverted(kFALSE); // reset inversion set by SetupFilters
    760     fillh.SetFilter(&list);
    761     tlist.AddToList(&list);
    762 
    763     tlist.AddToList(&fillh);
     716    list.SetInverted(kTRUE);  // reset inversion set by SetupFilters
     717
     718    MContinue cont(&list);
     719
     720    // Setup filling of matrix
     721    MFillH fillh(m);
     722
     723    // Setup tasklist
     724    MTaskList tlist;
     725    parlist.Replace(&tlist);
     726
     727    // Create task list
     728    tlist.AddToList(&read);        // read data
     729    tlist.AddToList(fPreTasks);    // execute pre-filter tasks
     730    tlist.AddToList(&cont);        // execute filters
     731    tlist.AddToList(fPostTasks);   // execute post-filter tasks
     732    tlist.AddToList(&fillh);       // Fill matrix
    764733
    765734    tlist.SetAccelerator(MTask::kAccDontReset|MTask::kAccDontTime);
  • trunk/MagicSoft/Mars/mjoptim/MJOptimize.h

    r7152 r8643  
    22#define MARS_MJOptimize
    33
    4 #ifndef MARS_MJob
    5 #include "MJob.h"
     4#ifndef MARS_MJOptimizeBase
     5#include "MJOptimizeBase.h"
    66#endif
    77
     
    1414class MAlphaFitter;
    1515
     16class MTask;
    1617class MEvtLoop;
    1718class MParList;
     
    2627class MReadTree;
    2728
    28 class MJOptimize : public MJob
     29class MJOptimize : public MJOptimizeBase
    2930{
    3031public:
     
    4142
    4243private:
    43     Int_t fDebug;     // -1 no output, 0 MJOptimize output, 1 PrintStatistics output
    4444    Int_t fNumEvents;
    4545
    46     TList fRules;
    4746    TList fFilter;
    4847
     
    7877
    7978protected:
    80     TList   fPreCuts;
    81 
    8279    TList   fNamesOn;
    8380    TList   fNamesOff;
     
    10097
    10198    // Interface for filter cuts
    102     Int_t AddParameter(const char *rule);
    10399    void AddFilter(const char *rule);
    104     void AddPreCut(const char *rule);
    105     void AddPreCut(MFilter *f);
    106100
    107101    // Steering of optimization
  • trunk/MagicSoft/Mars/mjoptim/Makefile

    r7152 r8643  
    2929# mgeom:     MGeomCam
    3030
    31 SRCFILES = MJOptimize.cc \
     31SRCFILES = MJOptimizeBase.cc \
     32           MJOptimize.cc \
    3233           MJOptimizeCuts.cc \
    3334           MJOptimizeDisp.cc \
  • trunk/MagicSoft/Mars/mjoptim/OptimLinkDef.h

    r7152 r8643  
    66
    77#pragma link C++ class MJOptimize+;
     8#pragma link C++ class MJOptimizeBase+;
    89#pragma link C++ class MJOptimizeCuts+;
    910#pragma link C++ class MJOptimizeDisp+;
Note: See TracChangeset for help on using the changeset viewer.