Adding local mean shape to the AliTPCseed (Marian Ivanov)
authormarian <marian@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sat, 19 Apr 2008 10:19:01 +0000 (10:19 +0000)
committermarian <marian@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sat, 19 Apr 2008 10:19:01 +0000 (10:19 +0000)
To be used in the error parameterization

TPC/AliTPCseed.cxx
TPC/AliTPCseed.h
TPC/AliTPCtrackerMI.cxx

index b7eeb52..9ca7391 100644 (file)
@@ -39,6 +39,11 @@ AliTPCseed::AliTPCseed():
   fRelativeSector(-1),
   fCurrentSigmaY2(1e10),
   fCurrentSigmaZ2(1e10),
+  fCMeanSigmaY2p30(-1.),   //! current mean sigma Y2 - mean30%
+  fCMeanSigmaZ2p30(-1.),   //! current mean sigma Z2 - mean30%
+  fCMeanSigmaY2p2(-1.),   //! current mean sigma Y2 - mean2%
+  fCMeanSigmaZ2p2(-1.),   //! current mean sigma Z2 - mean2%
+  //
   fErrorY2(1e10),
   fErrorZ2(1e10),
   fCurrentCluster(0x0),
@@ -83,6 +88,10 @@ AliTPCseed::AliTPCseed(const AliTPCseed &s, Bool_t clusterOwner):
   fRelativeSector(-1),
   fCurrentSigmaY2(1e10),
   fCurrentSigmaZ2(1e10),
+  fCMeanSigmaY2p30(-1.),   //! current mean sigma Y2 - mean30%
+  fCMeanSigmaZ2p30(-1.),   //! current mean sigma Z2 - mean30%
+  fCMeanSigmaY2p2(-1.),   //! current mean sigma Y2 - mean2%
+  fCMeanSigmaZ2p2(-1.),   //! current mean sigma Z2 - mean2%
   fErrorY2(1e10),
   fErrorZ2(1e10),
   fCurrentCluster(0x0),
@@ -134,6 +143,10 @@ AliTPCseed::AliTPCseed(const AliTPCtrack &t):
   fRelativeSector(-1),
   fCurrentSigmaY2(1e10),
   fCurrentSigmaZ2(1e10),
+  fCMeanSigmaY2p30(-1.),   //! current mean sigma Y2 - mean30%
+  fCMeanSigmaZ2p30(-1.),   //! current mean sigma Z2 - mean30%
+  fCMeanSigmaY2p2(-1.),   //! current mean sigma Y2 - mean2%
+  fCMeanSigmaZ2p2(-1.),   //! current mean sigma Z2 - mean2%
   fErrorY2(1e10),
   fErrorZ2(1e10),
   fCurrentCluster(0x0),
@@ -190,6 +203,10 @@ AliTPCseed::AliTPCseed(Double_t xr, Double_t alpha, const Double_t xx[5],
   fRelativeSector(-1),
   fCurrentSigmaY2(1e10),
   fCurrentSigmaZ2(1e10),
+  fCMeanSigmaY2p30(-1.),   //! current mean sigma Y2 - mean30%
+  fCMeanSigmaZ2p30(-1.),   //! current mean sigma Z2 - mean30%
+  fCMeanSigmaY2p2(-1.),   //! current mean sigma Y2 - mean2%
+  fCMeanSigmaZ2p2(-1.),   //! current mean sigma Z2 - mean2%
   fErrorY2(1e10),
   fErrorZ2(1e10),
   fCurrentCluster(0x0),
@@ -507,6 +524,20 @@ Bool_t AliTPCseed::Update(const AliCluster *c, Double_t chisq, Int_t index)
 
   AliCluster cl(*c);  cl.SetSigmaY2(fErrorY2); cl.SetSigmaZ2(fErrorZ2);
   if (!AliTPCtrack::Update(&cl,chisq,index)) return kFALSE;
+  
+  if (fCMeanSigmaY2p30<0){
+    fCMeanSigmaY2p30= c->GetSigmaY2();   //! current mean sigma Y2 - mean30%
+    fCMeanSigmaZ2p30= c->GetSigmaZ2();   //! current mean sigma Z2 - mean30%
+    fCMeanSigmaY2p2 = c->GetSigmaY2();   //! current mean sigma Y2 - mean5%
+    fCMeanSigmaZ2p2 = c->GetSigmaZ2();   //! current mean sigma Z2 - mean5%
+  }
+  //
+  fCMeanSigmaY2p30= 0.70*fCMeanSigmaY2p30 +0.30*c->GetSigmaY2();   
+  fCMeanSigmaZ2p30= 0.70*fCMeanSigmaZ2p30 +0.30*c->GetSigmaZ2();   
+  fCMeanSigmaY2p2 = 0.98*fCMeanSigmaY2p30 +0.02*c->GetSigmaY2();  
+  fCMeanSigmaZ2p2 = 0.98*fCMeanSigmaZ2p30 +0.02*c->GetSigmaZ2();   
+  
+
 
   SetClusterIndex(n,idx);          // restore the current cluster index
   return kTRUE;
index 1eb8053..7a23d5e 100644 (file)
@@ -123,6 +123,10 @@ class AliTPCseed : public AliTPCtrack {
      Bool_t GetInDead() const {return fInDead;}
      Float_t GetErrorY2() const {return fErrorY2;}
      Float_t GetErrorZ2() const {return fErrorZ2;}
+  Float_t GetCMeanSigmaY2p30() const {return fCMeanSigmaY2p30;}
+  Float_t GetCMeanSigmaZ2p30() const {return fCMeanSigmaZ2p30;}
+  Float_t GetCMeanSigmaY2p2() const {return fCMeanSigmaY2p2;}
+  Float_t GetCMeanSigmaZ2p2() const {return fCMeanSigmaZ2p2;}
      //
      //
      void SetClusterMapBit(int ibit, Bool_t state);
@@ -146,6 +150,10 @@ class AliTPCseed : public AliTPCtrack {
      Int_t fRelativeSector;      // index of current relative sector
      Float_t fCurrentSigmaY2;    //!expected current cluster sigma Y
      Float_t fCurrentSigmaZ2;    //!expected current cluster sigma Z
+     Float_t fCMeanSigmaY2p30;   //! current mean sigma Y2 - mean30%
+     Float_t fCMeanSigmaZ2p30;   //! current mean sigma Z2 - mean30%
+     Float_t fCMeanSigmaY2p2;   //! current mean sigma Y2 - mean2%
+     Float_t fCMeanSigmaZ2p2;   //! current mean sigma Z2 - mean2%
      Float_t fErrorY2;           //!sigma of current cluster 
      Float_t fErrorZ2;           //!sigma of current cluster    
      AliTPCclusterMI * fCurrentCluster; //!pointer to the current cluster for prolongation
index c61e359..9dd3d86 100644 (file)
@@ -283,17 +283,26 @@ Int_t AliTPCtrackerMI::AcceptCluster(AliTPCseed * seed, AliTPCclusterMI * cluste
   if (AliTPCReconstructor::StreamLevel()>5) {
     Float_t rmsy2 = seed->GetCurrentSigmaY2();
     Float_t rmsz2 = seed->GetCurrentSigmaZ2();
+    Float_t rmsy2p30 = seed->GetCMeanSigmaY2p30();
+    Float_t rmsz2p30 = seed->GetCMeanSigmaZ2p30();
+    Float_t rmsy2p2  = seed->GetCMeanSigmaY2p2();
+    Float_t rmsz2p2  = seed->GetCMeanSigmaZ2p2();
+
     AliExternalTrackParam param(*seed); 
     (*fDebugStreamer)<<"ErrParam"<<
-       "Cl.="<<cluster<<
-       "T.="<<&param<<
-       "erry2="<<sy2<<
-       "errz2="<<sz2<<
-       "rmsy2="<<rmsy2<<
-       "rmsz2="<<rmsz2<<       
-       "\n";
+      "Cl.="<<cluster<<
+      "T.="<<&param<<
+      "erry2="<<sy2<<
+      "errz2="<<sz2<<
+      "rmsy2="<<rmsy2<<
+      "rmsz2="<<rmsz2<<        
+      "rmsy2p30="<<rmsy2p30<<
+      "rmsz2p30="<<rmsz2p30<<  
+      "rmsy2p2="<<rmsy2p2<<
+      "rmsz2p2="<<rmsz2p2<<    
+      "\n";
   }
-
+  
   if (rdistance2>16) return 3;
   
   
@@ -548,7 +557,7 @@ Double_t AliTPCtrackerMI::ErrY2(AliTPCseed* seed, AliTPCclusterMI * cl){
   Int_t ctype = cl->GetType();  
   Int_t    type = (cl->GetRow()<63) ? 0: (cl->GetRow()>126) ? 1:2;
   Double_t angle = seed->GetSnp()*seed->GetSnp();
-  angle = TMath::Sqrt(angle/(1.-angle));
+  angle = TMath::Sqrt(TMath::Abs(angle/(1.-angle)));
   Double_t erry2 = clparam->GetError0Par(0,type, z,angle);
   if (ctype<0) {
     erry2+=0.5;  // edge cluster
@@ -700,7 +709,7 @@ Double_t AliTPCtrackerMI::ErrZ2(AliTPCseed* seed, AliTPCclusterMI * cl){
   //
   Double_t angle2 = seed->GetSnp()*seed->GetSnp();
   angle2 = seed->GetTgl()*seed->GetTgl()*(1+angle2/(1-angle2)); 
-  Double_t angle = TMath::Sqrt(angle2);
+  Double_t angle = TMath::Sqrt(TMath::Abs(angle2));
   Double_t errz2 = clparam->GetError0Par(1,type, z,angle);
   if (ctype<0) {
     errz2+=0.5;  // edge cluster
@@ -6564,11 +6573,11 @@ void  AliTPCtrackerMI::GetShape(AliTPCseed * seed, Int_t row)
   Float_t zdrift = TMath::Abs((fParam->GetZLength(0)-TMath::Abs(seed->GetZ())));
   Int_t type = (seed->GetSector() < fParam->GetNSector()/2) ? 0: (row>126) ? 1:2;
   Double_t angulary  = seed->GetSnp();
-  angulary = angulary*angulary/(1-angulary*angulary);
+  angulary = angulary*angulary/(1.-angulary*angulary);
   Double_t angularz  = seed->GetTgl()*seed->GetTgl()*(1.+angulary);
   
-  Double_t sigmay =  clparam->GetRMS0(0,type,zdrift,TMath::Sqrt(angulary));
-  Double_t sigmaz =  clparam->GetRMS0(1,type,zdrift,TMath::Sqrt(angularz));
+  Double_t sigmay =  clparam->GetRMS0(0,type,zdrift,TMath::Sqrt(TMath::Abs(angulary)));
+  Double_t sigmaz =  clparam->GetRMS0(1,type,zdrift,TMath::Sqrt(TMath::Abs(angularz)));
   seed->SetCurrentSigmaY2(sigmay*sigmay);
   seed->SetCurrentSigmaZ2(sigmaz*sigmaz);
   // Float_t sd2 = TMath::Abs((fParam->GetZLength(0)-TMath::Abs(seed->GetZ())))*fParam->GetDiffL()*fParam->GetDiffL();