Changeset 6281 for trunk/MagicSoft


Ignore:
Timestamp:
02/07/05 15:18:01 (20 years ago)
Author:
tbretz
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Mars
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/Changelog

    r6280 r6281  
    4747       instead of FindObject) which caused the histogram to
    4848       be put a lot of times into the pad.
     49
     50   * mjobs/MJCalib.[h,cc]:
     51     - derived MJCalib from MJob in order to be able to move
     52       common code from derived classes into the base-class
     53     - implemented CheckEnvLocal to handle the resource 'DataType'
     54
     55   * mjobs/MJCalibTest.[h,cc], mjobs/MJCalibrateSignal.[h,cc],
     56     mjobs/MJCalibration.[h,cc], mjobs/MJPedestal.[h,cc]:
     57     - removed double inheritance, replaced by single inheritance
     58       from MJCalib
     59     - replaced code to handle the resource 'DataType' by the
     60       common code in the base class
     61     - put reading of reference file into a new member function
     62       to make source code reading resource file simpler and to
     63       be able to write a function description about it (simple
     64       copy&past)
    4965
    5066
  • trunk/MagicSoft/Mars/mjobs/MJCalib.cc

    r6233 r6281  
    4242// Sets fDataFlag to kIsUseRootData
    4343//
    44 MJCalib::MJCalib() : fRuns(0), fDataFlag(0)
     44MJCalib::MJCalib() : fDataFlag(kIsUseRootData), fRuns(NULL)
    4545{
    46     SetUseRootData();
    4746}
    4847
     48Bool_t MJCalib::CheckEnvLocal()
     49{
     50    if (!HasEnv("DataType"))
     51        return kTRUE;
     52
     53    TString dat = GetEnv("DataType", "");
     54    dat = dat.Strip(TString::kBoth);
     55    dat.ToLower();
     56
     57    if (dat == (TString)"raw")
     58        SetUseRawData();
     59
     60    if (dat == (TString)"mc" || dat == (TString)"montecarlo")
     61        SetUseMC();
     62
     63    if (dat == (TString)"root")
     64        SetUseRootData();
     65
     66    return kTRUE;
     67}
  • trunk/MagicSoft/Mars/mjobs/MJCalib.h

    r6191 r6281  
    22#define MARS_MJCalib
    33
    4 #ifndef ROOT_TROOT
    5 #include <TROOT.h>
     4#ifndef MARS_MJob
     5#include "MJob.h"
    66#endif
    77
    88class MRunIter;
    9 class MJCalib
     9
     10class MJCalib : public MJob
    1011{
     12private:
     13    Byte_t    fDataFlag;      // Bit-field to store the data type
     14
    1115protected:
    1216
     
    2024    };
    2125
    22   Byte_t    fDataFlag;      // Bit-field to store the data type
     26  Bool_t IsUseRawData()  const { return fDataFlag==kIsUseRawData;  }
     27  Bool_t IsUseRootData() const { return fDataFlag==kIsUseRootData; }
     28  Bool_t IsUseMC()       const { return fDataFlag==kIsUseMC;       }
    2329 
    24   Bool_t IsUseRawData()  const { return TESTBIT(fDataFlag,kIsUseRawData);  }
    25   Bool_t IsUseRootData() const { return TESTBIT(fDataFlag,kIsUseRootData); }
    26   Bool_t IsUseMC()       const { return TESTBIT(fDataFlag,kIsUseMC);       }
    27  
    28   void   SetUseRawData ( const Bool_t b=kTRUE )  { b ? SETBIT(fDataFlag,kIsUseRawData)  : CLRBIT(fDataFlag,kIsUseRawData);  }
    29   void   SetUseRootData( const Bool_t b=kTRUE )  { b ? SETBIT(fDataFlag,kIsUseRootData) : CLRBIT(fDataFlag,kIsUseRootData); }
    30   void   SetUseMC      ( const Bool_t b=kTRUE )  { b ? SETBIT(fDataFlag,kIsUseMC)       : CLRBIT(fDataFlag,kIsUseMC);       }
     30  void   SetUseRawData ( const Bool_t b=kTRUE )  { fDataFlag=kIsUseRawData;  }
     31  void   SetUseRootData( const Bool_t b=kTRUE )  { fDataFlag=kIsUseRootData; }
     32  void   SetUseMC      ( const Bool_t b=kTRUE )  { fDataFlag=kIsUseMC;       }
     33
     34  Bool_t CheckEnvLocal();
    3135
    3236public:
  • trunk/MagicSoft/Mars/mjobs/MJCalibTest.cc

    r6234 r6281  
    9191
    9292using namespace std;
     93
    9394// --------------------------------------------------------------------------
    9495//
     
    277278  cont.Add(&cam);
    278279  return ReadContainer(cont);
    279 }
    280 
    281 // --------------------------------------------------------------------------
    282 //
    283 // MJCalibration allows to setup several option by a resource file:
    284 //   MJCalibrateSignal.RawData: yes,no
    285 //
    286 // For more details see the class description and the corresponding Getters
    287 //
    288 Bool_t MJCalibTest::CheckEnvLocal()
    289 {
    290 
    291   SetUseRootData();
    292  
    293   if (HasEnv("DataType"))
    294     {
    295       TString dat = GetEnv("DataType", "");
    296       dat = dat.Strip(TString::kBoth);
    297       if (dat.BeginsWith("raw", TString::kIgnoreCase))
    298         {
    299           fDataFlag = 0;
    300           SetUseRawData();
    301         }
    302       if (dat.BeginsWith("root", TString::kIgnoreCase))
    303         {
    304           fDataFlag = 0;
    305           SetUseRootData();
    306       }
    307       if (dat.BeginsWith("mc", TString::kIgnoreCase))
    308         {
    309           fDataFlag = 0;
    310           SetUseMC();
    311         }
    312     }
    313   return kTRUE;
    314280}
    315281
  • trunk/MagicSoft/Mars/mjobs/MJCalibTest.h

    r6216 r6281  
    22#define MARS_MJCalibTest
    33
    4 #ifndef MARS_MJob
    5 #include "MJob.h"
    6 #endif
    74#ifndef MARS_MJCalib
    85#include "MJCalib.h"
     
    2522class MExtractor;
    2623class MExtractTime;
    27 class MJCalibTest : public MJob, public MJCalib
     24
     25class MJCalibTest : public MJCalib
    2826{
    2927private:
     
    4846  TString fGeometry;
    4947 
    50   Bool_t CheckEnvLocal();
    51 
    5248  void   DisplayResult(MParList &plist);
    5349
  • trunk/MagicSoft/Mars/mjobs/MJCalibrateSignal.cc

    r6276 r6281  
    194194    SetHiLoCalibration(GetEnv("HiLoCalibration", fIsHiLoCalibration));
    195195
    196     SetUseRootData();
    197 
    198     if (HasEnv("DataType"))
    199     {
    200       TString dat = GetEnv("DataType", "");
    201       dat = dat.Strip(TString::kBoth);
    202       if (dat.BeginsWith("raw", TString::kIgnoreCase))
    203         {
    204           fDataFlag = 0;
    205           SetUseRawData();
    206         }
    207       if (dat.BeginsWith("root", TString::kIgnoreCase))
    208       {
    209         fDataFlag = 0;
    210         SetUseRootData();
    211       }
    212       if (dat.BeginsWith("mc", TString::kIgnoreCase))
    213         {
    214           fDataFlag = 0;
    215           SetUseMC();
    216         }
    217     }
    218    
    219     return kTRUE;
     196    return MJCalib::CheckEnvLocal();
    220197}
    221198
  • trunk/MagicSoft/Mars/mjobs/MJCalibrateSignal.h

    r6191 r6281  
    11#ifndef MARS_MJCalibrateSignal
    22#define MARS_MJCalibrateSignal
    3 
    4 #ifndef MARS_MJob
    5 #include "MJob.h"
    6 #endif
    73
    84#ifndef MARS_MJCalib
     
    2016class MBadPixelsCam;
    2117
    22 class MJCalibrateSignal : public MJob, public MJCalib
     18class MJCalibrateSignal : public MJCalib
    2319{
    2420private:
  • trunk/MagicSoft/Mars/mjobs/MJCalibration.cc

    r6262 r6281  
    13951395// --------------------------------------------------------------------------
    13961396//
     1397// Read the following values from resource file:
     1398//
     1399//   ConvFADC2PheMin
     1400//   ConvFADC2PheMax
     1401//   ConvFADC2PhotMin
     1402//   ConvFADC2PhotMax
     1403//
     1404//   QEMin
     1405//   QEMax
     1406//
     1407//   ArrivalTimeMin
     1408//   ArrivalTimeMax
     1409//
     1410//   TimeOffsetMin
     1411//   TimeOffsetMax
     1412//   TimeResolutionMin
     1413//   TimeResolutionMax
     1414//
     1415//   RefConvFADC2PheInner
     1416//   RefConvFADC2PheOuter
     1417//   RefConvFADC2PhotInner
     1418//   RefConvFADC2PhotOuter
     1419//
     1420//   RefQEInner
     1421//   RefQEOuter
     1422//
     1423//   RefArrivalTimeInner
     1424//   RefArrivalTimeOuter
     1425//   RefArrivalTimeRmsInner
     1426//   RefArrivalTimeRmsOuter
     1427//
     1428//   RefTimeOffsetInner
     1429//   RefTimeOffsetOuter
     1430//   RefTimeResolutionInner
     1431//   RefTimeResolutionOuter
     1432//
     1433void MJCalibration::ReadReferenceFile()
     1434{
     1435    TEnv refenv(fReferenceFile);
     1436   
     1437    fConvFADC2PheMin        = refenv.GetValue("ConvFADC2PheMin",fConvFADC2PheMin);
     1438    fConvFADC2PheMax        = refenv.GetValue("ConvFADC2PheMax",fConvFADC2PheMax);
     1439    fConvFADC2PhotMin       = refenv.GetValue("ConvFADC2PhotMin",fConvFADC2PhotMin);
     1440    fConvFADC2PhotMax       = refenv.GetValue("ConvFADC2PhotMax",fConvFADC2PhotMax);
     1441    fQEMin                  = refenv.GetValue("QEMin",fQEMin);
     1442    fQEMax                  = refenv.GetValue("QEMax",fQEMax);
     1443    fArrivalTimeMin         = refenv.GetValue("ArrivalTimeMin",fArrivalTimeMin);
     1444    fArrivalTimeMax         = refenv.GetValue("ArrivalTimeMax",fArrivalTimeMax);
     1445    fTimeOffsetMin          = refenv.GetValue("TimeOffsetMin",fTimeOffsetMin);
     1446    fTimeOffsetMax          = refenv.GetValue("TimeOffsetMax",fTimeOffsetMax);
     1447    fTimeResolutionMin      = refenv.GetValue("TimeResolutionMin",fTimeResolutionMin);
     1448    fTimeResolutionMax      = refenv.GetValue("TimeResolutionMax",fTimeResolutionMax);
     1449                                                               
     1450    fRefConvFADC2PheInner   = refenv.GetValue("RefConvFADC2PheInner",fRefConvFADC2PheInner);
     1451    fRefConvFADC2PheOuter   = refenv.GetValue("RefConvFADC2PheOuter",fRefConvFADC2PheOuter);
     1452    fRefConvFADC2PhotInner  = refenv.GetValue("RefConvFADC2PhotInner",fRefConvFADC2PhotInner);
     1453    fRefConvFADC2PhotOuter  = refenv.GetValue("RefConvFADC2PhotOuter",fRefConvFADC2PhotOuter);
     1454    fRefQEInner             = refenv.GetValue("RefQEInner",fRefQEInner);
     1455    fRefQEOuter             = refenv.GetValue("RefQEOuter",fRefQEOuter);
     1456    fRefArrivalTimeInner    = refenv.GetValue("RefArrivalTimeInner",fRefArrivalTimeInner);
     1457    fRefArrivalTimeOuter    = refenv.GetValue("RefArrivalTimeOuter",fRefArrivalTimeOuter);
     1458    fRefArrivalTimeRmsInner = refenv.GetValue("RefArrivalTimeRmsInner",fRefArrivalTimeRmsInner);
     1459    fRefArrivalTimeRmsOuter = refenv.GetValue("RefArrivalTimeRmsOuter",fRefArrivalTimeRmsOuter);
     1460    fRefTimeOffsetInner     = refenv.GetValue("RefTimeOffsetInner",fRefTimeOffsetInner);
     1461    fRefTimeOffsetOuter     = refenv.GetValue("RefTimeOffsetOuter",fRefTimeOffsetOuter);
     1462    fRefTimeResolutionInner = refenv.GetValue("RefTimeResolutionInner",fRefTimeResolutionInner);
     1463    fRefTimeResolutionOuter = refenv.GetValue("RefTimeResolutionOuter",fRefTimeResolutionOuter);
     1464}
     1465
     1466// --------------------------------------------------------------------------
     1467//
    13971468// MJCalibration allows to setup several option by a resource file:
    13981469//   MJCalibration.Display: full, datacheck, normal
     
    14051476//   MJCalibration.Geometry: MGeomCamMagic, MGeomCamECO1000
    14061477//
     1478// Name of a file containing reference values (see ReadReferenceFile)
     1479//   Prefix.ReferenceFile:    filename
     1480// (see ReadReferenceFile)
     1481//
    14071482// For more details see the class description and the corresponding Getters
    14081483//
     
    14181493        SetNormalDisplay();
    14191494
    1420     SetUseRootData();
    1421 
    1422     if (HasEnv("DataType"))
    1423     {
    1424       TString dat = GetEnv("DataType", "");
    1425       dat = dat.Strip(TString::kBoth);
    1426       if (dat.BeginsWith("raw", TString::kIgnoreCase))
    1427         {
    1428           fDataFlag = 0;
    1429           SetUseRawData();
    1430         }
    1431       if (dat.BeginsWith("root", TString::kIgnoreCase))
    1432         {
    1433           fDataFlag = 0;
    1434           SetUseRootData();
    1435       }
    1436       if (dat.BeginsWith("mc", TString::kIgnoreCase))
    1437         {
    1438           fDataFlag = 0;
    1439           SetUseMC();
    1440         }
    1441     }
     1495    if (!MJCalib::CheckEnvLocal())
     1496        return kFALSE;
    14421497   
    14431498    SetRelTimeCalibration(GetEnv("RelTimeCalibration", IsRelTimes()));
     
    14501505
    14511506    fReferenceFile = GetEnv("ReferenceFile",fReferenceFile.Data());
    1452 
    1453     TEnv refenv(fReferenceFile);
    1454    
    1455     fConvFADC2PheMin           = refenv.GetValue("ConvFADC2PheMin",fConvFADC2PheMin);
    1456     fConvFADC2PheMax           = refenv.GetValue("ConvFADC2PheMax",fConvFADC2PheMax);
    1457     fConvFADC2PhotMin          = refenv.GetValue("ConvFADC2PhotMin",fConvFADC2PhotMin);
    1458     fConvFADC2PhotMax          = refenv.GetValue("ConvFADC2PhotMax",fConvFADC2PhotMax);
    1459     fQEMin                     = refenv.GetValue("QEMin",fQEMin);
    1460     fQEMax                     = refenv.GetValue("QEMax",fQEMax);
    1461     fArrivalTimeMin            = refenv.GetValue("ArrivalTimeMin",fArrivalTimeMin);
    1462     fArrivalTimeMax            = refenv.GetValue("ArrivalTimeMax",fArrivalTimeMax);
    1463     fTimeOffsetMin             = refenv.GetValue("TimeOffsetMin",fTimeOffsetMin);
    1464     fTimeOffsetMax             = refenv.GetValue("TimeOffsetMax",fTimeOffsetMax);
    1465     fTimeResolutionMin         = refenv.GetValue("TimeResolutionMin",fTimeResolutionMin);
    1466     fTimeResolutionMax         = refenv.GetValue("TimeResolutionMax",fTimeResolutionMax);
    1467                                                                        
    1468     fRefConvFADC2PheInner      = refenv.GetValue("RefConvFADC2PheInner",fRefConvFADC2PheInner);
    1469     fRefConvFADC2PheOuter      = refenv.GetValue("RefConvFADC2PheOuter",fRefConvFADC2PheOuter);
    1470     fRefConvFADC2PhotInner     = refenv.GetValue("RefConvFADC2PhotInner",fRefConvFADC2PhotInner);
    1471     fRefConvFADC2PhotOuter     = refenv.GetValue("RefConvFADC2PhotOuter",fRefConvFADC2PhotOuter);
    1472     fRefQEInner                = refenv.GetValue("RefQEInner",fRefQEInner);
    1473     fRefQEOuter                = refenv.GetValue("RefQEOuter",fRefQEOuter);
    1474     fRefArrivalTimeInner       = refenv.GetValue("RefArrivalTimeInner",fRefArrivalTimeInner);
    1475     fRefArrivalTimeOuter       = refenv.GetValue("RefArrivalTimeOuter",fRefArrivalTimeOuter);
    1476     fRefArrivalTimeRmsInner    = refenv.GetValue("RefArrivalTimeRmsInner",fRefArrivalTimeRmsInner);
    1477     fRefArrivalTimeRmsOuter    = refenv.GetValue("RefArrivalTimeRmsOuter",fRefArrivalTimeRmsOuter);
    1478     fRefTimeOffsetInner        = refenv.GetValue("RefTimeOffsetInner",fRefTimeOffsetInner);
    1479     fRefTimeOffsetOuter        = refenv.GetValue("RefTimeOffsetOuter",fRefTimeOffsetOuter);
    1480     fRefTimeResolutionInner    = refenv.GetValue("RefTimeResolutionInner",fRefTimeResolutionInner);
    1481     fRefTimeResolutionOuter    = refenv.GetValue("RefTimeResolutionOuter",fRefTimeResolutionOuter);
    1482                                  
     1507    ReadReferenceFile();
     1508
    14831509    return kTRUE;               
    14841510}
  • trunk/MagicSoft/Mars/mjobs/MJCalibration.h

    r6191 r6281  
    22#define MARS_MJCalibration
    33
    4 #ifndef MARS_MJob
    5 #include "MJob.h"
    6 #endif
    74#ifndef MARS_MJCalib
    85#include "MJCalib.h"
     
    5754class MHCamera;
    5855
    59 class MJCalibration : public MJob, public MJCalib
     56class MJCalibration : public MJCalib
    6057{
    6158private:
     
    177174
    178175  const char* GetOutputFileName() const;
     176
     177  void ReadReferenceFile();
    179178 
    180179public:
  • trunk/MagicSoft/Mars/mjobs/MJPedestal.cc

    r6242 r6281  
    714714// --------------------------------------------------------------------------
    715715//
    716 // The following resource options are available:
    717 //
    718 // Do a datacheck run (read raw-data and enable display)
    719 //   Prefix.DataCheck:        Yes, No <default>
    720 //
    721 // Setup display type
    722 //   Prefix.Display:          normal <default>, datacheck, none
    723 //
    724 // Use cosmic data instead of pedestal data (DatRuns)
    725 //   Prefix.UseData:          Yes, No <default>
    726 //
    727 // Write an output file with pedestals and status-display
    728 //   Prefix.DisableOutput:    Yes, No <default>
    729 //
    730 Bool_t MJPedestal::CheckEnvLocal()
    731 {
    732 
    733     if (HasEnv("Display"))
    734     {
    735         TString type = GetEnv("Display", "normal");
    736         type.ToLower();
    737         if (type==(TString)"normal")
    738             fDisplayType = kDisplayNormal;
    739         if (type==(TString)"datacheck")
    740             fDisplayType = kDisplayDataCheck;
    741         if (type==(TString)"none")
    742             fDisplayType = kDisplayNone;
    743     }
    744 
    745     SetUseRootData();
    746 
    747     if (HasEnv("DataType"))
    748     {
    749       TString dat = GetEnv("DataType", "");
    750       dat = dat.Strip(TString::kBoth);
    751       if (dat.BeginsWith("raw", TString::kIgnoreCase))
    752         {
    753           fDataFlag = 0;
    754           SetUseRawData();
    755         }
    756       if (dat.BeginsWith("root", TString::kIgnoreCase))
    757         {
    758           fDataFlag = 0;
    759           SetUseRootData();
    760       }
    761       if (dat.BeginsWith("mc", TString::kIgnoreCase))
    762         {
    763           fDataFlag = 0;
    764           SetUseMC();
    765         }
    766     }
    767    
    768     if (HasEnv("UseData"))
    769       fExtractType = GetEnv("UseData",kFALSE) ? kUseData : kUsePedRun;
    770 
    771     if (HasEnv("UseHists"))
    772       if (GetEnv("UseHists",kFALSE))
    773         fExtractType = kUseHists;
    774    
    775     SetNoStorage(GetEnv("DisableOutput", IsNoStorage()));
    776 
    777     MTaskEnv tenv("ExtractSignal");
    778     tenv.SetDefault(fExtractor);
    779 
    780     if (tenv.ReadEnv(*GetEnv(), GetEnvPrefix()+".ExtractSignal", GetEnvDebug())==kERROR)
    781         return kFALSE;
    782 
    783     if (fExtractor==tenv.GetTask())
    784         return kTRUE;
    785 
    786     if (!tenv.GetTask()->InheritsFrom(MExtractor::Class()))
    787     {
    788         *fLog << err << "ERROR: ExtractSignal from resource file doesn't inherit from MExtractor.... abort." << endl;
    789         return kFALSE;
    790     }
    791 
    792     SetExtractor((MExtractor*)tenv.GetTask());
    793 
    794     fReferenceFile = GetEnv("ReferenceFile",fReferenceFile.Data());
    795 
     716// Read the following values from resource file:
     717//
     718//   PedestalMin
     719//   PedestalMax
     720//
     721//   PedRmsMin
     722//   PedRmsMax
     723//
     724//   RefPedClosedLids
     725//   RefPedExtraGalactic
     726//   RefPedGalactic
     727//
     728//   RefPedRmsClosedLidsInner
     729//   RefPedRmsExtraGalacticInner
     730//   RefPedRmsGalacticInner
     731//   RefPedRmsClosedLidsOuter
     732//   RefPedRmsExtraGalacticOuter
     733//   RefPedRmsGalacticOuter
     734//
     735void MJPedestal::ReadReferenceFile()
     736{
    796737    TEnv refenv(fReferenceFile);
    797738   
    798     fPedestalMin                 = refenv.GetValue("PedestalMin",fPedestalMin);                 
    799     fPedestalMax                 = refenv.GetValue("PedestalMax",fPedestalMax);                 
     739    fPedestalMin                 = refenv.GetValue("PedestalMin",fPedestalMin);
     740    fPedestalMax                 = refenv.GetValue("PedestalMax",fPedestalMax);
    800741    fPedRmsMin                   = refenv.GetValue("PedRmsMin",fPedRmsMin);                   
    801742    fPedRmsMax                   = refenv.GetValue("PedRmsMax",fPedRmsMax);                   
     
    809750    fRefPedRmsExtraGalacticOuter = refenv.GetValue("RefPedRmsExtraGalacticOuter",fRefPedRmsExtraGalacticOuter);
    810751    fRefPedRmsGalacticOuter      = refenv.GetValue("RefPedRmsGalacticOuter",fRefPedRmsGalacticOuter);     
     752}
     753
     754// --------------------------------------------------------------------------
     755//
     756// The following resource options are available:
     757//
     758// Do a datacheck run (read raw-data and enable display)
     759//   Prefix.DataCheck:        Yes, No <default>
     760//
     761// Setup display type
     762//   Prefix.Display:          normal <default>, datacheck, none
     763//
     764// Use cosmic data instead of pedestal data (DatRuns)
     765//   Prefix.UseData:          Yes, No <default>
     766//
     767// Write an output file with pedestals and status-display
     768//   Prefix.DisableOutput:    Yes, No <default>
     769//
     770// Name of a file containing reference values (see ReadReferenceFile)
     771//   Prefix.ReferenceFile:    filename
     772// (see ReadReferenceFile)
     773//
     774Bool_t MJPedestal::CheckEnvLocal()
     775{
     776    if (HasEnv("Display"))
     777    {
     778        TString type = GetEnv("Display", "normal");
     779        type.ToLower();
     780        if (type==(TString)"normal")
     781            fDisplayType = kDisplayNormal;
     782        if (type==(TString)"datacheck")
     783            fDisplayType = kDisplayDataCheck;
     784        if (type==(TString)"none")
     785            fDisplayType = kDisplayNone;
     786    }
     787
     788    if (!MJCalib::CheckEnvLocal())
     789        return kFALSE;
     790   
     791    if (HasEnv("UseData"))
     792      fExtractType = GetEnv("UseData",kFALSE) ? kUseData : kUsePedRun;
     793
     794    if (HasEnv("UseHists"))
     795      if (GetEnv("UseHists",kFALSE))
     796        fExtractType = kUseHists;
     797   
     798    SetNoStorage(GetEnv("DisableOutput", IsNoStorage()));
     799
     800    MTaskEnv tenv("ExtractSignal");
     801    tenv.SetDefault(fExtractor);
     802
     803    if (tenv.ReadEnv(*GetEnv(), GetEnvPrefix()+".ExtractSignal", GetEnvDebug())==kERROR)
     804        return kFALSE;
     805
     806    if (fExtractor==tenv.GetTask())
     807        return kTRUE;
     808
     809    if (!tenv.GetTask()->InheritsFrom(MExtractor::Class()))
     810    {
     811        *fLog << err << "ERROR: ExtractSignal from resource file doesn't inherit from MExtractor.... abort." << endl;
     812        return kFALSE;
     813    }
     814
     815    SetExtractor((MExtractor*)tenv.GetTask());
     816
     817    fReferenceFile = GetEnv("ReferenceFile", fReferenceFile.Data());
     818    ReadReferenceFile();
    811819
    812820    return kTRUE;
  • trunk/MagicSoft/Mars/mjobs/MJPedestal.h

    r6191 r6281  
    22#define MARS_MJPedestal
    33
    4 #ifndef MARS_MJob
    5 #include "MJob.h"
    6 #endif
    74#ifndef MARS_MJCalib
    85#include "MJCalib.h"
     
    2320class MEvtLoop;
    2421
    25 class MJPedestal : public MJob, public MJCalib
     22class MJPedestal : public MJCalib
    2623{
    2724private:
     
    7976
    8077    Bool_t CheckEnvLocal();
     78    void ReadReferenceFile();
    8179
    8280    const char*  GetOutputFileName() const;
     
    110108    void SetExtractionWithExtractor()     { fExtractionType=kWithExtractor;     /*fPedestalCamOut.SetName("MPedestalExtractor");*/     }
    111109
    112     void SetReferenceFile( const TString ref=fgReferenceFile ) { fReferenceFile = ref; }
     110    void SetReferenceFile( const TString ref=fgReferenceFile) { fReferenceFile = ref; } // Only usefull to overwrite CheckEnvLocal-default
    113111
    114112    MExtractor *GetExtractor() const { return fExtractor; }
Note: See TracChangeset for help on using the changeset viewer.