Import Geant4 5.0.0 source tree
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user