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::stream::EDProducer<> edm::stream::EDProducerBase 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::stream::EDProducer<>
 EDProducer ()=default
 
- Public Member Functions inherited from edm::stream::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDProducerBase ()
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 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
std::vector< ConsumesInfoconsumesInfo () const
 
 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
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) 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::stream::EDProducer<>
typedef CacheContexts< T...> CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T...> HasAbility
 
typedef
CacheTypes::LuminosityBlockCache 
LuminosityBlockCache
 
typedef
LuminosityBlockContextT
< LuminosityBlockCache,
RunCache, GlobalCache
LuminosityBlockContext
 
typedef
CacheTypes::LuminosityBlockSummaryCache 
LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache,
GlobalCache
RunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Public Types inherited from edm::stream::EDProducerBase
typedef EDProducerAdaptorBase ModuleType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::stream::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- 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 67 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.

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

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

461  {
466 
473 
475 }
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::stream::EDProducerBase.

Definition at line 478 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.

479 {
480 
481  // Initialize the Tracker Geometry
482  edm::ESHandle<TrackerGeometry> theGeometry;
483  es.get<TrackerDigiGeometryRecord> ().get (theGeometry);
484  geometry = &(*theGeometry);
485 
486  edm::ESHandle<TrackerGeometry> theMisAlignedGeometry;
487  es.get<TrackerDigiGeometryRecord>().get("MisAligned",theMisAlignedGeometry);
488  misAlignedGeometry = &(*theMisAlignedGeometry);
489 
490  const MagneticField* magfield;
492  es.get<IdealMagneticFieldRecord>().get(magField);
493  magfield=&(*magField);
494  GlobalPoint center(0.0, 0.0, 0.0);
495  double magFieldAtCenter = magfield->inTesla(center).mag();
496 
497  // For new parameterization: select multiplicity and resolution files according to magnetic field
499  if(magFieldAtCenter > 3.9) {
500  thePixelMultiplicityFileName = pset_.getParameter<std::string>( "PixelMultiplicityFile40T");
501  thePixelBarrelResolutionFileName = pset_.getParameter<std::string>( "PixelBarrelResolutionFile40T");
502  thePixelForwardResolutionFileName = pset_.getParameter<std::string>( "PixelForwardResolutionFile40T");
503  } else {
504  thePixelMultiplicityFileName = pset_.getParameter<std::string>( "PixelMultiplicityFile38T");
505  thePixelBarrelResolutionFileName = pset_.getParameter<std::string>( "PixelBarrelResolutionFile38T");
506  thePixelForwardResolutionFileName = pset_.getParameter<std::string>( "PixelForwardResolutionFile38T");
507  }
508  } else {
509  thePixelMultiplicityFileName = pset_.getParameter<std::string>( "PixelMultiplicityFile" );
510  thePixelBarrelResolutionFileName = pset_.getParameter<std::string>( "PixelBarrelResolutionFile");
511  thePixelForwardResolutionFileName = pset_.getParameter<std::string>( "PixelForwardResolutionFile");
512  }
513 
514 
515  // Reading the list of dead pixel modules from DB:
516  edm::ESHandle<SiPixelQuality> siPixelBadModule;
517  es.get<SiPixelQualityRcd>().get(siPixelBadModule);
519  if (doDisableChannels) {
520  disabledModules = new std::vector<SiPixelQuality::disabledModuleType> ( siPixelBadModule->getBadComponentList() );
522  size_t numberOfRecoverableModules = 0;
523  for (size_t id=0;id<numberOfDisabledModules;id++) {
525  // errortype "whole" = int 0 in DB //
526  // errortype "tbmA" = int 1 in DB //
527  // errortype "tbmB" = int 2 in DB //
528  // errortype "none" = int 3 in DB //
530  if ( (*disabledModules)[id-numberOfRecoverableModules].errorType != 0 ){
531  // Disable only the modules totally in error:
532  disabledModules->erase(disabledModules->begin()+id-numberOfRecoverableModules);
533  numberOfRecoverableModules++;
534  }
535  }
536  numberOfDisabledModules = disabledModules->size();
537  }
538 
539 
540 
541 #ifdef FAMOS_DEBUG
542  std::cout << "Pixel multiplicity data are taken from file " << thePixelMultiplicityFileName << std::endl;
543 
544  std::cout << "Pixel maximum multiplicity set to "
545  << "\nBarrel" << "\talpha " << nAlphaBarrel
546  << "\tbeta " << nBetaBarrel
547  << "\nForward" << "\talpha " << nAlphaForward
548  << "\tbeta " << nBetaForward
549  << std::endl;
550 
551  std::cout << "Barrel Pixel resolution data are taken from file "
553  << "Alpha bin min = " << resAlphaBarrel_binMin
554  << "\twidth = " << resAlphaBarrel_binWidth
555  << "\tbins = " << resAlphaBarrel_binN
556  << "\n"
557  << " Beta bin min = " << resBetaBarrel_binMin
558  << "\twidth = " << resBetaBarrel_binWidth
559  << "\tbins = " << resBetaBarrel_binN
560  << std::endl;
561 
562  std::cout << "Forward Pixel resolution data are taken from file "
564  << "Alpha bin min = " << resAlphaForward_binMin
565  << "\twidth = " << resAlphaForward_binWidth
566  << "\tbins = " << resAlphaForward_binN
567  << "\n"
568  << " Beta bin min = " << resBetaForward_binMin
569  << "\twidth = " << resBetaForward_binWidth
570  << "\tbins = " << resBetaForward_binN
571  << std::endl;
572 #endif
573  //
574 
575  //
576  // load pixel data
577  loadPixelData();
578  //
579 
580  // Initialize and open relevant files for the pixel barrel error parametrization
583  pset_,
585  // Initialize and open relevant files for the pixel forward error parametrization
588  pset_,
590 }
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 833 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().

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

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

Referenced by produce().

1204 {
1205  std::map<unsigned,edm::OwnVector<FastTrackerCluster> >::const_iterator
1206  it = theClusterMap.begin();
1207  std::map<unsigned,edm::OwnVector<FastTrackerCluster> >::const_iterator
1208  lastCluster = theClusterMap.end();
1209 
1210  for( ; it != lastCluster ; ++it ) {
1211  theClusterCollection.put(it->first,(it->second).begin(),(it->second).end());
1212  }
1213 }
#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 1234 of file SiTrackerGaussianSmearingRecHitConverter.cc.

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

Referenced by produce().

1237 {
1238  std::map<unsigned,edm::OwnVector<SiTrackerGSMatchedRecHit2D> >::const_iterator
1239  it = theRecHits.begin();
1240  std::map<unsigned,edm::OwnVector<SiTrackerGSMatchedRecHit2D> >::const_iterator
1241  lastRecHit = theRecHits.end();
1242 
1243  for( ; it != lastRecHit ; ++it ) {
1244  theRecHitCollection.put(it->first,(it->second).begin(),(it->second).end());
1245  }
1246 
1247 }
#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 329 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().

329  {
330  // load multiplicity cumulative probabilities
331  // root files
332  thePixelDataFile = new TFile ( edm::FileInPath( thePixelMultiplicityFileName ).fullPath().c_str() , "READ" );
335  //
336 
337  // alpha barrel
339  nAlphaBarrel ,
340  std::string("hist_alpha_barrel") ,
342  //
343  // beta barrel
345  nBetaBarrel ,
346  std::string("hist_beta_barrel") ,
348  //
349  // alpha forward
351  nAlphaForward ,
352  std::string("hist_alpha_forward") ,
354  //
355  // beta forward
357  nBetaForward ,
358  std::string("hist_beta_forward") ,
360 
361  // Load also big pixel data if CMSSW parametrization is on
362  // They are pushed back into the vectors after the normal pixels data:
363  // [0, ..., (size/2)-1] -> Normal pixels
364  // [size/2, ..., size-1] -> Big pixels
366  // alpha barrel
368  nAlphaBarrel ,
369  std::string("hist_alpha_barrel_big") ,
371  true );
372  //
373  // beta barrel
375  nBetaBarrel ,
376  std::string("hist_beta_barrel_big") ,
378  true );
379  //
380  // alpha forward
382  nAlphaForward ,
383  std::string("hist_alpha_forward_big") ,
385  true );
386  //
387  // beta forward
389  nBetaForward ,
390  std::string("hist_beta_forward_big") ,
392  true );
393  }
394  //
395 }
void SiTrackerGaussianSmearingRecHitConverter::loadPixelData ( TFile *  pixelDataFile,
unsigned int  nMultiplicity,
std::string  histName,
std::vector< TH1F * > &  theMultiplicityCumulativeProbabilities,
bool  bigPixels = false 
)
private

Definition at line 397 of file SiTrackerGaussianSmearingRecHitConverter.cc.

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

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

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

Referenced by produce().

1221 {
1222  std::map<unsigned,edm::OwnVector<SiTrackerGSRecHit2D> >::const_iterator
1223  it = theRecHits.begin();
1224  std::map<unsigned,edm::OwnVector<SiTrackerGSRecHit2D> >::const_iterator
1225  lastRecHit = theRecHits.end();
1226 
1227  for( ; it != lastRecHit ; ++it ) {
1228  theRecHitCollection.put(it->first,(it->second).begin(),(it->second).end());
1229  }
1230 
1231 }
#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 1251 of file SiTrackerGaussianSmearingRecHitConverter.cc.

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

Referenced by produce().

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

Implements edm::stream::EDProducerBase.

Definition at line 592 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().

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

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

Referenced by produce().

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

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