CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/SimG4Core/CheckSecondary/interface/TreatSecondary.h

Go to the documentation of this file.
00001 #ifndef SimG4Core_CheckSecondary_TreatSecondary_H
00002 #define SimG4Core_CheckSecondary_TreatSecondary_H
00003 
00004 #include "SimG4Core/Physics/interface/G4ProcessTypeEnumerator.h"
00005 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00006 #include "DataFormats/Math/interface/LorentzVector.h"
00007 
00008 #include <iostream>
00009 #include <memory>
00010 #include <vector>
00011 #include <string>
00012 
00013 class G4Step;
00014 class G4Track;
00015 
00016 class TreatSecondary {
00017 
00018 public:
00019   TreatSecondary(const edm::ParameterSet &p);
00020   virtual ~TreatSecondary();
00021 
00022   void initTrack(const G4Track* trk);
00023   std::vector<math::XYZTLorentzVector> tracks(const G4Step * step, 
00024                                               std::string & procName, 
00025                                               int & procID, bool & intr,
00026                                               double & deltaE,
00027                                               std::vector<int> & charges);
00028 
00029 private:
00030   TreatSecondary(const TreatSecondary&); // stop default
00031   const TreatSecondary& operator=(const TreatSecondary&);
00032 
00033 private:
00034   int                                  verbosity, minSec, killAfter;
00035   double                               minDeltaE, eTrack;
00036   G4ProcessTypeEnumerator              *typeEnumerator;
00037   int                                  step, nHad, nsecL;
00038 };
00039 
00040 #endif