CMS 3D CMS Logo

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

#include <SiTrackerGaussianSmearingRecHitConverter.h>

Inheritance diagram for SiTrackerGaussianSmearingRecHitConverter:
edm::EDProducer edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

virtual void beginRun (edm::Run const &run, const edm::EventSetup &es) override
 
void loadClusters (std::map< unsigned, edm::OwnVector< FastTrackerCluster > > &theClusterMap, FastTrackerClusterCollection &theClusterCollection) const
 
void loadMatchedRecHits (std::map< unsigned, edm::OwnVector< SiTrackerGSMatchedRecHit2D > > &theRecHits, SiTrackerGSMatchedRecHit2DCollection &theRecHitCollection) const
 
void loadRecHits (std::map< unsigned, edm::OwnVector< SiTrackerGSRecHit2D > > &theRecHits, SiTrackerGSRecHit2DCollection &theRecHitCollection) const
 
void matchHits (std::map< unsigned, edm::OwnVector< SiTrackerGSRecHit2D > > &theRecHits, std::map< unsigned, edm::OwnVector< SiTrackerGSMatchedRecHit2D > > &matchedMap)
 
virtual void produce (edm::Event &e, const edm::EventSetup &c) override
 
 SiTrackerGaussianSmearingRecHitConverter (const edm::ParameterSet &conf)
 
void smearHits (const edm::PSimHitContainer &input, std::map< unsigned, edm::OwnVector< SiTrackerGSRecHit2D > > &theRecHits, std::map< unsigned, edm::OwnVector< FastTrackerCluster > > &theClusters, const TrackerTopology *tTopo, RandomEngineAndDistribution const *)
 
virtual ~SiTrackerGaussianSmearingRecHitConverter ()
 
- Public Member Functions inherited from edm::EDProducer
 EDProducer ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDProducer ()
 
- Public Member Functions inherited from edm::ProducerBase
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription
const &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (const std::string &iProcessName, std::vector< const char * > &oModuleLabels) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Private Types

typedef
SiTrackerGSRecHit2D::ClusterRef 
ClusterRef
 
typedef
SiTrackerGSRecHit2D::ClusterRefProd 
ClusterRefProd
 
typedef
edm::PSimHitContainer::const_iterator 
SimHiterator
 

Private Member Functions

bool gaussianSmearing (const PSimHit &simHit, Local3DPoint &position, LocalError &error, unsigned &alphaMult, unsigned &betaMult, const TrackerTopology *tTopo, RandomEngineAndDistribution const *)
 
void loadPixelData ()
 
void loadPixelData (TFile *pixelDataFile, unsigned int nMultiplicity, std::string histName, std::vector< TH1F * > &theMultiplicityCumulativeProbabilities, bool bigPixels=false)
 

Private Attributes

std::vector< SimHiteratorcorrespondingSimHit
 
double deltaRaysPCut
 
std::vector
< SiPixelQuality::disabledModuleType > * 
disabledModules
 
bool doDisableChannels
 
bool doMatching
 
double ElectronsPerADC
 
ClusterRefProd FastTrackerClusterRefProd
 
const TrackerGeometrygeometry
 
double GevPerElectron
 
double localPositionResolution_TEC1x
 
double localPositionResolution_TEC1y
 
double localPositionResolution_TEC2x
 
double localPositionResolution_TEC2y
 
double localPositionResolution_TEC3x
 
double localPositionResolution_TEC3y
 
double localPositionResolution_TEC4x
 
double localPositionResolution_TEC4y
 
double localPositionResolution_TEC5x
 
double localPositionResolution_TEC5y
 
double localPositionResolution_TEC6x
 
double localPositionResolution_TEC6y
 
double localPositionResolution_TEC7x
 
double localPositionResolution_TEC7y
 
double localPositionResolution_TIB1x
 
double localPositionResolution_TIB1y
 
double localPositionResolution_TIB2x
 
double localPositionResolution_TIB2y
 
double localPositionResolution_TIB3x
 
double localPositionResolution_TIB3y
 
double localPositionResolution_TIB4x
 
double localPositionResolution_TIB4y
 
double localPositionResolution_TID1x
 
double localPositionResolution_TID1y
 
double localPositionResolution_TID2x
 
double localPositionResolution_TID2y
 
double localPositionResolution_TID3x
 
double localPositionResolution_TID3y
 
double localPositionResolution_TOB1x
 
double localPositionResolution_TOB1y
 
double localPositionResolution_TOB2x
 
double localPositionResolution_TOB2y
 
double localPositionResolution_TOB3x
 
double localPositionResolution_TOB3y
 
double localPositionResolution_TOB4x
 
double localPositionResolution_TOB4y
 
double localPositionResolution_TOB5x
 
double localPositionResolution_TOB5y
 
double localPositionResolution_TOB6x
 
double localPositionResolution_TOB6y
 
double localPositionResolution_z
 
const TrackerGeometrymisAlignedGeometry
 
unsigned int nAlphaBarrel
 
unsigned int nAlphaForward
 
unsigned int nBetaBarrel
 
unsigned int nBetaForward
 
unsigned int numberOfDisabledModules
 
edm::ParameterSet pset_
 
double resAlphaBarrel_binMin
 
unsigned int resAlphaBarrel_binN
 
double resAlphaBarrel_binWidth
 
double resAlphaForward_binMin
 
unsigned int resAlphaForward_binN
 
double resAlphaForward_binWidth
 
double resBetaBarrel_binMin
 
unsigned int resBetaBarrel_binN
 
double resBetaBarrel_binWidth
 
double resBetaForward_binMin
 
unsigned int resBetaForward_binN
 
double resBetaForward_binWidth
 
edm::InputTag simHitLabel
 
edm::EDGetTokenT
< edm::PSimHitContainer
simHitToken
 
std::vector< TH1F * > theBarrelMultiplicityAlphaCumulativeProbabilities
 
std::vector< TH1F * > theBarrelMultiplicityBetaCumulativeProbabilities
 
std::vector< TH1F * > theForwardMultiplicityAlphaCumulativeProbabilities
 
std::vector< TH1F * > theForwardMultiplicityBetaCumulativeProbabilities
 
double theHitFindingProbability_PXB
 
double theHitFindingProbability_PXF
 
double theHitFindingProbability_TEC1
 
double theHitFindingProbability_TEC2
 
double theHitFindingProbability_TEC3
 
double theHitFindingProbability_TEC4
 
double theHitFindingProbability_TEC5
 
double theHitFindingProbability_TEC6
 
double theHitFindingProbability_TEC7
 
double theHitFindingProbability_TIB1
 
double theHitFindingProbability_TIB2
 
double theHitFindingProbability_TIB3
 
double theHitFindingProbability_TIB4
 
double theHitFindingProbability_TID1
 
double theHitFindingProbability_TID2
 
double theHitFindingProbability_TID3
 
double theHitFindingProbability_TOB1
 
double theHitFindingProbability_TOB2
 
double theHitFindingProbability_TOB3
 
double theHitFindingProbability_TOB4
 
double theHitFindingProbability_TOB5
 
double theHitFindingProbability_TOB6
 
SiPixelGaussianSmearingRecHitConverterAlgorithmthePixelBarrelParametrization
 
TFile * thePixelBarrelResolutionFile
 
std::string thePixelBarrelResolutionFileName
 
TFile * thePixelDataFile
 
SiPixelGaussianSmearingRecHitConverterAlgorithmthePixelEndcapParametrization
 
TFile * thePixelForwardResolutionFile
 
std::string thePixelForwardResolutionFileName
 
std::string thePixelMultiplicityFileName
 
SiStripGaussianSmearingRecHitConverterAlgorithmtheSiStripErrorParametrization
 
bool trackingPSimHits
 
bool useCMSSWPixelParameterization
 

Additional Inherited Members

- Public Types inherited from edm::EDProducer
typedef EDProducer ModuleType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Static Public Member Functions inherited from edm::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

Definition at line 52 of file SiTrackerGaussianSmearingRecHitConverter.h.

Member Typedef Documentation

Definition at line 251 of file SiTrackerGaussianSmearingRecHitConverter.h.

Definition at line 252 of file SiTrackerGaussianSmearingRecHitConverter.h.

typedef edm::PSimHitContainer::const_iterator SiTrackerGaussianSmearingRecHitConverter::SimHiterator
private

Definition at line 248 of file SiTrackerGaussianSmearingRecHitConverter.h.

Constructor & Destructor Documentation

SiTrackerGaussianSmearingRecHitConverter::SiTrackerGaussianSmearingRecHitConverter ( const edm::ParameterSet conf)
explicit

SiTrackerGaussianSmearingRecHitConverter.cc

Description: see SiTrackerGaussianSmearingRecHitConverter.h Authors: R. Ranieri (CERN), P. Azzi, A. Schmidt, M. Galanti

History: Sep 27, 2006 - initial version

Definition at line 69 of file SiTrackerGaussianSmearingRecHitConverter.cc.

References gather_cfg::cout, deltaRaysPCut, doDisableChannels, doMatching, ElectronsPerADC, edm::ParameterSet::getParameter(), GevPerElectron, localPositionResolution_TEC1x, localPositionResolution_TEC1y, localPositionResolution_TEC2x, localPositionResolution_TEC2y, localPositionResolution_TEC3x, localPositionResolution_TEC3y, localPositionResolution_TEC4x, localPositionResolution_TEC4y, localPositionResolution_TEC5x, localPositionResolution_TEC5y, localPositionResolution_TEC6x, localPositionResolution_TEC6y, localPositionResolution_TEC7x, localPositionResolution_TEC7y, localPositionResolution_TIB1x, localPositionResolution_TIB1y, localPositionResolution_TIB2x, localPositionResolution_TIB2y, localPositionResolution_TIB3x, localPositionResolution_TIB3y, localPositionResolution_TIB4x, localPositionResolution_TIB4y, localPositionResolution_TID1x, localPositionResolution_TID1y, localPositionResolution_TID2x, localPositionResolution_TID2y, localPositionResolution_TID3x, localPositionResolution_TID3y, localPositionResolution_TOB1x, localPositionResolution_TOB1y, localPositionResolution_TOB2x, localPositionResolution_TOB2y, localPositionResolution_TOB3x, localPositionResolution_TOB3y, localPositionResolution_TOB4x, localPositionResolution_TOB4y, localPositionResolution_TOB5x, localPositionResolution_TOB5y, localPositionResolution_TOB6x, localPositionResolution_TOB6y, localPositionResolution_z, nAlphaBarrel, nAlphaForward, nBetaBarrel, nBetaForward, numberOfDisabledModules, resAlphaBarrel_binMin, resAlphaBarrel_binN, resAlphaBarrel_binWidth, resAlphaForward_binMin, resAlphaForward_binN, resAlphaForward_binWidth, resBetaBarrel_binMin, resBetaBarrel_binN, resBetaBarrel_binWidth, resBetaForward_binMin, resBetaForward_binN, resBetaForward_binWidth, simHitLabel, simHitToken, theHitFindingProbability_PXB, theHitFindingProbability_PXF, theHitFindingProbability_TEC1, theHitFindingProbability_TEC2, theHitFindingProbability_TEC3, theHitFindingProbability_TEC4, theHitFindingProbability_TEC5, theHitFindingProbability_TEC6, theHitFindingProbability_TEC7, theHitFindingProbability_TIB1, theHitFindingProbability_TIB2, theHitFindingProbability_TIB3, theHitFindingProbability_TIB4, theHitFindingProbability_TID1, theHitFindingProbability_TID2, theHitFindingProbability_TID3, theHitFindingProbability_TOB1, theHitFindingProbability_TOB2, theHitFindingProbability_TOB3, theHitFindingProbability_TOB4, theHitFindingProbability_TOB5, theHitFindingProbability_TOB6, thePixelBarrelParametrization, thePixelBarrelResolutionFile, thePixelDataFile, thePixelEndcapParametrization, thePixelForwardResolutionFile, theSiStripErrorParametrization, trackingPSimHits, and useCMSSWPixelParameterization.

71  : pset_(conf)
72 {
73  thePixelDataFile = 0;
80 
81 #ifdef FAMOS_DEBUG
82  std::cout << "SiTrackerGaussianSmearingRecHitConverter instantiated" << std::endl;
83 #endif
84 
85  //PAT
86  produces<FastTrackerClusterCollection>("TrackerClusters");
87 
88  produces<SiTrackerGSRecHit2DCollection>("TrackerGSRecHits");
89  produces<SiTrackerGSMatchedRecHit2DCollection>("TrackerGSMatchedRecHits");
90 
91  //--- PSimHit Containers
92  // trackerContainers.clear();
93  // trackerContainers = conf.getParameter<std::vector<edm::InputTag> >("ROUList");
94  simHitLabel = conf.getParameter<edm::InputTag>("InputSimHits");
95  simHitToken = consumes<edm::PSimHitContainer>(simHitLabel);
96  //--- delta rays p cut [GeV/c] to filter PSimHits with p>
97  deltaRaysPCut = conf.getParameter<double>("DeltaRaysMomentumCut");
98 
99  //--- switch to have RecHit == PSimHit
100  trackingPSimHits = conf.getParameter<bool>("trackingPSimHits");
101  if(trackingPSimHits) std::cout << "### trackingPSimHits chosen " << trackingPSimHits << std::endl;
102 
103  // switch on/off matching
104  doMatching = conf.getParameter<bool>("doRecHitMatching");
105 
106  // disable/enable dead channels
107  doDisableChannels = conf.getParameter<bool>("killDeadChannels");
108 
109  // Switch between old (ORCA) and new (CMSSW) pixel parameterization
110  useCMSSWPixelParameterization = conf.getParameter<bool>("UseCMSSWPixelParametrization");
111 #ifdef FAMOS_DEBUG
112  std::cout << (useCMSSWPixelParameterization? "CMSSW" : "ORCA") << " pixel parametrization chosen in config file." << std::endl;
113 #endif
114 
115  //Clusters
116  GevPerElectron = conf.getParameter<double>("GevPerElectron");
117  ElectronsPerADC = conf.getParameter<double>("ElectronsPerADC");
118 
119  //
120  // TIB
121  localPositionResolution_TIB1x = conf.getParameter<double>("TIB1x");
122  localPositionResolution_TIB1y = conf.getParameter<double>("TIB1y");
123  localPositionResolution_TIB2x = conf.getParameter<double>("TIB2x");
124  localPositionResolution_TIB2y = conf.getParameter<double>("TIB2y");
125  localPositionResolution_TIB3x = conf.getParameter<double>("TIB3x");
126  localPositionResolution_TIB3y = conf.getParameter<double>("TIB3y");
127  localPositionResolution_TIB4x = conf.getParameter<double>("TIB4x");
128  localPositionResolution_TIB4y = conf.getParameter<double>("TIB4y");
129  //
130  // TID
131  localPositionResolution_TID1x = conf.getParameter<double>("TID1x");
132  localPositionResolution_TID1y = conf.getParameter<double>("TID1y");
133  localPositionResolution_TID2x = conf.getParameter<double>("TID2x");
134  localPositionResolution_TID2y = conf.getParameter<double>("TID2y");
135  localPositionResolution_TID3x = conf.getParameter<double>("TID3x");
136  localPositionResolution_TID3y = conf.getParameter<double>("TID3y");
137  //
138  // TOB
139  localPositionResolution_TOB1x = conf.getParameter<double>("TOB1x");
140  localPositionResolution_TOB1y = conf.getParameter<double>("TOB1y");
141  localPositionResolution_TOB2x = conf.getParameter<double>("TOB2x");
142  localPositionResolution_TOB2y = conf.getParameter<double>("TOB2y");
143  localPositionResolution_TOB3x = conf.getParameter<double>("TOB3x");
144  localPositionResolution_TOB3y = conf.getParameter<double>("TOB3y");
145  localPositionResolution_TOB4x = conf.getParameter<double>("TOB4x");
146  localPositionResolution_TOB4y = conf.getParameter<double>("TOB4y");
147  localPositionResolution_TOB5x = conf.getParameter<double>("TOB5x");
148  localPositionResolution_TOB5y = conf.getParameter<double>("TOB5y");
149  localPositionResolution_TOB6x = conf.getParameter<double>("TOB6x");
150  localPositionResolution_TOB6y = conf.getParameter<double>("TOB6y");
151  //
152  // TEC
153  localPositionResolution_TEC1x = conf.getParameter<double>("TEC1x");
154  localPositionResolution_TEC1y = conf.getParameter<double>("TEC1y");
155  localPositionResolution_TEC2x = conf.getParameter<double>("TEC2x");
156  localPositionResolution_TEC2y = conf.getParameter<double>("TEC2y");
157  localPositionResolution_TEC3x = conf.getParameter<double>("TEC3x");
158  localPositionResolution_TEC3y = conf.getParameter<double>("TEC3y");
159  localPositionResolution_TEC4x = conf.getParameter<double>("TEC4x");
160  localPositionResolution_TEC4y = conf.getParameter<double>("TEC4y");
161  localPositionResolution_TEC5x = conf.getParameter<double>("TEC5x");
162  localPositionResolution_TEC5y = conf.getParameter<double>("TEC5y");
163  localPositionResolution_TEC6x = conf.getParameter<double>("TEC6x");
164  localPositionResolution_TEC6y = conf.getParameter<double>("TEC6y");
165  localPositionResolution_TEC7x = conf.getParameter<double>("TEC7x");
166  localPositionResolution_TEC7y = conf.getParameter<double>("TEC7y");
167  //
168  localPositionResolution_z = 0.0001; // not to be changed, set to minimum (1 um), Kalman Filter will crash if errors are exactly 0, setting 1 um means 0
169  //
170 #ifdef FAMOS_DEBUG
171  std::cout << "RecHit local position error set to" << "\n"
172  << "\tTIB1\tx = " << localPositionResolution_TIB1x
173  << " cm\ty = " << localPositionResolution_TIB1y << " cm" << "\n"
174  << "\tTIB2\tx = " << localPositionResolution_TIB2x
175  << " cm\ty = " << localPositionResolution_TIB2y << " cm" << "\n"
176  << "\tTIB3\tx = " << localPositionResolution_TIB3x
177  << " cm\ty = " << localPositionResolution_TIB3y << " cm" << "\n"
178  << "\tTIB4\tx = " << localPositionResolution_TIB4x
179  << " cm\ty = " << localPositionResolution_TIB4y << " cm" << "\n"
180  << "\tTID1\tx = " << localPositionResolution_TID1x
181  << " cm\ty = " << localPositionResolution_TID1y << " cm" << "\n"
182  << "\tTID2\tx = " << localPositionResolution_TID2x
183  << " cm\ty = " << localPositionResolution_TID2y << " cm" << "\n"
184  << "\tTID3\tx = " << localPositionResolution_TID3x
185  << " cm\ty = " << localPositionResolution_TID3y << " cm" << "\n"
186  << "\tTOB1\tx = " << localPositionResolution_TOB1x
187  << " cm\ty = " << localPositionResolution_TOB1y << " cm" << "\n"
188  << "\tTOB2\tx = " << localPositionResolution_TOB2x
189  << " cm\ty = " << localPositionResolution_TOB2y << " cm" << "\n"
190  << "\tTOB3\tx = " << localPositionResolution_TOB3x
191  << " cm\ty = " << localPositionResolution_TOB3y << " cm" << "\n"
192  << "\tTOB4\tx = " << localPositionResolution_TOB4x
193  << " cm\ty = " << localPositionResolution_TOB4y << " cm" << "\n"
194  << "\tTOB5\tx = " << localPositionResolution_TOB5x
195  << " cm\ty = " << localPositionResolution_TOB5y << " cm" << "\n"
196  << "\tTOB6\tx = " << localPositionResolution_TOB6x
197  << " cm\ty = " << localPositionResolution_TOB6y << " cm" << "\n"
198  << "\tTEC1\tx = " << localPositionResolution_TEC1x
199  << " cm\ty = " << localPositionResolution_TEC1y << " cm" << "\n"
200  << "\tTEC2\tx = " << localPositionResolution_TEC2x
201  << " cm\ty = " << localPositionResolution_TEC2y << " cm" << "\n"
202  << "\tTEC3\tx = " << localPositionResolution_TEC3x
203  << " cm\ty = " << localPositionResolution_TEC3y << " cm" << "\n"
204  << "\tTEC4\tx = " << localPositionResolution_TEC4x
205  << " cm\ty = " << localPositionResolution_TEC4y << " cm" << "\n"
206  << "\tTEC5\tx = " << localPositionResolution_TEC5x
207  << " cm\ty = " << localPositionResolution_TEC5y << " cm" << "\n"
208  << "\tTEC6\tx = " << localPositionResolution_TEC6x
209  << " cm\ty = " << localPositionResolution_TEC6y << " cm" << "\n"
210  << "\tTEC7\tx = " << localPositionResolution_TEC7x
211  << " cm\ty = " << localPositionResolution_TEC7y << " cm" << "\n"
212  << "\tAll:\tz = " << localPositionResolution_z << " cm"
213  << std::endl;
214 #endif
215 
216  //--- Number of histograms for alpha/beta barrel/forward multiplicity
217  if(useCMSSWPixelParameterization) {
218  nAlphaBarrel = conf.getParameter<int>("AlphaBarrelMultiplicityNew");
219  nBetaBarrel = conf.getParameter<int>("BetaBarrelMultiplicityNew");
220  nAlphaForward = conf.getParameter<int>("AlphaForwardMultiplicityNew");
221  nBetaForward = conf.getParameter<int>("BetaForwardMultiplicityNew");
222  } else {
223  nAlphaBarrel = conf.getParameter<int>("AlphaBarrelMultiplicity");
224  nBetaBarrel = conf.getParameter<int>("BetaBarrelMultiplicity");
225  nAlphaForward = conf.getParameter<int>("AlphaForwardMultiplicity");
226  nBetaForward = conf.getParameter<int>("BetaForwardMultiplicity");
227  }
228 #ifdef FAMOS_DEBUG
229  std::cout << "Pixel maximum multiplicity set to "
230  << "\nBarrel" << "\talpha " << nAlphaBarrel
231  << "\tbeta " << nBetaBarrel
232  << "\nForward" << "\talpha " << nAlphaForward
233  << "\tbeta " << nBetaForward
234  << std::endl;
235 #endif
236 
237  // Resolution Barrel
238  if(useCMSSWPixelParameterization) {
239  resAlphaBarrel_binMin = conf.getParameter<double>("AlphaBarrel_BinMinNew" );
240  resAlphaBarrel_binWidth = conf.getParameter<double>("AlphaBarrel_BinWidthNew");
241  resAlphaBarrel_binN = conf.getParameter<int>( "AlphaBarrel_BinNNew" );
242  resBetaBarrel_binMin = conf.getParameter<double>("BetaBarrel_BinMinNew" );
243  resBetaBarrel_binWidth = conf.getParameter<double>("BetaBarrel_BinWidthNew" );
244  resBetaBarrel_binN = conf.getParameter<int>( "BetaBarrel_BinNNew" );
245  } else {
246  resAlphaBarrel_binMin = conf.getParameter<double>("AlphaBarrel_BinMin" );
247  resAlphaBarrel_binWidth = conf.getParameter<double>("AlphaBarrel_BinWidth");
248  resAlphaBarrel_binN = conf.getParameter<int>( "AlphaBarrel_BinN" );
249  resBetaBarrel_binMin = conf.getParameter<double>("BetaBarrel_BinMin" );
250  resBetaBarrel_binWidth = conf.getParameter<double>("BetaBarrel_BinWidth" );
251  resBetaBarrel_binN = conf.getParameter<int>( "BetaBarrel_BinN" );
252  }
253 
254  // Resolution Forward
255  if(useCMSSWPixelParameterization) {
256  resAlphaForward_binMin = conf.getParameter<double>("AlphaForward_BinMinNew" );
257  resAlphaForward_binWidth = conf.getParameter<double>("AlphaForward_BinWidthNew" );
258  resAlphaForward_binN = conf.getParameter<int>( "AlphaForward_BinNNew" );
259  resBetaForward_binMin = conf.getParameter<double>("BetaForward_BinMinNew" );
260  resBetaForward_binWidth = conf.getParameter<double>("BetaForward_BinWidthNew" );
261  resBetaForward_binN = conf.getParameter<int>( "BetaForward_BinNNew" );
262  } else {
263  resAlphaForward_binMin = conf.getParameter<double>("AlphaForward_BinMin" );
264  resAlphaForward_binWidth = conf.getParameter<double>("AlphaForward_BinWidth" );
265  resAlphaForward_binN = conf.getParameter<int>( "AlphaForward_BinN" );
266  resBetaForward_binMin = conf.getParameter<double>("BetaForward_BinMin" );
267  resBetaForward_binWidth = conf.getParameter<double>("BetaForward_BinWidth" );
268  resBetaForward_binN = conf.getParameter<int>( "BetaForward_BinN" );
269  }
270 
271  // Hit Finding Probability
272  theHitFindingProbability_PXB = conf.getParameter<double>("HitFindingProbability_PXB" );
273  theHitFindingProbability_PXF = conf.getParameter<double>("HitFindingProbability_PXF" );
274  theHitFindingProbability_TIB1 = conf.getParameter<double>("HitFindingProbability_TIB1");
275  theHitFindingProbability_TIB2 = conf.getParameter<double>("HitFindingProbability_TIB2");
276  theHitFindingProbability_TIB3 = conf.getParameter<double>("HitFindingProbability_TIB3");
277  theHitFindingProbability_TIB4 = conf.getParameter<double>("HitFindingProbability_TIB4");
278  theHitFindingProbability_TID1 = conf.getParameter<double>("HitFindingProbability_TID1");
279  theHitFindingProbability_TID2 = conf.getParameter<double>("HitFindingProbability_TID2");
280  theHitFindingProbability_TID3 = conf.getParameter<double>("HitFindingProbability_TID3");
281  theHitFindingProbability_TOB1 = conf.getParameter<double>("HitFindingProbability_TOB1");
282  theHitFindingProbability_TOB2 = conf.getParameter<double>("HitFindingProbability_TOB2");
283  theHitFindingProbability_TOB3 = conf.getParameter<double>("HitFindingProbability_TOB3");
284  theHitFindingProbability_TOB4 = conf.getParameter<double>("HitFindingProbability_TOB4");
285  theHitFindingProbability_TOB5 = conf.getParameter<double>("HitFindingProbability_TOB5");
286  theHitFindingProbability_TOB6 = conf.getParameter<double>("HitFindingProbability_TOB6");
287  theHitFindingProbability_TEC1 = conf.getParameter<double>("HitFindingProbability_TEC1");
288  theHitFindingProbability_TEC2 = conf.getParameter<double>("HitFindingProbability_TEC2");
289  theHitFindingProbability_TEC3 = conf.getParameter<double>("HitFindingProbability_TEC3");
290  theHitFindingProbability_TEC4 = conf.getParameter<double>("HitFindingProbability_TEC4");
291  theHitFindingProbability_TEC5 = conf.getParameter<double>("HitFindingProbability_TEC5");
292  theHitFindingProbability_TEC6 = conf.getParameter<double>("HitFindingProbability_TEC6");
293  theHitFindingProbability_TEC7 = conf.getParameter<double>("HitFindingProbability_TEC7");
294  //
295 #ifdef FAMOS_DEBUG
296  std::cout << "RecHit finding probability set to" << "\n"
297  << "\tPXB = " << theHitFindingProbability_PXB << "\n"
298  << "\tPXF = " << theHitFindingProbability_PXF << "\n"
299  << "\tTIB1 = " << theHitFindingProbability_TIB1 << "\n"
300  << "\tTIB2 = " << theHitFindingProbability_TIB2 << "\n"
301  << "\tTIB3 = " << theHitFindingProbability_TIB3 << "\n"
302  << "\tTIB4 = " << theHitFindingProbability_TIB4 << "\n"
303  << "\tTID1 = " << theHitFindingProbability_TID1 << "\n"
304  << "\tTID2 = " << theHitFindingProbability_TID2 << "\n"
305  << "\tTID3 = " << theHitFindingProbability_TID3 << "\n"
306  << "\tTOB1 = " << theHitFindingProbability_TOB1 << "\n"
307  << "\tTOB2 = " << theHitFindingProbability_TOB2 << "\n"
308  << "\tTOB3 = " << theHitFindingProbability_TOB3 << "\n"
309  << "\tTOB4 = " << theHitFindingProbability_TOB4 << "\n"
310  << "\tTOB5 = " << theHitFindingProbability_TOB5 << "\n"
311  << "\tTOB6 = " << theHitFindingProbability_TOB6 << "\n"
312  << "\tTEC1 = " << theHitFindingProbability_TEC1 << "\n"
313  << "\tTEC2 = " << theHitFindingProbability_TEC2 << "\n"
314  << "\tTEC3 = " << theHitFindingProbability_TEC3 << "\n"
315  << "\tTEC4 = " << theHitFindingProbability_TEC4 << "\n"
316  << "\tTEC5 = " << theHitFindingProbability_TEC5 << "\n"
317  << "\tTEC6 = " << theHitFindingProbability_TEC6 << "\n"
318  << "\tTEC7 = " << theHitFindingProbability_TEC7 << "\n"
319  << std::endl;
320 #endif
321 
322  // Initialize the si strip error parametrization
325 
326  // Initialization of pixel parameterization posponed to beginRun(), since it depends on the magnetic field
327 
328 }
T getParameter(std::string const &) const
SiStripGaussianSmearingRecHitConverterAlgorithm * theSiStripErrorParametrization
SiPixelGaussianSmearingRecHitConverterAlgorithm * thePixelEndcapParametrization
SiPixelGaussianSmearingRecHitConverterAlgorithm * thePixelBarrelParametrization
tuple cout
Definition: gather_cfg.py:121
SiTrackerGaussianSmearingRecHitConverter::~SiTrackerGaussianSmearingRecHitConverter ( )
virtual

Definition at line 463 of file SiTrackerGaussianSmearingRecHitConverter.cc.

References disabledModules, numberOfDisabledModules, theBarrelMultiplicityAlphaCumulativeProbabilities, theBarrelMultiplicityBetaCumulativeProbabilities, theForwardMultiplicityAlphaCumulativeProbabilities, theForwardMultiplicityBetaCumulativeProbabilities, thePixelBarrelParametrization, thePixelBarrelResolutionFile, thePixelDataFile, thePixelEndcapParametrization, thePixelForwardResolutionFile, and theSiStripErrorParametrization.

463  {
468 
475 
477 }
SiStripGaussianSmearingRecHitConverterAlgorithm * theSiStripErrorParametrization
SiPixelGaussianSmearingRecHitConverterAlgorithm * thePixelEndcapParametrization
SiPixelGaussianSmearingRecHitConverterAlgorithm * thePixelBarrelParametrization
std::vector< SiPixelQuality::disabledModuleType > * disabledModules

Member Function Documentation

void SiTrackerGaussianSmearingRecHitConverter::beginRun ( edm::Run const &  run,
const edm::EventSetup es 
)
overridevirtual

Reimplemented from edm::EDProducer.

Definition at line 480 of file SiTrackerGaussianSmearingRecHitConverter.cc.

References gather_cfg::cout, disabledModules, doDisableChannels, geometry, edm::EventSetup::get(), edm::ParameterSet::getParameter(), MagneticField::inTesla(), loadPixelData(), PV3DBase< T, PVType, FrameType >::mag(), HLT_ES_cff::magfield, misAlignedGeometry, nAlphaBarrel, nAlphaForward, nBetaBarrel, nBetaForward, numberOfDisabledModules, GeomDetEnumerators::PixelBarrel, GeomDetEnumerators::PixelEndcap, pset_, resAlphaBarrel_binMin, resAlphaBarrel_binN, resAlphaBarrel_binWidth, resAlphaForward_binMin, resAlphaForward_binN, resAlphaForward_binWidth, resBetaBarrel_binMin, resBetaBarrel_binN, resBetaBarrel_binWidth, resBetaForward_binMin, resBetaForward_binN, resBetaForward_binWidth, AlCaHLTBitMon_QueryRunRegistry::string, thePixelBarrelParametrization, thePixelBarrelResolutionFileName, thePixelEndcapParametrization, thePixelForwardResolutionFileName, thePixelMultiplicityFileName, and useCMSSWPixelParameterization.

481 {
482 
483  // Initialize the Tracker Geometry
484  edm::ESHandle<TrackerGeometry> theGeometry;
485  es.get<TrackerDigiGeometryRecord> ().get (theGeometry);
486  geometry = &(*theGeometry);
487 
488  edm::ESHandle<TrackerGeometry> theMisAlignedGeometry;
489  es.get<TrackerDigiGeometryRecord>().get("MisAligned",theMisAlignedGeometry);
490  misAlignedGeometry = &(*theMisAlignedGeometry);
491 
492  const MagneticField* magfield;
494  es.get<IdealMagneticFieldRecord>().get(magField);
495  magfield=&(*magField);
496  GlobalPoint center(0.0, 0.0, 0.0);
497  double magFieldAtCenter = magfield->inTesla(center).mag();
498 
499  // For new parameterization: select multiplicity and resolution files according to magnetic field
501  if(magFieldAtCenter > 3.9) {
502  thePixelMultiplicityFileName = pset_.getParameter<std::string>( "PixelMultiplicityFile40T");
503  thePixelBarrelResolutionFileName = pset_.getParameter<std::string>( "PixelBarrelResolutionFile40T");
504  thePixelForwardResolutionFileName = pset_.getParameter<std::string>( "PixelForwardResolutionFile40T");
505  } else {
506  thePixelMultiplicityFileName = pset_.getParameter<std::string>( "PixelMultiplicityFile38T");
507  thePixelBarrelResolutionFileName = pset_.getParameter<std::string>( "PixelBarrelResolutionFile38T");
508  thePixelForwardResolutionFileName = pset_.getParameter<std::string>( "PixelForwardResolutionFile38T");
509  }
510  } else {
511  thePixelMultiplicityFileName = pset_.getParameter<std::string>( "PixelMultiplicityFile" );
512  thePixelBarrelResolutionFileName = pset_.getParameter<std::string>( "PixelBarrelResolutionFile");
513  thePixelForwardResolutionFileName = pset_.getParameter<std::string>( "PixelForwardResolutionFile");
514  }
515 
516 
517  // Reading the list of dead pixel modules from DB:
518  edm::ESHandle<SiPixelQuality> siPixelBadModule;
519  es.get<SiPixelQualityRcd>().get(siPixelBadModule);
521  if (doDisableChannels) {
522  disabledModules = new std::vector<SiPixelQuality::disabledModuleType> ( siPixelBadModule->getBadComponentList() );
524  size_t numberOfRecoverableModules = 0;
525  for (size_t id=0;id<numberOfDisabledModules;id++) {
527  // errortype "whole" = int 0 in DB //
528  // errortype "tbmA" = int 1 in DB //
529  // errortype "tbmB" = int 2 in DB //
530  // errortype "none" = int 3 in DB //
532  if ( (*disabledModules)[id-numberOfRecoverableModules].errorType != 0 ){
533  // Disable only the modules totally in error:
534  disabledModules->erase(disabledModules->begin()+id-numberOfRecoverableModules);
535  numberOfRecoverableModules++;
536  }
537  }
538  numberOfDisabledModules = disabledModules->size();
539  }
540 
541 
542 
543 #ifdef FAMOS_DEBUG
544  std::cout << "Pixel multiplicity data are taken from file " << thePixelMultiplicityFileName << std::endl;
545 
546  std::cout << "Pixel maximum multiplicity set to "
547  << "\nBarrel" << "\talpha " << nAlphaBarrel
548  << "\tbeta " << nBetaBarrel
549  << "\nForward" << "\talpha " << nAlphaForward
550  << "\tbeta " << nBetaForward
551  << std::endl;
552 
553  std::cout << "Barrel Pixel resolution data are taken from file "
555  << "Alpha bin min = " << resAlphaBarrel_binMin
556  << "\twidth = " << resAlphaBarrel_binWidth
557  << "\tbins = " << resAlphaBarrel_binN
558  << "\n"
559  << " Beta bin min = " << resBetaBarrel_binMin
560  << "\twidth = " << resBetaBarrel_binWidth
561  << "\tbins = " << resBetaBarrel_binN
562  << std::endl;
563 
564  std::cout << "Forward Pixel resolution data are taken from file "
566  << "Alpha bin min = " << resAlphaForward_binMin
567  << "\twidth = " << resAlphaForward_binWidth
568  << "\tbins = " << resAlphaForward_binN
569  << "\n"
570  << " Beta bin min = " << resBetaForward_binMin
571  << "\twidth = " << resBetaForward_binWidth
572  << "\tbins = " << resBetaForward_binN
573  << std::endl;
574 #endif
575  //
576 
577  //
578  // load pixel data
579  loadPixelData();
580  //
581 
582  // Initialize and open relevant files for the pixel barrel error parametrization
585  pset_,
587  // Initialize and open relevant files for the pixel forward error parametrization
590  pset_,
592 }
T getParameter(std::string const &) const
SiPixelGaussianSmearingRecHitConverterAlgorithm * thePixelEndcapParametrization
virtual GlobalVector inTesla(const GlobalPoint &gp) const =0
Field value ad specified global point, in Tesla.
tuple magfield
Definition: HLT_ES_cff.py:2311
T mag() const
Definition: PV3DBase.h:67
SiPixelGaussianSmearingRecHitConverterAlgorithm * thePixelBarrelParametrization
std::vector< SiPixelQuality::disabledModuleType > * disabledModules
const T & get() const
Definition: EventSetup.h:55
tuple cout
Definition: gather_cfg.py:121
bool SiTrackerGaussianSmearingRecHitConverter::gaussianSmearing ( const PSimHit simHit,
Local3DPoint position,
LocalError error,
unsigned &  alphaMult,
unsigned &  betaMult,
const TrackerTopology tTopo,
RandomEngineAndDistribution const *  random 
)
private

Definition at line 839 of file SiTrackerGaussianSmearingRecHitConverter.cc.

References gather_cfg::cout, cond::rpcobgas::detid, PSimHit::detUnitId(), RandomEngineAndDistribution::flatShoot(), geometry, SiStripGaussianSmearingRecHitConverterAlgorithm::getError(), SiPixelGaussianSmearingRecHitConverterAlgorithm::getError(), SiPixelGaussianSmearingRecHitConverterAlgorithm::getPixelMultiplicityAlpha(), SiPixelGaussianSmearingRecHitConverterAlgorithm::getPixelMultiplicityBeta(), SiStripGaussianSmearingRecHitConverterAlgorithm::getPosition(), SiPixelGaussianSmearingRecHitConverterAlgorithm::getPosition(), TrackerGeometry::idToDetUnit(), Bounds::length(), PSimHit::localPosition(), localPositionResolution_TEC1x, localPositionResolution_TEC1y, localPositionResolution_TEC2x, localPositionResolution_TEC2y, localPositionResolution_TEC3x, localPositionResolution_TEC3y, localPositionResolution_TEC4x, localPositionResolution_TEC4y, localPositionResolution_TEC5x, localPositionResolution_TEC5y, localPositionResolution_TEC6x, localPositionResolution_TEC6y, localPositionResolution_TEC7x, localPositionResolution_TEC7y, localPositionResolution_TIB1x, localPositionResolution_TIB1y, localPositionResolution_TIB2x, localPositionResolution_TIB2y, localPositionResolution_TIB3x, localPositionResolution_TIB3y, localPositionResolution_TIB4x, localPositionResolution_TIB4y, localPositionResolution_TID1x, localPositionResolution_TID1y, localPositionResolution_TID2x, localPositionResolution_TID2y, localPositionResolution_TID3x, localPositionResolution_TID3y, localPositionResolution_TOB1x, localPositionResolution_TOB1y, localPositionResolution_TOB2x, localPositionResolution_TOB2y, localPositionResolution_TOB3x, localPositionResolution_TOB3y, localPositionResolution_TOB4x, localPositionResolution_TOB4y, localPositionResolution_TOB5x, localPositionResolution_TOB5y, localPositionResolution_TOB6x, localPositionResolution_TOB6y, localPositionResolution_z, position, TrackerTopology::pxbLayer(), TrackerTopology::pxfDisk(), SiStripGaussianSmearingRecHitConverterAlgorithm::smearHit(), SiPixelGaussianSmearingRecHitConverterAlgorithm::smearHit(), GeomDet::surface(), TrackerTopology::tecRing(), theHitFindingProbability_PXB, theHitFindingProbability_PXF, theHitFindingProbability_TEC1, theHitFindingProbability_TEC2, theHitFindingProbability_TEC3, theHitFindingProbability_TEC4, theHitFindingProbability_TEC5, theHitFindingProbability_TEC6, theHitFindingProbability_TEC7, theHitFindingProbability_TIB1, theHitFindingProbability_TIB2, theHitFindingProbability_TIB3, theHitFindingProbability_TIB4, theHitFindingProbability_TID1, theHitFindingProbability_TID2, theHitFindingProbability_TID3, theHitFindingProbability_TOB1, theHitFindingProbability_TOB2, theHitFindingProbability_TOB3, theHitFindingProbability_TOB4, theHitFindingProbability_TOB5, theHitFindingProbability_TOB6, thePixelBarrelParametrization, thePixelEndcapParametrization, theSiStripErrorParametrization, TrackerTopology::tibLayer(), TrackerTopology::tidRing(), TrackerTopology::tobLayer(), trackingPSimHits, Bounds::width(), and PV3DBase< T, PVType, FrameType >::y().

Referenced by smearHits().

846 {
847 
848  // A few caracteritics of the detid the SimHit belongs to.
849  unsigned int subdet = DetId(simHit.detUnitId()).subdetId();
850  unsigned int detid = DetId(simHit.detUnitId()).rawId();
851  const GeomDetUnit* theDetUnit = geometry->idToDetUnit((DetId)simHit.detUnitId());
852  const BoundPlane& theDetPlane = theDetUnit->surface();
853  const Bounds& theBounds = theDetPlane.bounds();
854  double boundX = theBounds.width()/2.;
855  double boundY = theBounds.length()/2.;
856 
857 #ifdef FAMOS_DEBUG
858  std::cout << "\tSubdetector " << subdet
859  << " rawid " << detid
860  << std::endl;
861 #endif
862  if(trackingPSimHits) {
863  // z is fixed for all detectors, in case of errors resolution is fixed also for x and y to 1 um (zero)
864  // The Matrix is the Covariance Matrix, sigma^2 on diagonal!!!
866  0.0 ,
867  localPositionResolution_z * localPositionResolution_z );
868  //
869  // starting from PSimHit local position
870  position = simHit.localPosition();
871 #ifdef FAMOS_DEBUG
872  std::cout << " Tracking PSimHit position set to " << position;
873 #endif
874  return true; // RecHit == PSimHit with 100% hit finding efficiency
875  }
876  //
877 
878  // hit finding probability --> RecHit will be created if and only if hitFindingProbability <= theHitFindingProbability_###
879  double hitFindingProbability = random->flatShoot();
880 #ifdef FAMOS_DEBUG
881  std::cout << " Hit finding probability draw: " << hitFindingProbability << std::endl;;
882 #endif
883 
884  switch (subdet) {
885  // Pixel Barrel
886  case 1:
887  {
888 #ifdef FAMOS_DEBUG
889 
890  unsigned int theLayer = tTopo->pxbLayer(detid);
891  std::cout << "\tPixel Barrel Layer " << theLayer << std::endl;
892 #endif
893  if( hitFindingProbability > theHitFindingProbability_PXB ) return false;
894  // Hit smearing
895  const PixelGeomDetUnit* pixelDetUnit = dynamic_cast<const PixelGeomDetUnit*>(theDetUnit);
896  thePixelBarrelParametrization->smearHit(simHit, pixelDetUnit, boundX, boundY, random);
901  return true;
902  break;
903  }
904  // Pixel Forward
905  case 2:
906  {
907 #ifdef FAMOS_DEBUG
908 
909  unsigned int theDisk = tTopo->pxfDisk(detid);
910  std::cout << "\tPixel Forward Disk " << theDisk << std::endl;
911 #endif
912  if( hitFindingProbability > theHitFindingProbability_PXF ) return false;
913  // Hit smearing
914  const PixelGeomDetUnit* pixelDetUnit = dynamic_cast<const PixelGeomDetUnit*>(theDetUnit);
915  thePixelEndcapParametrization->smearHit(simHit, pixelDetUnit, boundX, boundY, random);
920  return true;
921  break;
922  }
923  // TIB
924  case 3:
925  {
926 
927  unsigned int theLayer = tTopo->tibLayer(detid);
928 #ifdef FAMOS_DEBUG
929  std::cout << "\tTIB Layer " << theLayer << std::endl;
930 #endif
931  //
932  double resolutionX, resolutionY, resolutionZ;
933  resolutionZ = localPositionResolution_z;
934 
935  switch (theLayer) {
936  case 1:
937  {
938  resolutionX = localPositionResolution_TIB1x;
939  resolutionY = localPositionResolution_TIB1y;
940  if( hitFindingProbability > theHitFindingProbability_TIB1 ) return false;
941  break;
942  }
943  case 2:
944  {
945  resolutionX = localPositionResolution_TIB2x;
946  resolutionY = localPositionResolution_TIB2y;
947  if( hitFindingProbability > theHitFindingProbability_TIB2 ) return false;
948  break;
949  }
950  case 3:
951  {
952  resolutionX = localPositionResolution_TIB3x;
953  resolutionY = localPositionResolution_TIB3y;
954  if( hitFindingProbability > theHitFindingProbability_TIB3 ) return false;
955  break;
956  }
957  case 4:
958  {
959  resolutionX = localPositionResolution_TIB4x;
960  resolutionY = localPositionResolution_TIB4y;
961  if( hitFindingProbability > theHitFindingProbability_TIB4 ) return false;
962  break;
963  }
964  default:
965  {
966  edm::LogError ("SiTrackerGaussianSmearingRecHits")
967  << "\tTIB Layer not valid " << theLayer << std::endl;
968  return false;
969  break;
970  }
971  }
972 
973  // Gaussian smearing
974  theSiStripErrorParametrization->smearHit(simHit, resolutionX, resolutionY, resolutionZ, boundX, boundY, random);
977  alphaMult = 0;
978  betaMult = 0;
979  return true;
980  break;
981  } // TIB
982 
983  // TID
984  case 4:
985  {
986 
987  unsigned int theRing = tTopo->tidRing(detid);
988  double resolutionFactorY =
989  1. - simHit.localPosition().y() / theDetPlane.position().perp();
990 
991 #ifdef FAMOS_DEBUG
992  std::cout << "\tTID Ring " << theRing << std::endl;
993 #endif
994  double resolutionX, resolutionY, resolutionZ;
995  resolutionZ = localPositionResolution_z;
996 
997  switch (theRing) {
998  case 1:
999  {
1000  resolutionX = localPositionResolution_TID1x * resolutionFactorY;
1001  resolutionY = localPositionResolution_TID1y;
1002  if( hitFindingProbability > theHitFindingProbability_TID1 ) return false;
1003  break;
1004  }
1005  case 2:
1006  {
1007  resolutionX = localPositionResolution_TID2x * resolutionFactorY;
1008  resolutionY = localPositionResolution_TID2y;
1009  if( hitFindingProbability > theHitFindingProbability_TID2 ) return false;
1010  break;
1011  }
1012  case 3:
1013  {
1014  resolutionX = localPositionResolution_TID3x * resolutionFactorY;
1015  resolutionY = localPositionResolution_TID3y;
1016  if( hitFindingProbability > theHitFindingProbability_TID3 ) return false;
1017  break;
1018  }
1019  default:
1020  {
1021  edm::LogError ("SiTrackerGaussianSmearingRecHits")
1022  << "\tTID Ring not valid " << theRing << std::endl;
1023  return false;
1024  break;
1025  }
1026  }
1027 
1028  boundX *= resolutionFactorY;
1029 
1030  theSiStripErrorParametrization->smearHit(simHit, resolutionX, resolutionY, resolutionZ, boundX, boundY, random);
1033  alphaMult = 0;
1034  betaMult = 0;
1035  return true;
1036  break;
1037  } // TID
1038 
1039  // TOB
1040  case 5:
1041  {
1042 
1043  unsigned int theLayer = tTopo->tobLayer(detid);
1044 #ifdef FAMOS_DEBUG
1045  std::cout << "\tTOB Layer " << theLayer << std::endl;
1046 #endif
1047  double resolutionX, resolutionY, resolutionZ;
1048  resolutionZ = localPositionResolution_z;
1049 
1050  switch (theLayer) {
1051  case 1:
1052  {
1053  resolutionX = localPositionResolution_TOB1x;
1054  resolutionY = localPositionResolution_TOB1y;
1055  if( hitFindingProbability > theHitFindingProbability_TOB1 ) return false;
1056  break;
1057  }
1058  case 2:
1059  {
1060  resolutionX = localPositionResolution_TOB2x;
1061  resolutionY = localPositionResolution_TOB2y;
1062  if( hitFindingProbability > theHitFindingProbability_TOB2 ) return false;
1063  break;
1064  }
1065  case 3:
1066  {
1067  resolutionX = localPositionResolution_TOB3x;
1068  resolutionY = localPositionResolution_TOB3y;
1069  if( hitFindingProbability > theHitFindingProbability_TOB3 ) return false;
1070  break;
1071  }
1072  case 4:
1073  {
1074  resolutionX = localPositionResolution_TOB4x;
1075  resolutionY = localPositionResolution_TOB4y;
1076  if( hitFindingProbability > theHitFindingProbability_TOB4 ) return false;
1077  break;
1078  }
1079  case 5:
1080  {
1081  resolutionX = localPositionResolution_TOB5x;
1082  resolutionY = localPositionResolution_TOB5y;
1083  if( hitFindingProbability > theHitFindingProbability_TOB5 ) return false;
1084  break;
1085  }
1086  case 6:
1087  {
1088  resolutionX = localPositionResolution_TOB6x;
1089  resolutionY = localPositionResolution_TOB6y;
1090  if( hitFindingProbability > theHitFindingProbability_TOB6 ) return false;
1091  break;
1092  }
1093  default:
1094  {
1095  edm::LogError ("SiTrackerGaussianSmearingRecHits")
1096  << "\tTOB Layer not valid " << theLayer << std::endl;
1097  return false;
1098  break;
1099  }
1100  }
1101  theSiStripErrorParametrization->smearHit(simHit, resolutionX, resolutionY, resolutionZ, boundX, boundY, random);
1104  alphaMult = 0;
1105  betaMult = 0;
1106  return true;
1107  break;
1108  } // TOB
1109 
1110  // TEC
1111  case 6:
1112  {
1113 
1114  unsigned int theRing = tTopo->tecRing(detid);
1115  double resolutionFactorY =
1116  1. - simHit.localPosition().y() / theDetPlane.position().perp();
1117 
1118 #ifdef FAMOS_DEBUG
1119  std::cout << "\tTEC Ring " << theRing << std::endl;
1120 #endif
1121  double resolutionX, resolutionY, resolutionZ;
1123 
1124  switch (theRing) {
1125  case 1:
1126  {
1127  resolutionX = localPositionResolution_TEC1x * resolutionFactorY;
1128  resolutionY = localPositionResolution_TEC1y;
1129  if( hitFindingProbability > theHitFindingProbability_TEC1 ) return false;
1130  break;
1131  }
1132  case 2:
1133  {
1134  resolutionX = localPositionResolution_TEC2x * resolutionFactorY;
1135  resolutionY = localPositionResolution_TEC2y;
1136  if( hitFindingProbability > theHitFindingProbability_TEC2 ) return false;
1137  break;
1138  }
1139  case 3:
1140  {
1141  resolutionX = localPositionResolution_TEC3x * resolutionFactorY;
1142  resolutionY = localPositionResolution_TEC3y;
1143  if( hitFindingProbability > theHitFindingProbability_TEC3 ) return false;
1144  break;
1145  }
1146  case 4:
1147  {
1148  resolutionX = localPositionResolution_TEC4x * resolutionFactorY;
1149  resolutionY = localPositionResolution_TEC4y;
1150  if( hitFindingProbability > theHitFindingProbability_TEC4 ) return false;
1151  break;
1152  }
1153  case 5:
1154  {
1155  resolutionX = localPositionResolution_TEC5x * resolutionFactorY;
1156  resolutionY = localPositionResolution_TEC5y;
1157  if( hitFindingProbability > theHitFindingProbability_TEC5 ) return false;
1158  break;
1159  }
1160  case 6:
1161  {
1162  resolutionX = localPositionResolution_TEC6x * resolutionFactorY;
1163  resolutionY = localPositionResolution_TEC6y;
1164  if( hitFindingProbability > theHitFindingProbability_TEC6 ) return false;
1165  break;
1166  }
1167  case 7:
1168  {
1169  resolutionX = localPositionResolution_TEC7x * resolutionFactorY;
1170  resolutionY = localPositionResolution_TEC7y;
1171  if( hitFindingProbability > theHitFindingProbability_TEC7 ) return false;
1172  break;
1173  }
1174  default:
1175  {
1176  edm::LogError ("SiTrackerGaussianSmearingRecHits")
1177  << "\tTEC Ring not valid " << theRing << std::endl;
1178  return false;
1179  break;
1180  }
1181  }
1182 
1183  boundX *= resolutionFactorY;
1184  theSiStripErrorParametrization->smearHit(simHit, resolutionX, resolutionY, resolutionZ, boundX, boundY, random);
1187  alphaMult = 0;
1188  betaMult = 0;
1189  return true;
1190  break;
1191  } // TEC
1192 
1193  default:
1194  {
1195  edm::LogError ("SiTrackerGaussianSmearingRecHits") << "\tTracker subdetector not valid " << subdet << std::endl;
1196  return false;
1197  break;
1198  }
1199 
1200  } // subdetector case
1201  //
1202 }
SiStripGaussianSmearingRecHitConverterAlgorithm * theSiStripErrorParametrization
virtual float length() const =0
unsigned int tibLayer(const DetId &id) const
unsigned int tidRing(const DetId &id) const
SiPixelGaussianSmearingRecHitConverterAlgorithm * thePixelEndcapParametrization
unsigned int pxfDisk(const DetId &id) const
unsigned int tecRing(const DetId &id) const
ring id
T y() const
Definition: PV3DBase.h:63
TRandom random
Definition: MVATrainer.cc:138
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:35
Local3DPoint localPosition() const
Definition: PSimHit.h:44
SiPixelGaussianSmearingRecHitConverterAlgorithm * thePixelBarrelParametrization
unsigned int pxbLayer(const DetId &id) const
Definition: DetId.h:18
void smearHit(const PSimHit &simHit, const PixelGeomDetUnit *detUnit, const double boundX, const double boundY, RandomEngineAndDistribution const *)
virtual const GeomDetUnit * idToDetUnit(DetId) const
Return the pointer to the GeomDetUnit corresponding to a given DetId.
static int position[264][3]
Definition: ReadPGInfo.cc:509
tuple cout
Definition: gather_cfg.py:121
Definition: Bounds.h:22
virtual float width() const =0
unsigned int detUnitId() const
Definition: PSimHit.h:93
unsigned int tobLayer(const DetId &id) const
void smearHit(const PSimHit &simHit, double localPositionResolutionX, double localPositionResolutionY, double localPositionResolutionZ, double boundX, double boundY, RandomEngineAndDistribution const *)
void SiTrackerGaussianSmearingRecHitConverter::loadClusters ( std::map< unsigned, edm::OwnVector< FastTrackerCluster > > &  theClusterMap,
FastTrackerClusterCollection theClusterCollection 
) const

Definition at line 1207 of file SiTrackerGaussianSmearingRecHitConverter.cc.

References end, and edm::RangeMap< ID, C, P >::put().

Referenced by produce().

1210 {
1211  std::map<unsigned,edm::OwnVector<FastTrackerCluster> >::const_iterator
1212  it = theClusterMap.begin();
1213  std::map<unsigned,edm::OwnVector<FastTrackerCluster> >::const_iterator
1214  lastCluster = theClusterMap.end();
1215 
1216  for( ; it != lastCluster ; ++it ) {
1217  theClusterCollection.put(it->first,(it->second).begin(),(it->second).end());
1218  }
1219 }
#define end
Definition: vmac.h:37
void put(ID id, CI begin, CI end)
insert an object range with specified identifier
Definition: RangeMap.h:117
void SiTrackerGaussianSmearingRecHitConverter::loadMatchedRecHits ( std::map< unsigned, edm::OwnVector< SiTrackerGSMatchedRecHit2D > > &  theRecHits,
SiTrackerGSMatchedRecHit2DCollection theRecHitCollection 
) const

Definition at line 1240 of file SiTrackerGaussianSmearingRecHitConverter.cc.

References end, and edm::RangeMap< ID, C, P >::put().

Referenced by produce().

1243 {
1244  std::map<unsigned,edm::OwnVector<SiTrackerGSMatchedRecHit2D> >::const_iterator
1245  it = theRecHits.begin();
1246  std::map<unsigned,edm::OwnVector<SiTrackerGSMatchedRecHit2D> >::const_iterator
1247  lastRecHit = theRecHits.end();
1248 
1249  for( ; it != lastRecHit ; ++it ) {
1250  theRecHitCollection.put(it->first,(it->second).begin(),(it->second).end());
1251  }
1252 
1253 }
#define end
Definition: vmac.h:37
void put(ID id, CI begin, CI end)
insert an object range with specified identifier
Definition: RangeMap.h:117
void SiTrackerGaussianSmearingRecHitConverter::loadPixelData ( )
private

Definition at line 331 of file SiTrackerGaussianSmearingRecHitConverter.cc.

References contentValuesFiles::fullPath, nAlphaBarrel, nAlphaForward, nBetaBarrel, nBetaForward, AlCaHLTBitMon_QueryRunRegistry::string, theBarrelMultiplicityAlphaCumulativeProbabilities, theBarrelMultiplicityBetaCumulativeProbabilities, theForwardMultiplicityAlphaCumulativeProbabilities, theForwardMultiplicityBetaCumulativeProbabilities, thePixelBarrelResolutionFile, thePixelBarrelResolutionFileName, thePixelDataFile, thePixelForwardResolutionFile, thePixelForwardResolutionFileName, thePixelMultiplicityFileName, and useCMSSWPixelParameterization.

Referenced by beginRun().

331  {
332  // load multiplicity cumulative probabilities
333  // root files
334  thePixelDataFile = new TFile ( edm::FileInPath( thePixelMultiplicityFileName ).fullPath().c_str() , "READ" );
337  //
338 
339  // alpha barrel
341  nAlphaBarrel ,
342  std::string("hist_alpha_barrel") ,
344  //
345  // beta barrel
347  nBetaBarrel ,
348  std::string("hist_beta_barrel") ,
350  //
351  // alpha forward
353  nAlphaForward ,
354  std::string("hist_alpha_forward") ,
356  //
357  // beta forward
359  nBetaForward ,
360  std::string("hist_beta_forward") ,
362 
363  // Load also big pixel data if CMSSW parametrization is on
364  // They are pushed back into the vectors after the normal pixels data:
365  // [0, ..., (size/2)-1] -> Normal pixels
366  // [size/2, ..., size-1] -> Big pixels
368  // alpha barrel
370  nAlphaBarrel ,
371  std::string("hist_alpha_barrel_big") ,
373  true );
374  //
375  // beta barrel
377  nBetaBarrel ,
378  std::string("hist_beta_barrel_big") ,
380  true );
381  //
382  // alpha forward
384  nAlphaForward ,
385  std::string("hist_alpha_forward_big") ,
387  true );
388  //
389  // beta forward
391  nBetaForward ,
392  std::string("hist_beta_forward_big") ,
394  true );
395  }
396  //
397 }
void SiTrackerGaussianSmearingRecHitConverter::loadPixelData ( TFile *  pixelDataFile,
unsigned int  nMultiplicity,
std::string  histName,
std::vector< TH1F * > &  theMultiplicityCumulativeProbabilities,
bool  bigPixels = false 
)
private

Definition at line 399 of file SiTrackerGaussianSmearingRecHitConverter.cc.

References gather_cfg::cout, i, AlCaHLTBitMon_QueryRunRegistry::string, and useCMSSWPixelParameterization.

405 {
406 
407  std::string histName_i = histName + "_%u"; // needed to open histograms with a for
408  if(!bigPixels)
409  theMultiplicityCumulativeProbabilities.clear();
410  //
411  // What's this vector? Not needed - MG
412 // std::vector<double> mult; // vector with fixed multiplicity
413  for(unsigned int i = 0; i<nMultiplicity; ++i) {
414  TH1F addHist = *((TH1F*) pixelDataFile->Get( Form( histName_i.c_str() ,i+1 )));
415  if(i==0) {
416  theMultiplicityCumulativeProbabilities.push_back( new TH1F(addHist) );
417  } else {
418  TH1F sumHist;
419  if(bigPixels)
420  sumHist = *(theMultiplicityCumulativeProbabilities[nMultiplicity+i-1]);
421  else
422  sumHist = *(theMultiplicityCumulativeProbabilities[i-1]);
423  sumHist.Add(&addHist);
424  theMultiplicityCumulativeProbabilities.push_back( new TH1F(sumHist) );
425  }
426  }
427 
428  // Logger
429 #ifdef FAMOS_DEBUG
430  const unsigned int maxMult = theMultiplicityCumulativeProbabilities.size();
431  unsigned int iMult, multSize;
433  if(bigPixels) {
434  iMult = maxMult / 2;
435  multSize = maxMult ;
436  } else {
437  iMult = 0;
438  multSize = maxMult;
439  }
440  } else {
441  iMult = 0;
442  multSize = maxMult ;
443  }
444  std::cout << " Multiplicity cumulated probability " << histName << std::endl;
445  for(/* void */; iMult<multSize; ++iMult) {
446  for(int iBin = 1; iBin<=theMultiplicityCumulativeProbabilities[iMult]->GetNbinsX(); ++iBin) {
447  std::cout
448  << " Multiplicity " << iMult+1
449  << " bin " << iBin
450  << " low edge = "
451  << theMultiplicityCumulativeProbabilities[iMult]->GetBinLowEdge(iBin)
452  << " prob = "
453  << (theMultiplicityCumulativeProbabilities[iMult])->GetBinContent(iBin)
454  // remember in ROOT bin starts from 1 (0 underflow, nBin+1 overflow)
455  << std::endl;
456  }
457  }
458 #endif
459 
460 }
int i
Definition: DBlmapReader.cc:9
tuple cout
Definition: gather_cfg.py:121
void SiTrackerGaussianSmearingRecHitConverter::loadRecHits ( std::map< unsigned, edm::OwnVector< SiTrackerGSRecHit2D > > &  theRecHits,
SiTrackerGSRecHit2DCollection theRecHitCollection 
) const

Definition at line 1224 of file SiTrackerGaussianSmearingRecHitConverter.cc.

References end, and edm::RangeMap< ID, C, P >::put().

Referenced by produce().

1227 {
1228  std::map<unsigned,edm::OwnVector<SiTrackerGSRecHit2D> >::const_iterator
1229  it = theRecHits.begin();
1230  std::map<unsigned,edm::OwnVector<SiTrackerGSRecHit2D> >::const_iterator
1231  lastRecHit = theRecHits.end();
1232 
1233  for( ; it != lastRecHit ; ++it ) {
1234  theRecHitCollection.put(it->first,(it->second).begin(),(it->second).end());
1235  }
1236 
1237 }
#define end
Definition: vmac.h:37
void put(ID id, CI begin, CI end)
insert an object range with specified identifier
Definition: RangeMap.h:117
void SiTrackerGaussianSmearingRecHitConverter::matchHits ( std::map< unsigned, edm::OwnVector< SiTrackerGSRecHit2D > > &  theRecHits,
std::map< unsigned, edm::OwnVector< SiTrackerGSMatchedRecHit2D > > &  matchedMap 
)

Definition at line 1257 of file SiTrackerGaussianSmearingRecHitConverter.cc.

References correspondingSimHit, cond::rpcobgas::detid, geometry, StripSubdetector::glued(), TrackerGeometry::idToDet(), getDQMSummary::iter, GSRecHitMatcher::match(), GSRecHitMatcher::projectOnly(), DetId::rawId(), StripSubdetector::stereo(), GluedGeomDet::stereoDet(), DetId::subdetId(), GeomDet::surface(), Surface::toGlobal(), and GloballyPositioned< T >::toLocal().

Referenced by produce().

1259  {//,
1260  // MixCollection<PSimHit>& simhits ) {
1261 // const edm::PSimHitContainer& simhits ) { // not used in the function??? (AG)
1262 
1263 
1264  std::map<unsigned, edm::OwnVector<SiTrackerGSRecHit2D> >::iterator it = theRecHits.begin();
1265  std::map<unsigned, edm::OwnVector<SiTrackerGSRecHit2D> >::iterator lastTrack = theRecHits.end();
1266 
1267 
1268  int recHitCounter = 0;
1269 
1270 
1271  //loop over single sided tracker RecHit
1272  for( ; it != lastTrack; ++it ) {
1273 
1274  edm::OwnVector<SiTrackerGSRecHit2D>::const_iterator rit = it->second.begin();
1275  edm::OwnVector<SiTrackerGSRecHit2D>::const_iterator firstRecHit = it->second.begin();
1276  edm::OwnVector<SiTrackerGSRecHit2D>::const_iterator lastRecHit = it->second.end();
1277 
1278  //loop over rechits in track
1279  for ( ; rit != lastRecHit; ++rit,++recHitCounter){
1280 
1281  DetId detid = rit->geographicalId();
1282  unsigned int subdet = detid.subdetId();
1283  // if in the strip (subdet>2)
1284  if(subdet>2){
1285 
1286  StripSubdetector specDetId=StripSubdetector(detid);
1287 
1288  // if this is on a glued, then place only one hit in vector
1289  if(specDetId.glued()){
1290 
1291  // get the track direction from the simhit
1292  LocalVector simtrackdir = correspondingSimHit[recHitCounter]->localDirection();
1293 
1294  const GluedGeomDet* gluedDet = (const GluedGeomDet*)geometry->idToDet(DetId(specDetId.glued()));
1295  const StripGeomDetUnit* stripdet =(StripGeomDetUnit*) gluedDet->stereoDet();
1296 
1297  // global direction of track
1298  GlobalVector globaldir= stripdet->surface().toGlobal(simtrackdir);
1299  LocalVector gluedsimtrackdir=gluedDet->surface().toLocal(globaldir);
1300 
1301  // get partner layer, it is the next one or previous one in the vector
1305  partnerNext++; partnerPrev--;
1306 
1307  // check if this hit is on a stereo layer (== the second layer of a double sided module)
1308  if( specDetId.stereo() ) {
1309 
1310  int partnersFound = 0;
1311  // check next one in vector
1312  // safety check first
1313  if(partnerNext != it->second.end() )
1314  if( StripSubdetector( partnerNext->geographicalId() ).partnerDetId() == detid.rawId() ) {
1315  partner= partnerNext;
1316  partnersFound++;
1317  }
1318  // check prevoius one in vector
1319  if( rit != it->second.begin())
1320  if( StripSubdetector( partnerPrev->geographicalId() ).partnerDetId() == detid.rawId() ) {
1321  partnersFound++;
1322  partner= partnerPrev;
1323  }
1324 
1325 
1326  // in case partner has not been found this way, need to loop over all rechits in track to be sure
1327  // (rare cases fortunately)
1328  if(partnersFound==0){
1329  for(edm::OwnVector<SiTrackerGSRecHit2D>::const_iterator iter = firstRecHit; iter != lastRecHit; ++iter ){
1330  if( StripSubdetector( iter->geographicalId() ).partnerDetId() == detid.rawId()){
1331  partnersFound++;
1332  partner = iter;
1333  }
1334  }
1335  }
1336 
1337  if(partnersFound == 1) {
1338  SiTrackerGSMatchedRecHit2D * theMatchedHit =GSRecHitMatcher().match( &(*partner), &(*rit), gluedDet , gluedsimtrackdir );
1339 
1340 
1341  // std::cout << "Matched hit: isMatched =\t" << theMatchedHit->isMatched() << ", "
1342  // << theMatchedHit->monoHit() << ", " << theMatchedHit->stereoHit() << std::endl;
1343 
1344  matchedMap[it->first].push_back( theMatchedHit );
1345  }
1346  else{
1347  // no partner to match, place projected one in map
1348  SiTrackerGSMatchedRecHit2D * theProjectedHit = GSRecHitMatcher().projectOnly( &(*rit), geometry->idToDet(detid),gluedDet, gluedsimtrackdir );
1349  matchedMap[it->first].push_back( theProjectedHit );
1350  //there is no partner here
1351  }
1352  } // end if stereo
1353  else { // we are on a mono layer
1354  // usually this hit is already matched, but not if stereo hit is missing (rare cases)
1355  // check if stereo hit is missing
1356  int partnersFound = 0;
1357  // check next one in vector
1358  // safety check first
1359  if(partnerNext != it->second.end() )
1360  if( StripSubdetector( partnerNext->geographicalId() ).partnerDetId() == detid.rawId() ) {
1361  partnersFound++;
1362  }
1363  // check prevoius one in vector
1364  if( rit != it->second.begin())
1365  if( StripSubdetector( partnerPrev->geographicalId() ).partnerDetId() == detid.rawId() ) {
1366  partnersFound++;
1367  }
1368 
1369  if(partnersFound==0){ // no partner hit found this way, need to iterate over all hits to be sure (rare cases)
1370  for(edm::OwnVector<SiTrackerGSRecHit2D>::const_iterator iter = firstRecHit; iter != lastRecHit; ++iter ){
1371  if( StripSubdetector( iter->geographicalId() ).partnerDetId() == detid.rawId()){
1372  partnersFound++;
1373  }
1374  }
1375  }
1376 
1377 
1378  if(partnersFound==0){ // no partner hit found
1379  // no partner to match, place projected one one in map
1380  SiTrackerGSMatchedRecHit2D * theProjectedHit =
1381  GSRecHitMatcher().projectOnly( &(*rit), geometry->idToDet(detid),gluedDet, gluedsimtrackdir );
1382 
1383  //std::cout << "Projected hit: isMatched =\t" << theProjectedHit->isMatched() << ", "
1384  // << theProjectedHit->monoHit() << ", " << theProjectedHit->stereoHit() << std::endl;
1385 
1386  matchedMap[it->first].push_back( theProjectedHit );
1387  }
1388  } // end we are on a a mono layer
1389  } // end if glued
1390  // else matchedMap[it->first].push_back( rit->clone() ); // if not glued place the original one in vector
1391  else{ //need to copy the original in a "matched" type rechit
1392 
1393  SiTrackerGSMatchedRecHit2D* rit_copy = new SiTrackerGSMatchedRecHit2D(rit->localPosition(), rit->localPositionError(),
1394  *rit->det(),
1395  rit->simhitId(), rit->simtrackId(), rit->eeId(),
1396  rit->cluster(),
1397  rit->simMultX(), rit->simMultY());
1398  //std::cout << "Simple hit hit: isMatched =\t" << rit_copy->isMatched() << ", "
1399  // << rit_copy->monoHit() << ", " << rit_copy->stereoHit() << std::endl;
1400 
1401  matchedMap[it->first].push_back( rit_copy ); // if not strip place the original one in vector (making it into a matched)
1402  }
1403 
1404  }// end if strip
1405  // else matchedMap[it->first].push_back( rit->clone() ); // if not strip place the original one in vector
1406  else { //need to copy the original in a "matched" type rechit
1407 
1408  SiTrackerGSMatchedRecHit2D* rit_copy = new SiTrackerGSMatchedRecHit2D(rit->localPosition(), rit->localPositionError(),
1409  *rit->det(),
1410  rit->simhitId(), rit->simtrackId(), rit->eeId(),
1411  rit->cluster(),
1412  rit->simMultX(), rit->simMultY());
1413 
1414  //std::cout << "Simple hit hit: isMatched =\t" << rit_copy->isMatched() << ", "
1415  // << rit_copy->monoHit() << ", " << rit_copy->stereoHit() << std::endl;
1416  matchedMap[it->first].push_back( rit_copy ); // if not strip place the original one in vector (makining it into a matched)
1417  }
1418 
1419  } // end loop over rechits
1420 
1421  }// end loop over tracks
1422 }
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:114
SiTrackerGSMatchedRecHit2D * match(const SiTrackerGSRecHit2D *monoRH, const SiTrackerGSRecHit2D *stereoRH, const GluedGeomDet *gluedDet, LocalVector &trackdirection) const
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:35
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
unsigned int glued() const
glued
LocalPoint toLocal(const GlobalPoint &gp) const
int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:37
virtual const GeomDet * idToDet(DetId) const
Definition: DetId.h:18
unsigned int stereo() const
stereo
SiTrackerGSMatchedRecHit2D * projectOnly(const SiTrackerGSRecHit2D *monoRH, const GeomDet *monoDet, const GluedGeomDet *gluedDet, LocalVector &ldir) const
const GeomDetUnit * stereoDet() const
Definition: GluedGeomDet.h:21
void SiTrackerGaussianSmearingRecHitConverter::produce ( edm::Event e,
const edm::EventSetup c 
)
overridevirtual

Implements edm::EDProducer.

Definition at line 594 of file SiTrackerGaussianSmearingRecHitConverter.cc.

References doMatching, FastTrackerClusterRefProd, edm::EventSetup::get(), edm::Event::getByToken(), edm::Event::getRefBeforePut(), loadClusters(), loadMatchedRecHits(), loadRecHits(), matchHits(), edm::Event::put(), random, simHitToken, smearHits(), and edm::Event::streamID().

Referenced by JSONExport.JsonExport::export(), HTMLExport.HTMLExport::export(), and HTMLExport.HTMLExportStatic::export().

595 {
597 
598  //Retrieve tracker topology from geometry
600  es.get<IdealGeometryRecord>().get(tTopoHand);
601  const TrackerTopology *tTopo=tTopoHand.product();
602 
603 
604  // Step 0: Declare Ref and RefProd
606 
607  // Step A: Get Inputs (PSimHit's)
608  /*
609  edm::Handle<CrossingFrame<PSimHit> > cf_simhit;
610  std::vector<const CrossingFrame<PSimHit> *> cf_simhitvec;
611  for(uint32_t i=0; i<trackerContainers.size(); i++){
612  e.getByLabel(trackerContainers[i], cf_simhit);
613  cf_simhitvec.push_back(cf_simhit.product());
614  }
615  std::auto_ptr<MixCollection<PSimHit> > allTrackerHits(new MixCollection<PSimHit>(cf_simhitvec));
616  */
617 
618  edm::Handle<edm::PSimHitContainer> allTrackerHits_handle;
619  e.getByToken(simHitToken,allTrackerHits_handle);
620  const edm::PSimHitContainer& allTrackerHits=*allTrackerHits_handle;
621 
622  // Step B: create temporary RecHit collection and fill it with Gaussian smeared RecHit's
623 
624  std::map<unsigned, edm::OwnVector<SiTrackerGSRecHit2D> > temporaryRecHits;
625  std::map<unsigned, edm::OwnVector<FastTrackerCluster> > theClusters ;
626 
627  smearHits( allTrackerHits, temporaryRecHits, theClusters, tTopo, &random);
628 
629  // Step C: match rechits on stereo layers
630  std::map<unsigned, edm::OwnVector<SiTrackerGSMatchedRecHit2D> > temporaryMatchedRecHits ;
631  if(doMatching) matchHits( temporaryRecHits, temporaryMatchedRecHits);//, allTrackerHits);
632 
633  // Step D: from the temporary RecHit collection, create the real one.
634  std::auto_ptr<SiTrackerGSRecHit2DCollection> recHitCollection(new SiTrackerGSRecHit2DCollection);
635  std::auto_ptr<SiTrackerGSMatchedRecHit2DCollection> recHitCollectionMatched(new SiTrackerGSMatchedRecHit2DCollection);
636  if(doMatching){
637  loadMatchedRecHits(temporaryMatchedRecHits, *recHitCollectionMatched);
638  loadRecHits(temporaryRecHits, *recHitCollection);
639  }
640  else {
641  //might need to have a "matched" hit collection containing the simple hits
642  loadRecHits(temporaryRecHits, *recHitCollection);
643  }
644 
645 
646 
647  //std::cout << "****** TrackerGSRecHits hits are =\t" << (*recHitCollection).size()<<std::endl;
648  //std::cout << "****** TrackerGSRecHitsMatched hits are =\t" << (*recHitCollectionMatched).size()<< std::endl;
649 
650 
651 
652  // Step E: write output to file
653  e.put(recHitCollection,"TrackerGSRecHits");
654  e.put(recHitCollectionMatched,"TrackerGSMatchedRecHits");
655 
656  //STEP F: write clusters
657  std::auto_ptr<FastTrackerClusterCollection> clusterCollection(new FastTrackerClusterCollection);
658  loadClusters(theClusters, *clusterCollection);
659  e.put(clusterCollection,"TrackerClusters");
660 }
void loadRecHits(std::map< unsigned, edm::OwnVector< SiTrackerGSRecHit2D > > &theRecHits, SiTrackerGSRecHit2DCollection &theRecHitCollection) const
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:434
void smearHits(const edm::PSimHitContainer &input, std::map< unsigned, edm::OwnVector< SiTrackerGSRecHit2D > > &theRecHits, std::map< unsigned, edm::OwnVector< FastTrackerCluster > > &theClusters, const TrackerTopology *tTopo, RandomEngineAndDistribution const *)
void loadClusters(std::map< unsigned, edm::OwnVector< FastTrackerCluster > > &theClusterMap, FastTrackerClusterCollection &theClusterCollection) const
TRandom random
Definition: MVATrainer.cc:138
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:116
void loadMatchedRecHits(std::map< unsigned, edm::OwnVector< SiTrackerGSMatchedRecHit2D > > &theRecHits, SiTrackerGSMatchedRecHit2DCollection &theRecHitCollection) const
RefProd< PROD > getRefBeforePut()
Definition: Event.h:128
void matchHits(std::map< unsigned, edm::OwnVector< SiTrackerGSRecHit2D > > &theRecHits, std::map< unsigned, edm::OwnVector< SiTrackerGSMatchedRecHit2D > > &matchedMap)
StreamID streamID() const
Definition: Event.h:75
std::vector< PSimHit > PSimHitContainer
void SiTrackerGaussianSmearingRecHitConverter::smearHits ( const edm::PSimHitContainer input,
std::map< unsigned, edm::OwnVector< SiTrackerGSRecHit2D > > &  theRecHits,
std::map< unsigned, edm::OwnVector< FastTrackerCluster > > &  theClusters,
const TrackerTopology tTopo,
RandomEngineAndDistribution const *  random 
)

Definition at line 665 of file SiTrackerGaussianSmearingRecHitConverter.cc.

References GeomDet::alignmentPositionError(), correspondingSimHit, disabledModules, doMatching, ElectronsPerADC, relativeConstraints::error, FastTrackerClusterRefProd, gaussianSmearing(), geometry, GevPerElectron, AlignmentPositionError::globalError(), StripSubdetector::glued(), TrackerGeometry::idToDet(), TrackerGeometry::idToDetUnit(), misAlignedGeometry, numberOfDisabledModules, position, GeomDet::surface(), ErrorFrameTransformer::transform(), PV3DBase< T, PVType, FrameType >::x(), LocalError::xx(), LocalError::xy(), and LocalError::yy().

Referenced by produce().

670 {
671 
672  int numberOfPSimHits = 0;
673 
674 
675  // MixCollection<PSimHit>::iterator isim = input.begin();
676  // MixCollection<PSimHit>::iterator lastSimHit = input.end();
677  edm::PSimHitContainer::const_iterator isim = input.begin();
678  edm::PSimHitContainer::const_iterator lastSimHit = input.end();
679 
680 
681 
682  correspondingSimHit.resize(input.size());
685  LocalError inflatedError;
686 
687  int simHitCounter = -1;
688  int recHitCounter = 0;
689 
690 
691  // loop on PSimHits
692 
693  for ( ; isim != lastSimHit; ++isim ) {
694  ++simHitCounter;
695 
696  DetId det((*isim).detUnitId());
697  const GeomDetUnit & theDetUnit = *geometry->idToDetUnit(det);
698  unsigned trackID = (*isim).trackId();
699  uint32_t eeID = (*isim).eventId().rawId(); //get the rawId of the eeid for pileup treatment
700 
701 
702 
703 
705 
706  // unsigned int subdetId = det.subdetId();
707  // unsigned int disk = tTopo->pxfDisk(det);
708  // unsigned int side = tTopo->pxfSide(det);
709  // std::cout<< " Pixel Forward Disk Number : "<< disk << " Side : "<<side<<std::endl;
710  // if(subdetId==1 || subdetId==2) std::cout<<" Pixel GSRecHits "<<std::endl;
711  // else if(subdetId==3|| subdetId==4 || subdetId==5 || subdetId == 6) std::cout<<" Strip GSRecHits "<<std::endl;
712 
713  bool isBad = false;
714  unsigned int geoId = det.rawId();
715  for (size_t id=0;id<numberOfDisabledModules;id++) {
716  if(geoId==(*disabledModules)[id].DetID){
717  // Already selected in the beginRun() the ones with errorType = 0
718  // if((*disabledModules)[id].errorType == 0) isBad = true;
719  isBad = true;
720  break;
721  }
722  }
723  if(isBad) continue;
724 
725 
726  ++numberOfPSimHits;
727  // gaussian smearing
728  unsigned int alphaMult = 0;
729  unsigned int betaMult = 0;
730  bool isCreated = gaussianSmearing(*isim, position, error, alphaMult, betaMult, tTopo, random);
731  // std::cout << "Error as simulated " << error.xx() << " " << error.xy() << " " << error.yy() << std::endl;
732  //
733  unsigned int subdet = det.subdetId();
734 
735  //
736  if(isCreated) {
737  // double dist = theDet->surface().toGlobal((*isim).localPosition()).mag2();
738  // create RecHit
739  // Fill the temporary RecHit on the current DetId collection
740  // temporaryRecHits[trackID].push_back(
741 
742  // Fix by P.Azzi, A.Schmidt:
743  // if this hit is on a glued detector with radial topology,
744  // the x-coordinate needs to be translated correctly to y=0.
745  // this is necessary as intermediate step for the matching of hits
746 
747  // do it only if we do rec hit matching
748 // if(doMatching){
749 // StripSubdetector specDetId=StripSubdetector(det);
750 
751 // if(specDetId.glued()) if(subdet==6 || subdet==4){ // check if on double layer in TEC or TID
752 
753 // const GeomDetUnit* theDetUnit = geometry->idToDetUnit(det);
754 // const StripTopology& topol=(const StripTopology&)theDetUnit->type().topology();
755 
756 // // check if radial topology
757 // if(dynamic_cast <const RadialStripTopology*>(&topol)){
758 
759 // const RadialStripTopology *rtopol = dynamic_cast <const RadialStripTopology*>(&topol);
760 
761 // // translate to measurement coordinates
762 // MeasurementPoint mpoint=rtopol->measurementPosition(position);
763 // // set y=0
764 // MeasurementPoint mpoint0=MeasurementPoint(mpoint.x(),0.);
765 // // translate back to local coordinates with y=0
766 // LocalPoint lpoint0 = rtopol->localPosition(mpoint0);
767 // position = Local3DPoint(lpoint0.x(),0.,0.);
768 
769 // }
770 // } // end if( specDetId.glued()...
771 // } // end if(doMatching)
772 
773  // set y=0 in single-sided strip detectors
774  if(doMatching && (subdet>2)){
775  StripSubdetector specDetId=StripSubdetector(det);
776  if( !specDetId.glued() ){ // this is a single-sided module
777  position = Local3DPoint(position.x(),0.,0.); // set y to 0 on single-sided modules
778  }
779  }
780  else{ if(subdet>2) position = Local3DPoint(position.x(),0.,0.); } // no matching, set y=0 on strips
781 
782 
783  // Inflate errors in case of geometry misaligniment
784  // (still needed! what done in constructor of BaseTrackerRecHit is not effective ad geometry is not missaligned)
785  const GeomDet* theMADet = misAlignedGeometry->idToDet(det);
786  if ( theMADet->alignmentPositionError() != 0 ) {
787  LocalError lape =
789  theMADet->surface() );
790  // std::cout << "ori lape " << det.rawId() << ' ' << lape << " det lape " << theDetUnit.localAlignmentError() << std::endl;
791  error = LocalError ( error.xx()+lape.xx(),
792  error.xy()+lape.xy(),
793  error.yy()+lape.yy() );
794  }
795 
796  float chargeADC = (*isim).energyLoss()/(GevPerElectron * ElectronsPerADC);
797 
798  //create cluster
799  if(subdet > 2) theClusters[trackID].push_back(
800  new FastTrackerCluster(LocalPoint(position.x(), 0.0, 0.0), error, det,
801  simHitCounter, trackID,
802  eeID,
803  //(*isim).energyLoss())
804  chargeADC)
805  );
806  else theClusters[trackID].push_back(
807  new FastTrackerCluster(position, error, det,
808  simHitCounter, trackID,
809  eeID,
810  //(*isim).energyLoss())
811  chargeADC)
812  );
813 
814  // std::cout << "CLUSTER for simhit " << simHitCounter << "\t energy loss = " <<chargeADC << std::endl;
815 
816  // std::cout << "Error as reconstructed " << error.xx() << " " << error.xy() << " " << error.yy() << std::endl;
817 
818  // create rechit
819  temporaryRecHits[trackID].push_back(
820  new SiTrackerGSRecHit2D(position, error, theDetUnit,
821  simHitCounter, trackID,
822  eeID,
823  ClusterRef(FastTrackerClusterRefProd, simHitCounter),
824  alphaMult, betaMult)
825  );
826 
827  // This a correpondence map between RecHits and SimHits
828  // (for later use in matchHits)
829  correspondingSimHit[recHitCounter++] = isim;
830 
831 
832  } // end if(isCreated)
833 
834  } // end loop on PSimHits
835 
836 
837 }
static GlobalError transform(const LocalError &le, const Surface &surf)
float xx() const
Definition: LocalError.h:24
bool gaussianSmearing(const PSimHit &simHit, Local3DPoint &position, LocalError &error, unsigned &alphaMult, unsigned &betaMult, const TrackerTopology *tTopo, RandomEngineAndDistribution const *)
TRandom random
Definition: MVATrainer.cc:138
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:35
static std::string const input
Definition: EdmProvDump.cc:44
float xy() const
Definition: LocalError.h:25
unsigned int glued() const
glued
float yy() const
Definition: LocalError.h:26
std::vector< SiPixelQuality::disabledModuleType > * disabledModules
virtual const GeomDet * idToDet(DetId) const
Point3DBase< float, LocalTag > Local3DPoint
Definition: LocalPoint.h:9
Definition: DetId.h:18
const GlobalError & globalError() const
virtual const GeomDetUnit * idToDetUnit(DetId) const
Return the pointer to the GeomDetUnit corresponding to a given DetId.
static int position[264][3]
Definition: ReadPGInfo.cc:509
Local3DPoint LocalPoint
Definition: LocalPoint.h:11
T x() const
Definition: PV3DBase.h:62
AlignmentPositionError const * alignmentPositionError() const
Return pointer to alignment errors.
Definition: GeomDet.h:88

Member Data Documentation

std::vector<SimHiterator> SiTrackerGaussianSmearingRecHitConverter::correspondingSimHit
private

Definition at line 249 of file SiTrackerGaussianSmearingRecHitConverter.h.

Referenced by matchHits(), and smearHits().

double SiTrackerGaussianSmearingRecHitConverter::deltaRaysPCut
private
std::vector<SiPixelQuality::disabledModuleType>* SiTrackerGaussianSmearingRecHitConverter::disabledModules
private
bool SiTrackerGaussianSmearingRecHitConverter::doDisableChannels
private
bool SiTrackerGaussianSmearingRecHitConverter::doMatching
private
double SiTrackerGaussianSmearingRecHitConverter::ElectronsPerADC
private
ClusterRefProd SiTrackerGaussianSmearingRecHitConverter::FastTrackerClusterRefProd
private

Definition at line 254 of file SiTrackerGaussianSmearingRecHitConverter.h.

Referenced by produce(), and smearHits().

const TrackerGeometry* SiTrackerGaussianSmearingRecHitConverter::geometry
private
double SiTrackerGaussianSmearingRecHitConverter::GevPerElectron
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TEC1x
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TEC1y
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TEC2x
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TEC2y
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TEC3x
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TEC3y
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TEC4x
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TEC4y
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TEC5x
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TEC5y
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TEC6x
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TEC6y
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TEC7x
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TEC7y
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TIB1x
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TIB1y
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TIB2x
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TIB2y
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TIB3x
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TIB3y
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TIB4x
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TIB4y
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TID1x
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TID1y
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TID2x
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TID2y
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TID3x
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TID3y
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TOB1x
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TOB1y
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TOB2x
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TOB2y
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TOB3x
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TOB3y
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TOB4x
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TOB4y
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TOB5x
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TOB5y
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TOB6x
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_TOB6y
private
double SiTrackerGaussianSmearingRecHitConverter::localPositionResolution_z
private
const TrackerGeometry* SiTrackerGaussianSmearingRecHitConverter::misAlignedGeometry
private

Definition at line 128 of file SiTrackerGaussianSmearingRecHitConverter.h.

Referenced by beginRun(), and smearHits().

unsigned int SiTrackerGaussianSmearingRecHitConverter::nAlphaBarrel
private
unsigned int SiTrackerGaussianSmearingRecHitConverter::nAlphaForward
private
unsigned int SiTrackerGaussianSmearingRecHitConverter::nBetaBarrel
private
unsigned int SiTrackerGaussianSmearingRecHitConverter::nBetaForward
private
unsigned int SiTrackerGaussianSmearingRecHitConverter::numberOfDisabledModules
private
edm::ParameterSet SiTrackerGaussianSmearingRecHitConverter::pset_
private

Definition at line 109 of file SiTrackerGaussianSmearingRecHitConverter.h.

Referenced by beginRun().

double SiTrackerGaussianSmearingRecHitConverter::resAlphaBarrel_binMin
private
unsigned int SiTrackerGaussianSmearingRecHitConverter::resAlphaBarrel_binN
private
double SiTrackerGaussianSmearingRecHitConverter::resAlphaBarrel_binWidth
private
double SiTrackerGaussianSmearingRecHitConverter::resAlphaForward_binMin
private
unsigned int SiTrackerGaussianSmearingRecHitConverter::resAlphaForward_binN
private
double SiTrackerGaussianSmearingRecHitConverter::resAlphaForward_binWidth
private
double SiTrackerGaussianSmearingRecHitConverter::resBetaBarrel_binMin
private
unsigned int SiTrackerGaussianSmearingRecHitConverter::resBetaBarrel_binN
private
double SiTrackerGaussianSmearingRecHitConverter::resBetaBarrel_binWidth
private
double SiTrackerGaussianSmearingRecHitConverter::resBetaForward_binMin
private
unsigned int SiTrackerGaussianSmearingRecHitConverter::resBetaForward_binN
private
double SiTrackerGaussianSmearingRecHitConverter::resBetaForward_binWidth
private
edm::InputTag SiTrackerGaussianSmearingRecHitConverter::simHitLabel
private
edm::EDGetTokenT<edm::PSimHitContainer> SiTrackerGaussianSmearingRecHitConverter::simHitToken
private
std::vector<TH1F*> SiTrackerGaussianSmearingRecHitConverter::theBarrelMultiplicityAlphaCumulativeProbabilities
private
std::vector<TH1F*> SiTrackerGaussianSmearingRecHitConverter::theBarrelMultiplicityBetaCumulativeProbabilities
private
std::vector<TH1F*> SiTrackerGaussianSmearingRecHitConverter::theForwardMultiplicityAlphaCumulativeProbabilities
private
std::vector<TH1F*> SiTrackerGaussianSmearingRecHitConverter::theForwardMultiplicityBetaCumulativeProbabilities
private
double SiTrackerGaussianSmearingRecHitConverter::theHitFindingProbability_PXB
private
double SiTrackerGaussianSmearingRecHitConverter::theHitFindingProbability_PXF
private
double SiTrackerGaussianSmearingRecHitConverter::theHitFindingProbability_TEC1
private
double SiTrackerGaussianSmearingRecHitConverter::theHitFindingProbability_TEC2
private
double SiTrackerGaussianSmearingRecHitConverter::theHitFindingProbability_TEC3
private
double SiTrackerGaussianSmearingRecHitConverter::theHitFindingProbability_TEC4
private
double SiTrackerGaussianSmearingRecHitConverter::theHitFindingProbability_TEC5
private
double SiTrackerGaussianSmearingRecHitConverter::theHitFindingProbability_TEC6
private
double SiTrackerGaussianSmearingRecHitConverter::theHitFindingProbability_TEC7
private
double SiTrackerGaussianSmearingRecHitConverter::theHitFindingProbability_TIB1
private
double SiTrackerGaussianSmearingRecHitConverter::theHitFindingProbability_TIB2
private
double SiTrackerGaussianSmearingRecHitConverter::theHitFindingProbability_TIB3
private
double SiTrackerGaussianSmearingRecHitConverter::theHitFindingProbability_TIB4
private
double SiTrackerGaussianSmearingRecHitConverter::theHitFindingProbability_TID1
private
double SiTrackerGaussianSmearingRecHitConverter::theHitFindingProbability_TID2
private
double SiTrackerGaussianSmearingRecHitConverter::theHitFindingProbability_TID3
private
double SiTrackerGaussianSmearingRecHitConverter::theHitFindingProbability_TOB1
private
double SiTrackerGaussianSmearingRecHitConverter::theHitFindingProbability_TOB2
private
double SiTrackerGaussianSmearingRecHitConverter::theHitFindingProbability_TOB3
private
double SiTrackerGaussianSmearingRecHitConverter::theHitFindingProbability_TOB4
private
double SiTrackerGaussianSmearingRecHitConverter::theHitFindingProbability_TOB5
private
double SiTrackerGaussianSmearingRecHitConverter::theHitFindingProbability_TOB6
private
SiPixelGaussianSmearingRecHitConverterAlgorithm* SiTrackerGaussianSmearingRecHitConverter::thePixelBarrelParametrization
private
TFile* SiTrackerGaussianSmearingRecHitConverter::thePixelBarrelResolutionFile
private
std::string SiTrackerGaussianSmearingRecHitConverter::thePixelBarrelResolutionFileName
private

Definition at line 132 of file SiTrackerGaussianSmearingRecHitConverter.h.

Referenced by beginRun(), and loadPixelData().

TFile* SiTrackerGaussianSmearingRecHitConverter::thePixelDataFile
private
SiPixelGaussianSmearingRecHitConverterAlgorithm* SiTrackerGaussianSmearingRecHitConverter::thePixelEndcapParametrization
private
TFile* SiTrackerGaussianSmearingRecHitConverter::thePixelForwardResolutionFile
private
std::string SiTrackerGaussianSmearingRecHitConverter::thePixelForwardResolutionFileName
private

Definition at line 133 of file SiTrackerGaussianSmearingRecHitConverter.h.

Referenced by beginRun(), and loadPixelData().

std::string SiTrackerGaussianSmearingRecHitConverter::thePixelMultiplicityFileName
private

Definition at line 131 of file SiTrackerGaussianSmearingRecHitConverter.h.

Referenced by beginRun(), and loadPixelData().

SiStripGaussianSmearingRecHitConverterAlgorithm* SiTrackerGaussianSmearingRecHitConverter::theSiStripErrorParametrization
private
bool SiTrackerGaussianSmearingRecHitConverter::trackingPSimHits
private
bool SiTrackerGaussianSmearingRecHitConverter::useCMSSWPixelParameterization
private