Changeset 5361 for trunk


Ignore:
Timestamp:
11/09/04 18:43:11 (20 years ago)
Author:
gaug
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Mars
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/Changelog

    r5358 r5361  
    1 
     1 
    22Please  do  not write behind the end of line tag so that it is  possible
    33to   send  a   Changelog   file  to  a  line  printer  directly.  Thanks.
     
    2222
    2323 2004/11/08: Markus Gaug
     24
     25   * mjobs/MJPedestal.[h,cc]
     26     - implemented the possibility to use the extractor to calculate the
     27       pedestals. Now, there are three possibilities:
     28
     29       1) SetUseData(): will use MPedCalcFromLoGain together with a data
     30                        file (and possibly a signal extractor to
     31                        determine the ranges)
     32       2) SetUsePedRun(): will use MPedCalcPedRun together with a
     33                          pedestal run (and possibly a signal extractor
     34                          to determine the ranges)
     35       3) SetUseExtractor(): Will use the extractor itself and checks
     36                          that the flag IsNoiseCalculation() is set.
     37
     38   * msignal/MExtractor.[h,cc]
     39     - introduced flag "fNoiseCalculation" to be used by the
     40       deriving classes to calculate the noise from a fixed window in
     41       time.
    2442
    2543   * mpedestal/MPedCalcFromLoGain.[h,cc]
  • trunk/MagicSoft/Mars/mjobs/MJPedestal.cc

    r5342 r5361  
    9393// - fExtractor to NULL,
    9494// - fDataCheck to kFALSE,
    95 // - fUseData to kFALSE
     95// - fExtractType to kUsePedRun
    9696// - fStorage to Normal Storage
    9797//
    9898MJPedestal::MJPedestal(const char *name, const char *title)
    9999    : fRuns(0), fExtractor(NULL), fDisplayType(kNormalDisplay),
    100       fDataCheck(kFALSE), fUseData(kFALSE)
     100      fDataCheck(kFALSE)
    101101{
    102102    fName  = name  ? name  : "MJPedestal";
     
    104104
    105105    SetNormalStorage();
     106    SetUsePedRun();
    106107}
    107108
     
    502503Bool_t MJPedestal::CheckEnvLocal()
    503504{
    504     SetDataCheck(GetEnv("DataCheck", fDataCheck));
    505     if (HasEnv("DataCheckDisplay"))
    506         fDisplayType = GetEnv("DataCheckDisplay", kFALSE) ? kDataCheckDisplay : kNormalDisplay;
    507     SetUseData(GetEnv("UseData", fUseData));
    508     SetNoStorage(GetEnv("DisableOutput", IsNoStorage()));
    509 
    510     return kTRUE;
     505
     506  SetDataCheck(GetEnv("DataCheck", fDataCheck));
     507 
     508  if (HasEnv("DataCheckDisplay"))
     509    fDisplayType = GetEnv("DataCheckDisplay", kFALSE) ? kDataCheckDisplay : kNormalDisplay;
     510
     511  if (HasEnv("UseData"))
     512    fExtractType = GetEnv("UseData",kFALSE) ? kUseData : kUsePedRun;
     513 
     514  if (HasEnv("UseExtractor"))
     515    if (GetEnv("UseExtractor",kFALSE))
     516      fExtractType = kUseExtractor;
     517
     518  SetNoStorage   ( GetEnv("DisableOutput", IsNoStorage()   ));
     519 
     520  return kTRUE;
    511521}
    512522
     
    590600    // --------------------------------------------------------------------------------
    591601
    592     const TString type = fUseData ? "data" : "pedestal";
     602    const TString type = IsUseData() ? "data" : "pedestal";
    593603
    594604    *fLog << inf;
     
    617627    if (fSequence.IsValid())
    618628    {
    619         const Int_t n0 = fUseData ? fSequence.SetupDatRuns(iter, fPathData, "D", fDataCheck) : fSequence.SetupPedRuns(iter, fPathData, "P", fDataCheck);
    620         const Int_t n1 = fUseData ? fSequence.GetNumDatRuns() : fSequence.GetNumPedRuns();
     629        const Int_t n0 = IsUseData() ? fSequence.SetupDatRuns(iter, fPathData, "D", fDataCheck) : fSequence.SetupPedRuns(iter, fPathData, "P", fDataCheck);
     630        const Int_t n1 = IsUseData() ? fSequence.GetNumDatRuns() : fSequence.GetNumPedRuns();
    621631        if (n0==0)
    622632        {
     
    654664    MPedCalcPedRun     pedcalc;
    655665    MPedCalcFromLoGain pedlogain;
    656     pedlogain.SetPedestalUpdate(kFALSE);
    657666
    658667    MTaskEnv taskenv("ExtractPedestal");
    659668    if (IsUseData())
    660669      taskenv.SetDefault(&pedlogain);
     670    else if (IsUseExtractor())
     671      taskenv.SetDefault(fExtractor);
    661672    else
    662673      taskenv.SetDefault(&pedcalc);
     
    666677      if (IsUseData())
    667678        pedlogain.SetExtractWindow(15,(Int_t)fExtractor->GetNumHiGainSamples());         
    668       else
     679      else if (IsUsePedRun())
    669680        {
    670681          pedcalc.SetWindowSize((Int_t)fExtractor->GetNumHiGainSamples());
    671682          pedcalc.SetRange(fExtractor->GetHiGainFirst(), fExtractor->GetHiGainLast());
    672683        }
    673     }
     684      else if (IsUseExtractor())
     685        if (!fExtractor->IsNoiseCalculation())
     686          {
     687            *fLog << err << GetDescriptor()
     688                  << "Extraction Type kUseExtractor is chosen, but the extractor has no flag kNoiseCalculation set! " << endl;
     689            return kFALSE;
     690          }
     691    }
     692    else if (IsUseExtractor())
     693      {
     694        *fLog << err << GetDescriptor()
     695              << "Extraction Type kUseExtractor is chosen, but no extractor has been handed over" << endl;
     696        return kFALSE;
     697      }
     698   
    674699  /*
    675700    else
  • trunk/MagicSoft/Mars/mjobs/MJPedestal.h

    r5233 r5361  
    4141  static const Float_t  fgRefPedRmsGalacticOuter;      //! Ref. line ped. RMS for galactic source - outer pixels     
    4242   
    43   MRunIter   *fRuns;                                  // Used pedestal runs
    44   MExtractor *fExtractor;                             // Signal extractor, used to find the nr. of used FADC slices
     43  MRunIter   *fRuns;                                   // Used pedestal runs
     44  MExtractor *fExtractor;                              // Signal extractor, used to find the nr. of used FADC slices
    4545 
    46   MPedestalCam  fPedestalCam;                         // Created pedestal results
    47   MBadPixelsCam fBadPixels;                           // Bad Pixels
     46  MPedestalCam  fPedestalCam;                          // Created pedestal results
     47  MBadPixelsCam fBadPixels;                            // Bad Pixels
    4848 
    49   enum Display_t {kDataCheckDisplay, kNormalDisplay}; // Possible Display types
     49  enum Display_t {kDataCheckDisplay, kNormalDisplay};  // Possible Display types
     50  Display_t fDisplayType;                              // Chosen Display type   
     51 
     52  enum Storage_t { kNoStorage };                       // Possible flags for the storage of results
     53  Byte_t fStorage;                                     // Bit-field for chosen storage type
     54   
     55  Bool_t fDataCheck;                                   // Flag if the data check is run on raw data
    5056
    51   Display_t fDisplayType;                             // Chosen Display type   
    52  
    53   enum Storage_t { kNoStorage };                      // Possible flags for the storage of results
    54  
    55   Byte_t fStorage;                                    // Bit-field for chosen storage type
    56    
    57   Bool_t fDataCheck;                                  // Flag if the data check is run on raw data
    58   Bool_t fUseData;                                    // Use data-runs from sequence instead of pedestal runs
     57  enum Extract_t {kUseData, kUsePedRun, kUseExtractor}; // Possible flags for the extraction of the pedestal
     58  Extract_t fExtractType;                              // Chosen extractor type
    5959 
    6060  Bool_t ReadPedestalCam();
     
    8080  const char*  GetOutputFile() const;
    8181  const Bool_t IsDataCheck  () const    { return fDataCheck; }
    82   const Bool_t IsUseData    () const    { return fUseData;   }   
     82  const Bool_t IsUseData    () const    { return fExtractType == kUseData;   }
     83  const Bool_t IsUseExtractor () const    { return fExtractType == kUseExtractor;   }
     84  const Bool_t IsUsePedRun   () const    { return fExtractType == kUsePedRun;   } 
    8385 
    8486  Bool_t Process    ();
     
    8890  void SetExtractor (       MExtractor* ext   ) { fExtractor = ext;     }
    8991  void SetInput     (       MRunIter  *iter   ) { fRuns      = iter;    }
    90   void SetUseData   ( const Bool_t b=kTRUE    ) { fUseData   = b;       }
    91   void SetDataCheck ( const Bool_t b=kTRUE    ) { fDataCheck = b;
     92  void SetUseData     ()                        { fExtractType = kUseData;      }
     93  void SetUseExtractor()                        { fExtractType = kUseExtractor; }
     94  void SetUsePedRun   ()                        { fExtractType = kUsePedRun;    }
     95  void SetDataCheck   ( const Bool_t b=kTRUE  ) { fDataCheck = b;
    9296                                                  b ? SetDataCheckDisplay() : SetNormalDisplay(); }
    9397  void SetDataCheckDisplay()                    { fDisplayType = kDataCheckDisplay; }
  • trunk/MagicSoft/Mars/msignal/MExtractor.h

    r5360 r5361  
    5757  TString  fNamePedestalCam;              // Name of the 'MPedestalCam' container
    5858
    59   Bool_t IsNoiseCalculation()   {   return fNoiseCalculation;   }
    60  
    6159  virtual void FindSignalHiGain(Byte_t *firstused, Byte_t *lowgain, Float_t &sum, Byte_t &sat) const { }
    6260  virtual void FindSignalLoGain(Byte_t *firstused, Float_t &sum, Byte_t &sat) const { }
     
    7876  Float_t GetNumLoGainSamples() const { return fNumLoGainSamples; }
    7977 
     78  Bool_t IsNoiseCalculation()   {   return fNoiseCalculation;   }
     79 
    8080  virtual void SetRange    ( Byte_t hifirst=0, Byte_t hilast=0, Byte_t lofirst=0, Byte_t lolast=0 );
    8181
Note: See TracChangeset for help on using the changeset viewer.