CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Protected Attributes
CaloHitResponse Class Reference

Creates electronics signals from hits. More...

#include <CaloHitResponse.h>

Inheritance diagram for CaloHitResponse:
HcalSiPMHitResponse

Public Types

enum  { BUNCHSPACE =25 }
 
typedef std::map< DetId,
CaloSamples
AnalogSignalMap
 

Public Member Functions

virtual void add (const PCaloHit &hit, CLHEP::HepRandomEngine *)
 process a single SimHit More...
 
void add (const CaloSamples &signal)
 add a signal, in units of pe More...
 
void addHit (const PCaloHit *hit, CaloSamples &frame) const
 adds the amplitude for a single hit to the frame More...
 
double analogSignalAmplitude (const DetId &id, float energy, const CaloSimParameters &parameters, CLHEP::HepRandomEngine *) const
 
 CaloHitResponse (const CaloVSimParameterMap *parameterMap, const CaloVShape *shape)
 
 CaloHitResponse (const CaloVSimParameterMap *parameterMap, const CaloShapes *shapes)
 
void clear ()
 frees up memory More...
 
virtual void finalizeHits (CLHEP::HepRandomEngine *)
 Finalize hits. More...
 
CaloSamplesfindSignal (const DetId &detId)
 users can look for the signal for a given cell More...
 
void initHBHEScale ()
 
virtual void initializeHits ()
 Initialize hits. More...
 
virtual bool keepBlank () const
 
virtual CaloSamples makeAnalogSignal (const PCaloHit &inputHit, CLHEP::HepRandomEngine *) const
 creates the signal corresponding to this hit More...
 
CaloSamples makeBlankSignal (const DetId &detId) const
 creates an empty signal for this DetId More...
 
int nSignals () const
 number of signals in the current cache More...
 
virtual void run (MixCollection< PCaloHit > &hits, CLHEP::HepRandomEngine *)
 Complete cell digitization. More...
 
void setBunchRange (int minBunch, int maxBunch)
 tells it which pileup bunches to do More...
 
void setGeometry (const CaloGeometry *geometry)
 geometry needed for time-of-flight More...
 
void setHBHEScale (std::string &)
 
void setHitCorrection (const CaloVHitCorrection *hitCorrection)
 If you want to correct hits, for attenuation or delay, set this. More...
 
void setHitFilter (const CaloVHitFilter *filter)
 if you want to reject hits, for example, from a certain subdetector, set this More...
 
void setPECorrection (const CaloVPECorrection *peCorrection)
 if you want to correct the photoelectrons More...
 
void setPhaseShift (const double &thePhaseShift)
 setting the phase shift for asynchronous trigger (e.g. test beams) More...
 
double timeOfFlight (const DetId &detId) const
 
bool withinBunchRange (int bunchCrossing) const
 check if crossing is within bunch range: More...
 
virtual ~CaloHitResponse ()
 doesn't delete the pointers passed in More...
 

Protected Attributes

bool changeScale
 
float hcal_en_scale [100][72][4]
 
AnalogSignalMap theAnalogSignalMap
 
const CaloGeometrytheGeometry
 
const CaloVHitCorrectiontheHitCorrection
 
const CaloVHitFiltertheHitFilter
 
int theMaxBunch
 
int theMinBunch
 
const CaloVSimParameterMaptheParameterMap
 
const CaloVPECorrectionthePECorrection
 
double thePhaseShift_
 
const CaloVShapetheShape
 
const CaloShapestheShapes
 

Detailed Description

Creates electronics signals from hits.

Definition at line 34 of file CaloHitResponse.h.

Member Typedef Documentation

Definition at line 37 of file CaloHitResponse.h.

Member Enumeration Documentation

anonymous enum
Enumerator
BUNCHSPACE 

Definition at line 39 of file CaloHitResponse.h.

Constructor & Destructor Documentation

CaloHitResponse::CaloHitResponse ( const CaloVSimParameterMap parameterMap,
const CaloVShape shape 
)

Definition at line 21 of file CaloHitResponse.cc.

24  theParameterMap(parametersMap),
25  theShapes(0),
26  theShape(shape),
28  thePECorrection(0),
29  theHitFilter(0),
30  theGeometry(0),
31  theMinBunch(-10),
32  theMaxBunch(10),
33  thePhaseShift_(1.),
34  changeScale(false) {}
const CaloGeometry * theGeometry
const CaloVPECorrection * thePECorrection
const CaloVHitCorrection * theHitCorrection
AnalogSignalMap theAnalogSignalMap
const CaloShapes * theShapes
const CaloVSimParameterMap * theParameterMap
const CaloVHitFilter * theHitFilter
const CaloVShape * theShape
CaloHitResponse::CaloHitResponse ( const CaloVSimParameterMap parameterMap,
const CaloShapes shapes 
)

Definition at line 36 of file CaloHitResponse.cc.

39  theParameterMap(parametersMap),
40  theShapes(shapes),
41  theShape(0),
43  thePECorrection(0),
44  theHitFilter(0),
45  theGeometry(0),
46  theMinBunch(-10),
47  theMaxBunch(10),
48  thePhaseShift_(1.),
49  changeScale(false) {}
const CaloGeometry * theGeometry
const CaloVPECorrection * thePECorrection
const CaloVHitCorrection * theHitCorrection
AnalogSignalMap theAnalogSignalMap
const CaloShapes * theShapes
const CaloVSimParameterMap * theParameterMap
const CaloVHitFilter * theHitFilter
const CaloVShape * theShape
CaloHitResponse::~CaloHitResponse ( )
virtual

doesn't delete the pointers passed in

Definition at line 51 of file CaloHitResponse.cc.

51  {
52 }

Member Function Documentation

void CaloHitResponse::add ( const PCaloHit hit,
CLHEP::HepRandomEngine *  engine 
)
virtual

process a single SimHit

Reimplemented in HcalSiPMHitResponse.

Definition at line 103 of file CaloHitResponse.cc.

References CaloVHitFilter::accepts(), i, edm::isNotFinite(), keep, keepBlank(), LogDebug, makeAnalogSignal(), CaloSamples::size(), findQualityFiles::size, theHitFilter, and PCaloHit::time().

Referenced by CaloTDigitizer< Traits >::add(), CaloTDigitizer< Traits >::addNoiseHits(), CaloTDigitizer< Traits >::addNoiseSignals(), and run().

103  {
104  // check the hit time makes sense
105  if ( edm::isNotFinite(hit.time()) ) { return; }
106 
107  // maybe it's not from this subdetector
108  if(theHitFilter == 0 || theHitFilter->accepts(hit)) {
109  LogDebug("CaloHitResponse") << hit;
110  CaloSamples signal( makeAnalogSignal( hit, engine ) ) ;
111 
112  bool keep ( keepBlank() ) ; // here we check for blank signal if not keeping them
113  if( !keep )
114  {
115  const unsigned int size ( signal.size() ) ;
116  if( 0 != size )
117  {
118  for( unsigned int i ( 0 ) ; i != size ; ++i )
119  {
120  keep = keep || signal[i] > 1.e-7 ;
121  }
122  }
123  }
124 
125 
126  // std::cout << "CaloHitResponse " << signal << std::endl;
127  if( keep ) add(signal);
128  }
129 }
#define LogDebug(id)
int i
Definition: DBlmapReader.cc:9
double time() const
Definition: PCaloHit.h:36
virtual bool keepBlank() const
const int keep
bool isNotFinite(T x)
Definition: isFinite.h:10
virtual CaloSamples makeAnalogSignal(const PCaloHit &inputHit, CLHEP::HepRandomEngine *) const
creates the signal corresponding to this hit
virtual bool accepts(const PCaloHit &hit) const =0
virtual void add(const PCaloHit &hit, CLHEP::HepRandomEngine *)
process a single SimHit
const CaloVHitFilter * theHitFilter
tuple size
Write out results.
void CaloHitResponse::add ( const CaloSamples signal)

add a signal, in units of pe

Definition at line 132 of file CaloHitResponse.cc.

References findSignal(), i, CaloSamples::id(), CaloSamples::presamples(), CaloSamples::size(), and theAnalogSignalMap.

133 {
134  DetId id(signal.id());
135  CaloSamples * oldSignal = findSignal(id);
136  if (oldSignal == 0) {
137  theAnalogSignalMap[id] = signal;
138  //std::cout << "CaloHitResponseAdd " << signal << std::endl;
139 
140  } else {
141  // need a "+=" to CaloSamples
142  int sampleSize = oldSignal->size();
143  assert(sampleSize == signal.size());
144  assert(signal.presamples() == oldSignal->presamples());
145 
146  for(int i = 0; i < sampleSize; ++i) {
147  (*oldSignal)[i] += signal[i];
148  }
149  //std::cout << "CaloHitResponseAdd " << (*oldSignal) << std::endl;
150  }
151 }
int i
Definition: DBlmapReader.cc:9
int presamples() const
access presample information
Definition: CaloSamples.h:36
AnalogSignalMap theAnalogSignalMap
Definition: DetId.h:18
int size() const
get the size
Definition: CaloSamples.h:24
CaloSamples * findSignal(const DetId &detId)
users can look for the signal for a given cell
DetId id() const
get the (generic) id
Definition: CaloSamples.h:21
void CaloHitResponse::addHit ( const PCaloHit hit,
CaloSamples frame 
) const

adds the amplitude for a single hit to the frame

double CaloHitResponse::analogSignalAmplitude ( const DetId id,
float  energy,
const CaloSimParameters parameters,
CLHEP::HepRandomEngine *  engine 
) const

finds the amplitude contribution from this hit, applying photostatistics, if needed. Results are in photoelectrons

Definition at line 188 of file CaloHitResponse.cc.

References changeScale, CaloVPECorrection::correctPE(), HcalDetId::depth(), DetId::det(), CaloSimParameters::doPhotostatistics(), DetId::Hcal, hcal_en_scale, HcalBarrel, HcalEndcap, HcalDetId::ieta(), HcalDetId::iphi(), LogDebug, CaloSimParameters::simHitToPhotoelectrons(), HcalDetId::subdet(), and thePECorrection.

Referenced by HcalSiPMHitResponse::add(), makeAnalogSignal(), and HcalSiPMHitResponse::makeSiPMSignal().

188  {
189 
190  // OK, the "energy" in the hit could be a real energy, deposited energy,
191  // or pe count. This factor converts to photoelectrons
192  //GMA Smeared in photon production it self
193  double scl =1.0;
194 #ifdef ChangeHcalEnergyScale
195  if (changeScale) {
196  if (detId.det()==DetId::Hcal ) {
197  HcalDetId dId = HcalDetId(detId);
198  if (dId.subdet()==HcalBarrel || dId.subdet()==HcalEndcap) {
199  int ieta = dId.ieta()+50;
200  int iphi = dId.iphi()-1;
201  int idep = dId.depth()-1;
202  scl = hcal_en_scale[ieta][iphi][idep];
203  LogDebug("CaloHitResponse") << " ID " << dId << " Scale " << scl;
204  }
205  }
206  }
207 #endif
208  double npe = scl * energy * parameters.simHitToPhotoelectrons(detId);
209  // do we need to doPoisson statistics for the photoelectrons?
210  if(parameters.doPhotostatistics()) {
211  CLHEP::RandPoissonQ randPoissonQ(*engine, npe);
212  npe = randPoissonQ.fire();
213  }
214  if(thePECorrection) npe = thePECorrection->correctPE(detId, npe, engine);
215  return npe;
216 }
#define LogDebug(id)
float hcal_en_scale[100][72][4]
HcalSubdetector subdet() const
get the subdetector
Definition: HcalDetId.h:30
bool doPhotostatistics() const
whether or not to apply Poisson statistics to photoelectrons
virtual double correctPE(const DetId &detId, double npe, CLHEP::HepRandomEngine *) const =0
const CaloVPECorrection * thePECorrection
int depth() const
get the tower depth
Definition: HcalDetId.h:40
int ieta() const
get the cell ieta
Definition: HcalDetId.h:36
double simHitToPhotoelectrons() const
int iphi() const
get the cell iphi
Definition: HcalDetId.h:38
void CaloHitResponse::clear ( void  )
inline

frees up memory

Definition at line 90 of file CaloHitResponse.h.

References theAnalogSignalMap.

Referenced by EcalMixingModuleValidation::computeSDBunchDigi(), and CaloTDigitizer< Traits >::run().

90 {theAnalogSignalMap.clear();}
AnalogSignalMap theAnalogSignalMap
virtual void CaloHitResponse::finalizeHits ( CLHEP::HepRandomEngine *  )
inlinevirtual

Finalize hits.

Reimplemented in HcalSiPMHitResponse.

Definition at line 63 of file CaloHitResponse.h.

Referenced by CaloTDigitizer< Traits >::run().

63 {}
CaloSamples * CaloHitResponse::findSignal ( const DetId detId)

users can look for the signal for a given cell

Definition at line 219 of file CaloHitResponse.cc.

References query::result, and theAnalogSignalMap.

Referenced by HcalSiPMHitResponse::add(), add(), EcalMixingModuleValidation::computeSDBunchDigi(), and CaloTDigitizer< Traits >::run().

219  {
220  CaloSamples * result = 0;
221  AnalogSignalMap::iterator signalItr = theAnalogSignalMap.find(detId);
222  if(signalItr == theAnalogSignalMap.end()) {
223  result = 0;
224  } else {
225  result = &(signalItr->second);
226  }
227  return result;
228 }
tuple result
Definition: query.py:137
AnalogSignalMap theAnalogSignalMap
void CaloHitResponse::initHBHEScale ( )

Definition at line 54 of file CaloHitResponse.cc.

References hcal_en_scale.

Referenced by HcalDigitizer::HcalDigitizer().

54  {
55 #ifdef ChangeHcalEnergyScale
56  for (int ij=0; ij<100; ij++) {
57  for (int jk=0; jk<72; jk++) {
58  for (int kl=0; kl<4; kl++) {
59  hcal_en_scale[ij][jk][kl] = 1.0;
60  }
61  }
62  }
63 #endif
64 }
float hcal_en_scale[100][72][4]
virtual void CaloHitResponse::initializeHits ( )
inlinevirtual

Initialize hits.

Reimplemented in HcalSiPMHitResponse.

Definition at line 60 of file CaloHitResponse.h.

Referenced by CaloTDigitizer< Traits >::initializeHits().

60 {}
virtual bool CaloHitResponse::keepBlank ( ) const
inlinevirtual

Definition at line 57 of file CaloHitResponse.h.

References funct::true.

Referenced by add(), and HcalSiPMHitResponse::finalizeHits().

57 { return true ; }
CaloSamples CaloHitResponse::makeAnalogSignal ( const PCaloHit inputHit,
CLHEP::HepRandomEngine *  engine 
) const
virtual

creates the signal corresponding to this hit

Definition at line 154 of file CaloHitResponse.cc.

References analogSignalAmplitude(), newFWLiteAna::bin, BUNCHSPACE, CaloVHitCorrection::delay(), PCaloHit::energy(), PCaloHit::id(), makeBlankSignal(), Parameters::parameters, query::result, CaloShapes::shape(), CaloVSimParameterMap::simParameters(), CaloSamples::size(), theHitCorrection, theParameterMap, thePhaseShift_, theShape, theShapes, PCaloHit::time(), cond::rpcobgas::time, timeOfFlight(), CaloVShape::timeToRise(), and tzero.

Referenced by add().

154  {
155 
156  DetId detId(hit.id());
158 
159  double signal = analogSignalAmplitude(detId, hit.energy(), parameters, engine);
160 
161  double time = hit.time();
162  if(theHitCorrection != 0) {
163  time += theHitCorrection->delay(hit, engine);
164  }
165  double jitter = hit.time() - timeOfFlight(detId);
166 
167  const CaloVShape * shape = theShape;
168  if(!shape) {
169  shape = theShapes->shape(detId);
170  }
171  // assume bins count from zero, go for center of bin
172  const double tzero = ( shape->timeToRise()
173  + parameters.timePhase()
174  - jitter
175  - BUNCHSPACE*( parameters.binOfMaximum()
176  - thePhaseShift_ ) ) ;
177  double binTime = tzero;
178 
180 
181  for(int bin = 0; bin < result.size(); bin++) {
182  result[bin] += (*shape)(binTime)* signal;
183  binTime += BUNCHSPACE;
184  }
185  return result;
186 }
dictionary parameters
Definition: Parameters.py:2
CaloSamples makeBlankSignal(const DetId &detId) const
creates an empty signal for this DetId
Electronic response of the preamp.
Definition: CaloVShape.h:11
Main class for Parameters in different subdetectors.
tuple result
Definition: query.py:137
virtual double timeToRise() const =0
virtual const CaloSimParameters & simParameters(const DetId &id) const =0
double timeOfFlight(const DetId &detId) const
const CaloVHitCorrection * theHitCorrection
virtual double delay(const PCaloHit &hit, CLHEP::HepRandomEngine *) const =0
unsigned int id
Definition: DetId.h:18
double analogSignalAmplitude(const DetId &id, float energy, const CaloSimParameters &parameters, CLHEP::HepRandomEngine *) const
const CaloShapes * theShapes
const CaloVSimParameterMap * theParameterMap
static const double tzero[3]
const CaloVShape * theShape
virtual const CaloVShape * shape(const DetId &detId) const
Definition: CaloShapes.h:15
CaloSamples CaloHitResponse::makeBlankSignal ( const DetId detId) const

creates an empty signal for this DetId

Definition at line 231 of file CaloHitResponse.cc.

References CaloSimParameters::binOfMaximum(), Parameters::parameters, CaloSimParameters::readoutFrameSize(), query::result, CaloVSimParameterMap::simParameters(), and theParameterMap.

Referenced by makeAnalogSignal(), and CaloTDigitizer< Traits >::run().

231  {
233  CaloSamples result(detId, parameters.readoutFrameSize());
234  result.setPresamples(parameters.binOfMaximum()-1);
235  return result;
236 }
dictionary parameters
Definition: Parameters.py:2
Main class for Parameters in different subdetectors.
tuple result
Definition: query.py:137
virtual const CaloSimParameters & simParameters(const DetId &id) const =0
int readoutFrameSize() const
for now, the LinearFrames and trhe digis will be one-to-one.
const CaloVSimParameterMap * theParameterMap
int binOfMaximum() const
int CaloHitResponse::nSignals ( ) const
inline

number of signals in the current cache

Definition at line 106 of file CaloHitResponse.h.

References theAnalogSignalMap.

Referenced by CaloTDigitizer< Traits >::run().

106 {return theAnalogSignalMap.size();}
AnalogSignalMap theAnalogSignalMap
void CaloHitResponse::run ( MixCollection< PCaloHit > &  hits,
CLHEP::HepRandomEngine *  engine 
)
virtual

Complete cell digitization.

Reimplemented in HcalSiPMHitResponse.

Definition at line 93 of file CaloHitResponse.cc.

References add(), MixCollection< T >::begin(), MixCollection< T >::end(), and withinBunchRange().

Referenced by EcalMixingModuleValidation::computeSDBunchDigi().

93  {
94 
95  for(MixCollection<PCaloHit>::MixItr hitItr = hits.begin();
96  hitItr != hits.end(); ++hitItr) {
97  if(withinBunchRange(hitItr.bunch())) {
98  add(*hitItr, engine);
99  } // loop over hits
100  }
101 }
bool withinBunchRange(int bunchCrossing) const
check if crossing is within bunch range:
iterator end()
iterator begin()
virtual void add(const PCaloHit &hit, CLHEP::HepRandomEngine *)
process a single SimHit
void CaloHitResponse::setBunchRange ( int  minBunch,
int  maxBunch 
)

tells it which pileup bunches to do

Definition at line 88 of file CaloHitResponse.cc.

References theMaxBunch, and theMinBunch.

Referenced by EcalMixingModuleValidation::computeSDBunchDigi().

88  {
89  theMinBunch = minBunch;
90  theMaxBunch = maxBunch;
91 }
void CaloHitResponse::setGeometry ( const CaloGeometry geometry)
inline

geometry needed for time-of-flight

Definition at line 55 of file CaloHitResponse.h.

References geometry, and theGeometry.

Referenced by CastorDigiProducer::checkGeometry(), EcalMixingModuleValidation::computeSDBunchDigi(), HcalTBDigiProducer::updateGeometry(), HcalDigitizer::updateGeometry(), and EcalDigiProducer::updateGeometry().

55 { theGeometry = geometry; }
const CaloGeometry * theGeometry
ESHandle< TrackerGeometry > geometry
void CaloHitResponse::setHBHEScale ( std::string &  fileIn)

Definition at line 66 of file CaloHitResponse.cc.

References changeScale, eta(), hcal_en_scale, getDQMSummary::infile, LogDebug, and phi.

Referenced by HcalDigitizer::HcalDigitizer().

66  {
67 
68  std::ifstream infile(fileIn.c_str());
69  LogDebug("CaloHitResponse") << "Reading from " << fileIn;
70 #ifdef ChangeHcalEnergyScale
71  if (!infile.is_open()) {
72  edm::LogError("CaloHitResponse") << "** ERROR: Can't open '" << fileIn << "' for the input file";
73  } else {
74  int eta, phi, depth;
75  double cFactor;
76  while(1) {
77  infile >> eta >> phi >> depth >> cFactor;
78  if (!infile.good()) break;
79  hcal_en_scale[eta][phi][depth] = cFactor;
80  // LogDebug("CaloHitResponse") << "hcal_en_scale[" << eta << "][" << phi << "][" << depth << "] = " << hcal_en_scale[eta][phi][depth];
81  }
82  infile.close();
83  }
84  changeScale = true;
85 #endif
86 }
#define LogDebug(id)
float hcal_en_scale[100][72][4]
T eta() const
Definition: DDAxes.h:10
void CaloHitResponse::setHitCorrection ( const CaloVHitCorrection hitCorrection)
inline

If you want to correct hits, for attenuation or delay, set this.

Definition at line 80 of file CaloHitResponse.h.

References theHitCorrection.

Referenced by CastorDigiProducer::CastorDigiProducer(), and HcalTBDigiProducer::HcalTBDigiProducer().

80  {
81  theHitCorrection = hitCorrection;
82  }
const CaloVHitCorrection * theHitCorrection
void CaloHitResponse::setHitFilter ( const CaloVHitFilter filter)
inline

if you want to reject hits, for example, from a certain subdetector, set this

Definition at line 75 of file CaloHitResponse.h.

References alcazmumu_cfi::filter, and theHitFilter.

Referenced by CastorDigiProducer::CastorDigiProducer(), HcalDigitizer::HcalDigitizer(), and HcalTBDigiProducer::HcalTBDigiProducer().

75  {
77  }
const CaloVHitFilter * theHitFilter
void CaloHitResponse::setPECorrection ( const CaloVPECorrection peCorrection)
inline

if you want to correct the photoelectrons

Definition at line 85 of file CaloHitResponse.h.

References thePECorrection.

Referenced by HcalDigitizer::HcalDigitizer().

85  {
86  thePECorrection = peCorrection;
87  }
const CaloVPECorrection * thePECorrection
void CaloHitResponse::setPhaseShift ( const double &  thePhaseShift)
inline

setting the phase shift for asynchronous trigger (e.g. test beams)

Definition at line 117 of file CaloHitResponse.h.

References thePhaseShift_.

Referenced by HcalTBDigiProducer::setPhaseShift().

117 { thePhaseShift_ = thePhaseShift; }
double CaloHitResponse::timeOfFlight ( const DetId detId) const

time-of-flight, in ns, to get to this cell returns 0 if no geometry has been set

Definition at line 239 of file CaloHitResponse.cc.

References CaloSubdetectorGeometry::getGeometry(), CaloCellGeometry::getPosition(), CaloGeometry::getSubdetectorGeometry(), PV3DBase< T, PVType, FrameType >::mag(), DetId::rawId(), query::result, and theGeometry.

Referenced by HcalSiPMHitResponse::add(), makeAnalogSignal(), and HcalSiPMHitResponse::makeSiPMSignal().

239  {
240  // not going to assume there's one of these per subdetector.
241  // Take the whole CaloGeometry and find the right subdet
242  double result = 0.;
243  if(theGeometry == 0) {
244  edm::LogWarning("CaloHitResponse") << "No Calo Geometry set, so no time of flight correction";
245  }
246  else {
247  const CaloCellGeometry* cellGeometry = theGeometry->getSubdetectorGeometry(detId)->getGeometry(detId);
248  if(cellGeometry == 0) {
249  edm::LogWarning("CaloHitResponse") << "No Calo cell found for ID"
250  << detId.rawId() << " so no time-of-flight subtraction will be done";
251  }
252  else {
253  double distance = cellGeometry->getPosition().mag();
254  result = distance * cm / c_light; // Units of c_light: mm/ns
255  }
256  }
257  return result;
258 }
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
Definition: CaloGeometry.cc:43
const CaloGeometry * theGeometry
virtual const CaloCellGeometry * getGeometry(const DetId &id) const
Get the cell geometry of a given detector id. Should return false if not found.
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
T mag() const
Definition: PV3DBase.h:67
tuple result
Definition: query.py:137
const GlobalPoint & getPosition() const
Returns the position of reference for this cell.
bool CaloHitResponse::withinBunchRange ( int  bunchCrossing) const
inline

check if crossing is within bunch range:

Definition at line 121 of file CaloHitResponse.h.

References theMaxBunch, and theMinBunch.

Referenced by CaloTDigitizer< Traits >::add(), and run().

121  {
122  return(bunchCrossing >= theMinBunch && bunchCrossing <= theMaxBunch);
123  }

Member Data Documentation

bool CaloHitResponse::changeScale
protected

Definition at line 144 of file CaloHitResponse.h.

Referenced by analogSignalAmplitude(), and setHBHEScale().

float CaloHitResponse::hcal_en_scale[100][72][4]
protected

Definition at line 146 of file CaloHitResponse.h.

Referenced by analogSignalAmplitude(), initHBHEScale(), and setHBHEScale().

AnalogSignalMap CaloHitResponse::theAnalogSignalMap
protected

Definition at line 127 of file CaloHitResponse.h.

Referenced by HcalSiPMHitResponse::add(), add(), clear(), findSignal(), and nSignals().

const CaloGeometry* CaloHitResponse::theGeometry
protected

Definition at line 136 of file CaloHitResponse.h.

Referenced by setGeometry(), and timeOfFlight().

const CaloVHitCorrection* CaloHitResponse::theHitCorrection
protected
const CaloVHitFilter* CaloHitResponse::theHitFilter
protected
int CaloHitResponse::theMaxBunch
protected

Definition at line 139 of file CaloHitResponse.h.

Referenced by HcalSiPMHitResponse::run(), setBunchRange(), and withinBunchRange().

int CaloHitResponse::theMinBunch
protected

Definition at line 138 of file CaloHitResponse.h.

Referenced by HcalSiPMHitResponse::run(), setBunchRange(), and withinBunchRange().

const CaloVSimParameterMap* CaloHitResponse::theParameterMap
protected
const CaloVPECorrection* CaloHitResponse::thePECorrection
protected

Definition at line 133 of file CaloHitResponse.h.

Referenced by analogSignalAmplitude(), and setPECorrection().

double CaloHitResponse::thePhaseShift_
protected
const CaloVShape* CaloHitResponse::theShape
protected

Definition at line 131 of file CaloHitResponse.h.

Referenced by makeAnalogSignal().

const CaloShapes* CaloHitResponse::theShapes
protected

Definition at line 130 of file CaloHitResponse.h.

Referenced by makeAnalogSignal(), and HcalSiPMHitResponse::makeSiPMSignal().