Changeset 7149


Ignore:
Timestamp:
06/13/05 09:57:28 (20 years ago)
Author:
tbretz
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Mars
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/Makefile

    r7094 r7149  
    6666          mranforest \
    6767          mjobs \
     68          mjoptim \
    6869          mtools \
    6970          mmuon
  • trunk/MagicSoft/Mars/manalysis/MEnergyEstimate.cc

    r7004 r7149  
    3939//
    4040// Output:
    41 //   MEnergyEst
     41//   MEnergyEst [MParameterD]
    4242//
    4343/////////////////////////////////////////////////////////////////////////////
    4444#include "MEnergyEstimate.h"
    45 
    46 #include "MParList.h"
    47 
    48 #include "MDataChain.h"
    49 #include "MParameters.h"
    50 
    51 #include "MLog.h"
    52 #include "MLogManip.h"
    5345
    5446ClassImp(MEnergyEstimate);
     
    6153//
    6254MEnergyEstimate::MEnergyEstimate(const char *name, const char *title)
    63     : fData(0), fEnergy(0)
     55    : MParameterCalc("MMcEvt.fEnergy")
    6456{
    6557    fName  = name  ? name  : "MEnergyEstimate";
    6658    fTitle = title ? title : "Task to estimate the energy by a rule";
    6759
    68     fData = new MDataChain("MMcEvt.fEnergy");
     60    SetNameParameter("MEnergyEst");
    6961}
    70 
    71 // --------------------------------------------------------------------------
    72 //
    73 // delete fData
    74 //
    75 MEnergyEstimate::~MEnergyEstimate()
    76 {
    77     delete fData;
    78 }
    79 
    80 // --------------------------------------------------------------------------
    81 //
    82 // Delete fData. Initialize a new MDataChain with rule.
    83 // Returns if fData->IsValid()
    84 //
    85 Bool_t MEnergyEstimate::SetRule(const char *rule)
    86 {
    87     delete fData;
    88     fData = new MDataChain(rule);
    89 
    90     return fData->IsValid();
    91 }
    92 
    93 // --------------------------------------------------------------------------
    94 //
    95 // Forwards SetVariables to fData to allow optimizations.
    96 //
    97 void MEnergyEstimate::SetVariables(const TArrayD &arr)
    98 {
    99     fData->SetVariables(arr);
    100 }
    101 
    102 // --------------------------------------------------------------------------
    103 //
    104 // FindCreate "MEnergyEst"
    105 // PreProcess fData.
    106 //
    107 Int_t MEnergyEstimate::PreProcess(MParList *plist)
    108 {
    109     fEnergy = (MParameterD*)plist->FindCreateObj("MParameterD", "MEnergyEst");
    110     if (!fEnergy)
    111         return kFALSE;
    112 
    113     *fLog << inf << "Rule for energy estimation: " << fData->GetRule() << endl;
    114 
    115     if (!fData->PreProcess(plist))
    116         return kFALSE;
    117 
    118     return kTRUE;
    119 }
    120 
    121 // --------------------------------------------------------------------------
    122 //
    123 // Get value from fData and set it to fEnergy. SetReadyToSave for fEnergy.
    124 // Return kCONTINUE if value is NaN (Not a Number)
    125 //
    126 Int_t MEnergyEstimate::Process()
    127 {
    128     const Double_t val = fData->GetValue();
    129     if (TMath::IsNaN(val))
    130         return kCONTINUE;
    131 
    132     fEnergy->SetVal(val);
    133     fEnergy->SetReadyToSave();
    134     return kTRUE;
    135 }
    136 
    137 // --------------------------------------------------------------------------
    138 //
    139 // Print the rule used for energy estimation
    140 //
    141 void MEnergyEstimate::Print(Option_t *o) const
    142 {
    143     *fLog << all << GetDescriptor() << ":";
    144     if (!fData)
    145         *fLog << " <n/a>" << endl;
    146     else
    147         *fLog << endl << fData->GetRule() << endl;
    148 }
    149 
    150 // --------------------------------------------------------------------------
    151 //
    152 // Check for corresponding entries in resource file and setup filters.
    153 // Avoid trailing 0's!
    154 //
    155 // Example:
    156 //   test.C:
    157 //     MEnergyEstimate est("MyEstimator");
    158 //
    159 //   test.rc:
    160 //     MyEstimator.Rule: {0} + {1}
    161 //     MyEstimator.0: log10(MHillas.fSize)
    162 //     MyEstimator.1: 5.5
    163 //
    164 // For more details see MDataChain::ReadEnv
    165 //
    166 Int_t MEnergyEstimate::ReadEnv(const TEnv &env, TString prefix, Bool_t print)
    167 {
    168     MDataChain *f = new MDataChain;
    169     f->SetName(fName);
    170 
    171     const Bool_t rc = f->ReadEnv(env, prefix, print);
    172     if (rc!=kTRUE)
    173     {
    174         delete f;
    175         return rc;
    176     }
    177 
    178     delete fData;
    179     fData = f;
    180 
    181     if (!fData->IsValid())
    182     {
    183         *fLog << err << "MEnergyEst::ReadEnv - ERROR: Inavlid rule from resource file." << endl;
    184         return kERROR;
    185     }
    186 
    187     return kTRUE;
    188 }
  • trunk/MagicSoft/Mars/manalysis/MEnergyEstimate.h

    r6949 r7149  
    22#define MARS_MEnergyEstimate
    33
    4 #ifndef MARS_MTask
    5 #include "MTask.h"
     4#ifndef MARS_MParameterCalc
     5#include "MParameterCalc.h"
    66#endif
    77
    8 class MData;
    9 class MParameterD;
    10 
    11 class MEnergyEstimate : public MTask
     8class MEnergyEstimate : public MParameterCalc
    129{
    13 private:
    14     MData       *fData;    //->
    15     MParameterD *fEnergy;  //!
    16 
    17     Int_t ReadEnv(const TEnv &env, TString prefix, Bool_t print=kFALSE);
    18 
    1910public:
    2011    MEnergyEstimate(const char *name=NULL, const char *title=NULL);
    21     ~MEnergyEstimate();
    22 
    23     Bool_t SetRule(const char *rule);
    24 
    25     Int_t PreProcess(MParList *plist);
    26     Int_t Process();
    27 
    28     void SetVariables(const TArrayD &);
    29 
    30     void Print(Option_t *o="") const; //*MENU*
    3112
    3213    ClassDef(MEnergyEstimate, 1) // Task to estimate the energy by a rule
  • trunk/MagicSoft/Mars/manalysis/Makefile

    r6932 r7149  
    2828SRCFILES = MGeomApply.cc \
    2929           MCameraData.cc \
     30           MParameterCalc.cc \
    3031           MEnergyEstimate.cc \
    3132           MMatrixLoop.cc \
Note: See TracChangeset for help on using the changeset viewer.