CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Private Attributes
G4toCMSLegacyProcTypeMap Class Reference

Class that maps the native Geant4 process types to the legacy CMS process types. More...

#include <Utils.h>

Public Types

typedef std::map< unsigned int,
unsigned int > 
MapType
 

Public Member Functions

 G4toCMSLegacyProcTypeMap ()
 
const unsigned int processId (unsigned int g4ProcessId) const
 

Private Attributes

MapType m_map
 

Detailed Description

Class that maps the native Geant4 process types to the legacy CMS process types.

Definition at line 33 of file Utils.h.

Member Typedef Documentation

typedef std::map<unsigned int,unsigned int> G4toCMSLegacyProcTypeMap::MapType

Definition at line 35 of file Utils.h.

Constructor & Destructor Documentation

G4toCMSLegacyProcTypeMap::G4toCMSLegacyProcTypeMap ( )

Definition at line 5 of file Utils.cc.

References CMS::Annihilation, CMS::Compton, CMS::Conversions, CMS::Decay, CMS::EBrem, CMS::EIoni, CMS::Hadronic, m_map, CMS::MuPairProd, CMS::Photon, CMS::Primary, CMS::SynchrotronRadiation, and CMS::Unknown.

6 {
7  // Geant4Process -> CmsProcess
8  m_map[0] = CMS::Primary; // "Primary" -> "Primary"
9  m_map[91] = CMS::Unknown; // "Transportation" -> "Unknown"
10  m_map[92] = CMS::Unknown; // "CoupleTrans" -> "Unknown" => DOUBLE-CHECK THIS
11  m_map[1] = CMS::Unknown; // "CoulombScat" -> "Unknown" => DOUBLE-CHECK THIS
12  m_map[2] = CMS::EIoni; // "Ionisation" -> "EIoni" => WHAT ABOUT MuIoni?
13  m_map[3] = CMS::EBrem; // "Brems" -> "EBrem" => WHAT ABOUT MuBrem?
14  m_map[4] = CMS::MuPairProd; // "PairProdCharged" -> "MuPairProd" => DOUBLE-CHECK THIS
15  m_map[5] = CMS::Annihilation; // "Annih" -> "Annihilation"
16  m_map[6] = CMS::Annihilation; // "AnnihToMuMu" -> "Annihilation"
17  m_map[7] = CMS::Annihilation; // "AnnihToHad" -> "Annihilation"
18  m_map[8] = CMS::Hadronic; // "NuclearStopp" -> "Hadronic" => DOUBLE-CHECK THIS
19  m_map[10] = CMS::Unknown; // "Msc" -> "Unknown" => DOUBLE-CHECK THIS
20  m_map[11] = CMS::Unknown; // "Rayleigh" -> "Unknown" => DOUBLE-CHECK THIS
21  m_map[12] = CMS::Photon; // "PhotoElectric" -> "Photon"
22  m_map[13] = CMS::Compton; // "Compton" -> "Compton"
23  m_map[14] = CMS::Conversions; // "Conv" -> "Conversions"
24  m_map[15] = CMS::Conversions; // "ConvToMuMu" -> "Conversions"
25  m_map[21] = CMS::Unknown; // "Cerenkov" -> "Unknown" => DOUBLE-CHECK THIS
26  m_map[22] = CMS::Unknown; // "Scintillation" -> "Unknown" => DOUBLE-CHECK THIS
27  m_map[23] = CMS::SynchrotronRadiation; // "SynchRad" -> "SynchrotronRadiation"
28  m_map[24] = CMS::SynchrotronRadiation; // "TransRad" -> "SynchrotronRadiation" => DOUBLE-CHECK THIS
29  m_map[31] = CMS::Unknown; // "OpAbsorp" -> "Unknown" => NOT USED IN CMS
30  m_map[32] = CMS::Unknown; // "OpBoundary" -> "Unknown" => NOT USED IN CMS
31  m_map[33] = CMS::Unknown; // "OpRayleigh" -> "Unknown" => NOT USED IN CMS
32  m_map[34] = CMS::Unknown; // "OpWLS" -> "Unknown" => NOT USED IN CMS
33  m_map[35] = CMS::Unknown; // "OpMieHG" -> "Unknown" => NOT USED IN CMS
34  m_map[51] = CMS::Unknown; // "DNAElastic" -> "Unknown" => NOT USED IN CMS
35  m_map[52] = CMS::Unknown; // "DNAExcit" -> "Unknown" => NOT USED IN CMS
36  m_map[53] = CMS::Unknown; // "DNAIonisation" -> "Unknown" => NOT USED IN CMS
37  m_map[54] = CMS::Unknown; // "DNAVibExcit" -> "Unknown" => NOT USED IN CMS
38  m_map[55] = CMS::Unknown; // "DNAAttachment" -> "Unknown" => NOT USED IN CMS
39  m_map[56] = CMS::Unknown; // "DNAChargeDec" -> "Unknown" => NOT USED IN CMS
40  m_map[57] = CMS::Unknown; // "DNAChargeInc" -> "Unknown" => NOT USED IN CMS
41  m_map[111] = CMS::Hadronic; // "HadElastic" -> "Hadronic"
42  m_map[121] = CMS::Hadronic; // "HadInelastic" -> "Hadronic"
43  m_map[131] = CMS::Hadronic; // "HadCapture" -> "Hadronic"
44  m_map[141] = CMS::Hadronic; // "HadFission" -> "Hadronic"
45  m_map[151] = CMS::Hadronic; // "HadAtRest" -> "Hadronic"
46  m_map[161] = CMS::Hadronic; // "HadCEX" -> "Hadronic"
47  m_map[201] = CMS::Decay; // "Decay" -> "Decay"
48  m_map[202] = CMS::Decay; // "DecayWSpin" -> "Decay"
49  m_map[203] = CMS::Decay; // "DecayPiWSpin" -> "Decay"
50  m_map[210] = CMS::Decay; // "DecayRadio" -> "Decay"
51  m_map[211] = CMS::Decay; // "DecayUnKnown" -> "Decay"
52  m_map[231] = CMS::Decay; // "DecayExt" -> "Decay"
53  m_map[301] = CMS::Unknown; // "GFlash" -> "Unknown"
54  m_map[401] = CMS::Unknown; // "StepLimiter" -> "Unknown"
55  m_map[402] = CMS::Unknown; // "UsrSpecCuts" -> "Unknown"
56  m_map[403] = CMS::Unknown; // "NeutronKiller" -> "Unknown"
57 }

Member Function Documentation

const unsigned int G4toCMSLegacyProcTypeMap::processId ( unsigned int  g4ProcessId) const

Definition at line 59 of file Utils.cc.

References m_map, and CMS::Undefined.

Referenced by VertexClassifier::processesAtSimulation(), and TrackClassifier::processesAtSimulation().

60 {
61  MapType::const_iterator it = m_map.find(g4ProcessId);
62 
63  if( it == m_map.end() )
64  {
65  edm::LogError("UnknownProcessType") << "Encountered an unknown process type: " << g4ProcessId << ". Mapping it to 'Undefined'.";
66  return CMS::Undefined;
67  }
68  else
69  return it->second;
70 }

Member Data Documentation

MapType G4toCMSLegacyProcTypeMap::m_map
private

Definition at line 42 of file Utils.h.

Referenced by G4toCMSLegacyProcTypeMap(), and processId().