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 
17 
18 #include "G4String.hh"
19 #include <string>
20 #include <map>
21 
22 class EcalBaseNumber;
23 class G4LogicalVolume;
25 
26 class ECalSD : public CaloSD {
27 
28 public:
29 
30  ECalSD(G4String, const DDCompactView &, const SensitiveDetectorCatalog &,
31  edm::ParameterSet const & p, const SimTrackManager*);
32  virtual ~ECalSD();
33  virtual double getEnergyDeposit(G4Step*);
34  virtual uint16_t getRadiationLength(G4Step *);
35  virtual uint32_t setDetUnitId(G4Step*);
37  virtual int getTrackID(G4Track*);
38  virtual uint16_t getDepth(G4Step*);
39 
40 private:
41 
42  void initMap(G4String, const DDCompactView &);
43  double curve_LY(G4Step*);
44  double crystalLength(G4LogicalVolume*);
45  double crystalDepth(G4LogicalVolume*, const G4ThreeVector&);
46  void getBaseNumber(const G4Step*);
47  double getBirkL3(G4Step*);
48  std::vector<double> getDDDArray(const std::string&,
49  const DDsvalues_type&);
50  std::vector<std::string> getStringArray(const std::string&,
51  const DDsvalues_type&);
52 
57  double slopeLY, scaleRL;
59  std::map<G4LogicalVolume*,double> xtalLMap;
60  std::vector<G4LogicalVolume*> useDepth1, useDepth2, noWeight;
64 };
65 
66 #endif // ECalSD_h
bool ignoreDepCorr
Definition: ECalSD.h:55
bool useBirkL3
Definition: ECalSD.h:55
std::vector< std::string > getStringArray(const std::string &, const DDsvalues_type &)
Definition: ECalSD.cc:517
double birkSlope
Definition: ECalSD.h:56
double slopeLY
Definition: ECalSD.h:57
std::vector< G4LogicalVolume * > useDepth1
Definition: ECalSD.h:60
Definition: CaloSD.h:42
void getBaseNumber(const G4Step *)
Definition: ECalSD.cc:452
virtual double getEnergyDeposit(G4Step *)
Definition: ECalSD.cc:139
double birk1
Definition: ECalSD.h:56
bool useWeight
Definition: ECalSD.h:54
type of data representation of DDCompactView
Definition: DDCompactView.h:77
std::vector< G4LogicalVolume * > noWeight
Definition: ECalSD.h:60
bool storeRL
Definition: ECalSD.h:54
std::vector< G4LogicalVolume * > useDepth2
Definition: ECalSD.h:60
virtual uint16_t getDepth(G4Step *)
Definition: ECalSD.cc:227
std::string depth1Name
Definition: ECalSD.h:58
virtual ~ECalSD()
Definition: ECalSD.cc:135
EcalBaseNumber theBaseNumber
Definition: ECalSD.h:61
bool storeTrack
Definition: ECalSD.h:54
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 scaleRL
Definition: ECalSD.h:57
double crystalLength(G4LogicalVolume *)
Definition: ECalSD.cc:433
virtual int getTrackID(G4Track *)
Definition: ECalSD.cc:206
void initMap(G4String, const DDCompactView &)
Definition: ECalSD.cc:277
double curve_LY(G4Step *)
Definition: ECalSD.cc:394
std::string depth2Name
Definition: ECalSD.h:58
Definition: ECalSD.h:26
bool ageingWithSlopeLY
Definition: ECalSD.h:63
bool useBirk
Definition: ECalSD.h:55
double crystalDepth(G4LogicalVolume *, const G4ThreeVector &)
Definition: ECalSD.cc:440
std::vector< double > getDDDArray(const std::string &, const DDsvalues_type &)
Definition: ECalSD.cc:498
virtual uint16_t getRadiationLength(G4Step *)
Definition: ECalSD.cc:240
double getBirkL3(G4Step *)
Definition: ECalSD.cc:472
ECalSD(G4String, const DDCompactView &, const SensitiveDetectorCatalog &, edm::ParameterSet const &p, const SimTrackManager *)
Definition: ECalSD.cc:38
double birk2
Definition: ECalSD.h:56
virtual uint32_t setDetUnitId(G4Step *)
Definition: ECalSD.cc:258
EcalNumberingScheme * numberingScheme
Definition: ECalSD.h:53
EnergyResolutionVsLumi ageing
Definition: ECalSD.h:62
std::map< G4LogicalVolume *, double > xtalLMap
Definition: ECalSD.h:59
void setNumberingScheme(EcalNumberingScheme *)
Definition: ECalSD.cc:267
double birkCut
Definition: ECalSD.h:56
std::string crystalMat
Definition: ECalSD.h:58
double birk3
Definition: ECalSD.h:56