File indexing completed on 2024-04-06 12:30:11
0001 #ifndef SimG4CMS_ShowerLibraryProducer_HFChamberSD_h
0002 #define SimG4CMS_ShowerLibraryProducer_HFChamberSD_h
0003
0004 #include "SimG4Core/SensitiveDetector/interface/SensitiveCaloDetector.h"
0005 #include "SimG4Core/Notification/interface/SimTrackManager.h"
0006
0007 #include "SimG4CMS/ShowerLibraryProducer/interface/HFShowerG4Hit.h"
0008 #include "FWCore/Framework/interface/Frameworkfwd.h"
0009 #include "FWCore/ParameterSet/interface/ParameterSetfwd.h"
0010 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0011
0012 #include "G4Track.hh"
0013
0014 #include <iostream>
0015 #include <fstream>
0016 #include <vector>
0017
0018 class G4Step;
0019 class G4HCofThisEvent;
0020
0021 class HFChamberSD : public SensitiveCaloDetector {
0022 public:
0023 explicit HFChamberSD(const std::string&, const SensitiveDetectorCatalog&, const SimTrackManager*);
0024 ~HFChamberSD() override;
0025
0026 void Initialize(G4HCofThisEvent* HCE) override;
0027 G4bool ProcessHits(G4Step* aStep, G4TouchableHistory* ROhist) override;
0028 void EndOfEvent(G4HCofThisEvent* HCE) override;
0029 void clear() override;
0030 void DrawAll() override;
0031 void PrintAll() override;
0032
0033 void clearHits() override;
0034 uint32_t setDetUnitId(const G4Step*) override;
0035 void fillHits(edm::PCaloHitContainer&, const std::string&) override;
0036
0037 private:
0038 G4int theHCID;
0039 HFShowerG4HitsCollection* theHC;
0040 int theNSteps;
0041 };
0042
0043 #endif