]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCExB.cxx
restore threshold getters after parameter dynamics update (fw v. >= A012)
[u/mrichter/AliRoot.git] / TPC / AliTPCExB.cxx
index bf4bc4928af97c74b4d6a24eb46ae74d33206162..573f47cd2acb47d807356f8885d1e6a763ab6ea0 100644 (file)
@@ -1,6 +1,6 @@
 #include "AliTPCExB.h"
 #include "TMath.h"
-#include "TTreeStream.h"
+//#include "TTreeStream.h"
 #include "AliMagF.h"
 #include "TLinearFitter.h"
 #include "AliTPCcalibDB.h"
@@ -54,6 +54,30 @@ AliTPCExB::AliTPCExB():
   //
 }
 
+AliTPCExB::AliTPCExB(const AliTPCExB& exb):
+  TObject(exb),
+  fMatBrBz(new TVectorD(*(exb.fMatBrBz))),       //param matrix Br/Bz
+  fMatBrfiBz(new TVectorD(*(exb.fMatBrfiBz))),     //param matrix Br/Bz
+  fMatBrBzI0(new TVectorD(*(exb.fMatBrBzI0))),     //param matrix Br/Bz integral  z>0 
+  fMatBrBzI1(new TVectorD(*(exb.fMatBrBzI1))),     //param matrix Br/Bz integral  z<0 
+  fMatBrfiBzI0(new TVectorD(*(exb.fMatBrfiBzI0))),   //param matrix Br/Bz integral  z>0 
+  fMatBrfiBzI1(new TVectorD(*(exb.fMatBrfiBzI1)))    //param matrix Br/Bz integral  z<0
+{
+  //
+  // copy constructor
+  //
+}
+
+AliTPCExB& AliTPCExB::operator=(const AliTPCExB &/*exb*/)
+{
+  //
+  // Dummy  assignment
+  //
+  return *this;
+}
+
+
+
 
 void AliTPCExB::TestExB(const char* fileName) {
   //
@@ -133,7 +157,8 @@ Double_t AliTPCExB::GetDr(Double_t r, Double_t phi, Double_t z, Double_t bz){
   // Posibble to us it for visualization 
   // 
   //
-  AliTPCExB *exb = AliTPCcalibDB::GetExB(bz,kFALSE);
+  AliTPCExB *exb = Instance();
+  if (!exb) exb = AliTPCcalibDB::GetExB(bz,kFALSE);
   if (!exb) return 0;
   Double_t pos0[3] = {r*TMath::Cos(phi), r*TMath::Sin(phi),z};
   Double_t pos1[3];
@@ -151,12 +176,15 @@ Double_t AliTPCExB::GetDrphi(Double_t r, Double_t phi, Double_t z, Double_t bz){
   //
   //
   //
-  AliTPCExB *exb = AliTPCcalibDB::GetExB(bz,kFALSE);
+  AliTPCExB *exb = Instance();
+  if (!exb) exb = AliTPCcalibDB::GetExB(bz,kFALSE);
   if (!exb) return 0;
   Double_t pos0[3] = {r*TMath::Cos(phi), r*TMath::Sin(phi),z};
   Double_t pos1[3];
   exb->Correct(pos0,pos1);
   Double_t dphi=TMath::ATan2(pos1[1],pos1[0])-TMath::ATan2(pos0[1],pos0[0]);
+  if (dphi>TMath::Pi()) dphi-=TMath::TwoPi();
+  if (dphi<-TMath::Pi()) dphi+=TMath::TwoPi();
   return r*dphi;  
 
 }
@@ -166,7 +194,8 @@ Double_t AliTPCExB::GetDphi(Double_t r, Double_t phi, Double_t z, Double_t bz){
   //
   //
   // 
-  AliTPCExB *exb = AliTPCcalibDB::GetExB(bz,kFALSE);
+  AliTPCExB *exb = Instance();
+  if (!exb) exb = AliTPCcalibDB::GetExB(bz,kFALSE);
   if (!exb) return 0;
   Double_t pos0[3] = {r*TMath::Cos(phi), r*TMath::Sin(phi),z};
   Double_t pos1[3];
@@ -180,7 +209,8 @@ Double_t AliTPCExB::GetDz(Double_t r, Double_t phi, Double_t z, Double_t bz){
   //
   //
   //
-  AliTPCExB *exb = AliTPCcalibDB::GetExB(bz,kFALSE);
+  AliTPCExB *exb = Instance();
+  if (!exb) exb = AliTPCcalibDB::GetExB(bz,kFALSE);
   if (!exb) return 0;
   Double_t pos0[3] = {r*TMath::Cos(phi), r*TMath::Sin(phi),z};
   Double_t pos1[3];
@@ -211,9 +241,9 @@ Double_t AliTPCExB::GetBx(Double_t r, Double_t phi, Double_t z,Int_t index){
   //
   AliMagF *mag = (AliMagF*)fgArray.At(index);
   if (!mag) return 0;
-  Float_t xyz[3]={r*TMath::Cos(phi),r*TMath::Sin(phi),z};
+  Double_t xyz[3]={r*TMath::Cos(phi),r*TMath::Sin(phi),z};
   //  xyz[1]+=30;
-  Float_t bxyz[3];
+  Double_t bxyz[3];
   mag->Field(xyz,bxyz);
   return bxyz[0];
 }  
@@ -224,9 +254,9 @@ Double_t AliTPCExB::GetBy(Double_t r, Double_t phi, Double_t z,Int_t index){
   //
   AliMagF *mag = (AliMagF*)fgArray.At(index);
   if (!mag) return 0;
-  Float_t xyz[3]={r*TMath::Cos(phi),r*TMath::Sin(phi),z};
+  Double_t xyz[3]={r*TMath::Cos(phi),r*TMath::Sin(phi),z};
   //  xyz[1]+=30;
-  Float_t bxyz[3];
+  Double_t bxyz[3];
   mag->Field(xyz,bxyz);
   return bxyz[1];
 }  
@@ -237,9 +267,9 @@ Double_t AliTPCExB::GetBz(Double_t r, Double_t phi, Double_t z,Int_t index){
   //
   AliMagF *mag = (AliMagF*)fgArray.At(index);
   if (!mag) return 0;
-  Float_t xyz[3]={r*TMath::Cos(phi),r*TMath::Sin(phi),z};
+  Double_t xyz[3]={r*TMath::Cos(phi),r*TMath::Sin(phi),z};
   //  xyz[1]+=30;
-  Float_t bxyz[3];
+  Double_t bxyz[3];
   mag->Field(xyz,bxyz);
   return bxyz[2];
 }  
@@ -252,12 +282,12 @@ Double_t AliTPCExB::GetBr(Double_t r, Double_t phi, Double_t z,Int_t index){
   //
   AliMagF *mag = (AliMagF*)fgArray.At(index);
   if (!mag) return 0;
-  Float_t xyz[3]={r*TMath::Cos(phi),r*TMath::Sin(phi),z};
+  Double_t xyz[3]={r*TMath::Cos(phi),r*TMath::Sin(phi),z};
   //xyz[1]+=30;
-  Float_t bxyz[3];
+  Double_t bxyz[3];
   mag->Field(xyz,bxyz);
   if (r==0) return 0;
-  Float_t br = (bxyz[0]*xyz[0]+bxyz[1]*xyz[1])/r;
+  Double_t br = (bxyz[0]*xyz[0]+bxyz[1]*xyz[1])/r;
   return br;
 }  
 
@@ -267,12 +297,12 @@ Double_t AliTPCExB::GetBrfi(Double_t r, Double_t phi, Double_t z,Int_t index){
   //
   AliMagF *mag = (AliMagF*)fgArray.At(index);
   if (!mag) return 0;
-  Float_t xyz[3]={r*TMath::Cos(phi),r*TMath::Sin(phi),z};
+  Double_t xyz[3]={r*TMath::Cos(phi),r*TMath::Sin(phi),z};
   //xyz[1]+=30;
-  Float_t bxyz[3];
+  Double_t bxyz[3];
   mag->Field(xyz,bxyz);
   if (r==0) return 0;
-  Float_t br = (-bxyz[0]*xyz[1]+bxyz[1]*xyz[0])/r;
+  Double_t br = (-bxyz[0]*xyz[1]+bxyz[1]*xyz[0])/r;
   return br;
 }  
 
@@ -383,7 +413,7 @@ Double_t AliTPCExB::Eval(Int_t type, Double_t r, Double_t phi, Double_t z){
 }
 
 
-Double_t AliTPCExB::EvalMat(TVectorD &vec, Double_t r, Double_t phi, Double_t z){
+Double_t AliTPCExB::EvalMat(const TVectorD &vec, Double_t r, Double_t phi, Double_t z){
   //
   // Evaluate taylor expansion in r,phi,z
   //