Import Geant4 5.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-08 16:57:27 +02:00
parent 330b82b769
commit 37fff30d2e
5733 changed files with 263867 additions and 74574 deletions
@@ -0,0 +1,123 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * 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. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: FCALAnalysisManager.hh
// GEANT4 tag $Name:
//
// Author: Alex Howard (a.s.howard@ic.ac.uk)
//
// History:
// -----------
// 16 Jan 2002 Alex Howard Created
//
// -------------------------------------------------------------------
#ifdef G4ANALYSIS_USE
#ifndef FCALAnalysisManager_h
#define FCALAnalysisManager_h 1
#include "globals.hh"
// Histogramming from AIDA
#include "AIDA/IAnalysisFactory.h"
#include "AIDA/ITreeFactory.h"
#include "AIDA/ITree.h"
#include "AIDA/IHistogramFactory.h"
#include "AIDA/IHistogram1D.h"
#include "AIDA/IHistogram2D.h"
#include "AIDA/IHistogram3D.h"
#include "AIDA/IPlotterFactory.h"
#include "AIDA/IPlotter.h"
#include "AIDA/ITupleFactory.h"
#include "AIDA/ITuple.h"
#include "AIDA/IManagedObject.h"
class IAnalysisFactory;
class ITree;
class IHistogramFactory;
class ITupleFactory;
class ITuple;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class FCALAnalysisManager
{
public:
virtual ~FCALAnalysisManager();
// void book();
void book();
void finish();
//fill histograms with OutOfWorld
void NumOutOfWorld(G4double, G4int, G4int);
//fill histograms with Number of Secondaries
void Secondaries(G4double, G4int, G4int);
//fill histograms with Energy Deposit
void Edep(G4double, G4double);
//method to call to create an instance of this class
static FCALAnalysisManager* getInstance();
private:
//private constructor in order to create a singleton
FCALAnalysisManager();
static FCALAnalysisManager* instance;
// Quantities for the ntuple
G4double OutOfWorld; G4int i; G4int j;
G4double Secondary;
G4double EmEdep; G4double HadEdep;
AIDA::IAnalysisFactory *af;
AIDA::ITree *tree;
AIDA::IHistogramFactory *hf;
AIDA::ITupleFactory *tpf;
AIDA::IPlotterFactory *pf;
AIDA::IPlotter *plotter;
};
#endif
#endif
@@ -0,0 +1,100 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * 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. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: FCALCalorHit.hh,v 1.3 2002/12/12 19:16:31 gunter Exp $
// GEANT4 tag $Name: geant4-05-00 $
//
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
#ifndef FCALCalorHit_h
#define FCALCalorHit_h 1
#include "G4VHit.hh"
#include "G4THitsCollection.hh"
#include "G4Allocator.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class FCALCalorHit : public G4VHit
{
public:
FCALCalorHit();
~FCALCalorHit();
FCALCalorHit(const FCALCalorHit&);
const FCALCalorHit& operator=(const FCALCalorHit&);
int operator==(const FCALCalorHit&) const;
inline void* operator new(size_t);
inline void operator delete(void*);
void Draw();
void Print();
public:
void AddAbs(G4double de, G4double dl) {EdepAbs += de; TrackLengthAbs += dl;};
void AddGap(G4double de, G4double dl) {EdepGap += de; TrackLengthGap += dl;};
G4double GetEdepAbs() { return EdepAbs; };
G4double GetTrakAbs() { return TrackLengthAbs; };
G4double GetEdepGap() { return EdepGap; };
G4double GetTrakGap() { return TrackLengthGap; };
private:
G4double EdepAbs, TrackLengthAbs;
G4double EdepGap, TrackLengthGap;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
typedef G4THitsCollection<FCALCalorHit> FCALCalorHitsCollection;
extern G4Allocator<FCALCalorHit> FCALCalorHitAllocator;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
inline void* FCALCalorHit::operator new(size_t)
{
void* aHit;
aHit = (void*) FCALCalorHitAllocator.MallocSingle();
return aHit;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
inline void FCALCalorHit::operator delete(void* aHit)
{
FCALCalorHitAllocator.FreeSingle((FCALCalorHit*) aHit);
}
#endif
@@ -0,0 +1,89 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * 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. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
// Author: Mathieu Fontaine Rachid Mazini
// fontaine@lps.umontreal.ca Rachid.Mazini@cern.ch
// Language: C++
// Tested on: g++
// Prerequisites: None
// Purpose: Header file for FCALCryostatVolume.cc, which defines
// the volumes in the cryostat.
// Developped: 10-March-2000 M.F.
//
//----------------------------------------------------------------------------
#ifndef FCALCryostatVolumes_h
#define FCALCryostatVolumes_h 1
#include "globals.hh"
#include "G4LogicalVolume.hh"
#include "FCALEMModule.hh"
#include "FCALHadModule.hh"
class FCALCryostatVolumes
{
public:
FCALCryostatVolumes();
~FCALCryostatVolumes();
public:
G4LogicalVolume * Construct();
private:
G4double CryostatRMin, CryostatRMax, CryostatLength, StartingPhi, DPhi;
G4double InsulationRMin, InsulationRMax, InsulationLength;
G4double InsulationPosX, InsulationPosY, InsulationPosZ;
G4double LArgRMin, LArgRMax, LArgLength;
G4double LArgPosX, LArgPosY, LArgPosZ;
G4double FrontExcluderSizeX, FrontExcluderSizeY, FrontExcluderSizeZ;
G4double FrontExcluderPosX, FrontExcluderPosY, FrontExcluderPosZ;
G4double BackExcluderSize1X, BackExcluderSize1Y,
BackExcluderSize2X, BackExcluderSize2Y,
BackExcluderSizeZ;
G4double BackExcluderPosX, BackExcluderPosY, BackExcluderPosZ,
BackExcluderRotX;
G4double FCALEnvelopeRMin, FCALEnvelopeRMax, FCALEnvelopeLength,
FCALEnvelopeStartPhi, FCALEnvelopeDPhi;
G4double FCALEnvelopePosX, FCALEnvelopePosY, FCALEnvelopePosZ,
FCALEnvelopeRotX, FCALEnvelopeRotY;
G4double FCALEmModulePosX, FCALEmModulePosY, FCALEmModulePosZ;
G4double ModuleRotZ;
G4double FCALHadModulePosX, FCALHadModulePosY, FCALHadModulePosZ;
FCALEMModule * EmModule;
FCALHadModule * HadModule;
};
#endif /* FCALcryostatVolumes.hh */
@@ -0,0 +1,85 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * 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. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
// Author: Mathieu Fontaine Rachid Mazini
// fontaine@lps.umontreal.ca Rachid.Mazini@cern.ch
// Language: C++
// Tested on: g++
// Prerequisites: None
// Purpose: Header file for FCALEMModule.cc, which defines
// the geometry of the FCAL EMModule 0.
// Developped: 10-March-2000 M.F.
//
//----------------------------------------------------------------------------
#ifndef FCALEMModule_h
#define FCALEMModule_h 1
#include "globals.hh"
#include "G4LogicalVolume.hh"
#include "FCALEMModuleSD.hh"
class FCALEMModule
{
public:
FCALEMModule();
~FCALEMModule();
public:
G4LogicalVolume * Construct();
void InitializeGeometry();
G4int GetF1TileID(G4int);
G4double GetF1LArGapPosX(G4int);
private:
G4int NF1LarGap;
G4int* F1LArGapID;
G4int* F1LArIX;
G4int* F1LArJY;
G4int* F1LArITile;
G4double* F1LArGapPosX;
G4double* F1LArGapPosY;
private:
G4double EmModuleRMin, EmModuleRMax, EmModuleLength, CableTroffLength,
EmModuleStartPhi, EmModuleDPhi;
G4double FCALEmSmart;
G4int NCableTroff;
G4double F1CableTroffRMin, F1CableTroffRMax, F1CableTroffLength, F1CableTroffStartPhi,
F1CableTroffDPhi;
G4double F1CableTroffRotZ;
G4double F1LArGapRmin, F1LArGapRmax, F1LArGapLength, F1LArGapStartPhi, F1LArGapDPhi;
FCALEMModuleSD* FcalEmModuleSD;
// G4double GapPosX, GapPosY;
//G4int GapID, IX, IY, ITile;
};
#endif /* FCALEMModule.hh */
@@ -0,0 +1,79 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * 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. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: FCALEMModuleSD.hh,v 1.4 2002/12/12 19:16:31 gunter Exp $
// GEANT4 tag $Name: geant4-05-00 $
//
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
#ifndef FCALEMModuleSD_h
#define FCALEMModuleSD_h 1
#include "G4VSensitiveDetector.hh"
#include "globals.hh"
#include "G4Event.hh"
class FCALTestbeamSetup;
class FCALEMModule;
class G4HCofThisEvent;
class G4Step;
#include "FCALCalorHit.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class FCALEMModuleSD : public G4VSensitiveDetector
{
public:
// FCALEMModuleSD(G4String, FCALTestbeamSetup* );
FCALEMModuleSD(G4String);
~FCALEMModuleSD();
void Initialize(G4HCofThisEvent*);
G4bool ProcessHits(G4Step*,G4TouchableHistory*);
void EndOfEvent(G4HCofThisEvent*);
void clear();
void DrawAll();
void PrintAll();
private:
// FCALCalorHitsCollection* CalCollection;
// FCALTestbeamSetup* Detector;
// G4int* HitID;
FCALEMModule* EmModule;
G4int Init_state;
public:
G4double EvisF1Tile[1131];
};
#endif
@@ -0,0 +1,88 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * 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. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
// Author: Mathieu Fontaine Rachid Mazini
// fontaine@lps.umontreal.ca Rachid.Mazini@cern.ch
// Language: C++
// Tested on: g++
// Prerequisites: None
// Purpose: Header file for FCALHadModule.cc, which defines
// the geometry of the FCAL HadModule 0.
// Developped: 10-March-2000 M.F.
//
//----------------------------------------------------------------------------
#ifndef FCALHadModule_h
#define FCALHadModule_h 1
#include "globals.hh"
#include "G4LogicalVolume.hh"
#include "G4SDManager.hh"
#include "FCALHadModuleSD.hh"
class FCALHadModule
{
public:
FCALHadModule();
~FCALHadModule();
public:
G4LogicalVolume * Construct();
void InitializeGeometry();
G4int GetF2TileID(G4int);
private:
G4int NF2LarGap;
G4int* F2LArGapID;
G4int* F2LArIX;
G4int* F2LArJY;
G4int* F2LArITile;
G4double* F2LArGapPosX;
G4double* F2LArGapPosY;
private:
G4double HadModuleRMin, HadModuleRMax, HadModuleLength;
G4double HadModuleStartPhi, HadModuleDPhi;
G4double FCAL2HadSmart;
G4double WAbsorberRMin, WAbsorberRMax, WAbsorberLength;
G4double WAbsorberStartPhi, WAbsorberDPhi;
G4double CuPlateLength, CuPlateAPosZ, CuPlateBPosZ;
G4int NCableTroff;
G4double F2TroffRmin, F2TroffRmax, F2TroffMainLength;
G4double F2TroffABLength, F2TroffStartPhi, F2TroffDphi;
G4double F2TroffRotZ, F2TroffABPosZ;
G4double F2LArGapRmin, F2LArGapRmax, F2LArGapLength;
G4double F2LArGapStartPhi, F2LArGapDphi;
G4double F2RodRmin, F2RodRmax, F2RodLength, F2RodStartPhi, F2RodDphi;
FCALHadModuleSD* FcalHadModuleSD;
};
#endif /* FCALHadModule.hh */
@@ -0,0 +1,77 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * 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. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: FCALHadModuleSD.hh,v 1.4 2002/12/12 19:16:31 gunter Exp $
// GEANT4 tag $Name: geant4-05-00 $
//
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
#ifndef FCALHadModuleSD_h
#define FCALHadModuleSD_h 1
#include "G4VSensitiveDetector.hh"
#include "globals.hh"
class FCALTestbeamSetup;
class FCALHadModule;
class G4HCofThisEvent;
class G4Step;
#include "FCALCalorHit.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class FCALHadModuleSD : public G4VSensitiveDetector
{
public:
// FCALHadModuleSD(G4String, FCALTestbeamSetup* );
FCALHadModuleSD(G4String);
~FCALHadModuleSD();
void Initialize(G4HCofThisEvent*);
G4bool ProcessHits(G4Step*,G4TouchableHistory*);
void EndOfEvent(G4HCofThisEvent*);
void clear();
void DrawAll();
void PrintAll();
private:
// FCALCalorHitsCollection* CalCollection;
// FCALTestbeamSetup* Detector;
// G4int* HitID;
FCALHadModule* HadModule;
G4int InitF2;
public:
G4double EvisF2Tile[2330];
};
#endif
@@ -0,0 +1,77 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * 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. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
// Rachid Mazini Rachid.Mazini@cern.ch
//
// Language: C++
// Tested on: g++
// Prerequisites: None
// Purpose: Header file for the Material Expert for the Atlas FCAL
// See FCALMaterialConsultant for more details.
// Developped on: 10-March-2000 M.F. R.M.
// History:
//
//----------------------------------------------------------------------------
#ifndef FCALMaterialConsultant_h
#define FCALMaterialConsultant_h 1
#include "G4Material.hh"
#include "G4Element.hh"
#include "globals.hh"
//#include "FCALParameters.hh"
class FCALMaterialConsultant
{
public:
FCALMaterialConsultant();
public:
~FCALMaterialConsultant() {theFCALMaterialConsultant = NULL;};
static FCALMaterialConsultant * construct();
G4Material * Material(G4String);
public:
static FCALMaterialConsultant * theFCALMaterialConsultant;
private:
G4Element *elH, *elD, *elHe, *elLi, *elBe, *elC, *elN, *elNi;
G4Element *elNe, *elAl, *elFe, *elCu, *elW, *elPb, *elU, *elO;
G4Element *elCa, *elNa, *elSi;
G4Material *Aluminium, *Iron, *Copper, *Tungsten, *Lead;
G4Material *Air, *RhoaCell, *Vacuum, *CO2, *ArgonGas, *ShieldingConcrete;
G4Material *Polystyrene, *StainlessSteel, *Nickel, *LiquidArgon;
G4Material *Kapton, *FCAL1CuArKap, *FCAL1CuAr, *FCAL2CuArKap;
G4Material *FCAL2WFeNi, *FCAL2WFeNiCuAr, *MWPCArCO2;
};
#endif /* FCALMaterialConsultant.hh */
@@ -0,0 +1,88 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * 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. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: FCALPhysicsList.hh,v 1.5 2002/12/12 19:16:32 gunter Exp $
// GEANT4 tag $Name: geant4-05-00 $
//
//
// $Id: FCALPhysicsList.hh,v 1.5 2002/12/12 19:16:32 gunter Exp $
// GEANT4 tag $Name: geant4-05-00 $
//
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
#ifndef FCALPhysicsList_h
#define FCALPhysicsList_h 1
#include "G4VUserPhysicsList.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class FCALPhysicsList: public G4VUserPhysicsList
{
public:
FCALPhysicsList();
~FCALPhysicsList();
protected:
// Construct particle and physics
void ConstructParticle();
void ConstructProcess();
void SetCuts();
public:
// Set/Get cut values
void SetCutForGamma(G4double);
void SetCutForElectron(G4double);
void SetCutForProton(G4double);
G4double GetCutForGamma() const;
G4double GetCutForElectron() const;
G4double GetCutForProton() const;
protected:
// these methods Construct particles
void ConstructBosons();
void ConstructLeptons();
void ConstructMesons();
void ConstructBaryons();
protected:
// these methods Construct physics processes and register them
void ConstructGeneral();
void ConstructEM();
private:
G4double cutForGamma;
G4double cutForElectron;
G4double cutForProton;
G4double currentDefaultCut;
};
#endif
@@ -0,0 +1,76 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * 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. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: FCALPrimaryGeneratorAction.hh,v 1.3 2002/12/12 19:16:32 gunter Exp $
// GEANT4 tag $Name: geant4-05-00 $
//
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
#ifndef FCALPrimaryGeneratorAction_h
#define FCALPrimaryGeneratorAction_h 1
#include "G4VUserPrimaryGeneratorAction.hh"
#include "globals.hh"
class G4ParticleGun;
class G4Event;
class FCALTestbeamSetup;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class FCALPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction
{
public:
FCALPrimaryGeneratorAction();
~FCALPrimaryGeneratorAction();
public:
void GeneratePrimaries(G4Event*);
// void SetRndmFlag(G4String val) { rndmFlag = val;}
private:
G4ParticleGun* particleGun; //pointer a to G4 service class
private:
G4int Ievent;
G4double* X;
G4double* Y;
G4double* Z;
G4double* Cos_X;
G4double* Cos_Y;
G4double* Cos_Z;
G4int Nevent;
};
#endif
@@ -0,0 +1,57 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * 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. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: FCALRunAction.hh,v 1.3 2002/12/12 19:16:32 gunter Exp $
// GEANT4 tag $Name: geant4-05-00 $
//
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
#ifndef FCALRunAction_h
#define FCALRunAction_h 1
#include "G4UserRunAction.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class G4Run;
class FCALRunAction : public G4UserRunAction
{
public:
FCALRunAction();
~FCALRunAction();
public:
void BeginOfRunAction(const G4Run*);
void EndOfRunAction(const G4Run*);
};
#endif
@@ -0,0 +1,71 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * 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. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: FCALSteppingAction.hh,v 1.3 2002/12/12 19:16:32 gunter Exp $
// GEANT4 tag $Name: geant4-05-00 $
//
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
#ifndef FCALSteppingAction_h
#define FCALSteppingAction_h 1
#include "G4UserSteppingAction.hh"
#include "G4ThreeVector.hh"
#include "globals.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class FCALSteppingAction : public G4UserSteppingAction
{
public:
FCALSteppingAction();
virtual ~FCALSteppingAction();
virtual void UserSteppingAction(const G4Step*);
private:
G4int EventNo;
G4int IDnow, IDout, IDold;
G4int NTracks, NSecondaries;
G4double OutOfWorldTracksData[6000][11], Secondaries[6000][11];
G4double EdepFCALEm, EdepFCALHad;
G4ThreeVector PrimaryVertex, PrimaryDirection;
G4ThreeVector SecondaryVertex, SecondaryDirection;
G4ThreeVector Distance, VectorProduct, VectorProductNorm;
G4double VectorProductMagnitude, DistOfClosestApproach;
public:
void initialize(G4int);
G4double GetOutOfWorldTracks(G4int, G4int);
G4double GetSecondaries(G4int, G4int);
G4double GetEdepFCAL(G4String);
};
#endif
@@ -0,0 +1,60 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * 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. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: FCALSteppingVerbose.hh,v 1.3 2002/12/12 19:16:32 gunter Exp $
// GEANT4 tag $Name: geant4-05-00 $
//
//
//---------------------------------------------------------------
//
// FCALSteppingVerbose.hh
//
// Description:
// This class manages the verbose outputs in G4SteppingManager.
// It inherits from G4SteppingVerbose
//
//---------------------------------------------------------------
class FCALSteppingVerbose;
#ifndef FCALSteppingVerbose_h
#define FCALSteppingVerbose_h 1
#include "G4SteppingVerbose.hh"
class FCALSteppingVerbose : public G4SteppingVerbose {
public:
// Constructor/Destructor
FCALSteppingVerbose();
~FCALSteppingVerbose();
//
void StepInfo();
void TrackingStarted();
//
};
#endif
@@ -0,0 +1,74 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * 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. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: FCALTBEventAction.hh,v 1.5 2002/12/12 19:16:32 gunter Exp $
// GEANT4 tag $Name: geant4-05-00 $
//
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
#ifndef FCALTBEventAction_h
#define FCALTBEventAction_h 1
#include "G4UserEventAction.hh"
#include "FCALSteppingAction.hh"
#include "globals.hh"
#include "G4ThreeVector.hh"
class FCALAnalysisManager;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class FCALTBEventAction : public G4UserEventAction
{
public:
FCALTBEventAction(FCALSteppingAction* );
virtual ~FCALTBEventAction();
public:
virtual void BeginOfEventAction(const G4Event*);
virtual void EndOfEventAction(const G4Event*);
void SetDrawFlag (G4String val) {drawFlag = val;};
void SetPrintModulo(G4int val) {printModulo = val;};
private:
G4int calorimeterCollID;
G4String drawFlag;
G4int printModulo;
FCALSteppingAction* StepAction;
private:
G4int NTracksOutOfWorld, NSecondaries, Init1, Init2, Init3;
// G4double OutOfWorldTracks[1000][11], Secondaries[1000][11];
};
#endif
@@ -0,0 +1,56 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * 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. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef FCALTBEventActionMessenger_h
#define FCALTBEventActionMessenger_h 1
#include "globals.hh"
#include "G4UImessenger.hh"
class FCALTBEventAction;
class G4UIcmdWithAString;
class G4UIcmdWithAnInteger;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class FCALTBEventActionMessenger: public G4UImessenger
{
public:
FCALTBEventActionMessenger(FCALTBEventAction*);
~FCALTBEventActionMessenger();
void SetNewValue(G4UIcommand*, G4String);
private:
FCALTBEventAction* fcaltbeventAction;
G4UIcmdWithAString* DrawCmd;
G4UIcmdWithAnInteger* PrintCmd;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -0,0 +1,129 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * 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. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
// Author: Mathieu Fontaine Rachid Mazini
// fontaine@lps.umontreal.ca Rachid.Mazini@cern.ch
// Language: C++
// Tested on: g++
// Prerequisites: None
// Purpose: Header file for FCALFrontVolume.cc, which defines
// the volumes in the testbeam front.
// Developped: 10-March-2000 M.F.
//
//----------------------------------------------------------------------------
#ifndef FCALTestbeamSetup_h
#define FCALTestbeamSetup_h 1
#include "G4VUserDetectorConstruction.hh"
#include "globals.hh"
#include "FCALTestbeamSetupSD.hh"
//class FCALFrontVolumes;
//class FCALTailVolumes;
//class FCALCryostatVolumes;
class G4LogicalVolume;
class G4VPhysicalVolume;
class FCALTestbeamSetup : public G4VUserDetectorConstruction
{
public:
FCALTestbeamSetup();
~FCALTestbeamSetup();
public:
G4VPhysicalVolume* Construct();
private:
G4double MotherSizeX, MotherSizeY, MotherSizeZ;
G4double MWPCSizeX, MWPCSizeY, MWPCSizeZ;
G4double MWPCPosX, MWPCPosY, MWPCPosZ[5];
G4double ScintS1andS3SizeX, ScintS1andS3SizeY, ScintS1andS3SizeZ;
G4double ScintS2SizeX, ScintS2SizeY, ScintS2SizeZ;
G4double ScintS1_S3PosX, ScintS1_S3PosY, ScintS1PosZ,ScintS2PosZ, ScintS3PosZ;
G4double HoleCntrSizeX, HoleCntrSizeY, HoleCntrScintSizeZ, HoleCntrAbsrbSizeZ;
G4double HoleCntrScintPosX, HoleCntrScintPosY, HoleCntrScintPosZ;
G4double HoleCntrPbPosX, HoleCntrPbPosY, HoleCntrPbPosZ;
G4double HoleCntrAlPosX, HoleCntrAlPosY, HoleCntrAlPosZ;
G4double ScintHoleRmin, ScintHoleRmax, ScintHoleLength;
G4double AbsrbHoleRmin, AbsrbHoleRmax, AbsrbHoleLength;
G4double HoleStartPhi, HoleDPhi;
G4double HolePosX, HolePosY, HolePosZ;
G4double LeadWallSizeX, LeadWallSizeY, LeadWallSizeZ;
G4double LeadWallSlitSizeX, LeadWallSlitSizeY, LeadWallSlitSizeZ;
G4double LeadWallPosX,LeadWallPosY, LeadWallPosZ;
G4double IronWallSizeX, IronWallSizeY, IronWallSizeZ;
G4double IronWallSlitSizeX, IronWallSlitSizeY, IronWallSlitSizeZ;
G4double IronWallPosX,IronWallPosY, IronWallPosZ;
G4int NBigScint, NSmallScint, NBigIron, NSmallIron;
G4double BigScintSizeX, BigScintSizeY, SmallScintSizeX, SmallScintSizeY, ScintSizeZ;
G4double ScintPosX, ScintPosY, ScintPosZ[7];
G4double BigIronSizeX, BigIronSizeY, SmallIronSizeX, SmallIronSizeY, IronSizeZ;
G4double IronPosX, IronPosY, IronPosZ[6];
G4double ConcWallSizeX, ConcWallSizeY, ConcWallSizeZ;
G4double ConcWallPosX, ConcWallPosY, ConcWallAPosZ, ConcWallBPosZ;
G4double ConcWallInsSizeX, ConcWallInsSizeY, ConcWallInsSizeZ;
G4double ConcWallInsPosX, ConcWallInsPosY, ConcWallInsPosZ;
G4double MuCntrSIzeX, MuCntrSIzeY, MuCntrSIzeZ;
G4double MuCntrPosX, MuCntrPosY, MuCntrPosZ;
G4double CryostatPosX, CryostatPosY, CryostatPosZ;
FCALTestbeamSetupSD* FCALTBSetupSD; // Senstive detector
/*
G4double TailPosX;
G4double TailPosY;
G4double TailPosZ;
G4double FrontPosX;
G4double FrontPosY;
G4double FrontPosZ;
*/
/*
G4double EMModulePosX;
G4double EMModulePosY;
G4double EMModulePosZ;
G4double HadModulePosX;
G4double HadModulePosY;
G4double HadModulePosZ;
*/
};
#endif /* FCALTestbeamSetup.hh */
@@ -0,0 +1,82 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * 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. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: FCALTestbeamSetupSD.hh,v 1.3 2002/12/12 19:16:32 gunter Exp $
// GEANT4 tag $Name: geant4-05-00 $
//
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
#ifndef FCALTestbeamSetupSD_h
#define FCALTestbeamSetupSD_h 1
#include "G4VSensitiveDetector.hh"
#include "globals.hh"
class FCALTestbeamSetup;
class G4HCofThisEvent;
class G4Step;
#include "FCALCalorHit.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class FCALTestbeamSetupSD : public G4VSensitiveDetector
{
public:
// FCALTestbeamSetupSD(G4String, FCALTestbeamSetup* );
FCALTestbeamSetupSD(G4String);
~FCALTestbeamSetupSD();
void Initialize(G4HCofThisEvent*);
G4bool ProcessHits(G4Step*,G4TouchableHistory*);
void EndOfEvent(G4HCofThisEvent*);
void clear();
void DrawAll();
void PrintAll();
private:
// FCALCalorHitsCollection* CalCollection;
// FCALTestbeamSetup* Detector;
// G4int* HitID;
G4int InitBeam;
public:
G4double EBeamS1, EBeamS2, EBeamS3;
G4double EHoleScint, EBeamHole;
G4double EBeamDead;
G4int TailCatcherID;
G4double ETailVis[8], ETailDep[7];
};
#endif
@@ -0,0 +1,72 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * 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. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: FCALVisManager.hh,v 1.3 2002/12/12 19:16:32 gunter Exp $
// GEANT4 tag $Name: geant4-05-00 $
//
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
// Example Visualization Manager implementing virtual function
// RegisterGraphicsSystems. Exploits C-pre-processor variables
// G4VIS_USE_DAWN, etc., which are set by the GNUmakefiles if
// environment variables of the same name are set.
// So all you have to do is set environment variables and compile and
// instantiate this in your main().
// Alternatively, you can implement an empty function here and just
// register the systems you want in your main(), e.g.:
// G4VisManager* myVisManager = new MyVisManager;
// myVisManager -> RegisterGraphicsSystem (new MyGraphicsSystem);
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
#ifndef FCALVisManager_h
#define FCALVisManager_h 1
#ifdef G4VIS_USE
#include "G4VisManager.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class FCALVisManager: public G4VisManager {
public:
FCALVisManager ();
private:
void RegisterGraphicsSystems ();
};
#endif
#endif