]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/UPGRADE/AliITSURecoParam.cxx
Updated hydro macro
[u/mrichter/AliRoot.git] / ITS / UPGRADE / AliITSURecoParam.cxx
index c1adfeb00ab4a6b8f33d84a94ebe3498ade66044..cdc3cc14b0b46248d9d96e14a69414315bf6bfc7 100644 (file)
@@ -15,7 +15,7 @@
 
 #include "AliITSURecoParam.h"
 #include "AliLog.h"
-
+#include "AliITSUTrackCond.h"
 
 ///////////////////////////////////////////////////////////////////////////////
 //                                                                           //
@@ -32,26 +32,43 @@ const Double_t AliITSURecoParam::fgkMaxDZForProlongation          = 60;
 const Double_t AliITSURecoParam::fgkMinPtForProlongation          = 0.0; 
 const Double_t AliITSURecoParam::fgkNSigmaRoadY                   = 5.;
 const Double_t AliITSURecoParam::fgkNSigmaRoadZ                   = 5.; 
-const Double_t AliITSURecoParam::fgkSigmaRoadY                    = 1000e-4;
-const Double_t AliITSURecoParam::fgkSigmaRoadZ                    = 1000e-4;
-const Double_t AliITSURecoParam::fgkMaxTr2ClChi2                  = 15.;;
+const Double_t AliITSURecoParam::fgkSigmaRoadY                    = 1.;//1000e-4;
+const Double_t AliITSURecoParam::fgkSigmaRoadZ                    = 1.;//1000e-4;
+const Double_t AliITSURecoParam::fgkMaxTr2ClChi2                  = 15.;
 const Double_t AliITSURecoParam::fgkTanLorentzAngle               = 0;
+const Double_t AliITSURecoParam::fgkMissPenalty                   = 2.0;
+const Bool_t   AliITSURecoParam::fgkAllowDiagonalClusterization   = kFALSE;
 //
+// hardwired params for TPC-ITS border layer
+const Double_t AliITSURecoParam::fgkTPCITSWallRMin                = 50.;
+const Double_t AliITSURecoParam::fgkTPCITSWallRMax                = 80.;
+const Double_t AliITSURecoParam::fgkTPCITSWallZSpanH              = 250.;
+const Double_t AliITSURecoParam::fgkTPCITSWallMaxStep             = 6.;
+
 
+//
 //_____________________________________________________________________________
 AliITSURecoParam::AliITSURecoParam()
   :  fNLayers(0)
   ,fMaxDforV0dghtrForProlongation(fgkMaxDforV0dghtrForProlongation)
   ,fMaxDForProlongation(fgkMaxDForProlongation)
   ,fMaxDZForProlongation(fgkMaxDZForProlongation)
-  ,fMinPtForProlongation(fgkMaxDForProlongation)
+  ,fMinPtForProlongation(fgkMinPtForProlongation)
   ,fNSigmaRoadY(fgkNSigmaRoadY)
   ,fNSigmaRoadZ(fgkNSigmaRoadZ)
      //
+  ,fTPCITSWallRMin(fgkTPCITSWallRMin)
+  ,fTPCITSWallRMax(fgkTPCITSWallRMax)
+  ,fTPCITSWallZSpanH(fgkTPCITSWallZSpanH)
+  ,fTPCITSWallMaxStep(fgkTPCITSWallMaxStep)
+     //
+  ,fAllowDiagonalClusterization(0)
   ,fTanLorentzAngle(0)
   ,fSigmaY2(0)
   ,fSigmaZ2(0)
   ,fMaxTr2ClChi2(0)
+  ,fMissPenalty(0)
+  ,fTrackingConditions(0)
 {
   // def c-tor
   SetName("ITS");
@@ -64,14 +81,22 @@ AliITSURecoParam::AliITSURecoParam(Int_t nLr)
   ,fMaxDforV0dghtrForProlongation(fgkMaxDforV0dghtrForProlongation)
   ,fMaxDForProlongation(fgkMaxDForProlongation)
   ,fMaxDZForProlongation(fgkMaxDZForProlongation)
-  ,fMinPtForProlongation(fgkMaxDForProlongation)
+  ,fMinPtForProlongation(fgkMinPtForProlongation)
   ,fNSigmaRoadY(fgkNSigmaRoadY)
   ,fNSigmaRoadZ(fgkNSigmaRoadZ)
      //
+  ,fTPCITSWallRMin(fgkTPCITSWallRMin)
+  ,fTPCITSWallRMax(fgkTPCITSWallRMax)
+  ,fTPCITSWallZSpanH(fgkTPCITSWallZSpanH)
+  ,fTPCITSWallMaxStep(fgkTPCITSWallMaxStep)
+     //
+  ,fAllowDiagonalClusterization(0)
   ,fTanLorentzAngle(0)
   ,fSigmaY2(0)
   ,fSigmaZ2(0)
   ,fMaxTr2ClChi2(0)
+  ,fMissPenalty(0)
+  ,fTrackingConditions(0)
 {
   // def c-tor
   SetName("ITS");
@@ -87,6 +112,9 @@ AliITSURecoParam::~AliITSURecoParam()
   delete[] fSigmaY2;
   delete[] fSigmaZ2;
   delete[] fMaxTr2ClChi2;
+  delete[] fMissPenalty;
+  delete[] fAllowDiagonalClusterization;
+  fTrackingConditions.Delete();
 }
 
 //_____________________________________________________________________________
@@ -128,12 +156,16 @@ void  AliITSURecoParam::SetNLayers(Int_t n)
   fSigmaY2 = new Double_t[n];
   fSigmaZ2 = new Double_t[n];
   fMaxTr2ClChi2 = new Double_t[n];
+  fMissPenalty  = new Double_t[n];
+  fAllowDiagonalClusterization = new Bool_t[n];
   //
   for (int i=n;i--;) {
+    fAllowDiagonalClusterization[i] = fgkAllowDiagonalClusterization;
     fTanLorentzAngle[i] = fgkTanLorentzAngle;
     fSigmaY2[i] = fgkSigmaRoadY*fgkSigmaRoadY;
     fSigmaZ2[i] = fgkSigmaRoadZ*fgkSigmaRoadZ;
     fMaxTr2ClChi2[i] = fgkMaxTr2ClChi2;
+    fMissPenalty[i]  = fgkMissPenalty;
   }
   //
 }
@@ -169,3 +201,60 @@ void  AliITSURecoParam::SetMaxTr2ClChi2(Int_t lr, Double_t v)
   if (lr>=fNLayers) AliFatal(Form("Number of defined layers is %d",fNLayers));
   fMaxTr2ClChi2[lr] = v;
 }
+
+//_____________________________________________________________________________
+void  AliITSURecoParam::SetMissPenalty(Int_t lr, Double_t v)
+{
+  // set Lorentz angle value
+  if (lr>=fNLayers) AliFatal(Form("Number of defined layers is %d",fNLayers));
+  fMissPenalty[lr] = v;
+}
+
+//_____________________________________________________________________________
+void  AliITSURecoParam::SetAllowDiagonalClusterization(Int_t lr, Bool_t v)
+{
+  // set Lorentz angle value
+  if (lr>=fNLayers) AliFatal(Form("Number of defined layers is %d",fNLayers));
+  fAllowDiagonalClusterization[lr] = v;
+}
+
+//========================================================================
+//_____________________________________________________________________________
+void AliITSURecoParam::Print(Option_t *) const
+{
+  // print params
+  printf("%s: %s %s\n",ClassName(),GetName(),GetTitle());
+  printf("%-30s\t%f\n","fMaxDforV0dghtrForProlongation",fMaxDforV0dghtrForProlongation);
+  printf("%-30s\t%f\n","fMaxDForProlongation",fMaxDForProlongation); 
+  printf("%-30s\t%f\n","fMaxDZForProlongation",fMaxDZForProlongation);
+  printf("%-30s\t%f\n","fMinPtForProlongation",fMinPtForProlongation);
+  printf("%-30s\t%f\n","fNSigmaRoadY",fNSigmaRoadY);
+  printf("%-30s\t%f\n","fNSigmaRoadZ",fNSigmaRoadZ);
+  //
+  printf("TPC-ITS wall: %.3f<R<%.3f DZ/2=%.3f MaxStep=%.3f\n",
+        fTPCITSWallRMin,fTPCITSWallRMax,fTPCITSWallZSpanH,fTPCITSWallMaxStep);
+  //
+  printf("N.Layers: %d\n",fNLayers);
+  if (fNLayers>0) {
+    printf("Layer-wise data:\n");
+    printf("%-30s\t:","fTanLorentzAngle");  for (int i=0;i<fNLayers;i++) printf(" %+.2e",fTanLorentzAngle[i]); printf("\n");
+    printf("%-30s\t:","fSigmaY2");          for (int i=0;i<fNLayers;i++) printf(" %+.2e",fSigmaY2[i]); printf("\n");
+    printf("%-30s\t:","fSigmaZ2");          for (int i=0;i<fNLayers;i++) printf(" %+.2e",fSigmaZ2[i]); printf("\n");
+    printf("%-30s\t:","fMaxTr2ClChi2");     for (int i=0;i<fNLayers;i++) printf(" %+.2e",fMaxTr2ClChi2[i]); printf("\n");
+    printf("%-30s\t:","fMissPenalty");      for (int i=0;i<fNLayers;i++) printf(" %+.2e",fMissPenalty[i]); printf("\n");
+  }
+  //
+  int nTrCond = GetNTrackingConditions();
+  printf("%d tracking conditions defined\n",nTrCond);
+  for (int itc=0;itc<nTrCond;itc++) {
+    printf("Tracking condition %d\n",itc);
+    GetTrackingCondition(itc)->Print();
+  }
+}
+
+//__________________________________________________
+void  AliITSURecoParam::AddTrackingCondition(AliITSUTrackCond* cond)
+{
+  // Add new tracking condition
+  fTrackingConditions.AddLast(cond);
+}