CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ECalSD.h
Go to the documentation of this file.
1 #ifndef SimG4CMS_ECalSD_h
2 #define SimG4CMS_ECalSD_h
3 // File: ECalSD.h
5 // Description: Stores hits of Electromagnetic calorimeters in appropriate
6 // container
7 // Use in your sensitive detector builder:
8 // ECalSD* ecalSD = new ECalSD(SDname, new CaloNumberingScheme());
10 
14 
16 
17 #include "G4String.hh"
18 #include <string>
19 #include <map>
20 
21 class EcalBaseNumber;
22 class G4LogicalVolume;
23 
24 class ECalSD : public CaloSD {
25 
26 public:
27 
28  ECalSD(G4String, const DDCompactView &, SensitiveDetectorCatalog &,
29  edm::ParameterSet const &, const SimTrackManager*);
30  virtual ~ECalSD();
31  virtual double getEnergyDeposit(G4Step*);
32  virtual uint16_t getRadiationLength(G4Step *);
33  virtual uint32_t setDetUnitId(G4Step*);
35  virtual int getTrackID(G4Track*);
36  virtual uint16_t getDepth(G4Step*);
37 
38 private:
39 
40  void initMap(G4String, const DDCompactView &);
41  double curve_LY(G4Step*);
42  double crystalLength(G4LogicalVolume*);
43  void getBaseNumber(const G4Step*);
44  double getBirkL3(G4Step*);
45  std::vector<double> getDDDArray(const std::string&,
46  const DDsvalues_type&);
47  std::vector<std::string> getStringArray(const std::string&,
48  const DDsvalues_type&);
49 
54  double slopeLY;
56  std::map<G4LogicalVolume*,double> xtalLMap;
57  std::vector<G4LogicalVolume*> useDepth1, useDepth2, noWeight;
59 };
60 
61 #endif // ECalSD_h
bool useBirkL3
Definition: ECalSD.h:52
std::vector< std::string > getStringArray(const std::string &, const DDsvalues_type &)
Definition: ECalSD.cc:469
double birkSlope
Definition: ECalSD.h:53
double slopeLY
Definition: ECalSD.h:54
std::vector< G4LogicalVolume * > useDepth1
Definition: ECalSD.h:57
Definition: CaloSD.h:42
void getBaseNumber(const G4Step *)
Definition: ECalSD.cc:404
virtual double getEnergyDeposit(G4Step *)
Definition: ECalSD.cc:132
double birk1
Definition: ECalSD.h:53
bool useWeight
Definition: ECalSD.h:51
ECalSD(G4String, const DDCompactView &, SensitiveDetectorCatalog &, edm::ParameterSet const &, const SimTrackManager *)
Definition: ECalSD.cc:37
type of data representation of DDCompactView
Definition: DDCompactView.h:77
std::vector< G4LogicalVolume * > noWeight
Definition: ECalSD.h:57
bool storeRL
Definition: ECalSD.h:51
std::vector< G4LogicalVolume * > useDepth2
Definition: ECalSD.h:57
virtual uint16_t getDepth(G4Step *)
Definition: ECalSD.cc:202
std::string depth1Name
Definition: ECalSD.h:55
virtual ~ECalSD()
Definition: ECalSD.cc:128
EcalBaseNumber theBaseNumber
Definition: ECalSD.h:58
bool storeTrack
Definition: ECalSD.h:51
std::vector< std::pair< unsigned int, DDValue > > DDsvalues_type
std::maps an index to a DDValue. The index corresponds to the index assigned to the name of the std::...
Definition: DDsvalues.h:19
double crystalLength(G4LogicalVolume *)
Definition: ECalSD.cc:396
virtual int getTrackID(G4Track *)
Definition: ECalSD.cc:181
void initMap(G4String, const DDCompactView &)
Definition: ECalSD.cc:252
double curve_LY(G4Step *)
Definition: ECalSD.cc:366
std::string depth2Name
Definition: ECalSD.h:55
Definition: ECalSD.h:24
bool useBirk
Definition: ECalSD.h:52
std::vector< double > getDDDArray(const std::string &, const DDsvalues_type &)
Definition: ECalSD.cc:450
virtual uint16_t getRadiationLength(G4Step *)
Definition: ECalSD.cc:214
double getBirkL3(G4Step *)
Definition: ECalSD.cc:424
double birk2
Definition: ECalSD.h:53
virtual uint32_t setDetUnitId(G4Step *)
Definition: ECalSD.cc:233
EcalNumberingScheme * numberingScheme
Definition: ECalSD.h:50
std::map< G4LogicalVolume *, double > xtalLMap
Definition: ECalSD.h:56
void setNumberingScheme(EcalNumberingScheme *)
Definition: ECalSD.cc:242
double birkCut
Definition: ECalSD.h:53
std::string crystalMat
Definition: ECalSD.h:55
double birk3
Definition: ECalSD.h:53