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&);
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