Universita' di GenovaINFN Sezione di Genova  
AIRWATCH / EUSO Genova

EShowerFiller - source file

// ESAF : Euso Simulation and Analysis Framework
// $Id: EShowerFiller.cc,v 1.3 2004/06/22 18:12:05 naumov Exp $
// A.Thea, created Jun, 22 2004

#include "EShowerFiller.hh"
#include "EShower.hh"
#include "EShowerStep.hh"

#include "PhysicsData.hh"
#include "ShowerTrack.hh"
#include <stdexcept>


ClassImp(EShowerFiller)

//_____________________________________________________________________________
 EShowerFiller::EShowerFiller( const PhysicsData *track ) : EFiller("EShower") {
    // ctor

    if ( track->Type() != "shower" )
        throw runtime_error("EShowerFiller: PhysicsData contains "
                     +track->Type()+" instead of a showertrack");
    fTrack = (ShowerTrack*)track;
}

//_____________________________________________________________________________
 EShowerFiller::~EShowerFiller() {
    // dtor
}

//_____________________________________________________________________________
 void EShowerFiller::Fill( EFillable* ev ) {
    // fill the root file
    
    EShower *shower = (EShower*)ev;

    const ShowerTrack& track = *fTrack;
    TClonesArray &steps = *(shower->GetSteps());
    for(UInt_t i(0); i<track.Size(); i++){
        EShowerStep *s = new (steps[shower->fNumSteps++]) EShowerStep();
        s->SetXi( track[i].GetXi() );
        s->SetXf( track[i].GetXf() );
        s->SetPosi( track[i].GetXYZi() );
        s->SetPosf( track[i].GetXYZf() );
        s->SetTimei( track[i].GetTimei() );
        s->SetTimef( track[i].GetTimef() );
        s->SetAgei( track[i].GetAgei() );
        s->SetAgef( track[i].GetAgef() );
        s->SetNumElectrons( track[i].GetNelectrons() );
        s->SetNumCharged( track[i].GetNcharged() );
        s->SetNumCherenkov( track[i].GetNcherenkov() );
    }
    shower->SetEnergy(  fTrack->GetEnergy() );
    shower->SetTheta( fTrack->GetTheta() );
    shower->SetPhi( fTrack->GetPhi() );
    shower->SetX1( fTrack->GetX1() );
    shower->SetElectrEthres( fTrack->GetEthrEl() );
    shower->SetDir( fTrack->GetDirVers() );
    shower->SetInitPos( fTrack->GetInitPos() );
    shower->SetHitGround( fTrack->GetHitGround() );
}
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