Skip to content
Snippets Groups Projects
Commit 601ca073 authored by clantz's avatar clantz
Browse files

Finished adding SD. Working on recording data

parent 4ab7fdd8
No related branches found
No related tags found
No related merge requests found
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
//
// @Author Chad Lantz
#ifndef AirHit_h
#define AirHit_h 1
#include "G4VHit.hh"
#include "G4THitsCollection.hh"
#include "G4Allocator.hh"
#include "G4ThreeVector.hh"
#include "G4ParticleDefinition.hh"
class AirHit : public G4VHit{
public:
AirHit();
~AirHit();
AirHit(const AirHit&);
const AirHit& operator=(const AirHit&);
G4int operator==(const AirHit&) const;
inline void* operator new(size_t);
inline void operator delete(void*);
void Draw();
void Print();
public:
void setTrackID (G4int track) { trackID = track; }
void setPos (G4ThreeVector xyz) { pos = xyz; }
void setMomentum (G4ThreeVector mom) { momentum = mom; }
void setEnergy (G4double e) { energy = e; }
G4int getTrackID ( ) { return trackID; }
G4ThreeVector getPos ( ) { return pos; }
G4double getEnergy ( ) { return energy; }
G4ThreeVector getMomentum ( ) { return momentum; }
private:
G4int trackID;
G4ThreeVector pos;
G4ThreeVector momentum;
G4double energy;
G4double charge;
};
///////////////////////// Hit collection definition /////////////////////////
typedef G4THitsCollection<AirHit> HitsCollection;
extern G4Allocator<AirHit> HitAllocator;
/*
*
*/
inline void* AirHit::operator new(size_t)
{
void *aHit;
aHit = (void *) HitAllocator.MallocSingle();
return aHit;
}
/*
*
*/
inline void AirHit::operator delete(void *aHit)
{
HitAllocator.FreeSingle((AirHit*) aHit);
}
#endif
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// @Author Chad Lantz
#include "AirHit.hh"
#include "G4UnitsTable.hh"
#include "G4VVisManager.hh"
#include "G4Circle.hh"
#include "G4Colour.hh"
#include "G4VisAttributes.hh"
G4Allocator<AirHit> HitAllocator;
/*
*
*/
AirHit::AirHit() {}
/*
*
*/
AirHit::~AirHit() {}
/*
*
*/
AirHit::AirHit(const AirHit& right)
: G4VHit()
{
trackID = right.trackID;
pos = right.pos;
energy = right.energy;
momentum = right.momentum;
}
/*
*
*/
const AirHit& AirHit::operator=(const AirHit& right)
{
trackID = right.trackID;
pos = right.pos;
energy = right.energy;
momentum = right.momentum;
return *this;
}
/*
*
*/
G4int AirHit::operator==(const AirHit& right) const
{
return (this==&right) ? 1 : 0;
}
/*
*
*/
void AirHit::Draw()
{
G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance();
if(pVVisManager)
{
G4Circle circle(pos);
circle.SetScreenSize(2.);
circle.SetFillStyle(G4Circle::filled);
G4Colour colour(1.,0.,0.);
G4VisAttributes attribs(colour);
circle.SetVisAttributes(attribs);
pVVisManager->Draw(circle);
}
}
/*
*
*/
void AirHit::Print()
{
G4cout << " trackID: " << trackID << " Hit from position: " << G4BestUnit(pos,"Length") << G4endl;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment