Report problems to ATLAS LXR Team (with time and IP address indicated)

The LXR Cross Referencer

source navigation ]
diff markup ]
identifier search ]
general search ]
 
 
Architecture: linux ]
Version: head ] [ nightly ] [ GaudiDev ]
  Links to LXR source navigation pages for stable releases [ 12.*.* ]   [ 13.*.* ]   [ 14.*.* ]   [ 15.*.* ] 

001 #include "GaudiKernel/ToolFactory.h"
002 #include "GaudiKernel/SmartDataPtr.h"
003 #include "GaudiKernel/IDataProviderSvc.h"
004 
005 //----------------------------------------------------------------//
006 #include "TrkParameters/MeasuredPerigee.h"
007 
008 //////////////////////////////////////
009 #include "STACOTools/StacoCombineTool.h"
010 
011 StacoCombineTool::StacoCombineTool(const std::string& t, 
012                                        const std::string& n,
013                                        const IInterface*  p ):AthAlgTool(t,n,p)
014 {
015   declareInterface<IStacoCombineTool>(this);
016 
017   declareProperty("PreSelOpt1"         , m_PreSelOpt1               = 1   ) ;
018   declareProperty("PreSelOpt1DeltaR"   , m_PreSelOpt1DeltaR         = 0.5 ) ;
019 
020   declareProperty("PreSelOpt2"               , m_PreSelOpt2              = 0    ) ;
021   declareProperty("PreSelOpt2DeltaZ0CTE"     , m_PreSelOpt2DeltaZ0CTE    = 800. ) ;
022   declareProperty("PreSelOpt2DeltaZ0SLOPE"   , m_PreSelOpt2DeltaZ0SLOPE  =   0. ) ;
023   declareProperty("PreSelOpt2DeltaEtaCTE"    , m_PreSelOpt2DeltaEtaCTE   = 0.25 ) ;
024   declareProperty("PreSelOpt2DeltaEtaSLOPE"  , m_PreSelOpt2DeltaEtaSLOPE =   0. ) ;
025 
026 }
027 
028 StacoCombineTool::~StacoCombineTool(){}
029 
030 // Initialize
031 StatusCode StacoCombineTool::initialize(){
032     
033   msg(MSG::INFO) << "Initialisation started     " << endreq;
034 
035   StatusCode sc = AthAlgTool::initialize(); 
036   if ( sc.isFailure() ) {
037     msg(MSG::FATAL) << " AthAlgTool::initialize() failed" << endreq;
038     return( StatusCode::FAILURE );
039   }
040 
041   msg(MSG::INFO) << "================================" << endreq;
042   msg(MSG::INFO) << "=Proprieties are     " << endreq;
043   msg(MSG::INFO) << "= PreSelOpt1                           " << m_PreSelOpt1 << endreq;
044   msg(MSG::INFO) << "=    PreSelOpt1DeltaR                  " << m_PreSelOpt1DeltaR << endreq;
045   msg(MSG::INFO) << "= " <<  endreq;
046   msg(MSG::INFO) << "= PreSelOpt2                           " << m_PreSelOpt2 << endreq;
047   msg(MSG::INFO) << "=    PreSelOpt2DeltaZ0CTE              " << m_PreSelOpt2DeltaZ0CTE    << endreq;
048   msg(MSG::INFO) << "=    PreSelOpt2DeltaZ0SLOPE            " << m_PreSelOpt2DeltaZ0SLOPE  << endreq;
049   msg(MSG::INFO) << "=    PreSelOpt2DeltaEtaCTE             " << m_PreSelOpt2DeltaEtaCTE   << endreq;
050   msg(MSG::INFO) << "=    PreSelOpt2DeltaEtaSLOPE           " << m_PreSelOpt2DeltaEtaSLOPE << endreq;
051   msg(MSG::INFO) << "================================" << endreq;
052 
053 
054   msg(MSG::INFO) << "Initialisation ended     " << endreq;
055   return StatusCode::SUCCESS;
056 
057 }
058 
059 StatusCode StacoCombineTool::finalize(){return StatusCode::SUCCESS;}
060 
061 bool  StacoCombineTool::TheCombIdMu(
062                      const Trk::MeasuredPerigee* pMeasuredPerigeeID,
063                      const Trk::MeasuredPerigee* pMeasuredPerigeeMS,
064                      double& Xi2,
065                      double& ThePT
066 ){
067 
068   ThePT = 1e20;
069   double  Xi2Mu = 0. ;
070   double  Xi2ID = 0. ;     
071   double  ParCB[5],covCB[15];
072 
073   if (!TheCombIdMu(pMeasuredPerigeeID, pMeasuredPerigeeMS,
074                    Xi2, Xi2Mu, Xi2ID, ParCB, covCB
075                   )) return false;
076                   
077   ThePT =ParCB[4]/sin(ParCB[3]);
078 
079   return true;  
080   
081 }
082 
083 bool  StacoCombineTool::TheCombIdMu(
084                      const Trk::MeasuredPerigee* pMeasuredPerigeeID,
085                      const Trk::MeasuredPerigee* pMeasuredPerigeeMS,
086                      double& Xi2,double& Xi2ID,double& Xi2Mu,
087                      double* ParCB,double* covCB
088 ){
089 
090   Xi2   = 1e20 ;
091   Xi2Mu = 0.   ;
092   Xi2ID = 0.   ;     
093 
094   if ( pMeasuredPerigeeID == 0 ) return false;
095   
096   if ( pMeasuredPerigeeMS == 0 ) return false;
097   
098   if ( !Preselection(pMeasuredPerigeeID,pMeasuredPerigeeMS) ) return false;
099   
100   // Get ID Parameters
101   double hid[22];
102   GetPar_TrackParticle(pMeasuredPerigeeID, hid);
103   
104   // Get Muon Spectrometer Parameters
105   double hmu[22];
106   GetPar_TrackParticle(pMeasuredPerigeeMS, hmu);
107 
108 
109   // Try the combination
110   Xi2   = 0. ;
111   Xi2Mu = 0. ;
112   Xi2ID = 0. ;     
113   double  hcomb[22] ;
114 
115   if(!(TheCombIdMu(hmu, hid, hcomb,Xi2, Xi2Mu, Xi2ID))){
116     // std::cout << " StacoCombineTool::Problem inverting matrix"<< std::endl; 
117     Xi2 = 1e20;    
118     return false;  
119   }else{
120     // Put the track parameter into output single precision array 
121     HelToPar(hcomb, ParCB, covCB);                   
122     return true;  
123   }
124 
125   return true;  
126   
127 }
128 
129 void  StacoCombineTool::GetPar_TrackParticle(
130                               const Trk::MeasuredPerigee* pMeasuredPerigee,
131                               double* Param,double* CovMat
132 ){
133 
134   for(int i=0; i<5; i++) {Param[i]=0.;} 
135   for(int i=0; i<15; i++) {CovMat[i]=0.;} 
136 
137   if ( pMeasuredPerigee == 0 ) return ;
138   
139 
140   //Get Track Parameters
141   
142   Param[0] = pMeasuredPerigee->parameters()[Trk::d0];
143   Param[1] = pMeasuredPerigee->parameters()[Trk::z0];
144   Param[2] = pMeasuredPerigee->parameters()[Trk::phi];
145   Param[3] = pMeasuredPerigee->parameters()[Trk::theta];
146   Param[4] = pMeasuredPerigee->parameters()[Trk::qOverP]; 
147    
148   //Get Covariance Matrix
149   const Trk::ErrorMatrix& ermatrix=pMeasuredPerigee->localErrorMatrix();
150 
151   CovMat[0]   = ermatrix.covValue(Trk::d0,Trk::d0);
152   CovMat[1]   = ermatrix.covValue(Trk::z0,Trk::d0);
153   CovMat[2]   = ermatrix.covValue(Trk::z0,Trk::z0);
154   CovMat[3]   = ermatrix.covValue(Trk::phi,Trk::d0);
155   CovMat[4]   = ermatrix.covValue(Trk::phi,Trk::z0);
156   CovMat[5]   = ermatrix.covValue(Trk::phi,Trk::phi);
157   CovMat[6]   = ermatrix.covValue(Trk::theta,Trk::d0);
158   CovMat[7]   = ermatrix.covValue(Trk::theta,Trk::z0);
159   CovMat[8]   = ermatrix.covValue(Trk::theta,Trk::phi);
160   CovMat[9]   = ermatrix.covValue(Trk::theta,Trk::theta);
161   CovMat[10]  = ermatrix.covValue(Trk::qOverP,Trk::d0);
162   CovMat[11]  = ermatrix.covValue(Trk::qOverP,Trk::z0);
163   CovMat[12]  = ermatrix.covValue(Trk::qOverP,Trk::phi);
164   CovMat[13]  = ermatrix.covValue(Trk::qOverP,Trk::theta);
165   CovMat[14]  = ermatrix.covValue(Trk::qOverP,Trk::qOverP);
166               
167 }
168 
169 //-------------------------------------------------------------------------------
170 // Helix updating by helix information (algorithm STACO) 
171 //                       
172 // Input  parameters : this->  Helix                             
173 //                     H       addition helix
174 // Output parameters :
175 //                     Xi2     Xi2 of the combination         
176 //                     Hc      new helix with common information
177 //
178 bool  StacoCombineTool::TheCombIdMu(double* h1,double* h2,double* ht, double& Xi2,double& Xi21,double& Xi22)
179 {
180  
181   const double pi2 = 6.2831853, pi = 3.1415927;
182  
183   /* double w1[15]; if(!Invert55(&h1[7],w1)) return false;  
184   double w2[15]; if(!Invert55(&h2[7],w2)) return false; 
185 
186   double vt[15];
187   for(int i=0; i<15; i++) {vt[i]=w1[i]+w2[i];} 
188   if(!(Invert55(vt,vt)))  return false;*/
189  double w1[15];
190   if(!Invert55(&h1[7],w1))
191   {
192     //std::cout<<"Problem inverting matrix: only diag"<<std::endl;
193     h1[8]  = 0.;
194     h1[10] = 0.;
195     h1[11] = 0.;
196     h1[13] = 0.;
197     h1[14] = 0.;
198     h1[15] = 0.;
199     h1[17] = 0.;
200     h1[18] = 0.;
201     h1[19] = 0.;
202     h1[20] = 0.;
203     if(!Invert55(&h1[7],w1)) return false;
204   }
205     double w2[15];
206     if(!Invert55(&h2[7],w2))
207   {
208     //std::cout<<"Problem inverting matrix: only diag"<<std::endl;
209     h2[8]  = 0.;
210     h2[10] = 0.;
211     h2[11] = 0.;
212     h2[13] = 0.;
213     h2[14] = 0.;
214     h2[15] = 0.;
215     h2[17] = 0.;
216     h2[18] = 0.;
217     h2[19] = 0.;
218     h2[20] = 0.;
219     if(!Invert55(&h2[7],w2)) return false;
220   }        
221  
222   double vt[15];
223   for(int i=0; i<15; i++) {vt[i]=w1[i]+w2[i];}
224       if(!(Invert55(vt,vt)))  return false;
225                                                  
226   double d1  = h1[0]-h2[0];
227   double d2  = h1[1]-h2[1];
228   double d3  = h1[2]-h2[2]; d3>pi ? d3-=pi2 : d3<-pi ? d3+=pi2 : d3=d3;
229   double d4  = h1[3]-h2[3];
230   double d5  = h1[4]-h2[4];   
231 
232   double e1  = w1[ 0]*d1+w1[ 1]*d2+w1[ 3]*d3+w1[ 6]*d4+w1[10]*d5;
233   double e2  = w1[ 1]*d1+w1[ 2]*d2+w1[ 4]*d3+w1[ 7]*d4+w1[11]*d5;
234   double e3  = w1[ 3]*d1+w1[ 4]*d2+w1[ 5]*d3+w1[ 8]*d4+w1[12]*d5;
235   double e4  = w1[ 6]*d1+w1[ 7]*d2+w1[ 8]*d3+w1[ 9]*d4+w1[13]*d5;
236   double e5  = w1[10]*d1+w1[11]*d2+w1[12]*d3+w1[13]*d4+w1[14]*d5;
237 
238   double s1  = vt[ 0]*e1+vt[ 1]*e2+vt[ 3]*e3+vt[ 6]*e4+vt[10]*e5;
239   double s2  = vt[ 1]*e1+vt[ 2]*e2+vt[ 4]*e3+vt[ 7]*e4+vt[11]*e5;
240   double s3  = vt[ 3]*e1+vt[ 4]*e2+vt[ 5]*e3+vt[ 8]*e4+vt[12]*e5;
241   double s4  = vt[ 6]*e1+vt[ 7]*e2+vt[ 8]*e3+vt[ 9]*e4+vt[13]*e5;
242   double s5  = vt[10]*e1+vt[11]*e2+vt[12]*e3+vt[13]*e4+vt[14]*e5;
243 
244   // Combine helix parameters
245   //
246   ht[0]     = h2[0]+s1; d1=s1-d1;
247   ht[1]     = h2[1]+s2; d2=s2-d2;
248   ht[2]     = h2[2]+s3; d3=s3-d3;
249   ht[3]     = h2[3]+s4; d4=s4-d4;
250   ht[4]     = h2[4]+s5; d5=s5-d5;
251   ht[5]     = h1[5];
252   ht[6]     = h1[6];
253 
254   for(int i=0;i<15;i++){
255     ht[i+7]=vt[i];
256   }
257 
258   // Xi2 of the combination calculation
259   //
260   Xi22      = (s1*w2[ 0]+s2*w2[ 1]+s3*w2[ 3]+s4*w2[ 6]+s5*w2[10])*s1+
261               (s1*w2[ 1]+s2*w2[ 2]+s3*w2[ 4]+s4*w2[ 7]+s5*w2[11])*s2+
262               (s1*w2[ 3]+s2*w2[ 4]+s3*w2[ 5]+s4*w2[ 8]+s5*w2[12])*s3+
263               (s1*w2[ 6]+s2*w2[ 7]+s3*w2[ 8]+s4*w2[ 9]+s5*w2[13])*s4+
264               (s1*w2[10]+s2*w2[11]+s3*w2[12]+s4*w2[13]+s5*w2[14])*s5;
265 
266   Xi21      = (d1*w1[ 0]+d2*w1[ 1]+d3*w1[ 3]+d4*w1[ 6]+d5*w1[10])*d1+
267               (d1*w1[ 1]+d2*w1[ 2]+d3*w1[ 4]+d4*w1[ 7]+d5*w1[11])*d2+
268               (d1*w1[ 3]+d2*w1[ 4]+d3*w1[ 5]+d4*w1[ 8]+d5*w1[12])*d3+
269               (d1*w1[ 6]+d2*w1[ 7]+d3*w1[ 8]+d4*w1[ 9]+d5*w1[13])*d4+
270               (d1*w1[10]+d2*w1[11]+d3*w1[12]+d4*w1[13]+d5*w1[14])*d5;
271 
272   Xi2        =  (Xi21+Xi22)/5.;
273   Xi21       =  Xi21/5.;
274   Xi22       =  Xi22/5.;
275     
276   //  
277   return true;
278 }
279 
280 //-------------------------------------------------------------------------------
281 // Inversion of a positive definite symmetric matrix (5x5)                     
282 // by a modification of the Gauss-Jordan method                                
283 //                                                                             
284 // Input parameters  : a(1/15) - the elements of the lower triangle of         
285 //                               the matrix to be inverted                     
286 //                               0                                             
287 //                               1   2                                         
288 //                               3   4  5                                      
289 //                               6   7  8  9                                   
290 //                               10 11 12 13 14                                
291 // Output parameters : b(1/15) - inverted matrix                               
292 bool  StacoCombineTool::Invert55 (double* a,double* b) {
293 
294 double x1, x2, x3, x4, x5, y1, y2, y3, y4, y5;
295 
296   if   (a[ 0] <= 0. ) return (false);
297          x1    = 1./a[ 0],
298          x2    =-a[ 1]*x1,
299          x3    =-a[ 3]*x1,
300          x4    =-a[ 6]*x1,
301          x5    =-a[10]*x1;
302   if   ((b[ 0] = a[ 2]+a[ 1]*x2)<=0.) return false;
303          b[ 1] = a[ 4]+a[ 3]*x2;
304          b[ 2] = a[ 5]+a[ 3]*x3;
305          b[ 3] = a[ 7]+a[ 6]*x2;
306          b[ 4] = a[ 8]+a[ 6]*x3;
307          b[ 5] = a[ 9]+a[ 6]*x4;
308          b[ 6] = a[11]+a[10]*x2;
309          b[ 7] = a[12]+a[10]*x3;
310          b[ 8] = a[13]+a[10]*x4;
311          b[ 9] = a[14]+a[10]*x5;
312          y1    = 1./b[ 0],
313          y2    =-b[ 1]*y1,
314          y3    =-b[ 3]*y1,
315          y4    =-b[ 6]*y1,
316          y5    = x2   *y1;
317   if   ((b[ 0] = b[ 2]+b[ 1]*y2)<=0.) return false;
318          b[ 1] = b[ 4]+b[ 3]*y2;
319          b[ 2] = b[ 5]+b[ 3]*y3;
320          b[ 3] = b[ 7]+b[ 6]*y2;
321          b[ 4] = b[ 8]+b[ 6]*y3;
322          b[ 5] = b[ 9]+b[ 6]*y4;
323          b[ 6] = x3   +x2   *y2;
324          b[ 7] = x4   +x2   *y3;
325          b[ 8] = x5   +x2   *y4;
326          b[ 9] = x1   +x2   *y5;
327          x2    =-b[ 1]*(x1 = 1./b[ 0]); 
328          x3    =-b[ 3]* x1;
329          x4    = b[ 6]* x1;
330          x5    = y2   * x1;
331   if   ((b[ 0] = b[ 2]+b[ 1]*x2)<=0.) return false;
332          b[ 1] = b[ 4]+b[ 3]*x2;
333          b[ 2] = b[ 5]+b[ 3]*x3;
334          b[ 3] = b[ 7]+b[ 6]*x2;
335          b[ 4] = b[ 8]+b[ 6]*x3;
336          b[ 5] = b[ 9]+b[ 6]*x4;
337          b[ 6] = y3   +y2   *x2;
338          b[ 7] = y4   +y2   *x3;
339          b[ 8] = y5   +y2   *x4;
340          b[ 9] = y1   +y2   *x5;
341          y2    =-b[ 1]*(y1 = 1./b[ 0]); 
342          y3    = b[ 3]* y1;
343          y4    = b[ 6]* y1;
344          y5    = x2   * y1;
345   if   ((b[ 0] = b[ 2]+b[ 1]*y2)<=0.) return false;
346          b[ 1] = b[ 4]+b[ 3]*y2;
347          b[ 2] = b[ 5]+b[ 3]*y3;
348          b[ 3] = b[ 7]+b[ 6]*y2;
349          b[ 4] = b[ 8]+b[ 6]*y3;
350          b[ 5] = b[ 9]+b[ 6]*y4;
351          b[ 6] = x3   +x2   *y2;
352          b[ 7] = x4   +x2   *y3;
353          b[ 8] = x5   +x2   *y4;
354          b[ 9] = x1   +x2   *y5;
355          b[10] = b[ 1]*(b[14] = 1./b[ 0]);
356          b[11] = b[ 3]* b[14];
357          b[12] = b[ 6]* b[14];
358          b[13] = y2   * b[14];
359          b[ 0] = b[ 2]+b[ 1]*b[10];
360          b[ 1] = b[ 4]+b[ 3]*b[10];
361          b[ 2] = b[ 5]+b[ 3]*b[11];
362          b[ 3] = b[ 7]+b[ 6]*b[10];
363          b[ 4] = b[ 8]+b[ 6]*b[11];
364          b[ 5] = b[ 9]+b[ 6]*b[12];
365          b[ 6] = y3   +y2   *b[10];
366          b[ 7] = y4   +y2   *b[11];
367          b[ 8] = y5   +y2   *b[12];
368          b[ 9] = y1   +y2   *b[13];
369                       return true;
370 }
371 
372 //-------------------------------------------------------------------
373 // INPUT  H(22) helix param a la xkalman 
374 // OUTPUT PAR(5) perigee param 
375 //       COV(5,5) cov on ... 
376 // Parameter adjustments 
377 void  StacoCombineTool::HelToPar (double* helix ,double* Param,double* CovMat )
378 {
379     for (int i= 0; i <5; ++i) {
380         Param[i] = helix[i];
381     }
382     CovMat[0]  = helix[7];
383     CovMat[1]  = helix[8];
384     CovMat[2]  = helix[9];
385     CovMat[3]  = helix[10];
386     CovMat[4]  = helix[11];
387     CovMat[5]  = helix[12];
388     CovMat[6]  = helix[13];
389     CovMat[7]  = helix[14];
390     CovMat[8]  = helix[15];
391     CovMat[9]  = helix[16];
392     CovMat[10] = helix[17];
393     CovMat[11] = helix[18];
394     CovMat[12] = helix[19];
395     CovMat[13] = helix[20];
396     CovMat[14] = helix[21];
397 }
398    
399 void  StacoCombineTool::GetPar_TrackParticle(const Trk::MeasuredPerigee* pMeasuredPerigee,double* hpe)
400 {
401 
402 // Get Track Parameters and Covariance Matrix
403    double Param[5],CovMat[15];
404    GetPar_TrackParticle(pMeasuredPerigee,Param,CovMat);
405 
406 // Fill the Array hpe 
407 
408    hpe[0]  = Param[0];
409    hpe[1]  = Param[1];
410    hpe[2]  = Param[2];
411    hpe[3]  = Param[3];
412    hpe[4]  = Param[4];
413    hpe[5]  = 0.;
414    hpe[6]  = 0.;
415    hpe[7]  = CovMat[0];
416    hpe[8]  = CovMat[1];
417    hpe[9]  = CovMat[2];
418    hpe[10] = CovMat[3];
419    hpe[11] = CovMat[4];
420    hpe[12] = CovMat[5];
421    hpe[13] = CovMat[6];
422    hpe[14] = CovMat[7];
423    hpe[15] = CovMat[8];
424    hpe[16] = CovMat[9];
425    hpe[17] = CovMat[10];
426    hpe[18] = CovMat[11];
427    hpe[19] = CovMat[12];
428    hpe[20] = CovMat[13];
429    hpe[21] = CovMat[14];
430          
431 }
432 
433 //-------------------------------------------------------------------
434 // Crude Preselection
435 bool StacoCombineTool::Preselection(
436                       const Trk::MeasuredPerigee* pMeasuredPerigeeID,
437                       const Trk::MeasuredPerigee* pMeasuredPerigeeMS
438 ){
439 
440   if ( m_PreSelOpt1 == 1 ){
441     if ( !Preselection01(pMeasuredPerigeeID,pMeasuredPerigeeMS) ) return false;
442   }
443   if ( m_PreSelOpt2 == 1 ){
444     if ( !Preselection02(pMeasuredPerigeeID,pMeasuredPerigeeMS) ) return false;
445   }
446 
447  return true ;
448 }           
449           
450 bool StacoCombineTool::Preselection01(
451                       const Trk::MeasuredPerigee* pMeasuredPerigeeID,
452                       const Trk::MeasuredPerigee* pMeasuredPerigeeMS
453 ){
454 
455   double  EtaID =  asinh(1./tan(pMeasuredPerigeeID->parameters()[Trk::theta]));
456   double  EtaMS =  asinh(1./tan(pMeasuredPerigeeMS->parameters()[Trk::theta]));
457   double  dEta  =  fabs(EtaID-EtaMS);
458 
459   double  PhiID =  pMeasuredPerigeeID->parameters()[Trk::phi] ;
460   double  PhiMS =  pMeasuredPerigeeMS->parameters()[Trk::phi] ;
461   double  dPhi  =  fabs(PhiID-PhiMS) ;
462   if (dPhi > M_PI) dPhi = 2.*M_PI - dPhi;
463 
464   double DeltaR2 = dEta*dEta+dPhi*dPhi;  
465   
466   double DeltaRCut = m_PreSelOpt1DeltaR  ;
467   if (DeltaR2>DeltaRCut*DeltaRCut) return false;
468   
469  return true ;
470 }                     
471           
472 bool StacoCombineTool::Preselection02(
473                       const Trk::MeasuredPerigee* pMeasuredPerigeeID,
474                       const Trk::MeasuredPerigee* pMeasuredPerigeeMS
475 ){
476 
477  double TheInvPID = fabs(1./pMeasuredPerigeeID->parameters()[Trk::qOverP]) ;
478  
479  double Z0ID = pMeasuredPerigeeID->parameters()[Trk::z0] ;
480  double Z0MS = pMeasuredPerigeeMS->parameters()[Trk::z0] ;
481  double dZ0  = fabs( Z0ID - Z0MS );
482 
483  double DeltaZ0Cut = m_PreSelOpt2DeltaZ0CTE  + TheInvPID * m_PreSelOpt2DeltaZ0SLOPE  ;
484  if (dZ0>DeltaZ0Cut) return false;
485  
486  double EtaID = asinh(1./tan(pMeasuredPerigeeID->parameters()[Trk::theta]));
487  double EtaMS = asinh(1./tan(pMeasuredPerigeeMS->parameters()[Trk::theta]));
488  double dEta  = fabs( EtaID - EtaMS );
489 
490  double DeltaEtaCut = m_PreSelOpt2DeltaEtaCTE  + TheInvPID * m_PreSelOpt2DeltaEtaSLOPE  ;
491  if (dEta>DeltaEtaCut) return false;
492  
493  return true ;
494 }                     

source navigation ] diff markup ] identifier search ] general search ]

Due to the LXR bug, the updates fail sometimes to remove references to deleted files. The Saturday's full rebuilds fix these problems
This page was automatically generated by the LXR engine. Valid HTML 4.01!