Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
added alternative nuclear interation using G4 FTF model
- Loading branch information
Showing
8 changed files
with
436 additions
and
21 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
31 changes: 31 additions & 0 deletions
31
FastSimulation/MaterialEffects/interface/CMSDummyDeexitation.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
#ifndef FastSimulation_MaterialEffects_CMSDummyDeexcitation_H | ||
#define FastSimulation_MaterialEffects_CMSDummyDeexcitation_H | ||
|
||
/** | ||
* This class is needed as a dummy interface to Geant4 | ||
* nuclear de-excitation module; no secondary produced | ||
* | ||
* \author Vladimir Ivanchenko | ||
* $Date: 20-Jan-2015 | ||
*/ | ||
|
||
#include "G4VPreCompoundModel.hh" | ||
#include "G4ReactionProductVector.hh" | ||
|
||
class G4Fragment; | ||
|
||
class CMSDummyDeexcitation : public G4VPreCompoundModel | ||
{ | ||
public: | ||
|
||
CMSDummyDeexcitation() {}; | ||
|
||
virtual ~CMSDummyDeexcitation() {}; | ||
|
||
// virtual G4HadFinalState * ApplyYourself(const G4HadProjectile & thePrimary, | ||
// G4Nucleus & theNucleus); | ||
|
||
G4ReactionProductVector* DeExcite(G4Fragment&) { return new G4ReactionProductVector(); }; | ||
|
||
}; | ||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
83 changes: 83 additions & 0 deletions
83
FastSimulation/MaterialEffects/interface/NuclearInteractionFTFSimulator.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
#ifndef FastSimulation_MaterialEffects_NuclearInteractionFTFSimulator_H | ||
#define FastSimulation_MaterialEffects_NuclearInteractionFTFSimulator_H | ||
|
||
/** | ||
* This class computes the probability for hadrons to interact with a | ||
* nucleon of the tracker material (inelastically) and then sample | ||
* nuclear interaction using FTF model of Geant4 | ||
* The fraction of interaction lengths traversed by the particle in this | ||
* tracker layer is determined in MaterialEffectsSimulator as a fraction | ||
* the radiation lengths. | ||
* | ||
* \author Vladimir Ivanchenko | ||
* $Date: 20-Jan-2015 | ||
*/ | ||
|
||
#include "FastSimulation/MaterialEffects/interface/MaterialEffectsSimulator.h" | ||
|
||
#include "G4Nucleus.hh" | ||
#include "G4HadProjectile.hh" | ||
#include "G4LorentzVector.hh" | ||
#include "G4ThreeVector.hh" | ||
|
||
#include <vector> | ||
|
||
class ParticlePropagator; | ||
class RandomEngineAndDistribution; | ||
class G4ParticleDefinition; | ||
class G4Track; | ||
class G4Step; | ||
class G4TheoFSGenerator; | ||
class G4FTFModel; | ||
class G4ExcitedStringDecay; | ||
class G4LundStringFragmentation; | ||
class G4GeneratorPrecompoundInterface; | ||
|
||
class NuclearInteractionFTFSimulator : public MaterialEffectsSimulator | ||
{ | ||
public: | ||
|
||
/// Constructor | ||
NuclearInteractionFTFSimulator(unsigned int distAlgo, double distCut); | ||
|
||
/// Default Destructor | ||
~NuclearInteractionFTFSimulator(); | ||
|
||
private: | ||
|
||
/// Generate a nuclear interaction according to the probability that it happens | ||
void compute(ParticlePropagator& Particle, RandomEngineAndDistribution const*); | ||
|
||
void saveDaughter(ParticlePropagator& Particle, const G4LorentzVector& lv, int pdgid); | ||
|
||
double distanceToPrimary(const RawParticle& Particle, | ||
const RawParticle& aDaughter) const; | ||
|
||
std::vector<const G4ParticleDefinition*> theG4Hadron; | ||
std::vector<double> theNuclIntLength; | ||
std::vector<int> theId; | ||
|
||
G4TheoFSGenerator* theHadronicModel; | ||
G4FTFModel* theStringModel; | ||
G4ExcitedStringDecay* theStringDecay; | ||
G4LundStringFragmentation* theLund; | ||
G4GeneratorPrecompoundInterface* theCascade; | ||
|
||
G4Step* dummyStep; | ||
G4Track* currTrack; | ||
const G4ParticleDefinition* currParticle; | ||
G4Nucleus targetNucleus; | ||
G4HadProjectile theProjectile; | ||
G4LorentzVector curr4Mom; | ||
G4ThreeVector vectProj; | ||
G4ThreeVector theBoost; | ||
|
||
double theEnergyLimit; | ||
|
||
int numHadrons; | ||
|
||
unsigned int theDistAlgo; | ||
double theDistCut; | ||
double distMin; | ||
}; | ||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.