Universita' di GenovaINFN Sezione di Genova  
AIRWATCH / EUSO Genova

ELblTrackTrigger - source file

// $Id: ELblTrackTrigger.cc,v 1.1 2005/10/10 16:21:14 ejudd Exp $
// Author: E.Judd   2005/07/21

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

//_____________________________________________________________________________
//
// ELblTrackTrigger
//
// This class contains all the track information from the LBL trigger algorithm
//
//   Config file parameters
//   ======================
//
//   <parameter name>: <parameter description>
//   -Valid options: <available options>
//

#include "ELblTrackTrigger.hh"
#include "ELblTrackSegment.hh"

ClassImp(ELblTrackTrigger)

TClonesArray* ELblTrackTrigger::fgLblTracks = NULL;
ELblTrackTrigger* ELblTrackTrigger::fgCurrent = NULL;

//_____________________________________________________________________________
 ELblTrackTrigger::ELblTrackTrigger() : TObject() {
    //
    // Constructor
    //
    if ( fgLblTracks == 0 )
        fgLblTracks = new TClonesArray("ELblTrackSegment",20000);
    fLblTracks = fgLblTracks;
    
    fCopy = kFALSE;
    fNumLblTracks = 0;
}

//_____________________________________________________________________________
 ELblTrackTrigger::~ELblTrackTrigger() {
    //
    // Destructor
    //
    Clear();

    if ( IsCopy() ) ClearCopy();
    if ( GetCurrent() == this ) SetCurrent( 0 ); 
}

//_____________________________________________________________________________
 ELblTrackTrigger::ELblTrackTrigger(const ELblTrackTrigger& other) : TObject() {
    //
    // Copy ctor
    //
    other.Copy( *this );
}

//_____________________________________________________________________________
 void ELblTrackTrigger::Copy( TObject& other) const {
    //
    // Copy method
    //
    ELblTrackTrigger& trg = ( ELblTrackTrigger&) other;

    trg.fNumLblTracks = fNumLblTracks;
    trg.fLblTracks = (TClonesArray*)fLblTracks->Clone();
}

//_____________________________________________________________________________
 void ELblTrackTrigger::Clear( Option_t* opt ) {
    //
    // Clear this obj
    //
    if ( fLblTracks ) fLblTracks->Delete();

    fNumLblTracks = 0;
}
   
//______________________________________________________________________________
 void ELblTrackTrigger::ClearCopy() {
  // delete TClonesArray in case of copied events
  delete fLblTracks; 
  fLblTracks = 0;
}


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