]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Moving templated functions in the header
authoralibrary <alibrary@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 16 Feb 2007 08:04:29 +0000 (08:04 +0000)
committeralibrary <alibrary@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 16 Feb 2007 08:04:29 +0000 (08:04 +0000)
STEER/AliAODRedCov.cxx
STEER/AliAODRedCov.h
STEER/AliAODVertex.cxx

index 75494ffaab129859901f6771d44fb3cac357fa31..95b4142b27fdd80093e5962da039820e9b18fdec 100644 (file)
 
 /* $Id$ */
 
-#include <TMath.h>
-
 #include "AliAODRedCov.h"
 
 templateClassImp(AliAODRedCov)
 
-//______________________________________________________________________________
-template <Int_t N> template <class T> void AliAODRedCov<N>::GetCovMatrix(T *cmat) const
-{
-  //
-  // Returns the external cov matrix
-  //
-
-  for(Int_t i=0; i<N; ++i) {
-    // Off diagonal elements
-    for(Int_t j=0; j<i; ++j) {
-      printf("cmat[%2d] = fODia[%2d]*fDiag[%2d]*fDiag[%2d];\n",
-            i*(i+1)/2+j,(i-1)*i/2+j,j,i);
-      cmat[i*(i+1)/2+j] = fODia[(i-1)*i/2+j]*fDiag[j]*fDiag[i];}
-
-    // Diagonal elements
-    printf("cmat[%2d] = fDiag[%2d]*fDiag[%2d];\n",
-          i*(i+1)/2+i,i,i);
-    cmat[i*(i+1)/2+i] = fDiag[i]*fDiag[i];
-  }
-}
-
-
-//______________________________________________________________________________
-template <Int_t N> template <class T> void AliAODRedCov<N>::SetCovMatrix(T *cmat)
-{
-  //
-  // Sets the external cov matrix
-  //
-
-  if(cmat) {
-    // Diagonal elements first
-    for(Int_t i=0; i<N; ++i) {
-      printf("fDiag[%2d] = TMath::Sqrt(cmat[%2d]);\n",
-            i,i*(i+1)/2+i);
-      fDiag[i] = TMath::Sqrt(cmat[i*(i+1)/2+i]);}
-
-  // ... then the ones off diagonal
-  for(Int_t i=0; i<N; ++i) 
-    // Off diagonal elements
-    for(Int_t j=0; j<i; ++j) {
-      printf("fODia[%2d] = cmat[%2d]/(fDiag[%2d]*fDiag[%2d]);\n",
-            (i-1)*i/2+j,i*(i+1)/2+j,j,i);
-      fODia[(i-1)*i/2+j] = cmat[i*(i+1)/2+j]/(fDiag[j]*fDiag[i]);
-    }
-  } else {
-    for(Int_t i=0; i< N; ++i) fDiag[i]=-999.;
-    for(Int_t i=0; i< N*(N-1)/2; ++i) fODia[i]=0.;
-  }
-}
index eca4093d332d08137f58e2213fc137544961f2bb..116447235d74ea25eb65b6b1fbd168d0b4250f49 100644 (file)
@@ -11,6 +11,7 @@
 //-------------------------------------------------------------------------
 
 #include <Rtypes.h>
+#include <TMath.h>
 
 template <Int_t N> class AliAODRedCov {
 
@@ -33,19 +34,70 @@ template <Int_t N> class AliAODRedCov {
    // Pz fOdia[10]  fOdia[11]  fOdia[12]  fOdia[13]  fOdia[14]  fDiag[ 5]
    //
 
-   public:
-   AliAODRedCov() {}
-   virtual ~AliAODRedCov() {}
-   template <class T> void GetCovMatrix(T *cmat) const;
-   template <class T> void SetCovMatrix(T *cmat);
+ public:
+  AliAODRedCov() {}
+  virtual ~AliAODRedCov() {}
+  template <class T> void GetCovMatrix(T *cmat) const;
+  template <class T> void SetCovMatrix(T *cmat);
+  
+ private:
+  Double32_t   fDiag[N];         // Diagonal elements
+  Double32_t   fODia[N*(N-1)/2]; // [-1, 1,8] 8 bit precision for off diagonal elements
+  
+  ClassDef(AliAODRedCov,1)
 
-   private:
-   Double32_t   fDiag[N];         // Diagonal elements
-   Double32_t   fODia[N*(N-1)/2]; // [-1, 1,8] 8 bit precision for off diagonal elements
+ };
 
-   ClassDef(AliAODRedCov,1)
+#if !defined(__CINT__) && !defined(__MAKECINT__)
+//______________________________________________________________________________
+template <Int_t N> template <class T> void AliAODRedCov<N>::GetCovMatrix(T *cmat) const
+{
+  //
+  // Returns the external cov matrix
+  //
+
+  for(Int_t i=0; i<N; ++i) {
+    // Off diagonal elements
+    for(Int_t j=0; j<i; ++j) {
+      printf("cmat[%2d] = fODia[%2d]*fDiag[%2d]*fDiag[%2d];\n",
+            i*(i+1)/2+j,(i-1)*i/2+j,j,i);
+      cmat[i*(i+1)/2+j] = fODia[(i-1)*i/2+j]*fDiag[j]*fDiag[i];}
+
+    // Diagonal elements
+    printf("cmat[%2d] = fDiag[%2d]*fDiag[%2d];\n",
+          i*(i+1)/2+i,i,i);
+    cmat[i*(i+1)/2+i] = fDiag[i]*fDiag[i];
+  }
+}
 
- };
 
+//______________________________________________________________________________
+template <Int_t N> template <class T> void AliAODRedCov<N>::SetCovMatrix(T *cmat)
+{
+  //
+  // Sets the external cov matrix
+  //
 
+  if(cmat) {
+    // Diagonal elements first
+    for(Int_t i=0; i<N; ++i) {
+      printf("fDiag[%2d] = TMath::Sqrt(cmat[%2d]);\n",
+            i,i*(i+1)/2+i);
+      fDiag[i] = TMath::Sqrt(cmat[i*(i+1)/2+i]);}
+
+  // ... then the ones off diagonal
+  for(Int_t i=0; i<N; ++i) 
+    // Off diagonal elements
+    for(Int_t j=0; j<i; ++j) {
+      printf("fODia[%2d] = cmat[%2d]/(fDiag[%2d]*fDiag[%2d]);\n",
+            (i-1)*i/2+j,i*(i+1)/2+j,j,i);
+      fODia[(i-1)*i/2+j] = cmat[i*(i+1)/2+j]/(fDiag[j]*fDiag[i]);
+    }
+  } else {
+    for(Int_t i=0; i< N; ++i) fDiag[i]=-999.;
+    for(Int_t i=0; i< N*(N-1)/2; ++i) fODia[i]=0.;
+  }
+}
+
+#endif
 #endif
index 3743a4d098fffb236f51e406cf72185af55c1056..2b51fe3d78a4fa3b0b3a1d0736c13d198a9ce822 100644 (file)
@@ -65,6 +65,7 @@ AliAODVertex::AliAODVertex(const Float_t position[3],
                           Double_t  chi2,
                           TObject  *parent,
                           Char_t vtype) :
+
   TObject(),
   fChi2(chi2),
   fCovMatrix(NULL),