]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Changes needed to calculate and store the dEdxTot and dEdxMax
authormivanov <mivanov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 16 Sep 2013 12:29:15 +0000 (12:29 +0000)
committermivanov <mivanov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 16 Sep 2013 12:29:15 +0000 (12:29 +0000)
M       Rec/AliTPCtracker.cxx      -  adding dEdxMax and setting information
M       Rec/AliTPCseed.cxx         -  adding dEdxMax and setting information
M       Rec/AliTPCseed.h           -  adding dEdxMax and setting information
M       Rec/AliTPCclusterer.cxx    - debug streamer activated only for special flag

TPC/Rec/AliTPCclusterer.cxx
TPC/Rec/AliTPCseed.cxx
TPC/Rec/AliTPCseed.h
TPC/Rec/AliTPCtracker.cxx

index 9f72759b21258a43f343ef41e18ec2376658baa9..8be2bfeb48978f09a0003a39799d12f6a69ef108 100644 (file)
@@ -648,8 +648,8 @@ void AliTPCclusterer::AddCluster(AliTPCclusterMI &c, Float_t * /*matrix*/, Int_t
   if (!fRecoParam->DumpSignal()) {
     cl->SetInfo(0);
   }
-  
-  if (AliTPCReconstructor::StreamLevel()>1) {
+  const Int_t kClusterStream=101; // stream level should be per action - to be added to the AliTPCReconstructor
+  if (AliTPCReconstructor::StreamLevel()&kClusterStream !=0) {
     Float_t xyz[3];
     cl->GetGlobalXYZ(xyz);
      (*fDebugStreamer)<<"Clusters"<<
index a98574550a124fcbfee0a53906e2dcd497cdacff..db634e51c755862e2093f41da5ab039c0946d943 100644 (file)
@@ -84,7 +84,7 @@ AliTPCseed::AliTPCseed():
     fNCDEDX[i] = 0;
     fNCDEDXInclThres[i] = 0;
   }
-  fDEDX[4] = 0;
+  for (Int_t i=0;i<9;i++) fDEDX[i] = 0;
   for (Int_t i=0;i<12;i++) fOverlapLabels[i] = -1;
 }
 
@@ -138,7 +138,8 @@ AliTPCseed::AliTPCseed(const AliTPCseed &s, Bool_t clusterOwner):
     fNCDEDX[i] = s.fNCDEDX[i];
     fNCDEDXInclThres[i] = s.fNCDEDXInclThres[i];
   }
-  fDEDX[4] = s.fDEDX[4];
+  for (Int_t i=0;i<9;i++) fDEDX[i] = 0;
+
   for (Int_t i=0;i<12;i++) fOverlapLabels[i] = s.fOverlapLabels[i];
 
 }
@@ -194,7 +195,8 @@ AliTPCseed::AliTPCseed(const AliTPCtrack &t):
     fNCDEDX[i] = 0;
     fNCDEDXInclThres[i] = 0;
   }
-    fDEDX[4] = 0;
+  for (Int_t i=0;i<9;i++) fDEDX[i] = fDEDX[i];
+
   for (Int_t i=0;i<12;i++) fOverlapLabels[i] = -1;
 }
 
@@ -241,7 +243,8 @@ AliTPCseed::AliTPCseed(Double_t xr, Double_t alpha, const Double_t xx[5],
     fNCDEDX[i] = 0;
     fNCDEDXInclThres[i] = 0;
   }
-    fDEDX[4] = 0;
+  for (Int_t i=0;i<9;i++) fDEDX[i] = 0;
+
   for (Int_t i=0;i<12;i++) fOverlapLabels[i] = -1;
 }
 
@@ -294,7 +297,8 @@ AliTPCseed & AliTPCseed::operator=(const AliTPCseed &param)
       fNCDEDX[i] = param.fNCDEDX[i];
       fNCDEDXInclThres[i] = param.fNCDEDXInclThres[i];
     }
-      fDEDX[4]   = param.fDEDX[4];
+    for (Int_t i=0;i<9;i++) fDEDX[i] = 0;
+
     for(Int_t i = 0;i<AliPID::kSPECIES;++i)fTPCr[i] = param.fTPCr[i];
     
     fSeedType = param.fSeedType;
@@ -608,37 +612,54 @@ Float_t AliTPCseed::CookdEdx(Double_t low, Double_t up,Int_t i1, Int_t i2, Bool_
   //
   //
   TVectorF i1i2;
-  TVectorF  iro;
-  TVectorF oro1;
-  TVectorF oro2;
-  TVectorF foro;
+  TVectorF  irocTot;
+  TVectorF oroc1Tot;
+  TVectorF oroc2Tot;
+  TVectorF forocTot;
+  //
+  TVectorF  irocMax;
+  TVectorF oroc1Max;
+  TVectorF oroc2Max;
+  TVectorF forocMax;
 
   CookdEdxAnalytical(low,up,useTot ,i1  ,i2,   0, 2, 0, &i1i2);
-  CookdEdxAnalytical(low,up,useTot ,0   ,row0, 0, 2, 0, &iro);
-  CookdEdxAnalytical(low,up,useTot ,row0,row1, 0, 2, 0, &oro1);
-  CookdEdxAnalytical(low,up,useTot ,row1,row2, 0, 2, 0, &oro2);
-  CookdEdxAnalytical(low,up,useTot ,row0,row2, 0, 2, 0, &foro); // full OROC truncated mean
+  //
+  CookdEdxAnalytical(low,up,kTRUE ,0   ,row0, 0, 2, 0, &irocTot);
+  CookdEdxAnalytical(low,up,kTRUE ,row0,row1, 0, 2, 0, &oroc1Tot);
+  CookdEdxAnalytical(low,up,kTRUE ,row1,row2, 0, 2, 0, &oroc2Tot);
+  CookdEdxAnalytical(low,up,kTRUE ,row0,row2, 0, 2, 0, &forocTot); // full OROC truncated mean
+  //
+  CookdEdxAnalytical(low,up,kFALSE ,0   ,row0, 0, 2, 0, &irocMax);
+  CookdEdxAnalytical(low,up,kFALSE ,row0,row1, 0, 2, 0, &oroc1Max);
+  CookdEdxAnalytical(low,up,kFALSE ,row1,row2, 0, 2, 0, &oroc2Max);
+  CookdEdxAnalytical(low,up,kFALSE ,row0,row2, 0, 2, 0, &forocMax); // full OROC truncated mean
 
   fDEDX[0]      = i1i2(0);
-  fDEDX[1]      =  iro(0);
-  fDEDX[2]      = oro1(0);
-  fDEDX[3]      = oro2(0);
-  fDEDX[4]      = foro(0); // full OROC truncated mean
+  //
+  fDEDX[1]      =  irocTot(0);
+  fDEDX[2]      = oroc1Tot(0);
+  fDEDX[3]      = oroc2Tot(0);
+  fDEDX[4]      = forocTot(0); // full OROC truncated mean
+  fDEDX[5]      =  irocMax(0);
+  fDEDX[6]      = oroc1Max(0);
+  fDEDX[7]      = oroc2Max(0);
+  fDEDX[8]      = forocMax(0); // full OROC truncated mean
   //
   fSDEDX[0]     = i1i2(1);
-  fSDEDX[1]     =  iro(1);
-  fSDEDX[2]     = oro1(1);
-  fSDEDX[3]     = oro2(1);
+  fSDEDX[1]     =  irocTot(1);
+  fSDEDX[2]     = oroc1Tot(1);
+  fSDEDX[3]     = oroc2Tot(1);
   //
   fNCDEDX[0]    = TMath::Nint(i1i2(2));
-  fNCDEDX[1]    = TMath::Nint( iro(2));
-  fNCDEDX[2]    = TMath::Nint(oro1(2));
-  fNCDEDX[3]    = TMath::Nint(oro2(2));
+
+  fNCDEDX[1]    = TMath::Nint( irocTot(2));
+  fNCDEDX[2]    = TMath::Nint(oroc1Tot(2));
+  fNCDEDX[3]    = TMath::Nint(oroc2Tot(2));
   //
   fNCDEDXInclThres[0]    = TMath::Nint(i1i2(2)+i1i2(9));
-  fNCDEDXInclThres[1]    = TMath::Nint( iro(2)+ iro(9));
-  fNCDEDXInclThres[2]    = TMath::Nint(oro1(2)+oro1(9));
-  fNCDEDXInclThres[3]    = TMath::Nint(oro2(2)+oro2(9));
+  fNCDEDXInclThres[1]    = TMath::Nint( irocTot(2)+ irocTot(9));
+  fNCDEDXInclThres[2]    = TMath::Nint(oroc1Tot(2)+oroc1Tot(9));
+  fNCDEDXInclThres[3]    = TMath::Nint(oroc2Tot(2)+oroc2Tot(9));
   //
   SetdEdx(fDEDX[0]);
   return fDEDX[0];
index 0965fc79a9c676eab432fdeb880b06144f369ab0..6ded28396df10829f11911ceb295faac5d1ea8fa 100644 (file)
@@ -179,7 +179,7 @@ class AliTPCseed : public AliTPCtrack {
      Bool_t  fBSigned;        //indicates that clusters of this trackes are signed to be used
      //
      //
-     Float_t fDEDX[5];            // dedx according padrows
+     Float_t fDEDX[9];            // dedx according padrows
      Float_t fSDEDX[4];           // sdedx according padrows
      Int_t   fNCDEDX[4];          // number of clusters for dedx measurment
      Int_t   fNCDEDXInclThres[4]; // number of clusters for dedx measurment including sub-threshold clusters
@@ -193,7 +193,7 @@ class AliTPCseed : public AliTPCtrack {
      Char_t   fCircular;           // indicates curlin track
      AliTPCTrackerPoint  fTrackPoints[160];  //track points - array track points
      Int_t   fPoolID;              //! id in the pool
-     ClassDef(AliTPCseed,6)  
+     ClassDef(AliTPCseed,7)  
 };
 
 
index 79c245ae4fe1d1f22c4d1fab3e6a05a46d573545..4c9b613ccfacbc9c470c69d729822628ee21d3a5 100644 (file)
@@ -21,7 +21,7 @@
 // 
 //  AliTPC parallel tracker
 //
-//  The track fitting is based on Kalaman filtering approach
+//  The track fitting is based on Kalman filtering approach
 
 //  The track finding steps:
 //      1. Seeding - with and without vertex constraint
@@ -2845,18 +2845,23 @@ Int_t AliTPCtracker::RefitInward(AliESDEvent *event)
       // fill new dEdx information
       //
       Double32_t signal[4]; 
+      Double32_t signalMax[4]; 
       Char_t ncl[3]; 
       Char_t nrows[3];
       //
       for(Int_t iarr=0;iarr<3;iarr++) {
        signal[iarr] = seed->GetDEDXregion(iarr+1);
+       signalMax[iarr] = seed->GetDEDXregion(iarr+5);
        ncl[iarr] = seed->GetNCDEDX(iarr+1);
        nrows[iarr] = seed->GetNCDEDXInclThres(iarr+1);
       }
       signal[3] = seed->GetDEDXregion(4);
+      signalMax[3] = seed->GetDEDXregion(8);
+      
       //
       AliTPCdEdxInfo * infoTpcPid = new AliTPCdEdxInfo();
       infoTpcPid->SetTPCSignalRegionInfo(signal, ncl, nrows);
+      infoTpcPid->SetTPCSignalsQmax(signalMax);
       esd->SetTPCdEdxInfo(infoTpcPid);
       //
       // add seed to the esd track in Calib level