CMS 3D CMS Logo

Public Member Functions | Private Attributes

CMSGlauberGribovXS Class Reference

#include <CMSGlauberGribovXS.h>

List of all members.

Public Member Functions

 CMSGlauberGribovXS (G4int ver)
virtual void ConstructParticle ()
virtual void ConstructProcess ()
virtual ~CMSGlauberGribovXS ()

Private Attributes

G4int verbose

Detailed Description

Definition at line 7 of file CMSGlauberGribovXS.h.


Constructor & Destructor Documentation

CMSGlauberGribovXS::CMSGlauberGribovXS ( G4int  ver)

Definition at line 39 of file CMSGlauberGribovXS.cc.

                                                :
  G4VPhysicsConstructor("GlauberGribov XS"), verbose(ver) 
{}
CMSGlauberGribovXS::~CMSGlauberGribovXS ( ) [virtual]

Definition at line 43 of file CMSGlauberGribovXS.cc.

{}

Member Function Documentation

void CMSGlauberGribovXS::ConstructParticle ( ) [virtual]

Definition at line 45 of file CMSGlauberGribovXS.cc.

{}
void CMSGlauberGribovXS::ConstructProcess ( ) [virtual]

Definition at line 47 of file CMSGlauberGribovXS.cc.

References i, and n.

{

  G4GlauberGribovCrossSection* gg = new G4GlauberGribovCrossSection();
  gg->SetEnergyLowerLimit(90.*GeV);

  theParticleIterator->reset();
  while( (*theParticleIterator)() ){
    G4ParticleDefinition* particle = theParticleIterator->value();
    G4String particleName = particle->GetParticleName();
    if(verbose > 1) {
      G4cout << "### " << GetPhysicsName() << " instantiates for " 
             << particleName << G4endl;
    }

    if (particleName == "neutron" ||
        particleName == "pi+" ||
        particleName == "pi-" ||
        particleName == "proton") {

      G4ProcessVector*  pv = particle->GetProcessManager()->GetProcessList();
      G4int n = pv->size();
      G4HadronicProcess* had = 0;
      for(G4int i=0; i<n; i++) {
        if(fHadronInelastic == ((*pv)[i])->GetProcessSubType()) {
          had = static_cast<G4HadronicProcess*>((*pv)[i]);
          break;
        }
      }
        
      if(verbose > 0) {
        G4cout << "### CMSGlauberGribovXS::ConstructProcess for " << particleName;
      }
      if(had) {
        if(verbose > 0) {G4cout << " and  " << had->GetProcessName();}   
        if (particleName == "neutron") {
          had->AddDataSet(new G4BGGNucleonInelasticXS(particle));
        } else if(particleName == "proton") {
          had->AddDataSet(new G4BGGNucleonInelasticXS(particle));
        } else if(particleName == "pi+") {
          had->AddDataSet(new G4BGGPionInelasticXS(particle));
        } else if(particleName == "pi-") {
          had->AddDataSet(new G4BGGPionInelasticXS(particle));
        }
           //   had->AddDataSet(gg);
      }
      if(verbose > 0) {G4cout << G4endl;}   
    }
  }
}

Member Data Documentation

G4int CMSGlauberGribovXS::verbose [private]

Definition at line 18 of file CMSGlauberGribovXS.h.