Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

UtilIstHEP.h File Reference

#include <Rtypes.h>
#include <TROOT.h>
#include <TMCProcess.h>

Go to the source code of this file.

Namespaces

namespace  UtilIstHEP

Enumerations

enum  ENeugenIstHEP {
  kNInitial = 0, kNFinal = 1, kNIntermediate = 2, kNDecayed = 3,
  kNTarget = 11, kNDIS = 12, kNRes = 13, kNRescatter = 14
}
enum  EProdMethod {
  kMPrimary, kMMultipleScattering, kMEnergyLoss, kMMagneticFieldL,
  kMDecay, kMPair, kMCompton, kMPhotoelectric,
  kMBrem, kMDeltaRay, kMAnnihilation, kMHadronic,
  kMEvaporation, kMNuclearFission, kMNuclearAbsorption, kMPbarAnnihilation,
  kMNCapture, kMHElastic, kMHInhelastic, kMMuonNuclear,
  kMTOFlimit, kMPhotoFission, kMRayleigh, kMNull,
  kMStop, kMLightAbsorption, kMLightDetection, kMLightScattering,
  kMStepMax, kMCerenkov, kMFeedBackPhoton, kMLightReflection,
  kMLightRefraction, kMSynchrotron, kMTransportation, kMNoProcess,
  kMAnnihilationRest, kMAnnihilationFlight, kMNbarAnnihilation, kMHIElastic,
  kMHCElastic, kMPhotonInhelastic, kMElectronNuclear, kMPositronNuclear,
  kMScintillation, kUnknownProdMethod
}

Functions

const char * AsString (Int_t isthep)
const char * AsString (ENeugenIstHEP isthep)
Int_t GetNeugenIstHEP (const char *isthepname)
EProdMethod GetProdMethod (TMCProcess process)
TMCProcess GetTMCProcess (EProdMethod method)
const char * AsString (EProdMethod method)

Variables

const Int_t kProdMethodOffset = 400
const Int_t kNProdMethod = kUnknownProdMethod


Enumeration Type Documentation

enum ENeugenIstHEP
 

Enumeration values:
kNInitial 
kNFinal 
kNIntermediate 
kNDecayed 
kNTarget 
kNDIS 
kNRes 
kNRescatter 

Definition at line 19 of file UtilIstHEP.h.

Referenced by UtilIstHEP::AsString().

00019                      {
00020     // Status codes are those defined by neugen in $NEUGEN3PATH/inc/fncodes.inc
00021     kNInitial=0,       // Initial (0)
00022     kNFinal=1,         // Final (1)
00023     kNIntermediate=2,  // Intermediate (2)
00024     kNDecayed=3,       // Decayed (3)
00025     kNTarget=11,       // Target (11) 
00026     kNDIS=12,          // DIS (12)
00027     kNRes=13,          // Res (13)
00028     kNRescatter=14     // Rescatter (14)
00029   };

enum EProdMethod
 

Enumeration values:
kMPrimary 
kMMultipleScattering 
kMEnergyLoss 
kMMagneticFieldL 
kMDecay 
kMPair 
kMCompton 
kMPhotoelectric 
kMBrem 
kMDeltaRay 
kMAnnihilation 
kMHadronic 
kMEvaporation 
kMNuclearFission 
kMNuclearAbsorption 
kMPbarAnnihilation 
kMNCapture 
kMHElastic 
kMHInhelastic 
kMMuonNuclear 
kMTOFlimit 
kMPhotoFission 
kMRayleigh 
kMNull 
kMStop 
kMLightAbsorption 
kMLightDetection 
kMLightScattering 
kMStepMax 
kMCerenkov 
kMFeedBackPhoton 
kMLightReflection 
kMLightRefraction 
kMSynchrotron 
kMTransportation 
kMNoProcess 
kMAnnihilationRest 
kMAnnihilationFlight 
kMNbarAnnihilation 
kMHIElastic 
kMHCElastic 
kMPhotonInhelastic 
kMElectronNuclear 
kMPositronNuclear 
kMScintillation 
kUnknownProdMethod 

Definition at line 35 of file UtilIstHEP.h.

Referenced by UtilIstHEP::AsString().

00035                    {  
00036     // Note: The order of the production method codes should be preserved so 
00037     // that the status code stored with the stdhep particle retains 
00038     // meaning even for older versions of the code.  New production method
00039     // codes should be added to the end of the list and associated methods
00040     // (GetProdMethod,etc.) should be updated accordingly.
00041 
00042     kMPrimary,            // Primary interaction
00043 
00044     kMMultipleScattering, // multiple scattering
00045     kMEnergyLoss,         // continuous energy loss
00046     kMMagneticFieldL,     // bending in mag. field
00047     kMDecay,              // particle decay
00048     kMPair,               // photon pair production or
00049                           // muon direct pair production
00050     kMCompton,            // Compton scattering
00051     kMPhotoelectric,      // photoelectric effect
00052     kMBrem,               // bremsstrahlung
00053     kMDeltaRay,           // delta-ray production
00054     kMAnnihilation,       // positron annihilation
00055 
00056     kMHadronic,           // hadronic interaction
00057     kMEvaporation,        // nuclear evaporation
00058     kMNuclearFission,     // nuclear fission
00059     kMNuclearAbsorption,  // nuclear absorption
00060     kMPbarAnnihilation,   // antiproton annihilation
00061     kMNCapture,           // neutron capture
00062     kMHElastic,           // hadronic elastic scattering
00063     kMHInhelastic,        // hadronic inelastic scattering
00064 
00065     kMMuonNuclear,        // muon nuclear interaction
00066 
00067     kMTOFlimit,           // exceeded time of flight cut
00068     kMPhotoFission,       // nuclear photofission
00069 
00070     kMRayleigh,           // Rayleigh scattering
00071 
00072     kMNull,               // no mechanism is active, usually at the entrance
00073                           // of a new volume
00074     kMStop,               // particle has fallen below energy threshold
00075                           // and tracking stops
00076 
00077     kMLightAbsorption,    // Cerenkov photon absorption
00078     kMLightDetection,     // Optical photon detection (absorption + photoelectron production)
00079     kMLightScattering,    // Cerenkov photon reflection/refraction
00080     kMStepMax,            // step limited by STEMAX
00081 
00082     kMCerenkov,           // Cerenkov photon generation
00083     kMFeedBackPhoton,     // Feed back photon in RICH -- ALICE specific
00084     kMLightReflection,    // Cerenkov photon reflection
00085     kMLightRefraction,    // Cerenkov photon refraction
00086     kMSynchrotron,        // synchrotron radiation generation
00087 
00088     kMTransportation,     // Transportation
00089 
00090     kMNoProcess,          // unknown process
00091 
00092     // The set of corresponding TMCProcess codes for the following 
00093     // only appeared in ROOT beginning with v5.17/06
00094     kMAnnihilationRest,   // positron annihilation at rest
00095     kMAnnihilationFlight, // positron annihilation in flight
00096     kMNbarAnnihilation,   // antineutron annihilation
00097     kMHIElastic,          // hadronic elastic incoherent scattering
00098     kMHCElastic,          // hadronic elastic coherent scattering
00099     kMPhotonInhelastic,   // photon inelastic scattering
00100     kMElectronNuclear,    // electron nuclear interaction
00101     kMPositronNuclear,    // positron nuclear interaction
00102     kMScintillation,      // scintillation
00103 
00104     kUnknownProdMethod
00105   };


Function Documentation

const char * UtilIstHEP::AsString EProdMethod  method  ) 
 

Definition at line 306 of file UtilIstHEP.cxx.

References UtilIstHEP::GetTMCProcess().

00306                                                        {
00307   // Purpose: Convert production method status code to a string
00308 
00309   TMCProcess processcode = GetTMCProcess(prodmethod);
00310   return TMCProcessName[processcode];
00311   
00312 }

const char * UtilIstHEP::AsString ENeugenIstHEP  isthep  ) 
 

Definition at line 27 of file UtilIstHEP.cxx.

References UtilIstHEP::kNDecayed, UtilIstHEP::kNDIS, UtilIstHEP::kNFinal, UtilIstHEP::kNInitial, UtilIstHEP::kNIntermediate, UtilIstHEP::kNRes, UtilIstHEP::kNRescatter, UtilIstHEP::kNTarget, and MSG.

00027                                                            {
00028   //  Purpose:  Convert enumerated Neugen IstHEP code to a string.
00029   //  Return:  isthep string. If unknown, returns "Unknown".
00030 
00031   switch ( neugenisthep ) {
00032 
00033     case kNInitial:
00034       return "Initial";
00035     case kNFinal:
00036       return "Final";
00037     case kNIntermediate:
00038       return "Intermediate";
00039     case kNDecayed:
00040       return "Decayed";
00041     case kNTarget:
00042       return "Target";
00043     case kNDIS:
00044       return "DIS";
00045     case kNRes:
00046       return "Res";
00047     case kNRescatter:
00048       return "Rescatter";
00049     default:
00050       MSG("Util",Msg::kWarning) 
00051       << "UtilIstHEP::AsString called with unknown ENeugenIstHEP " 
00052       << (Int_t)neugenisthep << endl;
00053       return "Unknown";
00054 
00055   }//end of switch
00056 
00057 }

const char * UtilIstHEP::AsString Int_t  isthep  ) 
 

Definition at line 315 of file UtilIstHEP.cxx.

References UtilIstHEP::ENeugenIstHEP, UtilIstHEP::EProdMethod, UtilIstHEP::kMDecay, and UtilIstHEP::kProdMethodOffset.

Referenced by MCAppParticle::GetStatusCodeName(), PTSimModule::HandleCommand(), PTSimValidate::TestParticle(), and MCAppValidate::TestParticle().

00315                                              {
00316   //  Purpose:  Convert isthep status code to a string.
00317   //
00318   //  Argument: isthep code.
00319   //
00320   //  Return:  isthep string. If unknown, returns "Unknown".
00321   //
00322   //  Notes: If isthep <  200 => Neugen IstHEP code
00323   //         If isthep >= kProdMethodOffset 
00324   //         && isthep <  kProdMethodOffset + kNProdMethod  
00325   //                          => EProdMethod production method code
00326   //         If isthep == 999 => "Info" 
00327   //         If isthep == kProdMethodOffset + kMDecay + 1000
00328   //                      => "Decay Parent" 
00329   //         Otherwise return "Unknown"
00330 
00331 
00332   if ( isthep < 200 ) {
00333     ENeugenIstHEP neugenisthep = (ENeugenIstHEP)isthep;
00334     return AsString(neugenisthep);
00335   }
00336   else if ( isthep >= kProdMethodOffset 
00337          && isthep <  kProdMethodOffset + kNProdMethod ) {
00338     EProdMethod prodmethod = (EProdMethod)(isthep-kProdMethodOffset);
00339     return AsString(prodmethod);
00340   }
00341   else if ( isthep == 999 ) {
00342     return "Info";
00343   }
00344   else if ( isthep == (kProdMethodOffset + kMDecay + 1000) ) {
00345     return "Decay Parent";
00346   }
00347   else {
00348     //MSG("Util",Msg::kWarning) 
00349     //  << "UtilIstHEP::AsString called with unknown isthep code " 
00350     //  << isthep << endl;
00351     return "Unknown";
00352   }
00353 
00354 }

Int_t UtilIstHEP::GetNeugenIstHEP const char *  isthepname  ) 
 

Definition at line 279 of file UtilIstHEP.cxx.

00279                                                         {
00280   // Purpose: Convert text string isthepname to an enumerated code.
00281   // 
00282   // Argument: isthepname string
00283   //
00284   // Return: returns -1 if no match
00285   //
00286 
00287   TString tmpstr(isthepname);
00288   tmpstr.ToLower();
00289   if ( strcmp(tmpstr.Data(),"initial") == 0 ) return UtilIstHEP::kNInitial;
00290   else if ( strcmp(tmpstr.Data(),"final") == 0 ) return UtilIstHEP::kNFinal;
00291   else if ( strcmp(tmpstr.Data(),"intermediate") == 0 ) 
00292                                            return UtilIstHEP::kNIntermediate;
00293   else if ( strcmp(tmpstr.Data(),"decayed") == 0 ) 
00294                                            return UtilIstHEP::kNDecayed;
00295   else if ( strcmp(tmpstr.Data(),"target") == 0 ) return UtilIstHEP::kNTarget;
00296   else if ( strcmp(tmpstr.Data(),"dis") == 0 ) return UtilIstHEP::kNDIS;
00297   else if ( strcmp(tmpstr.Data(),"res") == 0 ) return UtilIstHEP::kNRes;
00298   else if ( strcmp(tmpstr.Data(),"rescatter") == 0 ) 
00299                                                return UtilIstHEP::kNRescatter;
00300 
00301   return -1;
00302 
00303 }

UtilIstHEP::EProdMethod UtilIstHEP::GetProdMethod TMCProcess  process  ) 
 

Definition at line 60 of file UtilIstHEP.cxx.

References MSG.

Referenced by PTSimStack::PushTrack().

00060                                                                   {
00061   // Purpose: Interpret a TMCProcess as an EProdMethod
00062 
00063   switch (process) {
00064 
00065   case kPPrimary:
00066     return kMPrimary;
00067   case kPMultipleScattering:
00068     return kMMultipleScattering;
00069   case kPEnergyLoss:         
00070     return kMEnergyLoss;
00071   case kPMagneticFieldL:
00072     return kMMagneticFieldL;
00073   case kPDecay:
00074     return kMDecay;
00075   case kPPair:
00076     return kMPair;
00077   case kPCompton:
00078     return kMCompton;
00079   case kPPhotoelectric:
00080     return kMPhotoelectric;
00081   case kPBrem:
00082     return kMBrem;
00083   case kPDeltaRay:
00084     return kMDeltaRay;
00085   case kPAnnihilation:
00086     return kMAnnihilation;
00087   case kPHadronic:
00088     return kMHadronic;
00089   case kPEvaporation:
00090     return kMEvaporation;
00091   case kPNuclearFission:
00092     return kMNuclearFission;
00093   case kPNuclearAbsorption:
00094     return kMNuclearAbsorption;
00095   case kPPbarAnnihilation:
00096     return kMPbarAnnihilation;  
00097   case kPNCapture:
00098     return kMNCapture;
00099   case kPHElastic:
00100     return kMHElastic;
00101   case kPHInhelastic:
00102     return kMHInhelastic;
00103   case kPMuonNuclear:
00104     return kMMuonNuclear;
00105   case kPTOFlimit:
00106     return kMTOFlimit;
00107   case kPPhotoFission:
00108     return kMPhotoFission;
00109   case kPRayleigh:
00110     return kMRayleigh;
00111   case kPNull:
00112     return kMNull;
00113   case kPStop:
00114     return kMStop;
00115   case kPLightAbsorption:
00116     return kMLightAbsorption;
00117   case kPLightDetection:
00118     return kMLightDetection;
00119   case kPLightScattering:
00120     return kMLightScattering;
00121   case kStepMax:
00122     return kMStepMax;
00123   case kPCerenkov:
00124     return kMCerenkov;
00125   case kPFeedBackPhoton:
00126     return kMFeedBackPhoton;
00127   case kPLightReflection:
00128     return kMLightReflection;
00129   case kPLightRefraction:
00130     return kMLightRefraction;
00131   case kPSynchrotron:
00132     return kMSynchrotron;
00133   case kPTransportation:
00134     return kMTransportation;
00135   case kPNoProcess:
00136     return kMNoProcess;
00137 #if ROOT_VERSION_CODE >= ROOT_VERSION(5,17,06)
00138   // These only appeared in TMCProcess beginning with ROOT v5.17/06
00139   case kPAnnihilationRest:
00140     return kMAnnihilationRest;
00141   case kPAnnihilationFlight:
00142     return kMAnnihilationFlight;
00143   case kPNbarAnnihilation:
00144     return kMNbarAnnihilation;
00145   case kPHIElastic:
00146     return kMHIElastic;
00147   case kPHCElastic:
00148     return kMHCElastic;
00149   case kPPhotonInhelastic:
00150     return kMPhotonInhelastic;
00151   case kPElectronNuclear:
00152     return kMElectronNuclear;
00153   case kPPositronNuclear:
00154     return kMPositronNuclear;
00155   case kPScintillation:
00156     return kMScintillation;
00157 #endif
00158   default:
00159     MSG("Util",Msg::kError) << "UtilIstHEP::GetProdMethod for TMCProcess " 
00160                             << process << "/" << TMCProcessName[process] 
00161                             << " failed!\nUpdate UtilIstHEP to include " 
00162                             << "missing process. Abort." << endl;
00163     abort();
00164   }
00165     
00166 }

TMCProcess UtilIstHEP::GetTMCProcess EProdMethod  method  ) 
 

Definition at line 169 of file UtilIstHEP.cxx.

References UtilIstHEP::kMAnnihilation, UtilIstHEP::kMAnnihilationFlight, UtilIstHEP::kMAnnihilationRest, UtilIstHEP::kMBrem, UtilIstHEP::kMCerenkov, UtilIstHEP::kMCompton, UtilIstHEP::kMDecay, UtilIstHEP::kMDeltaRay, UtilIstHEP::kMElectronNuclear, UtilIstHEP::kMEnergyLoss, UtilIstHEP::kMEvaporation, UtilIstHEP::kMFeedBackPhoton, UtilIstHEP::kMHadronic, UtilIstHEP::kMHCElastic, UtilIstHEP::kMHElastic, UtilIstHEP::kMHIElastic, UtilIstHEP::kMHInhelastic, UtilIstHEP::kMLightAbsorption, UtilIstHEP::kMLightDetection, UtilIstHEP::kMLightReflection, UtilIstHEP::kMLightRefraction, UtilIstHEP::kMLightScattering, UtilIstHEP::kMMagneticFieldL, UtilIstHEP::kMMultipleScattering, UtilIstHEP::kMMuonNuclear, UtilIstHEP::kMNbarAnnihilation, UtilIstHEP::kMNCapture, UtilIstHEP::kMNoProcess, UtilIstHEP::kMNuclearAbsorption, UtilIstHEP::kMNuclearFission, UtilIstHEP::kMNull, UtilIstHEP::kMPair, UtilIstHEP::kMPbarAnnihilation, UtilIstHEP::kMPhotoelectric, UtilIstHEP::kMPhotoFission, UtilIstHEP::kMPhotonInhelastic, UtilIstHEP::kMPositronNuclear, UtilIstHEP::kMPrimary, UtilIstHEP::kMRayleigh, UtilIstHEP::kMScintillation, UtilIstHEP::kMStepMax, UtilIstHEP::kMStop, UtilIstHEP::kMSynchrotron, UtilIstHEP::kMTOFlimit, UtilIstHEP::kMTransportation, and MSG.

Referenced by UtilIstHEP::AsString(), and PTSimModule::HandleCommand().

00169                                                            {
00170   // Purpose: Interpret a EProdMethod as a TMCProcess
00171 
00172   switch (prodmethod) {
00173 
00174   case kMPrimary:
00175     return kPPrimary;
00176   case kMMultipleScattering:
00177     return kPMultipleScattering;
00178   case kMEnergyLoss:         
00179     return kPEnergyLoss;
00180   case kMMagneticFieldL:
00181     return kPMagneticFieldL;
00182   case kMDecay:
00183     return kPDecay;
00184   case kMPair:
00185     return kPPair;
00186   case kMCompton:
00187     return kPCompton;
00188   case kMPhotoelectric:
00189     return kPPhotoelectric;
00190   case kMBrem:
00191     return kPBrem;
00192   case kMDeltaRay:
00193     return kPDeltaRay;
00194   case kMAnnihilation:
00195     return kPAnnihilation;
00196   case kMHadronic:
00197     return kPHadronic;
00198   case kMEvaporation:
00199     return kPEvaporation;
00200   case kMNuclearFission:
00201     return kPNuclearFission;
00202   case kMNuclearAbsorption:
00203     return kPNuclearAbsorption;
00204   case kMPbarAnnihilation:
00205     return kPPbarAnnihilation;  
00206   case kMNCapture:
00207     return kPNCapture;
00208   case kMHElastic:
00209     return kPHElastic;
00210   case kMHInhelastic:
00211     return kPHInhelastic;
00212   case kMMuonNuclear:
00213     return kPMuonNuclear;
00214   case kMTOFlimit:
00215     return kPTOFlimit;
00216   case kMPhotoFission:
00217     return kPPhotoFission;
00218   case kMRayleigh:
00219     return kPRayleigh;
00220   case kMNull:
00221     return kPNull;
00222   case kMStop:
00223     return kPStop;
00224   case kMLightAbsorption:
00225     return kPLightAbsorption;
00226   case kMLightDetection:
00227     return kPLightDetection;
00228   case kMLightScattering:
00229     return kPLightScattering;
00230   case kMStepMax:
00231     return kStepMax;
00232   case kMCerenkov:
00233     return kPCerenkov;
00234   case kMFeedBackPhoton:
00235     return kPFeedBackPhoton;
00236   case kMLightReflection:
00237     return kPLightReflection;
00238   case kMLightRefraction:
00239     return kPLightRefraction;
00240   case kMSynchrotron:
00241     return kPSynchrotron;
00242   case kMTransportation:
00243     return kPTransportation;
00244   case kMNoProcess:
00245     return kPNoProcess;
00246 #if ROOT_VERSION_CODE >= ROOT_VERSION(5,17,06)
00247   // These only appeared in TMCProcess beginning with ROOT v5.17/06
00248   case kMAnnihilationRest:
00249     return kPAnnihilationRest;
00250   case kMAnnihilationFlight:
00251     return kPAnnihilationFlight;
00252   case kMNbarAnnihilation:
00253     return kPNbarAnnihilation;
00254   case kMHIElastic:
00255     return kPHIElastic;
00256   case kMHCElastic:
00257     return kPHCElastic;
00258   case kMPhotonInhelastic:
00259     return kPPhotonInhelastic;
00260   case kMElectronNuclear:
00261     return kPElectronNuclear;
00262   case kMPositronNuclear:
00263     return kPPositronNuclear;
00264   case kMScintillation:
00265     return kPScintillation;
00266 #endif
00267   default:
00268     MSG("Util",Msg::kError) << "UtilIstHEP::GetTMCProcess for EProdMethod " 
00269                             << prodmethod
00270                             << " failed!\nUpdate UtilIstHEP to include " 
00271                             << "missing production method. Abort." << endl;
00272     abort();
00273   }
00274     
00275 }


Variable Documentation

const Int_t UtilIstHEP::kNProdMethod = kUnknownProdMethod
 

Definition at line 107 of file UtilIstHEP.h.

const Int_t UtilIstHEP::kProdMethodOffset = 400
 

Definition at line 33 of file UtilIstHEP.h.

Referenced by UtilIstHEP::AsString().


Generated on Mon Feb 15 11:08:15 2010 for loon by  doxygen 1.3.9.1