From b48fec5a2ed123242ee7b4541e17bf6c30d216e0 Mon Sep 17 00:00:00 2001 From: marian Date: Mon, 30 Aug 2010 12:09:44 +0000 Subject: [PATCH] First implementation of makeDeafualtPlots for calibration parameters trends (Marian) --- TPC/scripts/OCDBscan/makeDefaultPlots.C | 131 ++++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 TPC/scripts/OCDBscan/makeDefaultPlots.C diff --git a/TPC/scripts/OCDBscan/makeDefaultPlots.C b/TPC/scripts/OCDBscan/makeDefaultPlots.C new file mode 100644 index 00000000000..309017a99ab --- /dev/null +++ b/TPC/scripts/OCDBscan/makeDefaultPlots.C @@ -0,0 +1,131 @@ +/* + // .L $ALICE_ROOT/TPC/scripts/OCDBscan/makeDefaultPlots.C + Init(); + MakeAliases(); + +*/ + + + +TTree * guiTree=0; +TObjArray * picArray = new TObjArray; +TCut cutUser="run>114500"; + +void makeDefaultPlots(){ + // + // make default trend plots + // + Init(); + MakeAliases(); + MakePlotDrift(); + // + TFile f("calibTrend.root","recreate"); + picArray->Write(); + f.Close(); +} + +void Init(){ + // + // Init trees and style + // summary tree supposed to be in the given file + // + TFile *f = new TFile("calibTimeSummary.root"); + guiTree=(TTree*)f->Get("dcs"); + guiTree->SetMarkerStyle(25); + guiTree->SetMarkerSize(0.5); +} + +void MakeAliases(){ + // + // Make "reasonable" alaiase for variables + // Define te cut variables for visualization + // + // Drift velocity + guiTree->SetAlias("vitsOK","abs(dits)<3600*0.5"); + //TOF alaieases + guiTree->SetAlias("vtofOK","abs(ALIGN_TOF_TPC_DELTATHETA-ALIGN_TOF_TPC_DELTATHETA)<0.0003&&abs(ALIGN_TOF_TPC_DELTAPSI-ALIGN_TOF_TPC_DELTAPSI)<0.0003&&abs(ALIGN_TOF_TPC_DELTATHETA)<0.003&&abs(ALIGN_TOF_TPC_DELTAPSI)<0.003"); + guiTree->SetAlias("vdriftTOF","ALIGN_TOFB_TPC_DRIFTVD"); + // angular alignent within limits + // + // + // distance to measurement 1/2 hour + // Goofie + // + guiTree->SetAlias("vgoofieOK","abs(goofie.fElements[3]-2.7)<0.15&&abs(goofie.fElements[5]/goofie.fElements[6]-0.8)<0.05&&abs(goofie.fElements[2]-9.)<4&&abs(goofie.fElements[9]/goofieMedian.fElements[9]-1)<0.05&&abs(goofie.fElements[3]-goofieMean.fElements[3])<0.02"); + // Cuts: + // reasonable drift velocity - outlyer removal + // ration of the peak are near/far + // reasonable CO2 information + // Q value/median in range + // V drift value-mean in range + // + // Goofie normalization: + guiTree->Draw("goofie.fElements[14]","vgoofieOK"); // nominal pressure + Double_t goofiePNom = guiTree->GetHistogram()->GetMean(); + guiTree->Draw("goofie.fElements[15]","vgoofieOK"); // nominal pressure + Double_t goofieT1PNom = guiTree->GetHistogram()->GetMean(); + guiTree->Draw("goofie.fElements[3]","vgoofieOK"); + Double_t goofieDriftNom = guiTree->GetHistogram()->GetMean(); // nominal drift velocity + guiTree->Draw("goofie.fElements[9]","vgoofieOK"); + Double_t goofieAreaFar = guiTree->GetHistogram()->GetMean(); + guiTree->Draw("goofie.fElements[10]","vgoofieOK"); + Double_t goofieAreaNear = guiTree->GetHistogram()->GetMean(); + // + guiTree->SetAlias("goofieP",Form("goofie.fElements[14]/%f",goofiePNom)); + guiTree->SetAlias("goofieT1P",Form("goofie.fElements[15]/%f",goofieT1PNom)); + guiTree->SetAlias("goofieVd",Form("goofie.fElements[3]/%f",goofieDriftNom)); + guiTree->SetAlias("goofieAreaNear",Form("(goofie.fElements[9]/%f)",goofieAreaFar)); + guiTree->SetAlias("goofieAreaFar",Form("(goofie.fElements[10]/%f)",goofieAreaNear)); + guiTree->Draw("(goofieVd*goofieP-1)-vdriftITS","vitsOK&&vgoofieOK"); + Double_t goofieITSNorm = guiTree->GetHistogram()->GetMean(); + guiTree->SetAlias("vdriftGoofie",Form("(goofieVd*goofieP-1)-%f",goofieITSNorm)); + // + +} + +void MakePlotDrift(){ + // + // Compare drift velocity calibration + // with Goofie calibration + // + // + Int_t entries =0; + TGraph *graphITS =0; + TGraph *graphTOF =0; + TGraph *graphGoofie =0; + entries = guiTree->Draw("100*vdriftITS:time","vitsOK"+cutUser,""); + graphITS = new TGraph(entries,guiTree->GetV2(), guiTree->GetV1()); + entries = guiTree->Draw("100*vdriftTOF:time","vitsOK&&vtofOK"+cutUser,""); + graphTOF = new TGraph(entries,guiTree->GetV2(), guiTree->GetV1()); + guiTree->Draw("100*vdriftGoofie:time","vitsOK&&vgoofieOK"+cutUser,"same"); + graphGoofie = new TGraph(entries,guiTree->GetV2(), guiTree->GetV1()); + // + graphITS->SetMarkerStyle(25); + graphITS->SetMarkerSize(0.5); + graphITS->SetMarkerColor(2); + graphTOF->SetMarkerStyle(26); + graphTOF->SetMarkerSize(0.5); + graphTOF->SetMarkerColor(3); + graphGoofie->SetMarkerStyle(26); + graphGoofie->SetMarkerSize(0.5); + graphGoofie->SetMarkerColor(4); + // + TCanvas * cDrift = new TCanvas("DriftTrend","Driftt Trend",900,600); + cDrift->cd(); + graphITS->Draw("ap"); + graphITS->GetXaxis()->SetTimeDisplay(1); + graphITS->GetYaxis()->SetTitle("v_{dcorr} (%)"); + graphGoofie->Draw("p"); + graphTOF->Draw("p"); + TLegend *legend = new TLegend(0.7,0.7,1,1, "Drift velocity correction"); + legend->AddEntry(graphITS,"TPC-ITS"); + legend->AddEntry(graphTOF,"TPC-TOF"); + legend->AddEntry(graphGoofie,"Goofie"); + legend->Draw(); + // Add picture to the array + // + picArray->AddLast(cDrift->Clone()); + // + // + +} -- 2.43.0