Universita' di GenovaINFN Sezione di Genova  
AIRWATCH / EUSO Genova

EChipTriggPars - source file

// $Id: EChipTriggPars.cc,v 1.4 2005/10/24 14:30:39 pesce Exp $
// Author:    2005/09/28

/*****************************************************************************
 *                                                                           *
 * ESAF: Euso Simulation and Analysis Framework                              *
 *                                                                           *
 *  Id: EChipTriggPars                                                       *
 *  Package: <packagename>                                                   *
 *  Coordinator: <coordinator>                                               *
 *                                                                           *
 *****************************************************************************/

//_____________________________________________________________________________
//
// EChipTriggPars
//
// <extensive class description>
//
//   Config file parameters
//   ======================
//
//   <parameter name>: <parameter description>
//   -Valid options: <available options>
//

#include "EChipTriggPars.hh"
#include "ERunParameters.hh"
#include "ESystemOfUnits.hh"

using namespace TMath;
using namespace sou;

ClassImp(EChipTriggPars)

//_____________________________________________________________________________
 EChipTriggPars::EChipTriggPars() {
    //
    // Constructor
    //
    Clear();
}

//_____________________________________________________________________________
 EChipTriggPars::EChipTriggPars( const EChipTriggPars& other ) {
    //
    // Copy constructor
    //
    
    other.Copy(*this);
}

//_____________________________________________________________________________
 EChipTriggPars::~EChipTriggPars() {
    //
    // Destructor
    //
}

//_____________________________________________________________________________
 void EChipTriggPars::Copy( TObject& other ) const {
    //
    // Copy method
    //

    ETriggPars::Copy(other);

    EChipTriggPars& o = (EChipTriggPars&) other;

    o.fId = fId;
    o.fName = fName;
    o.fThreshold = fThreshold;
    o.fHasRelativeThreshold = fHasRelativeThreshold;
    o.fMinTrackLength = fMinTrackLength;
    o.fMaxTrackLength = fMaxTrackLength;
    o.fMinTriggerTrackLength = fMinTriggerTrackLength;
    o.fMinTriggerTwoLength = fMinTriggerTwoLength;
    o.fMaxTwoLength = fMaxTwoLength;
    o.fOnlyWithSignal = fOnlyWithSignal;
    o.fAcceptHole = fAcceptHole;
    o.fRunParsRef = fRunParsRef;
}
//_____________________________________________________________________________
 void EChipTriggPars::Clear( Option_t *opt ) {
    //
    // Clear method
    //

    fId = (ETriggerTypeIdentifier)0;
    fName = 0;
    fThreshold = -1;
    fHasRelativeThreshold = kFALSE;
    fMinTrackLength = -1;
    fMaxTrackLength = -1;
    fMinTriggerTrackLength = -1;
    fMinTriggerTwoLength = -1;
    fMaxTwoLength = -1;
    fOnlyWithSignal = kFALSE;
    fAcceptHole = kFALSE;
    TRef dummy; fRunParsRef = dummy;
}

//_____________________________________________________________________________
 Int_t EChipTriggPars::GetThreshold( Int_t cellid ) {
    //
    // Get the trigger threshold in a given microcell
    //

    if (!HasRelativeThreshold() ) return fThreshold;
    
    Double_t rate = ((ERunParameters*)fRunParsRef.GetObject())->GetNightGlowRate(cellid);
    rate *= ((ERunParameters*)fRunParsRef.GetObject())->GetPmtData().GetGtuLength()/microsecond;

    return (Int_t)Ceil(rate + fThreshold + Sqrt(rate));
    
}
About Us | EUSO Official Website | Web pages created by Roberto Pesce and Alessandro Thea - Last Update Wed Nov 16 16:57:39 2005 Wed Nov 16 16:29:22 2005