Changeset 3414 for trunk


Ignore:
Timestamp:
03/05/04 16:27:54 (21 years ago)
Author:
gaug
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Mars
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/Changelog

    r3413 r3414  
    88     - fixed a little bug (exchanged a - with a + in the Calc() method)
    99 
     10
    10112004/03/05: Markus Gaug
    1112   * mcalib/MCalibraitonChargeCalc.cc
     
    1415            return kTRUE;
    1516       which gave always true since this week, don't know why.
     17     - added some information in class description
    1618
    1719
  • trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.cc

    r3411 r3414  
    3434//   for every pixel. It is filled in the following way:
    3535//
    36 //   ProProcess: Search for MPedestalCam, MExtractedSignalCam and MExtractedSignalBlindPixel
    37 //               Initialize MCalibrationCam
     36//   ProProcess: Initialize MCalibrationCam
    3837//               Initialize pulser light wavelength
    3938//               
    4039//   ReInit:     MCalibrationCam::InitSize(NumPixels) is called which allocates
    4140//               memory in a TClonesArray of type MCalibrationChargePix
    42 //               Initialize number of used FADC slices
    43 //               Optionally exclude pixels from calibration               
    44 //
    45 //   Process:    Every MCalibrationChargePix holds a histogram class,
    46 //               MHCalibrationPixel which itself hold histograms of type:
    47 //               HCharge(npix) (distribution of summed FADC time slice
    48 //               entries)
    49 //               HTime(npix) (distribution of position of maximum)
    50 //               HChargevsN(npix) (distribution of charges vs. event number.
    51 //
    52 //  PostProcess:  All histograms HCharge(npix) are fitted to a Gaussian
    53 //                All histograms HTime(npix) are fitted to a Gaussian
    54 //                The histogram HBlindPixelCharge (blind pixel) is fitted to
    55 //                a single PhE fit
    56 //
    57 //                The histograms of the PIN Diode are fitted to Gaussians
    58 //
    59 //                Fits can be excluded via the commands:
    60 //                MalibrationCam::SkipBlindPixelFits()  (skip all blind
    61 //                pixel fits)
     41//
     42//   Process:    Nothing done by this class, histograms are filled by
     43//               MHCalibrationChargeCam
     44//
     45//   PstProcess:  Fit results from MHCalibrationChargeCam are retrieved
     46//                and used for the calculation of the reduced sigma,
     47//                the F-Factor method, the blind pixel method (photon flux
     48//                                     inside plexiglass) and
     49//                                     the PINDiode method (photon flux
     50//                                     outside plexiglass)
    6251//
    6352//                Hi-Gain vs. Lo-Gain Calibration (very memory-intensive)
     
    6857//   MRawEvtData
    6958//   MPedestalCam
    70 //   MExtractedSignalCam
    71 //   MExtractedSignalBlindPixel
     59//   MCalibrationCam
    7260//
    7361//  Output Containers:
    7462//   MCalibrationCam
    7563//
     64//
     65//  Preliminary description of the calibration in photons (email from 12/02/04)
     66//
     67//  Why calibrating in photons:
     68//  ===========================
     69// 
     70//  At the Barcelona meeting in 2002, we decided to calibrate the camera in
     71//  photons. This for the following reasons:
     72// 
     73//  * The physical quantity arriving at the camera are photons. This is
     74//    the direct physical information from the air shower. The photons
     75//    have a flux and a spectrum.
     76// 
     77//  * The photon fluxes depend mostly on the shower energy (with
     78//    corrections deriving from the observation conditions), while the photon
     79//    spectra depend mostly on the observation conditions: zenith angle,
     80//    quality of the air, also the impact parameter of the shower.
     81// 
     82//  * The photomultiplier, in turn, has different response properties
     83//    (quantum efficiencies) for photons of different colour. (Moreover,
     84//    different pixels have slightly different quantum efficiencies).
     85//    The resulting number of photo-electrons is then amplified (linearly)
     86//    with respect to the photo-electron flux.
     87// 
     88//  * In the ideal case, one would like to disentagle the effects
     89//    of the observation conditions from the primary particle energy (which
     90//    one likes to measure). To do so, one needs:
     91// 
     92//    1) A reliable calibration relating the FADC counts to the photo-electron
     93//       flux -> This is accomplished with the F-Factor method.
     94// 
     95//    2) A reliable calibration of the wavelength-dependent quantum efficiency
     96//       -> This is accomplished with the combination of the three methods,
     97//          together with QE-measurements performed by David in order to do
     98//          the interpolation.
     99// 
     100//    3) A reliable calibration of the observation conditions. This means:
     101//       - Tracing the atmospheric conditions   -> LIDAR
     102//       - Tracing the observation zenith angle -> Drive System
     103//   4) Some knowlegde about the impact parameter:
     104//       - This is the only part which cannot be accomplished well with a
     105//         single telescope. We would thus need to convolute the spectrum
     106//         over the distribution of impact parameters.
     107// 
     108// 
     109//  How an ideal calibration would look like:
     110//  =========================================
     111// 
     112//  We know from the combined PIN-Diode and Blind-Pixel Method the response of
     113//  each pixel to well-measured light fluxes in three representative
     114//  wavelengths (green, blue, UV). We also know the response to these light
     115//  fluxes in photo-electrons. Thus, we can derive:
     116// 
     117//  - conversion factors to photo-electrons
     118//  - conversion factors to photons in three wavelengths.
     119// 
     120//  Together with David's measurements and some MC-simulation, we should be
     121//  able to derive tables for typical Cherenkov-photon spectra - convoluted
     122//  with the impact parameters and depending on the athmospheric conditions
     123//  and the zenith angle (the "outer parameters").
     124// 
     125//  From these tables we can create "calibration tables" containing some
     126//  effective quantum efficiency depending on these outer parameters and which
     127//  are different for each pixel.
     128// 
     129//  In an ideal MCalibrate, one would thus have to convert first the FADC
     130//  slices to Photo-electrons and then, depending on the outer parameters,
     131//  look up the effective quantum efficiency and get the mean number of
     132//  photons which is then used for the further analysis.
     133// 
     134//  How the (first) MAGIC calibration should look like:
     135//  ===================================================
     136// 
     137//  For the moment, we have only one reliable calibration method, although
     138//  with very large systematic errors. This is the F-Factor method. Knowing
     139//  that the light is uniform over the whole camera (which I would not at all
     140//  guarantee in the case of the CT1 pulser), one could in principle already
     141//  perform a relative calibration of the quantum efficiencies in the UV.
     142//  However, the spread in QE at UV is about 10-15% (according to the plot
     143//  that Abelardo sent around last time. The spread in photo-electrons is 15%
     144//  for the inner pixels, but much larger (40%) for the outer ones.
     145// 
     146//  I'm not sure if we can already say that we have measured the relative
     147//  difference in quantum efficiency for the inner pixels and produce a first
     148//  QE-table for each pixel. To so, I would rather check in other wavelengths
     149//  (which we can do in about one-two weeks when the optical transmission of
     150//  the calibration trigger is installed).
     151// 
     152//  Thus, for the moment being, I would join Thomas proposal to calibrate in
     153//  photo-electrons and apply one stupid average quantum efficiency for all
     154//  pixels. This keeping in mind that we will have much preciser information
     155//  in about one to two weeks.
     156// 
     157// 
     158//  What MCalibrate should calculate and what should be stored:
     159//  ===========================================================
     160// 
     161//  It is clear that in the end, MCerPhotEvt will store photons.
     162//  MCalibrationCam stores the conversionfactors to photo-electrons and also
     163//  some tables of how to apply the conversion to photons, given the outer
     164//  parameters. This is not yet implemented and not even discussed.
     165// 
     166//  To start, I would suggest that we define the "average quantum efficiency"
     167//  (maybe something like 25+-3%) and apply them equally to all
     168//  photo-electrons. Later, this average factor can be easily replaced by a
     169//  pixel-dependent factor and later by a (pixel-dependent) table.
     170// 
     171// 
     172// 
    76173//////////////////////////////////////////////////////////////////////////////
    77174#include "MCalibrationChargeCalc.h"
     
    399496      *fLog << err << GetDescriptor() << ": Dear Michele! All pixels have non-valid calibration. "
    400497            << "Did you forget to fill the histograms (filling MHCalibrationChargeCam from MExtractedSignalCam using MFillH) ? " << endl;
    401       return kFALSE;
     498    return kFALSE;
    402499  }
    403500
     
    485582  fCam->SetReadyToSave();
    486583 
    487   return kTRUE;
     584return kTRUE;
    488585}
Note: See TracChangeset for help on using the changeset viewer.