CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/RecoLocalTracker/SiPixelRecHits/plugins/SiPixelTemplateSplit.h

Go to the documentation of this file.
00001 //
00002 //  SiPixelTemplateSplit.cc (Version 1.05)
00003 //
00004 //  Procedure to fit two templates (same angle hypotheses) to a single cluster
00005 //  Return two x- and two y-coordinates for the cluster
00006 //
00007 //  Created by Morris Swartz on 04/10/08.
00008 //  Copyright 2008 __TheJohnsHopkinsUniversity__. All rights reserved.
00009 //
00010 //  Incorporate "cluster repair" to handle dead pixels
00011 //  Take truncation size from new pixmax information
00012 //  Change to allow template sizes to be changed at compile time
00013 //  Move interpolation range error to LogDebug
00014 //  Add qbin = 5 and change 1-pixel probability to use new template info
00015 //  Add floor for probabilities (no exact zeros)
00016 //
00017  
00018 #ifndef SI_PIXEL_TEMPLATE_STANDALONE
00019 #include "SiPixelTemplate.h"
00020 #else
00021 #include "SiPixelTemplate.h"
00022 #endif
00023 
00024 //#define TYSIZE 21
00025 //#define BYSIZE TYSIZE+4
00026 //#define BHY 12 // = BYSIZE/2
00027 //#define BYM1 TYSIZE+3
00028 //#define BYM2 TYSIZE+2
00029 //#define BYM3 TYSIZE+1
00030 //#define TXSIZE 7
00031 //#define BXSIZE TXSIZE+4
00032 //#define BHX 5 // = BXSIZE/2
00033 //#define BXM1 TXSIZE+3
00034 //#define BXM2 TXSIZE+2
00035 //#define BXM3 TXSIZE+1
00036 
00037 #include <vector>
00038 #include "boost/multi_array.hpp"
00039 
00040 
00041 namespace SiPixelTemplateReco 
00042  {
00043  
00044     typedef boost::multi_array<float, 2> array_2d;
00045     typedef boost::multi_array<float, 3> array_3d;
00046 
00047         int PixelTempSplit(int id, bool fpix, float cotalpha, float cotbeta, array_2d cluster, 
00048                                 std::vector<bool> ydouble, std::vector<bool> xdouble, 
00049                                 SiPixelTemplate& templ, 
00050                                 float& yrec1, float& yrec2, float& sigmay, float& proby, 
00051                                 float& xrec1, float& xrec2, float& sigmax, float& probx, int& qbin, bool deadpix, std::vector<std::pair<int, int> > zeropix);
00052 
00053         int PixelTempSplit(int id, bool fpix, float cotalpha, float cotbeta, array_2d cluster, 
00054                                 std::vector<bool> ydouble, std::vector<bool> xdouble, 
00055                                 SiPixelTemplate& templ, 
00056                                 float& yrec1, float& yrec2, float& sigmay, float& proby, 
00057                                 float& xrec1, float& xrec2, float& sigmax, float& probx, int& qbin);
00058 
00059 }
00060                                 
00061