Ignore:
Timestamp:
02/15/09 15:52:47 (16 years ago)
Author:
tbretz
Message:
*** empty log message ***
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/msim/MPhotonEvent.cc

    r9301 r9342  
    113113#include <TMarker.h>
    114114
     115#include <MMath.h>
     116
     117#include "MArrayF.h"
     118
    115119#include "MLog.h"
    116120#include "MLogManip.h"
     
    213217}
    214218
     219// --------------------------------------------------------------------------
     220//
     221// Return the number of "external" photons, i.e. which are not NightSky
     222//
    215223Int_t MPhotonEvent::GetNumExternal() const
    216224{
     
    222230
    223231    return n;
     232}
     233
     234// --------------------------------------------------------------------------
     235//
     236// Return time of first photon, 0 if none in array.
     237// Note: If you want this to be the earliest make sure that the array
     238// is properly sorted.
     239//
     240Float_t MPhotonEvent::GetTimeFirst() const
     241{
     242    const MPhotonData *dat=GetFirst();
     243    return dat ? dat->GetTime() : 0;
     244}
     245
     246// --------------------------------------------------------------------------
     247//
     248// Return time of first photon, 0 if none in array.
     249// Note: If you want this to be the latest make sure that the array
     250// is properly sorted.
     251//
     252Float_t MPhotonEvent::GetTimeLast() const
     253{
     254    const MPhotonData *dat=GetLast();
     255    return dat ? dat->GetTime() : 0;
     256}
     257
     258// --------------------------------------------------------------------------
     259//
     260// Return the median devian from the median of all arrival times.
     261// The median deviation is calculated using MMath::MedianDev.
     262// It is the half width in which one sigma (~68%) of all times are
     263// contained around the median.
     264//
     265Double_t MPhotonEvent::GetTimeMedianDev() const
     266{
     267    const UInt_t n = GetNumPhotons();
     268
     269    MArrayF arr(n);
     270    for (UInt_t i=0; i<n; i++)
     271        arr[i] = operator[](i).GetTime();
     272
     273    return MMath::MedianDev(n, arr.GetArray()/*, Double_t &med*/);
    224274}
    225275
Note: See TracChangeset for help on using the changeset viewer.