Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

FastShower::GridletForger Class Reference

Entrance class to the Atlfast Shower Paramterisation. More...

#include <GridletForger.h>

Inheritance diagram for FastShower::GridletForger:

Inheritance graph
[legend]
Collaboration diagram for FastShower::GridletForger:

Collaboration graph
[legend]
List of all members.

Public Methods

 GridletForger ()
 Constructor for GridletForgers with Showerer initialisation.

 GridletForger (const std::string)
 GridletForger (std::vector< IShowererSelector * >)
 ~GridletForger ()
 no copy constructor <= only 1 instance of GridletForger / run destructor

GridletmakeGridlet (ParticleInfo &) const
 do the showering and fill the gridlet with deposits

virtual void components (IDebug::Cpts &) const
 overide the DebugBase components:


Private Methods

ParticleParameters makeParameters (const ParticleInfo &) const

Private Attributes

std::vector< IShowererSelector * > m_showererSelectors
 ShowererSelectors.


Static Private Attributes

const double phiStart
 Underlying register grid for Gridlets.

const double phiStep
const double etaStart
const double etaStep

Detailed Description

Entrance class to the Atlfast Shower Paramterisation.

Accepts a transported particle collection iterator, simulates the shower, calculates the Ecal/Hcal energy sharing fractions, and returns the energy deposits in a Gridlet.

Definition at line 64 of file GridletForger.h.


Constructor & Destructor Documentation

FastShower::GridletForger::GridletForger  
 

Constructor for GridletForgers with Showerer initialisation.

set configurers to monitoring mode

Definition at line 40 of file GridletForger.cxx.

References m_showererSelectors.

00040                               : IDebug(), DebugBase("GridletForger"){
00042     Moni moniMode;
00043 
00044     SoftPhotonBarSelConfig spbConfig(moniMode);
00045     m_showererSelectors.push_back(new SingleShowererSelector(spbConfig));
00046 
00047     SoftPhotonEcSelConfig specConfig(moniMode);
00048     m_showererSelectors.push_back(new SingleShowererSelector(specConfig));
00049 
00050     HardPhotonBarSelConfig hpbConfig(moniMode);
00051     m_showererSelectors.push_back(new SingleShowererSelector(hpbConfig));
00052 
00053     HardPhotonEcSelConfig hpecConfig(moniMode);
00054     m_showererSelectors.push_back(new SingleShowererSelector(hpecConfig));
00055 
00056     ElectronBarSelConfig ebConfig(moniMode);
00057     m_showererSelectors.push_back(new SingleShowererSelector(ebConfig));
00058 
00059     ElectronEcSelConfig eecConfig(moniMode);
00060     m_showererSelectors.push_back(new SingleShowererSelector(eecConfig));
00061 
00062     //HadBarSelConfig hbConfig(moniMode);
00063     //m_showererSelectors.push_back(new DoubleShowererSelector(hbConfig));
00064 
00065     //HadEcSelConfig hecConfig(moniMode);
00066     //m_showererSelectors.push_back(new DoubleShowererSelector(hecConfig));
00067 
00068     HadBarSelConfig hbConfig(moniMode);
00069     m_showererSelectors.push_back(new TripleShowererSelector(hbConfig));
00070 
00071     HadEcSelConfig hecConfig(moniMode);
00072     m_showererSelectors.push_back(new TripleShowererSelector(hecConfig));
00073   }

FastShower::GridletForger::GridletForger const std::string    s
 

set configurers to monitoring mode

Definition at line 76 of file GridletForger.cxx.

References m_showererSelectors.

00076                                                : IDebug(), DebugBase("GridletForger"){
00078     Moni moniMode;
00079 
00080     map<std::string, int> key_map;
00081     // eta scan for Bar or Ec
00082     key_map[ "spb"  ] = 1;
00083     key_map[ "spec" ] = 2;
00084     key_map[ "hpb"  ] = 3;
00085     key_map[ "hpec" ] = 4;
00086     key_map[ "eb"   ] = 5;
00087     key_map[ "eec"  ] = 6;
00088     key_map[ "hb"   ] = 7;
00089     key_map[ "hec"  ] = 8;
00090     // eta scan for Bar and Ec
00091     key_map[ "SoftPhoton"  ] = 12;
00092     key_map[ "HardPhoton"  ] = 34;
00093     key_map[ "Electron"    ] = 56;
00094     key_map[ "Hadron"      ] = 78;
00095 
00096     switch (key_map[s])
00097       {
00098       case 1:
00099         {
00100           SoftPhotonBarSelConfig spbConfig(moniMode);
00101           m_showererSelectors.push_back(new SingleShowererSelector(spbConfig));
00102         }
00103         break;
00104       case 2:
00105         {
00106           SoftPhotonEcSelConfig specConfig(moniMode);
00107           m_showererSelectors.push_back(new SingleShowererSelector(specConfig));
00108         }
00109         break;
00110       case 3:
00111         {
00112           HardPhotonBarSelConfig hpbConfig(moniMode);
00113           m_showererSelectors.push_back(new SingleShowererSelector(hpbConfig));
00114         }
00115         break;
00116       case 4:
00117         {
00118           HardPhotonEcSelConfig hpecConfig(moniMode);
00119           m_showererSelectors.push_back(new SingleShowererSelector(hpecConfig));
00120         }
00121         break;
00122       case 5:
00123         {
00124           ElectronBarSelConfig ebConfig(moniMode);
00125           m_showererSelectors.push_back(new SingleShowererSelector(ebConfig));
00126         }
00127         break;
00128       case 6:
00129         {
00130           ElectronEcSelConfig eecConfig(moniMode);
00131           m_showererSelectors.push_back(new SingleShowererSelector(eecConfig));
00132         }
00133         break;
00134       case 7:
00135         {
00136           HadBarSelConfig hbConfig(moniMode);
00137           m_showererSelectors.push_back(new TripleShowererSelector(hbConfig));
00138         }
00139         break;
00140       case 8:
00141         {
00142           HadEcSelConfig hecConfig(moniMode);
00143           m_showererSelectors.push_back(new TripleShowererSelector(hecConfig));
00144         }
00145         break;
00146       case 12:
00147         {
00148           SoftPhotonBarSelConfig spbConfig(moniMode);
00149           m_showererSelectors.push_back(new SingleShowererSelector(spbConfig));
00150           SoftPhotonEcSelConfig specConfig(moniMode);
00151           m_showererSelectors.push_back(new SingleShowererSelector(specConfig));
00152         }
00153         break;
00154       case 34:
00155         {
00156           HardPhotonBarSelConfig hpbConfig(moniMode);
00157           m_showererSelectors.push_back(new SingleShowererSelector(hpbConfig));
00158           HardPhotonEcSelConfig hpecConfig(moniMode);
00159           m_showererSelectors.push_back(new SingleShowererSelector(hpecConfig));
00160         }
00161         break;
00162       case 56:
00163         {
00164           ElectronBarSelConfig ebConfig(moniMode);
00165           m_showererSelectors.push_back(new SingleShowererSelector(ebConfig));
00166           ElectronEcSelConfig eecConfig(moniMode);
00167           m_showererSelectors.push_back(new SingleShowererSelector(eecConfig));
00168         }
00169         break;
00170       case 78:
00171         {
00172           HadBarSelConfig hbConfig(moniMode);
00173           m_showererSelectors.push_back(new TripleShowererSelector(hbConfig));
00174           HadEcSelConfig hecConfig(moniMode);
00175           m_showererSelectors.push_back(new TripleShowererSelector(hecConfig));
00176         }
00177         break;
00178       default:
00179         cout<<"Invalid Showerer-type request: "<<s<<endl;
00180         throw;
00181       }
00182     
00183   }

FastShower::GridletForger::GridletForger std::vector< IShowererSelector * >   
 

Definition at line 37 of file GridletForger.cxx.

00037                                                              :
00038     IDebug(), DebugBase("GridletForger"), m_showererSelectors(v){}

FastShower::GridletForger::~GridletForger  
 

no copy constructor <= only 1 instance of GridletForger / run destructor

Definition at line 187 of file GridletForger.cxx.

References m_showererSelectors.

00187                                {
00188     std::vector<IShowererSelector*>::iterator it = m_showererSelectors.begin();
00189     std::vector<IShowererSelector*>::iterator end = m_showererSelectors.end();
00190     for(; it!= end; ++it){delete (*it);}
00191   }

Member Function Documentation

Gridlet * FastShower::GridletForger::makeGridlet ParticleInfo   pi const
 

do the showering and fill the gridlet with deposits

loop IShowererSelectors & find appropriate Showerer (corresponding to pp)

Definition at line 195 of file GridletForger.cxx.

References FastShower::ParticleParameters::delEta(), FastShower::ParticleParameters::delPhi(), FastShower::ParticleParameters::eta(), m_showererSelectors, makeParameters(), and FastShower::ParticleParameters::phi().

Referenced by FastShower::ShowerDemoMoni::execute(), FastShower::ShowerDemoDumper::execute(), and FastShower::RTest::execute().

00195                                                            {
00196 
00197     ParticleParameters pp = makeParameters(pi);
00198     //    cout<<"GridletForger "<<endl;
00199     //    cout<<pi;
00200     //    cout<<pp;
00201 
00202     // gridlwt with center coordinate of the hit cell
00203     Gridlet* g = new Gridlet(pp.eta()-pp.delEta(),pp.phi()-pp.delPhi());
00204 
00206     if( find_if(m_showererSelectors.begin(),m_showererSelectors.end(),selectShowerer(pp,g))
00207         == m_showererSelectors.end() ){
00208       g=0;
00209     }
00210     
00211     return g;
00212   };

void FastShower::GridletForger::components IDebug::Cpts   const [virtual]
 

overide the DebugBase components:

Reimplemented from FastShower::DebugBase.

Definition at line 255 of file GridletForger.cxx.

References m_showererSelectors.

00255                                                    {
00256     std::copy(m_showererSelectors.begin(), m_showererSelectors.end(), back_inserter(c));
00257   }

ParticleParameters FastShower::GridletForger::makeParameters const ParticleInfo   const [private]
 

Definition at line 218 of file GridletForger.cxx.

References FastShower::ParticleInfo::energy(), FastShower::ParticleInfo::eta(), FastShower::etaGran, FastShower::ParticleInfo::id(), FastShower::ParticleParameters::isHadron(), FastShower::maxEta, FastShower::minEta, FastShower::minPhi, FastShower::ParticleInfo::phi(), FastShower::phiGran, FastShower::ParticleParameters::region(), and FastShower::ParticleParameters::setEnergyLimiter().

Referenced by makeGridlet().

00218                                                            {
00219 
00220     // calo region?
00221     ParticleParameters::Region region;
00222     if (fabs(pi.eta())<=1.5)
00223       region = ParticleParameters::barrel;
00224     else if (fabs(pi.eta())>1.5 && fabs(pi.eta())<=maxEta)
00225       region = ParticleParameters::endcap;
00226     else if (fabs(pi.eta())>maxEta && fabs(pi.eta())<5.0)
00227       region=ParticleParameters::fcal;
00228     else
00229       region=ParticleParameters::beyond;
00230 
00231     // hit cell indices
00232     int    iPhi = static_cast<int>((pi.phi()-minPhi)/phiGran);
00233     int    iEta = static_cast<int>((pi.eta()-minEta)/etaGran);
00234     // center coordinate of the hit cell
00235     double cPhi = minPhi + (iPhi+0.5)*phiGran;
00236     double cEta = minEta + (iEta+0.5)*etaGran;
00237     // distance: impact point to cell center (assuming symmetry about Eta=0!)
00238     double delPhi = pi.phi() - cPhi;
00239     double delEta = pi.eta() - cEta;
00240 
00241     ParticleParameters 
00242       pp(pi.phi(),pi.eta(),delPhi,delEta,pi.energy(),region,pi.id());
00243 
00244     EnergyLimiter* energyLimiter;
00245     if (pp.region()==ParticleParameters::endcap && pp.isHadron()){
00246       energyLimiter = new EnergyLimiter(10., 50., "EnergyLimiter");
00247     }else{
00248       energyLimiter = new EnergyLimiter(10., 100., "EnergyLimiter");
00249     }
00250     pp.setEnergyLimiter(energyLimiter);
00251     
00252     return pp;
00253   }

Member Data Documentation

std::vector<IShowererSelector*> FastShower::GridletForger::m_showererSelectors [private]
 

ShowererSelectors.

Definition at line 91 of file GridletForger.h.

Referenced by components(), GridletForger(), makeGridlet(), and ~GridletForger().

const double FastShower::GridletForger::phiStart [static, private]
 

Underlying register grid for Gridlets.

const double FastShower::GridletForger::phiStep [static, private]
 

const double FastShower::GridletForger::etaStart [static, private]
 

const double FastShower::GridletForger::etaStep [static, private]
 


The documentation for this class was generated from the following files:
Generated on Tue Mar 18 11:55:20 2003 for FastShowerUtils by doxygen1.3-rc1