#include <GridletForger.h>
Inheritance diagram for FastShower::GridletForger:
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 | |
Gridlet * | makeGridlet (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 |
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 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 } |
|
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 } |
|
Definition at line 37 of file GridletForger.cxx.
00037 : 00038 IDebug(), DebugBase("GridletForger"), m_showererSelectors(v){} |
|
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 } |
|
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 }; |
|
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 } |
|
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 } |
|
ShowererSelectors.
Definition at line 91 of file GridletForger.h. Referenced by components(), GridletForger(), makeGridlet(), and ~GridletForger(). |
|
Underlying register grid for Gridlets.
|
|
|
|
|
|
|