]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
ndex: TRD/AliTRDdEdxReconUtils.h
authorcblume <cblume@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 6 Jun 2012 10:57:09 +0000 (10:57 +0000)
committercblume <cblume@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 6 Jun 2012 10:57:09 +0000 (10:57 +0000)
       +        GetAngularCorrection moved to public

Index: TRD/AliTRDdEdxCalibUtils.cxx
       +        bug in generating CDB object: run range in the name

Index: TRD/AliTRDdEdxBaseUtils.h
       +        implemented/modified GetLastTracklet GetFirstSectorStackMomentum
       +        implemented GetDeltaPhi
       +        implemented FastFitdEdxTR

Index: TRD/AliTRDdEdxBaseUtils.cxx
       +        same as .h
       +        updated par in AliTRDdEdxBaseUtils::Q0MeanTRDpp based on 126088+128609 CPass0 barrel + private TRDdEdx optimum calib ( //2012-0605 /u/xlu/.task/CommondEdx/myAnaData/newTune_r56595/inuse/plot/fastFit)

TRD/AliTRDdEdxBaseUtils.cxx
TRD/AliTRDdEdxBaseUtils.h
TRD/AliTRDdEdxCalibUtils.cxx
TRD/AliTRDdEdxReconUtils.h

index 672c1b2c79acbcab635d383c8cc460370199df2f..970ad9f41a376b4d4be75c7a12131380a817d46c 100644 (file)
@@ -426,7 +426,36 @@ Bool_t AliTRDdEdxBaseUtils::IsInSameStack(const AliTRDtrackV1 *trdtrack)
     return kTRUE;
 }
 
-Bool_t AliTRDdEdxBaseUtils::GetFirstSectorStackMomentum(const AliTRDtrackV1 *trdtrack, Int_t & isec, Int_t & istk, Double_t & mom)
+Double_t AliTRDdEdxBaseUtils::GetDeltaPhi(const AliTRDseedV1 *tracklet)
+{
+  //
+  //get phi difference to normal incidence
+  //
+  if(tracklet)
+    return TMath::ATan(tracklet->GetYref(1));
+  else
+    return -999;
+}
+
+AliTRDseedV1 * AliTRDdEdxBaseUtils::GetLastTracklet(const AliTRDtrackV1 *trdtrack)
+{
+  //
+  //get last tracklet
+  //
+  AliTRDseedV1 *tracklet = 0x0;
+  
+  for(Int_t ilayer = 5; ilayer >= 0; ilayer--){
+    tracklet=trdtrack->GetTracklet(ilayer);
+    if(!tracklet)
+      continue;
+
+    break;
+  }
+
+  return tracklet;
+}
+
+AliTRDseedV1 * AliTRDdEdxBaseUtils::GetFirstSectorStackMomentum(const AliTRDtrackV1 *trdtrack, Int_t & isec, Int_t & istk, Double_t & mom)
 {
   //
   //as function name
@@ -434,8 +463,9 @@ Bool_t AliTRDdEdxBaseUtils::GetFirstSectorStackMomentum(const AliTRDtrackV1 *trd
   isec = istk = -999;
   mom = -999;
 
+  AliTRDseedV1 *tracklet = 0x0;
   for(Int_t ilayer = 0; ilayer < 6; ilayer++){
-    AliTRDseedV1 *tracklet=trdtrack->GetTracklet(ilayer);
+    tracklet=trdtrack->GetTracklet(ilayer);
     if(!tracklet)
       continue;
     
@@ -448,10 +478,7 @@ Bool_t AliTRDdEdxBaseUtils::GetFirstSectorStackMomentum(const AliTRDtrackV1 *trd
     break;
   }
 
-  if(isec<0)
-    return kFALSE;
-  else 
-    return kTRUE;
+  return tracklet;
 }
 
 //===================================================================================
@@ -543,6 +570,39 @@ void AliTRDdEdxBaseUtils::PrintControl()
 //===================================================================================
 //                                 dEdx Parameterization
 //===================================================================================
+void AliTRDdEdxBaseUtils::FastFitdEdxTR(TH1 * hh)
+{
+  //
+  //fit dedx tr from mean
+  //
+
+  TF1 *ff=new TF1("ff", MeandEdxTRLogx, -0.5, 4.5, 8);
+  Double_t par[8];
+  par[0]=   2.397001e-01;
+  par[1]=   1.334697e+00;
+  par[2]=   6.967470e+00;
+  par[3]=   9.055289e-02;
+  par[4]=   9.388760e+00;
+  par[5]=   9.452742e-04;
+  par[6]=  -1.866091e+00;
+  par[7]=   1.403545e+00;
+
+  ff->SetParameters(par);
+  hh->Fit(ff,"N");
+
+  for(int ii=0; ii<8; ii++){
+    printf("par[%d]=%e;\n", ii, ff->GetParameter(ii));
+  }
+
+  TFile *fout=new TFile("fastfit.root","recreate");
+  hh->Write();
+  ff->Write();
+  fout->Save();
+  fout->Close();
+
+  delete fout;
+  delete ff;
+}
 
 Double_t AliTRDdEdxBaseUtils::Q0MeanTRDpp(const Double_t bg)
 {
@@ -551,19 +611,20 @@ Double_t AliTRDdEdxBaseUtils::Q0MeanTRDpp(const Double_t bg)
   //
  
   Double_t par[8];
-  //03132012161150
-  //opt: ppQ0
-par[0]=   2.397001e-01;
-par[1]=   1.334697e+00;
-par[2]=   6.967470e+00;
-par[3]=   9.055289e-02;
-par[4]=   9.388760e+00;
-par[5]=   9.452742e-04;
-par[6]=  -1.866091e+00;
-par[7]=   1.403545e+00;
-
-  ///u/xlu/.task/CommondEdx/myAnaData/Optimum/check11/Merged/LHC10e_plot/Separation/see2.log:hhtype2Q0b2c2 scale        0.428543 at ltbg        0.650000
-  return   0.428543*MeandEdxTR(&bg, par);
+  Double_t scale = 1;
+  
+  //2012-0605 /u/xlu/.task/CommondEdx/myAnaData/newTune_r56595/inuse/plot/fastFit
+  scale = 0.9257;
+par[0]=8.316476e-01;
+par[1]=1.600907e+00;
+par[2]=7.728447e+00;
+par[3]=6.235622e-02;
+par[4]=1.136209e+01;
+par[5]=-1.495764e-06;
+par[6]=-2.536119e+00;
+par[7]=3.416031e+00;
+
+  return   scale*MeandEdxTR(&bg, par);
 }
 
 Double_t AliTRDdEdxBaseUtils::Q0MeanTRDPbPb(const Double_t bg)
index b4aab1f7a81dee4408fd20f0ea5599f7a954a877..ad18afbac2e834da762fdb8a89e8a5e1e314e693 100644 (file)
@@ -69,7 +69,9 @@ class AliTRDdEdxBaseUtils
   static Int_t GetNtracklet(const AliESDEvent *esd);
   static AliTRDtrackV1 * GetTRDtrackV1(const AliESDtrack * esdtrack);
   static Bool_t IsInSameStack(const AliTRDtrackV1 *trdtrack);
-  static Bool_t GetFirstSectorStackMomentum(const AliTRDtrackV1 *trdtrack, Int_t & isec, Int_t & istk, Double_t & mom);
+  static AliTRDseedV1 * GetLastTracklet(const AliTRDtrackV1 *trdtrack);
+  static AliTRDseedV1 * GetFirstSectorStackMomentum(const AliTRDtrackV1 *trdtrack, Int_t & isec, Int_t & istk, Double_t & mom);
+  static Double_t GetDeltaPhi(const AliTRDseedV1 *tracklet);
 
   //===================================================================================
   //                                 Detector, Data and Control Constant
@@ -106,7 +108,8 @@ class AliTRDdEdxBaseUtils
   //===================================================================================
   //                                 dEdx Parameterization
   //===================================================================================
-  
+  static void FastFitdEdxTR(TH1 * hh);
+
   static Double_t MeandEdx(const Double_t * xx, const Double_t * par);
   static Double_t MeanTR(const Double_t * xx, const Double_t * par);
   static Double_t MeandEdxTR(const Double_t * xx, const Double_t * par);
index d73325328dd89343226e03787de9e6fcdaaf7d0f..7ae1169a619de56858754e2cca7df41ac6d906ec 100644 (file)
@@ -140,7 +140,7 @@ Bool_t AliTRDdEdxCalibUtils::GenerateOCDB(const Int_t run, const TString path)
   metaData->SetObjectClassName("TObjArray");
   metaData->SetResponsible("Raphaelle Bailhache and Xianguo Lu");
 
-  AliCDBId id1("TRD/Calib/PHQ", 0, run<0 ? 999999999 : run);
+  AliCDBId id1("TRD/Calib/PHQ", run<0? 0 : run , run<0 ? 999999999 : run);
   AliCDBStorage * gStorage = AliCDBManager::Instance()->GetStorage(path);
   gStorage->Put(arr8, id1, metaData);
 
index fe0fbd86420749ba158c8ee752ddc0686487cf93..94e198fced78fe115a7eb424a3620da815824bb4 100644 (file)
@@ -61,8 +61,9 @@ class AliTRDdEdxReconUtils
   static Int_t GetArrayClusterQ(const Bool_t kinvq, TVectorD *arrayQ, TVectorD *arrayX, const AliTRDtrackV1 *trdtrack, Int_t timeBin0=-1, Int_t timeBin1=1000, Int_t tstep=1);
   static Int_t UpdateArrayX(const Int_t ncls, TVectorD* arrayX);
 
- private:
   static Double_t GetAngularCorrection(const AliTRDseedV1 *seed);
+
+ private:
   static Double_t GetPadGain(const Int_t det, const Int_t icol, const Int_t irow);
   static Double_t GetRNDClusterQ(AliTRDcluster *cl);
   static Double_t GetClusterQ(const Bool_t kinvq, const AliTRDseedV1 * seed, const Int_t itb);