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");
#include "AliAnalysisManager.h"
#include "AliTracker.h"
-#include "AliMagFMaps.h"
+#include "AliMagF.h"
#include "AliTPCCalROC.h"
#include "AliLog.h"
#include "TTimeStamp.h"
#include "AliTPCcalibDB.h"
#include "AliTPCcalibLaser.h"
+#include "AliDCSSensorArray.h"
+#include "AliDCSSensor.h"
ClassImp(AliTPCcalibTime)
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);
"pt1="<<ptrelative1<<
"temp0="<<temp0<<
"temp1="<<temp1<<
+ "vecGoofie.=<<"<<&vecGoofie<<
//
// accumulated values
//
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
//
//
//
- 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);
//
//
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());
+
+*/