CMS 3D CMS Logo

ShallowGainCalibration.cc
Go to the documentation of this file.
4 
5 using namespace edm;
6 using namespace reco;
7 using namespace std;
8 
10  : tracks_token_(consumes<edm::View<reco::Track>>(iConfig.getParameter<edm::InputTag>("Tracks"))),
11  association_token_(consumes<TrajTrackAssociationCollection>(iConfig.getParameter<edm::InputTag>("Tracks"))),
12  Suffix(iConfig.getParameter<std::string>("Suffix")),
13  Prefix(iConfig.getParameter<std::string>("Prefix")) {
14  produces<std::vector<int>>(Prefix + "trackindex" + Suffix);
15  produces<std::vector<unsigned int>>(Prefix + "rawid" + Suffix);
16  produces<std::vector<double>>(Prefix + "localdirx" + Suffix);
17  produces<std::vector<double>>(Prefix + "localdiry" + Suffix);
18  produces<std::vector<double>>(Prefix + "localdirz" + Suffix);
19  produces<std::vector<unsigned short>>(Prefix + "firststrip" + Suffix);
20  produces<std::vector<unsigned short>>(Prefix + "nstrips" + Suffix);
21  produces<std::vector<bool>>(Prefix + "saturation" + Suffix);
22  produces<std::vector<bool>>(Prefix + "overlapping" + Suffix);
23  produces<std::vector<bool>>(Prefix + "farfromedge" + Suffix);
24  produces<std::vector<unsigned int>>(Prefix + "charge" + Suffix);
25  produces<std::vector<double>>(Prefix + "path" + Suffix);
26 #ifdef ExtendedCALIBTree
27  produces<std::vector<double>>(Prefix + "chargeoverpath" + Suffix);
28 #endif
29  produces<std::vector<unsigned char>>(Prefix + "amplitude" + Suffix);
30  produces<std::vector<double>>(Prefix + "gainused" + Suffix);
31  produces<std::vector<double>>(Prefix + "gainusedTick" + Suffix);
32 }
33 
35  auto trackindex = std::make_unique<std::vector<int>>();
36  auto rawid = std::make_unique<std::vector<unsigned int>>();
37  auto localdirx = std::make_unique<std::vector<double>>();
38  auto localdiry = std::make_unique<std::vector<double>>();
39  auto localdirz = std::make_unique<std::vector<double>>();
40  auto firststrip = std::make_unique<std::vector<unsigned short>>();
41  auto nstrips = std::make_unique<std::vector<unsigned short>>();
42  auto saturation = std::make_unique<std::vector<bool>>();
43  auto overlapping = std::make_unique<std::vector<bool>>();
44  auto farfromedge = std::make_unique<std::vector<bool>>();
45  auto charge = std::make_unique<std::vector<unsigned int>>();
46  auto path = std::make_unique<std::vector<double>>();
47 #ifdef ExtendedCALIBTree
48  auto chargeoverpath = std::make_unique<std::vector<double>>();
49 #endif
50  auto amplitude = std::make_unique<std::vector<unsigned char>>();
51  auto gainused = std::make_unique<std::vector<double>>();
52  auto gainusedTick = std::make_unique<std::vector<double>>();
53 
54  edm::ESHandle<TrackerGeometry> theTrackerGeometry;
55  iSetup.get<TrackerDigiGeometryRecord>().get(theTrackerGeometry);
56  m_tracker = &(*theTrackerGeometry);
57  edm::ESHandle<SiStripGain> gainHandle;
58  iSetup.get<SiStripGainRcd>().get(gainHandle);
60  iEvent.getByToken(tracks_token_, tracks);
63 
65  association != associations->end();
66  association++) {
67  const Trajectory* traj = association->key.get();
68  const reco::Track* track = association->val.get();
69 
70  vector<TrajectoryMeasurement> measurements = traj->measurements();
71  for (vector<TrajectoryMeasurement>::const_iterator measurement_it = measurements.begin();
72  measurement_it != measurements.end();
73  measurement_it++) {
74  TrajectoryStateOnSurface trajState = measurement_it->updatedState();
75  if (!trajState.isValid())
76  continue;
77 
78  const TrackingRecHit* hit = (*measurement_it->recHit()).hit();
79  const SiStripRecHit1D* sistripsimple1dhit = dynamic_cast<const SiStripRecHit1D*>(hit);
80  const SiStripRecHit2D* sistripsimplehit = dynamic_cast<const SiStripRecHit2D*>(hit);
81  const SiStripMatchedRecHit2D* sistripmatchedhit = dynamic_cast<const SiStripMatchedRecHit2D*>(hit);
82  const SiPixelRecHit* sipixelhit = dynamic_cast<const SiPixelRecHit*>(hit);
83 
84  const SiPixelCluster* PixelCluster = nullptr;
85  const SiStripCluster* StripCluster = nullptr;
86  uint32_t DetId = 0;
87 
88  for (unsigned int h = 0; h < 2; h++) {
89  if (!sistripmatchedhit && h == 1) {
90  continue;
91  } else if (sistripmatchedhit && h == 0) {
92  StripCluster = &sistripmatchedhit->monoCluster();
93  DetId = sistripmatchedhit->monoId();
94  } else if (sistripmatchedhit && h == 1) {
95  StripCluster = &sistripmatchedhit->stereoCluster();
96  ;
97  DetId = sistripmatchedhit->stereoId();
98  } else if (sistripsimplehit) {
99  StripCluster = (sistripsimplehit->cluster()).get();
100  DetId = sistripsimplehit->geographicalId().rawId();
101  } else if (sistripsimple1dhit) {
102  StripCluster = (sistripsimple1dhit->cluster()).get();
103  DetId = sistripsimple1dhit->geographicalId().rawId();
104  } else if (sipixelhit) {
105  PixelCluster = (sipixelhit->cluster()).get();
106  DetId = sipixelhit->geographicalId().rawId();
107  } else {
108  continue;
109  }
110 
111  LocalVector trackDirection = trajState.localDirection();
112  double cosine = trackDirection.z() / trackDirection.mag();
113  bool Saturation = false;
114  bool Overlapping = false;
115  unsigned int Charge = 0;
116  double Path = (10.0 * thickness(DetId)) / fabs(cosine);
117  double PrevGain = -1;
118  double PrevGainTick = -1;
119  int FirstStrip = 0;
120  int NStrips = 0;
121 
122  if (StripCluster) {
123  const auto& Ampls = StripCluster->amplitudes();
124  FirstStrip = StripCluster->firstStrip();
125  NStrips = Ampls.size();
126  int APVId = FirstStrip / 128;
127 
128  if (gainHandle.isValid()) {
129  PrevGain = gainHandle->getApvGain(APVId, gainHandle->getRange(DetId, 1), 1);
130  PrevGainTick = gainHandle->getApvGain(APVId, gainHandle->getRange(DetId, 0), 1);
131  }
132 
133  for (unsigned int a = 0; a < Ampls.size(); a++) {
134  Charge += Ampls[a];
135  if (Ampls[a] >= 254)
136  Saturation = true;
137  amplitude->push_back(Ampls[a]);
138  }
139 
140  if (FirstStrip == 0)
141  Overlapping = true;
142  if (FirstStrip == 128)
143  Overlapping = true;
144  if (FirstStrip == 256)
145  Overlapping = true;
146  if (FirstStrip == 384)
147  Overlapping = true;
148  if (FirstStrip == 512)
149  Overlapping = true;
150  if (FirstStrip == 640)
151  Overlapping = true;
152 
153  if (FirstStrip <= 127 && FirstStrip + Ampls.size() > 127)
154  Overlapping = true;
155  if (FirstStrip <= 255 && FirstStrip + Ampls.size() > 255)
156  Overlapping = true;
157  if (FirstStrip <= 383 && FirstStrip + Ampls.size() > 383)
158  Overlapping = true;
159  if (FirstStrip <= 511 && FirstStrip + Ampls.size() > 511)
160  Overlapping = true;
161  if (FirstStrip <= 639 && FirstStrip + Ampls.size() > 639)
162  Overlapping = true;
163 
164  if (FirstStrip + Ampls.size() == 127)
165  Overlapping = true;
166  if (FirstStrip + Ampls.size() == 255)
167  Overlapping = true;
168  if (FirstStrip + Ampls.size() == 383)
169  Overlapping = true;
170  if (FirstStrip + Ampls.size() == 511)
171  Overlapping = true;
172  if (FirstStrip + Ampls.size() == 639)
173  Overlapping = true;
174  if (FirstStrip + Ampls.size() == 767)
175  Overlapping = true;
176  } else if (PixelCluster) {
177  const auto& Ampls = PixelCluster->pixelADC();
178  int FirstRow = PixelCluster->minPixelRow();
179  int FirstCol = PixelCluster->minPixelCol();
180  FirstStrip = ((FirstRow / 80) << 3 | (FirstCol / 52)) * 128; //Hack to save the APVId
181  NStrips = 0;
182  Saturation = false;
183  Overlapping = false;
184 
185  for (unsigned int a = 0; a < Ampls.size(); a++) {
186  Charge += Ampls[a];
187  if (Ampls[a] >= 254)
188  Saturation = true;
189  }
190  }
191 #ifdef ExtendedCALIBTree
192  double ChargeOverPath = (double)Charge / Path;
193 #endif
194 
195  trackindex->push_back(shallow::findTrackIndex(tracks, track));
196  rawid->push_back(DetId);
197  localdirx->push_back(trackDirection.x());
198  localdiry->push_back(trackDirection.y());
199  localdirz->push_back(trackDirection.z());
200  firststrip->push_back(FirstStrip);
201  nstrips->push_back(NStrips);
202  saturation->push_back(Saturation);
203  overlapping->push_back(Overlapping);
204  farfromedge->push_back(StripCluster ? IsFarFromBorder(&trajState, DetId, &iSetup) : true);
205  charge->push_back(Charge);
206  path->push_back(Path);
207 #ifdef ExtendedCALIBTree
208  chargeoverpath->push_back(ChargeOverPath);
209 #endif
210  gainused->push_back(PrevGain);
211  gainusedTick->push_back(PrevGainTick);
212  }
213  }
214  }
215 
216  iEvent.put(std::move(trackindex), Prefix + "trackindex" + Suffix);
217  iEvent.put(std::move(rawid), Prefix + "rawid" + Suffix);
218  iEvent.put(std::move(localdirx), Prefix + "localdirx" + Suffix);
219  iEvent.put(std::move(localdiry), Prefix + "localdiry" + Suffix);
220  iEvent.put(std::move(localdirz), Prefix + "localdirz" + Suffix);
221  iEvent.put(std::move(firststrip), Prefix + "firststrip" + Suffix);
222  iEvent.put(std::move(nstrips), Prefix + "nstrips" + Suffix);
223  iEvent.put(std::move(saturation), Prefix + "saturation" + Suffix);
224  iEvent.put(std::move(overlapping), Prefix + "overlapping" + Suffix);
225  iEvent.put(std::move(farfromedge), Prefix + "farfromedge" + Suffix);
226  iEvent.put(std::move(charge), Prefix + "charge" + Suffix);
227  iEvent.put(std::move(path), Prefix + "path" + Suffix);
228 #ifdef ExtendedCALIBTree
229  iEvent.put(std::move(chargeoverpath), Prefix + "chargeoverpath" + Suffix);
230 #endif
231  iEvent.put(std::move(amplitude), Prefix + "amplitude" + Suffix);
232  iEvent.put(std::move(gainused), Prefix + "gainused" + Suffix);
233  iEvent.put(std::move(gainusedTick), Prefix + "gainusedTick" + Suffix);
234 }
235 
236 /*
237 void ShallowGainCalibration::beginJob(const edm::EventSetup& iSetup)
238 {
239  printf("Befin JOB\n");
240 
241  edm::ESHandle<TrackerGeometry> tkGeom;
242  iSetup.get<TrackerDigiGeometryRecord>().get( tkGeom );
243  vector<GeomDet*> Det = tkGeom->dets();
244 
245  edm::ESHandle<SiStripGain> gainHandle;
246  iSetup.get<SiStripGainRcd>().get(gainHandle);
247  if(!gainHandle.isValid()){printf("\n#####################\n\nERROR --> gainHandle is not valid\n\n#####################\n\n");exit(0);}
248 
249  for(unsigned int i=0;i<Det.size();i++){
250  DetId Detid = Det[i]->geographicalId();
251  int SubDet = Detid.subdetId();
252 
253  if( SubDet == StripSubdetector::TIB || SubDet == StripSubdetector::TID ||
254  SubDet == StripSubdetector::TOB || SubDet == StripSubdetector::TEC ){
255 
256  StripGeomDetUnit* DetUnit = dynamic_cast<StripGeomDetUnit*> (Det[i]);
257  if(!DetUnit)continue;
258 
259  const StripTopology& Topo = DetUnit->specificTopology();
260  unsigned int NAPV = Topo.nstrips()/128;
261 
262  for(unsigned int j=0;j<NAPV;j++){
263  stAPVGain* APV = new stAPVGain;
264  APV->DetId = Detid.rawId();
265  APV->APVId = j;
266  APV->PreviousGain = 1;
267 
268  APVsCollOrdered.push_back(APV);
269  APVsColl[(APV->DetId<<3) | APV->APVId] = APV;
270  }
271  }
272  }
273 }
274 
275 
276 void ShallowGainCalibration::beginRun(edm::Run &, const edm::EventSetup &iSetup){
277  printf("BEFIN RUN\n");
278 
279  edm::ESHandle<SiStripGain> gainHandle;
280  iSetup.get<SiStripGainRcd>().get(gainHandle);
281  if(!gainHandle.isValid()){printf("\n#####################\n\nERROR --> gainHandle is not valid\n\n#####################\n\n");exit(0);}
282 
283  for(std::vector<stAPVGain*>::iterator it = APVsCollOrdered.begin();it!=APVsCollOrdered.end();it++){
284  stAPVGain* APV = *it;
285  SiStripApvGain::Range detGainRange = gainHandle->getRange(APV->DetId);
286  APV->PreviousGain = *(detGainRange.first + APV->APVId);
287  }
288 }
289 */
290 
292  const uint32_t detid,
293  const edm::EventSetup* iSetup) {
295  iSetup->get<TrackerDigiGeometryRecord>().get(tkGeom);
296 
297  LocalPoint HitLocalPos = trajState->localPosition();
298  LocalError HitLocalError = trajState->localError().positionError();
299 
300  const GeomDetUnit* it = tkGeom->idToDetUnit(DetId(detid));
301  if (dynamic_cast<const StripGeomDetUnit*>(it) == nullptr && dynamic_cast<const PixelGeomDetUnit*>(it) == nullptr) {
302  std::cout << "this detID doesn't seem to belong to the Tracker" << std::endl;
303  return false;
304  }
305 
306  const BoundPlane plane = it->surface();
307  const TrapezoidalPlaneBounds* trapezoidalBounds(dynamic_cast<const TrapezoidalPlaneBounds*>(&(plane.bounds())));
308  const RectangularPlaneBounds* rectangularBounds(dynamic_cast<const RectangularPlaneBounds*>(&(plane.bounds())));
309 
310  double DistFromBorder = 1.0;
311  double HalfLength = it->surface().bounds().length() / 2.0;
312 
313  if (trapezoidalBounds) {
314  std::array<const float, 4> const& parameters = (*trapezoidalBounds).parameters();
315  HalfLength = parameters[3];
316  } else if (rectangularBounds) {
317  HalfLength = it->surface().bounds().length() / 2.0;
318  } else {
319  return false;
320  }
321 
322  if (fabs(HitLocalPos.y()) + HitLocalError.yy() >= (HalfLength - DistFromBorder))
323  return false;
324 
325  return true;
326 }
327 
329  map<DetId, double>::iterator th = m_thicknessMap.find(id);
330  if (th != m_thicknessMap.end())
331  return (*th).second;
332  else {
333  double detThickness = 1.;
334  //compute thickness normalization
335  const GeomDetUnit* it = m_tracker->idToDetUnit(DetId(id));
336  bool isPixel = dynamic_cast<const PixelGeomDetUnit*>(it) != nullptr;
337  bool isStrip = dynamic_cast<const StripGeomDetUnit*>(it) != nullptr;
338  if (!isPixel && !isStrip) {
339  //FIXME throw exception
340  edm::LogWarning("DeDxHitsProducer") << "\t\t this detID doesn't seem to belong to the Tracker";
341  detThickness = 1.;
342  } else {
343  detThickness = it->surface().bounds().thickness();
344  }
345 
346  m_thicknessMap[id] = detThickness; //computed value
347  return detThickness;
348  }
349 }
Vector3DBase< float, LocalTag >
genericTrackCandidates_cff.associations
associations
Definition: genericTrackCandidates_cff.py:45
SiPixelCluster::minPixelCol
int minPixelCol() const
Definition: SiPixelCluster.h:140
SiStripMatchedRecHit2D::monoId
unsigned int monoId() const
Definition: SiStripMatchedRecHit2D.h:29
SiStripGainRcd
Definition: SiStripDependentRecords.h:29
PDWG_EXOHSCP_cff.tracks
tracks
Definition: PDWG_EXOHSCP_cff.py:28
ShallowGainCalibration::association_token_
const edm::EDGetTokenT< TrajTrackAssociationCollection > association_token_
Definition: ShallowGainCalibration.h:59
SiStripRecHit2D::cluster
ClusterRef cluster() const
Definition: SiStripRecHit2D.h:22
ProducerES_cfi.HalfLength
HalfLength
Definition: ProducerES_cfi.py:87
CustomPhysics_cfi.amplitude
amplitude
Definition: CustomPhysics_cfi.py:12
ShallowGainCalibration.h
GeomDet
Definition: GeomDet.h:27
SiStripMatchedRecHit2D::stereoCluster
SiStripCluster const & stereoCluster() const
Definition: SiStripMatchedRecHit2D.h:40
LocalTrajectoryError::positionError
LocalError positionError() const
Definition: LocalTrajectoryError.h:81
ShallowGainCalibration::m_tracker
const TrackerGeometry * m_tracker
Definition: ShallowGainCalibration.h:70
SiStripGain.h
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
edm
HLT enums.
Definition: AlignableModifier.h:19
gather_cfg.cout
cout
Definition: gather_cfg.py:144
SiStripGainRcd.h
SiStripRecHit2D
Definition: SiStripRecHit2D.h:7
SiPixelCluster
Pixel cluster – collection of neighboring pixels above threshold.
Definition: SiPixelCluster.h:27
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
edm::Handle
Definition: AssociativeIterator.h:50
SiPixelRecHit::cluster
ClusterRef cluster() const
Definition: SiPixelRecHit.h:47
TrackingRecHit::geographicalId
DetId geographicalId() const
Definition: TrackingRecHit.h:120
SiPixelRecHit
Our base class.
Definition: SiPixelRecHit.h:23
Bounds::length
virtual float length() const =0
parameters
parameters
Definition: BeamSpot_PayloadInspector.cc:14
SiStripCluster::firstStrip
uint16_t firstStrip() const
Definition: SiStripCluster.h:38
TrackerGeometry::idToDetUnit
const TrackerGeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
Definition: TrackerGeometry.cc:183
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
DetId
Definition: DetId.h:17
GeomDet::surface
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
h
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
TrajectoryStateOnSurface::localDirection
LocalVector localDirection() const
Definition: TrajectoryStateOnSurface.h:76
SiStripGain::getRange
const SiStripApvGain::Range getRange(uint32_t detID) const
Definition: SiStripGain.h:71
SiPixelCluster::minPixelRow
int minPixelRow() const
Definition: SiPixelCluster.h:138
TrackerDigiGeometryRecord
Definition: TrackerDigiGeometryRecord.h:15
Surface::bounds
const Bounds & bounds() const
Definition: Surface.h:87
reco::Track
Definition: Track.h:27
edm::ESHandle< TrackerGeometry >
ShallowGainCalibration::produce
void produce(edm::Event &, const edm::EventSetup &) override
Definition: ShallowGainCalibration.cc:34
Point3DBase< float, LocalTag >
SiPixelCluster::pixelADC
const std::vector< uint16_t > & pixelADC() const
Definition: SiPixelCluster.h:144
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
SiStripGain::getApvGain
static float getApvGain(const uint16_t &apv, const SiStripApvGain::Range &range)
Definition: SiStripGain.h:76
edm::LogWarning
Definition: MessageLogger.h:141
ALCARECOTkAlJpsiMuMu_cff.charge
charge
Definition: ALCARECOTkAlJpsiMuMu_cff.py:47
edm::AssociationMap< edm::OneToOne< std::vector< Trajectory >, reco::TrackCollection, unsigned short > >::const_iterator
friend struct const_iterator
Definition: AssociationMap.h:274
edm::View
Definition: CaloClusterFwd.h:14
TrajectoryStateOnSurface::localPosition
LocalPoint localPosition() const
Definition: TrajectoryStateOnSurface.h:74
SiStripMatchedRecHit2D::stereoId
unsigned int stereoId() const
Definition: SiStripMatchedRecHit2D.h:28
edm::ParameterSet
Definition: ParameterSet.h:36
a
double a
Definition: hdecay.h:119
fastTrackerRecHitType::isPixel
bool isPixel(HitType hitType)
Definition: FastTrackerRecHit.h:37
LocalError
Definition: LocalError.h:12
edm::AssociationMap< edm::OneToOne< std::vector< Trajectory >, reco::TrackCollection, unsigned short > >
edm::Path
Definition: Path.h:44
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
SiStripCluster::amplitudes
const std::vector< uint8_t > & amplitudes() const
Definition: SiStripCluster.h:51
iEvent
int iEvent
Definition: GenABIO.cc:224
ShallowGainCalibration::thickness
double thickness(DetId id)
Definition: ShallowGainCalibration.cc:328
ShallowGainCalibration::tracks_token_
const edm::EDGetTokenT< edm::View< reco::Track > > tracks_token_
Definition: ShallowGainCalibration.h:58
SiStripRecHit1D::cluster
ClusterRef cluster() const
Definition: SiStripRecHit1D.h:18
edm::EventSetup
Definition: EventSetup.h:57
ShallowGainCalibration::m_thicknessMap
std::map< DetId, double > m_thicknessMap
Definition: ShallowGainCalibration.h:71
SiStripRecHit1D
Definition: SiStripRecHit1D.h:8
TrapezoidalPlaneBounds
Definition: TrapezoidalPlaneBounds.h:15
get
#define get
edm::ESHandleBase::isValid
bool isValid() const
Definition: ESHandle.h:44
TrackValidation_cff.association
association
Definition: TrackValidation_cff.py:286
Trajectory::measurements
DataContainer const & measurements() const
Definition: Trajectory.h:178
TrackingRecHit
Definition: TrackingRecHit.h:21
PV3DBase::mag
T mag() const
Definition: PV3DBase.h:64
eostools.move
def move(src, dest)
Definition: eostools.py:511
std
Definition: JetResolutionObject.h:76
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
RectangularPlaneBounds
Definition: RectangularPlaneBounds.h:12
ShallowGainCalibration::ShallowGainCalibration
ShallowGainCalibration(const edm::ParameterSet &)
Definition: ShallowGainCalibration.cc:9
SiStripMatchedRecHit2D
Definition: SiStripMatchedRecHit2D.h:8
Trajectory
Definition: Trajectory.h:38
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:31
DuplicateTrackType::Overlapping
SiStripMatchedRecHit2D::monoCluster
SiStripCluster const & monoCluster() const
Definition: SiStripMatchedRecHit2D.h:41
BoundPlane
ShallowGainCalibration::IsFarFromBorder
bool IsFarFromBorder(TrajectoryStateOnSurface *trajState, const uint32_t detid, const edm::EventSetup *iSetup)
Definition: ShallowGainCalibration.cc:291
PixelTestBeamValidation_cfi.Charge
Charge
Definition: PixelTestBeamValidation_cfi.py:78
ShallowGainCalibration::Prefix
std::string Prefix
Definition: ShallowGainCalibration.h:62
HLT_2018_cff.track
track
Definition: HLT_2018_cff.py:10352
castor_dqm_sourceclient_file_cfg.path
path
Definition: castor_dqm_sourceclient_file_cfg.py:37
ShallowGainCalibration::Suffix
std::string Suffix
Definition: ShallowGainCalibration.h:61
edm::Event
Definition: Event.h:73
TrajectoryStateOnSurface::localError
const LocalTrajectoryError & localError() const
Definition: TrajectoryStateOnSurface.h:77
SiStripCluster
Definition: SiStripCluster.h:9
LocalError::yy
float yy() const
Definition: LocalError.h:24
caloTruthCellsNtuples_cff.Prefix
Prefix
Definition: caloTruthCellsNtuples_cff.py:8
edm::InputTag
Definition: InputTag.h:15
TrajectoryStateOnSurface::isValid
bool isValid() const
Definition: TrajectoryStateOnSurface.h:54
hit
Definition: SiStripHitEffFromCalibTree.cc:88
shallow::findTrackIndex
int findTrackIndex(const edm::Handle< edm::View< reco::Track > > &h, const reco::Track *t)
Definition: ShallowTools.cc:25