]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCcalibTime.cxx
added a more recent TOF front-end electronics configuration file
[u/mrichter/AliRoot.git] / TPC / AliTPCcalibTime.cxx
index 3e65acdb841d74d01a653e1811ebe6be7095c733..d7e1575aa477f3472c2fa6addcceaaa40fcd5b36 100644 (file)
@@ -34,7 +34,7 @@ chain->Draw("GetTimeStamp()")
 b) analyse calibration object on Proof in calibration train 
 
 AliTPCcalibTime *calibTime = new AliTPCcalibTime("cosmicTime","cosmicTime", StartTimeStamp, EndTimeStamp, IntegrationTimeVdrift, IntegrationTimeDeDx);
-
+s
 c) plot results
 
 TFile f("CalibObjects.root");
@@ -79,7 +79,7 @@ cal->GetHistVdrift()->Projection(1,0)->Draw()
 #include "AliAnalysisManager.h"
 
 #include "AliTracker.h"
-#include "AliMagFMaps.h"
+#include "AliMagF.h"
 #include "AliTPCCalROC.h"
 
 #include "AliLog.h"
@@ -91,6 +91,8 @@ cal->GetHistVdrift()->Projection(1,0)->Draw()
 #include "TTimeStamp.h"
 #include "AliTPCcalibDB.h"
 #include "AliTPCcalibLaser.h"
+#include "AliDCSSensorArray.h"
+#include "AliDCSSensor.h"
 
 ClassImp(AliTPCcalibTime)
 
@@ -210,6 +212,14 @@ void AliTPCcalibTime::Process(AliESDEvent *event) {
       Double_t ptrelative1   = AliTPCcalibDB::GetPTRelative(tstamp,fRun,1);
       Double_t temp0         = AliTPCcalibDB::GetTemperature(tstamp,fRun,0);
       Double_t temp1         = AliTPCcalibDB::GetTemperature(tstamp,fRun,1);
+      TVectorD vecGoofie(20);
+      AliDCSSensorArray* goofieArray = AliTPCcalibDB::Instance()->GetGoofieSensors(fRun);
+      if (goofieArray) 
+       for (Int_t isensor=0; isensor<goofieArray->NumSensors();isensor++){
+         AliDCSSensor *gsensor = goofieArray->GetSensor(isensor);
+         if (gsensor) vecGoofie[isensor]=gsensor->GetValue(tstamp);
+       }
+
       TVectorD vdriftA, vdriftC,vdriftAC;
       if (fLaser && fTrigger==16) {
        if (fLaser->fFitAside)  vdriftA=*(fLaser->fFitAside);
@@ -229,6 +239,7 @@ void AliTPCcalibTime::Process(AliESDEvent *event) {
        "pt1="<<ptrelative1<<
        "temp0="<<temp0<<
        "temp1="<<temp1<<
+       "vecGoofie.=<<"<<&vecGoofie<<
        //
        // accumulated values
        //
@@ -341,12 +352,12 @@ void AliTPCcalibTime::ProcessCosmic(AliESDEvent *event) {
        if (! seed0) continue;
        if (! seed1) continue;
        Float_t dir = (d1[0]*d2[0] + d1[1]*d2[1] + d1[2]*d2[2]);
-       Float_t d0  = track0->GetLinearD(0,0);
-       Float_t d1  = track1->GetLinearD(0,0);
+       Float_t dist0  = track0->GetLinearD(0,0);
+       Float_t dist1  = track1->GetLinearD(0,0);
        //
        // conservative cuts - convergence to be guarantied
        // applying before track propagation
-       if (TMath::Abs(d0+d1)>fCutMaxD) continue;   // distance to the 0,0
+       if (TMath::Abs(dist0+dist1)>fCutMaxD) continue;   // distance to the 0,0
        if (dir>fCutMinDir) continue;               // direction vector product
        Float_t bz = AliTracker::GetBz();
        Float_t dvertex0[2];   //distance to 0,0
@@ -358,7 +369,7 @@ void AliTPCcalibTime::ProcessCosmic(AliESDEvent *event) {
        //
        //
        //
-       Float_t dmax = TMath::Max(TMath::Abs(d0),TMath::Abs(d1));
+       Float_t dmax = TMath::Max(TMath::Abs(dist0),TMath::Abs(dist1));
        AliExternalTrackParam param0(*track0);
        AliExternalTrackParam param1(*track1);
        //
@@ -475,3 +486,86 @@ Bool_t  AliTPCcalibTime::IsPair(AliExternalTrackParam *tr0, AliExternalTrackPara
   //
   return kTRUE;  
 }
+
+
+
+/*
+  gSystem->AddIncludePath("-I$ALICE_ROOT/TPC/macros");
+    gROOT->LoadMacro("$ALICE_ROOT/TPC/macros/AliXRDPROOFtoolkit.cxx+")
+    AliXRDPROOFtoolkit tool;
+    TChain * chainTime = tool.MakeChain("time.txt","timeInfo",0,10200);
+    chainTime->Lookup();
+
+TCut dzc("abs(fDz-500*(1-pt1))<4")
+chainTime->SetMarkerSize(0.2);
+chainTime->SetMarkerStyle(24);
+
+
+chainTime->SetMarkerColor(2);
+chainTime->Draw("fDz:time","trigger==4"+dzc);
+chainTime->SetMarkerColor(1);
+chainTime->Draw("fDz:time","trigger==8"+dzc,"same");
+htemp->SetXTitle("time")
+htemp->SetYTitle("#Delta_{z}(cm)")
+gPad->SaveAs("~/Calibration/driftV/pic/cosmicdzraw_time.gif");
+
+
+chainTime->SetMarkerColor(2);
+chainTime->Draw("fDz:500*(1-pt1)","trigger==4"+dzc);
+chainTime->SetMarkerColor(1);
+chainTime->Draw("fDz:500*(1-pt1)","trigger==8"+dzc,"same");
+htemp->SetXTitle("2L#frac{#Delta_{P/T}}{P/T}")
+htemp->SetYTitle("#Delta_{z}(cm)")
+gPad->SaveAs("~/Calibration/driftV/pic/cosmicdzraw_PT1.gif");
+
+
+
+
+chainTime->SetLineColor(2);
+chainTime->Draw("fDz-500*0.965*(1-pt1)","trigger==4"+dzc);
+chainTime->SetLineColor(1);
+chainTime->Draw("fDz-500*0.965*(1-pt1)","trigger==8"+dzc,"same");
+htemp->SetXTitle("#Delta_{z}(cm)")
+htemp->SetYTitle("")
+gPad->SaveAs("~/Calibration/driftV/pic/cosmicdzcorr_1D.gif");
+
+
+chainTime->SetMarkerColor(2);
+chainTime->Draw("fDz-500*0.965*(1-pt1):time","trigger==4"+dzc);
+chainTime->SetMarkerColor(1);
+chainTime->Draw("fDz-500*0.965*(1-pt1):time","trigger==8"+dzc,"same");
+htemp->SetXTitle("time")
+htemp->SetYTitle("#Delta_{z}(cm)")
+gPad->SaveAs("~/Calibration/driftV/pic/cosmicdzcorr_time.gif");
+
+
+
+gSystem->Load("libSTAT.so");
+TStatToolkit toolkit;
+Double_t chi2=0;
+Int_t    npoints=0;
+TVectorD fitParam;
+TMatrixD covMatrix;
+
+
+chainTime->SetAlias("dpr","(1-press0/970)");
+chainTime->SetAlias("dtr","(1-(temp0+273.15)/293.)");
+chainTime->SetAlias("d1pt","(1-(temp0+273.15)/293.)");
+chainTime->SetAlias("dptr","(press0/(273.15+temp0))/(970./293.15)");
+
+
+chainTime->SetAlias("dvr","fDz");
+TString *strvd = toolkit.FitPlane(chainTime,"fDz","dpr*500++dtr*500", "trigger==4"+dzc, chi2,npoints,fitParam,covMatrix,0.99);
+strvd.Tokenize("++")->Print();
+chainTime->SetAlias("vdcorr",strvd->Data());
+
+TString *strvdpt1 = toolkit.FitPlane(chainTime,"fDz","(1-dptr)*500", "trigger==4"+dzc, chi2,npoints,fitParam,covMatrix,0.99);
+strvdpt1.Tokenize("++")->Print();
+chainTime->SetAlias("vdcorrpt1",strvdpt1->Data());
+
+
+TString *strdedx = toolkit.FitPlane(chainTime,"1-fdEdx/27","(1-dptr)", "trigger==4&&run<62000"+dzc, chi2,npoints,fitParam,covMatrix,0.99);
+strdedx.Tokenize("++")->Print();
+chainTime->SetAlias("vdcorrpt1",strvdpt1->Data());
+
+*/