Different misalignment errors for Y and Z and for the 6 layers (A. Dainese)
authorprino <prino@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 12 Aug 2008 21:10:39 +0000 (21:10 +0000)
committerprino <prino@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 12 Aug 2008 21:10:39 +0000 (21:10 +0000)
ITS/AliITSClusterParam.cxx
ITS/AliITSRecoParam.cxx
ITS/AliITSRecoParam.h

index 3e8982c..c4e19c8 100644 (file)
@@ -136,10 +136,12 @@ Int_t AliITSClusterParam::GetError(Int_t layer,
 
   if(addMisalErr) {
     // add error due to misalignment (to be improved)
-    Float_t errmisal2 = AliITSReconstructor::GetRecoParam()->GetClusterMisalError()
-      *AliITSReconstructor::GetRecoParam()->GetClusterMisalError();
-    erry = TMath::Sqrt(erry*erry+errmisal2);
-    errz = TMath::Sqrt(errz*errz+errmisal2);
+    Float_t errmisalY2 = AliITSReconstructor::GetRecoParam()->GetClusterMisalErrorY(layer)
+      *AliITSReconstructor::GetRecoParam()->GetClusterMisalErrorY(layer);
+    Float_t errmisalZ2 = AliITSReconstructor::GetRecoParam()->GetClusterMisalErrorZ(layer)
+      *AliITSReconstructor::GetRecoParam()->GetClusterMisalErrorZ(layer);
+    erry = TMath::Sqrt(erry*erry+errmisalY2);
+    errz = TMath::Sqrt(errz*errz+errmisalZ2);
   }
 
   return retval;
index 89c2d11..d92e347 100644 (file)
@@ -62,6 +62,9 @@ const Double_t AliITSRecoParam::fgkSPDdetxlength=1.298; // 1.410-2*0.056
 
 //_____________________________________________________________________________
 AliITSRecoParam::AliITSRecoParam() : AliDetectorRecoParam(),
+fTracker(0),
+fITSonly(kFALSE),
+fVertexer(0),
 fMaxSnp(1.),
 fNSigmaYLayerForRoadY(0),
 fNSigmaRoadY(0),
@@ -98,7 +101,7 @@ fXPassDeadZoneHits(0),
 fUseTGeoInTracker(3),
 fAllowSharedClusters(kTRUE),
 fClusterErrorsParam(1),
-fClusterMisalError(0.0),
+fClusterMisalError(0.),
 fComputePlaneEff(kFALSE),
 fHistoPlaneEff(kFALSE),
 fIPlanePlaneEff(0),
@@ -141,6 +144,7 @@ fUseChargeMatchingInClusterFinderSSD(kTRUE)
   SetAddVirtualClustersInDeadZone(kFALSE);
   SetUseAmplitudeInfo(kTRUE);
   SetClusterErrorsParam(1);
+  SetClusterMisalError(0.);
 }
 //_____________________________________________________________________________
 AliITSRecoParam::~AliITSRecoParam() 
@@ -338,6 +342,10 @@ AliITSRecoParam *AliITSRecoParam::GetCosmicTestParam()
   //
   AliITSRecoParam *param = new AliITSRecoParam();
 
+  // vertexer for cosmics
+  param->SetVertexer(2);
+
+
   // larger seach windows for SA (in case of large misalignments)
   param->SetFactorSAWindowSizes(3.); 
 
@@ -498,7 +506,7 @@ void AliITSRecoParam::PrintParameters() const
   //
 
   printf("=============================  AliITSRecoParam::PrintParameters ");
-  printf("============================= \n \n");
+  printf("============================= \n\n");
   for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++) {
     if(!fLayersToSkip[i]) {
       printf("ITS Traking: using layer %d\n",i);
@@ -514,7 +522,7 @@ void AliITSRecoParam::PrintParameters() const
     }
   }
   for(Int_t i=0; i<AliITSgeomTGeo::kNLayers; i++)
-    printf("Layer %d:\n  sigmaY2 %f, sigma Z2 %f\n  max norm chi2 for non constrained tracks %f\n  max norm chi2 for constrained tracks %f\n  max predicted chi2 (cluster & track prol.) %f\n",i,fSigmaY2[i],fSigmaZ2[i],fMaxNormChi2NonC[i],fMaxNormChi2C[i],fMaxChi2s[i]);
+    printf("Layer %d:\n  sigmaY2 %f, sigmaZ2 %f\n  sigmaMisalY %f, sigmaMisalZ %f\n  max norm chi2 for non constrained tracks %f\n  max norm chi2 for constrained tracks %f\n  max predicted chi2 (cluster & track prol.) %f\n",i,fSigmaY2[i],fSigmaZ2[i],fClusterMisalErrorY[i],fClusterMisalErrorZ[i],fMaxNormChi2NonC[i],fMaxNormChi2C[i],fMaxChi2s[i]);
 
 
   Dump();
index 914dba6..6b69262 100644 (file)
@@ -65,6 +65,13 @@ class AliITSRecoParam : public AliDetectorRecoParam
 
   void PrintParameters() const; 
 
+  void     SetTracker(Int_t tracker=0) { fTracker=tracker; }
+  Int_t    GetTracker() const { return fTracker; }
+  void     SetITSonly(Bool_t flag=kTRUE) { fITSonly=flag; }
+  Bool_t   GetITSonly() const { return fITSonly; }
+  void     SetVertexer(Int_t vertexer=0) { fVertexer=vertexer; }
+  Int_t    GetVertexer() const { return fVertexer; }
+
   Double_t GetSigmaY2(Int_t i) const { return fSigmaY2[i]; }
   Double_t GetSigmaZ2(Int_t i) const { return fSigmaZ2[i]; }
 
@@ -125,9 +132,11 @@ class AliITSRecoParam : public AliDetectorRecoParam
 
   void   SetClusterErrorsParam(Int_t param=1) { fClusterErrorsParam=param; return; }
   Int_t  GetClusterErrorsParam() const { return fClusterErrorsParam; }
-  void    SetClusterMisalError(Float_t err=0.) { fClusterMisalError=err; return; }
-  Float_t GetClusterMisalError() const { return fClusterMisalError; }
-
+  void   SetClusterMisalErrorY(Float_t e0,Float_t e1,Float_t e2,Float_t e3,Float_t e4,Float_t e5) { fClusterMisalErrorY[0]=e0; fClusterMisalErrorY[1]=e1; fClusterMisalErrorY[2]=e2; fClusterMisalErrorY[3]=e3; fClusterMisalErrorY[4]=e4; fClusterMisalErrorY[5]=e5; return; }
+  void   SetClusterMisalErrorZ(Float_t e0,Float_t e1,Float_t e2,Float_t e3,Float_t e4,Float_t e5) { fClusterMisalErrorZ[0]=e0; fClusterMisalErrorZ[1]=e1; fClusterMisalErrorZ[2]=e2; fClusterMisalErrorZ[3]=e3; fClusterMisalErrorZ[4]=e4; fClusterMisalErrorZ[5]=e5; return; }
+  void   SetClusterMisalError(Float_t err=0.) { SetClusterMisalErrorY(err,err,err,err,err,err); SetClusterMisalErrorZ(err,err,err,err,err,err); }
+  Float_t GetClusterMisalErrorY(Int_t i) const { return fClusterMisalErrorY[i]; }
+  Float_t GetClusterMisalErrorZ(Int_t i) const { return fClusterMisalErrorZ[i]; }
 
   void   SetUseAmplitudeInfo(Bool_t use=kTRUE) { for(Int_t i=0;i<AliITSgeomTGeo::kNLayers;i++) fUseAmplitudeInfo[i]=use; return; }
   void   SetUseAmplitudeInfo(Int_t ilay,Bool_t use) { fUseAmplitudeInfo[ilay]=use; return; }
@@ -248,6 +257,11 @@ class AliITSRecoParam : public AliDetectorRecoParam
   static const Double_t fgkSPDdetzlength;     // SPD ladder length in z
   static const Double_t fgkSPDdetxlength;     // SPD ladder length in x
 
+
+  Int_t  fTracker;  // ITS tracker to be used (see AliITSReconstructor)
+  Bool_t fITSonly;  // tracking only in ITS (no TPC)
+  Int_t  fVertexer; // ITS vertexer to be used (see AliITSReconstructor)
+
   Int_t fLayersToSkip[AliITSgeomTGeo::kNLayers]; // array with layers to skip (MI,SA)
 
   // spatial resolutions of the detectors
@@ -312,9 +326,12 @@ class AliITSRecoParam : public AliDetectorRecoParam
   Int_t fUseTGeoInTracker; // use TGeo to get material budget in tracker MI
   Bool_t fAllowSharedClusters; // if kFALSE don't set to kITSin tracks with shared clusters (MI)
   Int_t fClusterErrorsParam; // parametrization for cluster errors (MI), see AliITSRecoParam::GetError()
-  Float_t fClusterMisalError; // [cm] additional error on cluster pos. due to misalignment (MI,SA)
+  Float_t fClusterMisalError; // [cm] left here for backward compatibility
+  Float_t fClusterMisalErrorY[AliITSgeomTGeo::kNLayers]; // [cm] additional error on cluster Y pos. due to misalignment (MI,SA)
+  Float_t fClusterMisalErrorZ[AliITSgeomTGeo::kNLayers]; // [cm] additional error on cluster Z pos. due to misalignment (MI,SA)
 
   Bool_t fUseAmplitudeInfo[AliITSgeomTGeo::kNLayers]; // use cluster charge in cluster-track matching (SDD,SSD) (MI)
+
   // Plane Efficiency evaluation
   Bool_t fComputePlaneEff;  // flag to enable computation of PlaneEfficiency
   Bool_t fHistoPlaneEff;  // flag to enable auxiliary PlaneEff histograms (e.g. residual distributions)
@@ -351,7 +368,7 @@ class AliITSRecoParam : public AliDetectorRecoParam
 
   Bool_t fUseChargeMatchingInClusterFinderSSD; // SSD
 
-  ClassDef(AliITSRecoParam,6) // ITS reco parameters
+  ClassDef(AliITSRecoParam,7) // ITS reco parameters
 };
 
 #endif