X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TPC%2FAliTPCCalibViewer.cxx;h=cb6972c02d1ac2e9baae65ad3bd907e772f284cd;hb=e38e145f80e2000b4ed5276f1a1e7526ffcd9138;hp=13e5dfd4a6a92ae420e0944163eeec461d371f14;hpb=2811495d64fa9dfc186c4b389e32b2317f10498f;p=u%2Fmrichter%2FAliRoot.git diff --git a/TPC/AliTPCCalibViewer.cxx b/TPC/AliTPCCalibViewer.cxx index 13e5dfd4a6a..cb6972c02d1 100644 --- a/TPC/AliTPCCalibViewer.cxx +++ b/TPC/AliTPCCalibViewer.cxx @@ -70,6 +70,7 @@ // #include "AliTPCCalibViewer.h" +using std::ifstream; ClassImp(AliTPCCalibViewer) @@ -160,6 +161,8 @@ AliTPCCalibViewer & AliTPCCalibViewer::operator =(const AliTPCCalibViewer & para // assignment operator - dummy // not yet working!!! // + if (this == ¶m) return (*this); + fTree = param.fTree; fTreeMustBeDeleted = param.fTreeMustBeDeleted; //fFile = new TFile(*(param.fFile)); @@ -194,20 +197,18 @@ AliTPCCalibViewer::~AliTPCCalibViewer() } //_____________________________________________________________________________ -void AliTPCCalibViewer::Delete(Option_t* option) { +void AliTPCCalibViewer::Delete(Option_t* /*option*/) { // // Should be called from AliTPCCalibViewerGUI class only. // If you use Delete() do not call the destructor. // All objects (except those contained in fListOfObjectsToBeDeleted) will be deleted, the file will be closed. // - option = option; // to avoid warnings on compiling if (fTree && fTreeMustBeDeleted) { fTree->SetCacheSize(0); fTree->Delete(); } - if (fFile) - delete fFile; + delete fFile; delete fListOfObjectsToBeDeleted; } @@ -305,8 +306,10 @@ const char* AliTPCCalibViewer::AddAbbreviations(const Char_t *c, Bool_t printDra str.ReplaceAll(removeString, ""); if (printDrawCommand) std::cout << "The string looks now like: " << str.Data() << std::endl; - delete varSort; - delete normSort; + delete [] varLengths; + delete [] normLengths; + delete [] varSort; + delete [] normSort; return str.Data(); } @@ -418,9 +421,7 @@ Int_t AliTPCCalibViewer::EasyDraw(const char* drawCommand, Int_t sector, const c // writeDrawCommand: write the command, that is passed to TTree::Draw // if (sector >= 0 && sector < 72) { - char sectorChr[3]; - sprintf(sectorChr, "%i", sector); - return EasyDraw(drawCommand, sectorChr, cuts, drawOptions, writeDrawCommand); + return EasyDraw(drawCommand, Form("%i", sector), cuts, drawOptions, writeDrawCommand); } Error("EasyDraw","The TPC contains only sectors between 0 and 71."); return -1; @@ -501,9 +502,7 @@ Int_t AliTPCCalibViewer::EasyDraw1D(const char* drawCommand, Int_t sector, const // if (sector >= 0 && sector < 72) { - char sectorChr[3]; - sprintf(sectorChr, "%i", sector); - return EasyDraw1D(drawCommand, sectorChr, cuts, drawOptions, writeDrawCommand); + return EasyDraw1D(drawCommand, Form("%i",sector), cuts, drawOptions, writeDrawCommand); } Error("EasyDraw","The TPC contains only sectors between 0 and 71."); return -1; @@ -551,9 +550,7 @@ Int_t AliTPCCalibViewer::DrawHisto1D(const char* drawCommand, Int_t sector, con // "plotMean", "plotMedian" and "plotLTM": what kind of lines do you want to see? // if (sector >= 0 && sector < 72) { - char sectorChr[3]; - sprintf(sectorChr, "%i", sector); - return DrawHisto1D(drawCommand, sectorChr, cuts, sigmas, plotMean, plotMedian, plotLTM); + return DrawHisto1D(drawCommand, Form("%i", sector), cuts, sigmas, plotMean, plotMedian, plotLTM); } Error("DrawHisto1D","The TPC contains only sectors between 0 and 71."); return -1; @@ -579,7 +576,8 @@ Int_t AliTPCCalibViewer::DrawHisto1D(const char* drawCommand, const char* secto Double_t sig = (str.IsFloat()) ? str.Atof() : 0; nsigma[i] = sig; } - + delete sigmasTokens; + TString drawStr(drawCommand); Bool_t dangerousToDraw = drawStr.Contains(":") || drawStr.Contains(">>"); if (dangerousToDraw) { @@ -597,9 +595,7 @@ Int_t AliTPCCalibViewer::DrawHisto1D(const char* drawCommand, const char* secto Double_t sigma = TMath::RMS(entries, values); Double_t maxY = htemp->GetMaximum(); - char c[500]; TLegend * legend = new TLegend(.7,.7, .99, .99, "Statistical information"); -// sprintf(c, "%s, sector: %i", type, sector); //fListOfObjectsToBeDeleted->Add(legend); if (plotMean) { @@ -610,8 +606,7 @@ Int_t AliTPCCalibViewer::DrawHisto1D(const char* drawCommand, const char* secto line->SetLineWidth(2); line->SetLineStyle(1); line->Draw(); - sprintf(c, "Mean: %f", mean); - legend->AddEntry(line, c, "l"); + legend->AddEntry(line, Form("Mean: %f", mean), "l"); // draw sigma lines for (Int_t i = 0; i < nsigma.GetNoElements(); i++) { TLine* linePlusSigma = new TLine(mean + nsigma[i] * sigma, 0, mean + nsigma[i] * sigma, maxY); @@ -624,8 +619,7 @@ Int_t AliTPCCalibViewer::DrawHisto1D(const char* drawCommand, const char* secto lineMinusSigma->SetLineColor(kRed); lineMinusSigma->SetLineStyle(2 + i); lineMinusSigma->Draw(); - sprintf(c, "%i #sigma = %f",(Int_t)(nsigma[i]), (Float_t)(nsigma[i] * sigma)); - legend->AddEntry(lineMinusSigma, c, "l"); + legend->AddEntry(lineMinusSigma, Form("%i #sigma = %f",(Int_t)(nsigma[i]), (Float_t)(nsigma[i] * sigma)), "l"); } } if (plotMedian) { @@ -636,8 +630,7 @@ Int_t AliTPCCalibViewer::DrawHisto1D(const char* drawCommand, const char* secto line->SetLineWidth(2); line->SetLineStyle(1); line->Draw(); - sprintf(c, "Median: %f", median); - legend->AddEntry(line, c, "l"); + legend->AddEntry(line, Form("Median: %f", median), "l"); // draw sigma lines for (Int_t i = 0; i < nsigma.GetNoElements(); i++) { TLine* linePlusSigma = new TLine(median + nsigma[i] * sigma, 0, median + nsigma[i]*sigma, maxY); @@ -650,8 +643,7 @@ Int_t AliTPCCalibViewer::DrawHisto1D(const char* drawCommand, const char* secto lineMinusSigma->SetLineColor(kBlue); lineMinusSigma->SetLineStyle(2 + i); lineMinusSigma->Draw(); - sprintf(c, "%i #sigma = %f",(Int_t)(nsigma[i]), (Float_t)(nsigma[i] * sigma)); - legend->AddEntry(lineMinusSigma, c, "l"); + legend->AddEntry(lineMinusSigma, Form("%i #sigma = %f",(Int_t)(nsigma[i]), (Float_t)(nsigma[i] * sigma)), "l"); } } if (plotLTM) { @@ -664,8 +656,7 @@ Int_t AliTPCCalibViewer::DrawHisto1D(const char* drawCommand, const char* secto line->SetLineWidth(2); line->SetLineStyle(1); line->Draw(); - sprintf(c, "LTM: %f", ltm); - legend->AddEntry(line, c, "l"); + legend->AddEntry(line, Form("LTM: %f", ltm), "l"); // draw sigma lines for (Int_t i = 0; i < nsigma.GetNoElements(); i++) { TLine* linePlusSigma = new TLine(ltm + nsigma[i] * ltmRms, 0, ltm + nsigma[i] * ltmRms, maxY); @@ -679,8 +670,7 @@ Int_t AliTPCCalibViewer::DrawHisto1D(const char* drawCommand, const char* secto lineMinusSigma->SetLineColor(kGreen+2); lineMinusSigma->SetLineStyle(2+i); lineMinusSigma->Draw(); - sprintf(c, "%i #sigma = %f", (Int_t)(nsigma[i]), (Float_t)(nsigma[i] * ltmRms)); - legend->AddEntry(lineMinusSigma, c, "l"); + legend->AddEntry(lineMinusSigma, Form("%i #sigma = %f", (Int_t)(nsigma[i]), (Float_t)(nsigma[i] * ltmRms)), "l"); } } if (!plotMean && !plotMedian && !plotLTM) return -1; @@ -699,7 +689,7 @@ Int_t AliTPCCalibViewer::SigmaCut(const char* drawCommand, Int_t sector, const c // sigmaMax: up to which sigma around the mean/median/LTM the histogram is generated (in units of sigma, Begin_Latex t #sigma End_Latex) // sigmaStep: the binsize of the generated histogram // Begin_Latex - // f(x, #mu, #sigma) #Rightarrow S(t, #mu, #sigma) = #frac{#int_{#mu}^{#mu + t #sigma} f(x, #mu, #sigma) dx + #int_{#mu}^{#mu - t #sigma} f(x, #mu, #sigma) dx }{ #int_{-#infty}^{+#infty} f(x, #mu, #sigma) dx } + // f(x, #mu, #sigma) #Rightarrow S(t, #mu, #sigma) = (#int_{#mu}^{#mu + t #sigma} f(x, #mu, #sigma) dx + #int_{#mu}^{#mu - t #sigma} f(x, #mu, #sigma) dx) / (#int_{-#infty}^{+#infty} f(x, #mu, #sigma) dx) // End_Latex // // @@ -711,9 +701,7 @@ Int_t AliTPCCalibViewer::SigmaCut(const char* drawCommand, Int_t sector, const c // plotMean/plotMedian/plotLTM: specifies where to put the center // if (sector >= 0 && sector < 72) { - char sectorChr[3]; - sprintf(sectorChr, "%i", sector); - return SigmaCut(drawCommand, sectorChr, cuts, sigmaMax, plotMean, plotMedian, plotLTM, pm, sigmas, sigmaStep); + return SigmaCut(drawCommand, Form("%i", sector), cuts, sigmaMax, plotMean, plotMedian, plotLTM, pm, sigmas, sigmaStep); } Error("SigmaCut","The TPC contains only sectors between 0 and 71."); return -1; @@ -762,7 +750,8 @@ Int_t AliTPCCalibViewer::SigmaCut(const char* drawCommand, const char* sector, c Double_t sig = (str.IsFloat()) ? str.Atof() : 0; nsigma[i] = sig; } - + delete sigmasTokens; + if (plotMean) { cutHistoMean = AliTPCCalibViewer::SigmaCut(htemp, mean, sigma, sigmaMax, sigmaStep, pm); if (cutHistoMean) { @@ -807,7 +796,7 @@ Int_t AliTPCCalibViewer::SigmaCut(const char* drawCommand, const char* sector, c } -Int_t AliTPCCalibViewer::SigmaCutNew(const char* drawCommand, const char* sector, const char* cuts, Float_t sigmaMax, Bool_t plotMean, Bool_t plotMedian, Bool_t plotLTM, Bool_t pm, const char *sigmas, Float_t sigmaStep) const { +Int_t AliTPCCalibViewer::SigmaCutNew(const char* drawCommand, const char* sector, const char* cuts, Float_t /*sigmaMax*/, Bool_t plotMean, Bool_t plotMedian, Bool_t plotLTM, Bool_t /*pm*/, const char *sigmas, Float_t /*sigmaStep*/) const { // // Creates a histogram, where you can see, how much of the data are inside sigma-intervals // around the mean/median/LTM @@ -818,10 +807,6 @@ Int_t AliTPCCalibViewer::SigmaCutNew(const char* drawCommand, const char* sector // // Double_t ltmFraction = 0.8; //unused - // avoid compiler warnings: - sigmaMax = sigmaMax; - pm = pm; - sigmaStep = sigmaStep; TString drawStr(drawCommand); drawStr += " >> tempHist"; @@ -852,6 +837,7 @@ Int_t AliTPCCalibViewer::SigmaCutNew(const char* drawCommand, const char* sector Double_t sig = (str.IsFloat()) ? str.Atof() : 0; nsigma[i] = sig; } + delete sigmasTokens; if (plotMean) { for (Int_t i = 0; i < entries; i++) { @@ -868,6 +854,9 @@ Int_t AliTPCCalibViewer::SigmaCutNew(const char* drawCommand, const char* sector DrawLines(cutGraphMean, nsigma, legend, kRed, kTRUE); } } + delete [] index; + delete [] xarray; + delete [] yarray; /* if (plotMedian) { cutHistoMedian = AliTPCCalibViewer::SigmaCut(htemp, median, sigma, sigmaMax, sigmaStep, pm); @@ -910,13 +899,11 @@ Int_t AliTPCCalibViewer::Integrate(const char* drawCommand, Int_t sector, // "sigmaStep": the binsize of the generated histogram, -1 means, that the maximal reasonable stepsize is used // The actual work is done on the array. /* Begin_Latex - f(x, #mu, #sigma) #Rightarrow S(t, #mu, #sigma) = #frac{#int_{-#infty}^{#mu + t #sigma} f(x, #mu, #sigma) dx}{ #int_{-#infty}^{+#infty} f(x, #mu, #sigma) dx } + f(x, #mu, #sigma) #Rightarrow S(t, #mu, #sigma) = #int_{-#infty}^{#mu + t #sigma} f(x, #mu, #sigma) dx / #int_{-#infty}^{+#infty} f(x, #mu, #sigma) dx End_Latex */ if (sector >= 0 && sector < 72) { - char sectorChr[3]; - sprintf(sectorChr, "%i", sector); - return Integrate(drawCommand, sectorChr, cuts, sigmaMax, plotMean, plotMedian, plotLTM, sigmas, sigmaStep); + return Integrate(drawCommand, Form("%i", sector), cuts, sigmaMax, plotMean, plotMedian, plotLTM, sigmas, sigmaStep); } Error("Integrate","The TPC contains only sectors between 0 and 71."); return -1; @@ -933,7 +920,7 @@ Int_t AliTPCCalibViewer::IntegrateOld(const char* drawCommand, const char* secto // "sigmaStep": the binsize of the generated histogram, -1 means, that the maximal reasonable stepsize is used // The actual work is done on the array. /* Begin_Latex - f(x, #mu, #sigma) #Rightarrow S(t, #mu, #sigma) = #frac{#int_{-#infty}^{#mu + t #sigma} f(x, #mu, #sigma) dx}{ #int_{-#infty}^{+#infty} f(x, #mu, #sigma) dx } + f(x, #mu, #sigma) #Rightarrow S(t, #mu, #sigma) = #int_{-#infty}^{#mu + t #sigma} f(x, #mu, #sigma) dx / #int_{-#infty}^{+#infty} f(x, #mu, #sigma) dx End_Latex */ @@ -958,7 +945,8 @@ Int_t AliTPCCalibViewer::IntegrateOld(const char* drawCommand, const char* secto Double_t sig = (str.IsFloat()) ? str.Atof() : 0; nsigma[i] = sig; } - + delete sigmasTokens; + TLegend * legend = new TLegend(.7,.7, .99, .99, "Integrated histogram"); //fListOfObjectsToBeDeleted->Add(legend); TH1F *integralHistoMean = 0; @@ -1008,7 +996,7 @@ Int_t AliTPCCalibViewer::IntegrateOld(const char* drawCommand, const char* secto } -Int_t AliTPCCalibViewer::Integrate(const char* drawCommand, const char* sector, const char* cuts, Float_t sigmaMax, Bool_t plotMean, Bool_t plotMedian, Bool_t plotLTM, const char *sigmas, Float_t sigmaStep) const { +Int_t AliTPCCalibViewer::Integrate(const char* drawCommand, const char* sector, const char* cuts, Float_t /*sigmaMax*/, Bool_t plotMean, Bool_t plotMedian, Bool_t plotLTM, const char *sigmas, Float_t /*sigmaStep*/) const { // // Creates an integrated histogram Begin_Latex S(t, #mu, #sigma) End_Latex, out of the input distribution distribution Begin_Latex f(x, #mu, #sigma) End_Latex, given in "histogram" // "mean" and "sigma" are Begin_Latex #mu End_Latex and Begin_Latex #sigma End_Latex of the distribution in "histogram", to be specified by the user @@ -1017,14 +1005,11 @@ Int_t AliTPCCalibViewer::Integrate(const char* drawCommand, const char* sector, // "sigmaStep": the binsize of the generated histogram, -1 means, that the maximal reasonable stepsize is used // The actual work is done on the array. /* Begin_Latex - f(x, #mu, #sigma) #Rightarrow S(t, #mu, #sigma) = #frac{#int_{-#infty}^{#mu + t #sigma} f(x, #mu, #sigma) dx}{ #int_{-#infty}^{+#infty} f(x, #mu, #sigma) dx } + f(x, #mu, #sigma) #Rightarrow S(t, #mu, #sigma) = #int_{-#infty}^{#mu + t #sigma} f(x, #mu, #sigma) dx / #int_{-#infty}^{+#infty} f(x, #mu, #sigma) dx End_Latex */ Double_t ltmFraction = 0.8; - // avoid compiler warnings: - sigmaMax = sigmaMax; - sigmaStep = sigmaStep; TString drawStr(drawCommand); Bool_t dangerousToDraw = drawStr.Contains(":") || drawStr.Contains(">>"); @@ -1057,7 +1042,8 @@ Int_t AliTPCCalibViewer::Integrate(const char* drawCommand, const char* sector, Double_t sig = (str.IsFloat()) ? str.Atof() : 0; nsigma[i] = sig; } - + delete sigmasTokens; + TLegend * legend = new TLegend(.7,.7, .99, .99, "Integrated histogram"); //fListOfObjectsToBeDeleted->Add(legend); @@ -1110,6 +1096,10 @@ Int_t AliTPCCalibViewer::Integrate(const char* drawCommand, const char* sector, DrawLines(integralGraphLTM, nsigma, legend, kGreen+2, kTRUE); } } + delete [] index; + delete [] xarray; + delete [] yarray; + if (!plotMean && !plotMedian && !plotLTM) return -1; legend->Draw(); return entries; @@ -1123,7 +1113,6 @@ void AliTPCCalibViewer::DrawLines(TH1F *histogram, TVectorF nsigma, TLegend *leg // // start to draw the lines, loop over requested sigmas - char c[500]; for (Int_t i = 0; i < nsigma.GetNoElements(); i++) { if (!pm) { Int_t bin = histogram->GetXaxis()->FindBin(nsigma[i]); @@ -1137,8 +1126,7 @@ void AliTPCCalibViewer::DrawLines(TH1F *histogram, TVectorF nsigma, TLegend *leg lineLeft->SetLineColor(color); lineLeft->SetLineStyle(2 + i); lineLeft->Draw(); - sprintf(c, "Fraction(%f #sigma) = %f",nsigma[i], histogram->GetBinContent(bin)); - legend->AddEntry(lineLeft, c, "l"); + legend->AddEntry(lineLeft, Form("Fraction(%f #sigma) = %f",nsigma[i], histogram->GetBinContent(bin)), "l"); } else { // if (pm) Int_t bin = histogram->GetXaxis()->FindBin(nsigma[i]); @@ -1152,8 +1140,7 @@ void AliTPCCalibViewer::DrawLines(TH1F *histogram, TVectorF nsigma, TLegend *leg lineLeft1->SetLineColor(color); lineLeft1->SetLineStyle(2 + i); lineLeft1->Draw(); - sprintf(c, "Fraction(+%f #sigma) = %f",nsigma[i], histogram->GetBinContent(bin)); - legend->AddEntry(lineLeft1, c, "l"); + legend->AddEntry(lineLeft1, Form("Fraction(+%f #sigma) = %f",nsigma[i], histogram->GetBinContent(bin)), "l"); bin = histogram->GetXaxis()->FindBin(-nsigma[i]); TLine* lineUp2 = new TLine(-nsigma[i], 0, -nsigma[i], histogram->GetBinContent(bin)); //fListOfObjectsToBeDeleted->Add(lineUp2); @@ -1165,8 +1152,7 @@ void AliTPCCalibViewer::DrawLines(TH1F *histogram, TVectorF nsigma, TLegend *leg lineLeft2->SetLineColor(color); lineLeft2->SetLineStyle(2 + i); lineLeft2->Draw(); - sprintf(c, "Fraction(-%f #sigma) = %f",nsigma[i], histogram->GetBinContent(bin)); - legend->AddEntry(lineLeft2, c, "l"); + legend->AddEntry(lineLeft2, Form("Fraction(-%f #sigma) = %f",nsigma[i], histogram->GetBinContent(bin)), "l"); } } // for (Int_t i = 0; i < nsigma.GetNoElements(); i++) } @@ -1179,7 +1165,6 @@ void AliTPCCalibViewer::DrawLines(TGraph *graph, TVectorF nsigma, TLegend *legen // // start to draw the lines, loop over requested sigmas - char c[500]; for (Int_t i = 0; i < nsigma.GetNoElements(); i++) { if (!pm) { TLine* lineUp = new TLine(nsigma[i], 0, nsigma[i], graph->Eval(nsigma[i])); @@ -1192,8 +1177,7 @@ void AliTPCCalibViewer::DrawLines(TGraph *graph, TVectorF nsigma, TLegend *legen lineLeft->SetLineColor(color); lineLeft->SetLineStyle(2 + i); lineLeft->Draw(); - sprintf(c, "Fraction(%f #sigma) = %f",nsigma[i], graph->Eval(nsigma[i])); - legend->AddEntry(lineLeft, c, "l"); + legend->AddEntry(lineLeft, Form("Fraction(%f #sigma) = %f",nsigma[i], graph->Eval(nsigma[i])), "l"); } else { // if (pm) TLine* lineUp1 = new TLine(nsigma[i], 0, nsigma[i], graph->Eval(nsigma[i])); @@ -1206,8 +1190,7 @@ void AliTPCCalibViewer::DrawLines(TGraph *graph, TVectorF nsigma, TLegend *legen lineLeft1->SetLineColor(color); lineLeft1->SetLineStyle(2 + i); lineLeft1->Draw(); - sprintf(c, "Fraction(+%f #sigma) = %f",nsigma[i], graph->Eval(nsigma[i])); - legend->AddEntry(lineLeft1, c, "l"); + legend->AddEntry(lineLeft1, Form("Fraction(+%f #sigma) = %f",nsigma[i], graph->Eval(nsigma[i])), "l"); TLine* lineUp2 = new TLine(-nsigma[i], 0, -nsigma[i], graph->Eval(-nsigma[i])); //fListOfObjectsToBeDeleted->Add(lineUp2); lineUp2->SetLineColor(color); @@ -1218,8 +1201,7 @@ void AliTPCCalibViewer::DrawLines(TGraph *graph, TVectorF nsigma, TLegend *legen lineLeft2->SetLineColor(color); lineLeft2->SetLineStyle(2 + i); lineLeft2->Draw(); - sprintf(c, "Fraction(-%f #sigma) = %f",nsigma[i], graph->Eval(-nsigma[i])); - legend->AddEntry(lineLeft2, c, "l"); + legend->AddEntry(lineLeft2, Form("Fraction(-%f #sigma) = %f",nsigma[i], graph->Eval(-nsigma[i])), "l"); } } // for (Int_t i = 0; i < nsigma.GetNoElements(); i++) } @@ -1280,22 +1262,22 @@ TH1F* AliTPCCalibViewer::SigmaCut(TH1F *const histogram, Float_t mean, Float_t s // pm: Decide weather Begin_Latex t > 0 End_Latex (first case) or Begin_Latex t End_Latex arbitrary (secound case) // The actual work is done on the array. /* Begin_Latex - f(x, #mu, #sigma) #Rightarrow S(t, #mu, #sigma) = #frac{#int_{#mu}^{#mu + t #sigma} f(x, #mu, #sigma) dx + #int_{#mu}^{#mu - t #sigma} f(x, #mu, #sigma) dx }{ #int_{-#infty}^{+#infty} f(x, #mu, #sigma) dx } , for t > 0 + f(x, #mu, #sigma) #Rightarrow S(t, #mu, #sigma) = (#int_{#mu}^{#mu + t #sigma} f(x, #mu, #sigma) dx + #int_{#mu}^{#mu - t #sigma} f(x, #mu, #sigma) dx) / (#int_{-#infty}^{+#infty} f(x, #mu, #sigma) dx), for t > 0 or - f(x, #mu, #sigma) #Rightarrow S(t, #mu, #sigma) = #frac{#int_{#mu}^{#mu + t #sigma} f(x, #mu, #sigma) dx}{ #int_{-#infty}^{+#infty} f(x, #mu, #sigma) dx } + f(x, #mu, #sigma) #Rightarrow S(t, #mu, #sigma) = #int_{#mu}^{#mu + t #sigma} f(x, #mu, #sigma) dx / #int_{-#infty}^{+#infty} f(x, #mu, #sigma) dx End_Latex - begin_macro(source) + Begin_Macro(source) { Float_t mean = 0; Float_t sigma = 1.5; Float_t sigmaMax = 4; gROOT->SetStyle("Plain"); - TH1F *distribution = new TH1F("Distribution1", "Distribution f(x, #mu, #sigma)", 1000,-5,5); + TH1F *distribution = new TH1F("Distrib1", "Distribution f(x, #mu, #sigma)", 1000,-5,5); TRandom rand(23); for (Int_t i = 0; i <50000;i++) distribution->Fill(rand.Gaus(mean, sigma)); Float_t *ar = distribution->GetArray(); - TCanvas* macro_example_canvas = new TCanvas("macro_example_canvas_SigmaCut", "", 350, 350); + TCanvas* macro_example_canvas = new TCanvas("cAliTPCCalibViewer1", "", 350, 350); macro_example_canvas->Divide(0,3); TVirtualPad *pad1 = macro_example_canvas->cd(1); pad1->SetGridy(); @@ -1315,7 +1297,7 @@ TH1F* AliTPCCalibViewer::SigmaCut(TH1F *const histogram, Float_t mean, Float_t s shistPM->Draw(); return macro_example_canvas; } - end_macro + End_Macro */ Float_t *array = histogram->GetArray(); @@ -1399,20 +1381,12 @@ TH1F* AliTPCCalibViewer::SigmaCut(Int_t n, const Float_t *array, Float_t mean, F } -TH1F* AliTPCCalibViewer::SigmaCut(Int_t n, const Double_t *array, Double_t mean, Double_t sigma, Int_t nbins, const Double_t *xbins, Double_t sigmaMax){ +TH1F* AliTPCCalibViewer::SigmaCut(Int_t /*n*/, const Double_t */*array*/, Double_t /*mean*/, Double_t /*sigma*/, Int_t /*nbins*/, const Double_t */*xbins*/, Double_t /*sigmaMax*/){ // // SigmaCut for variable binsize // NOT YET IMPLEMENTED !!! // printf("SigmaCut with variable binsize, Not yet implemented\n"); - // avoid compiler warnings: - n=n; - mean=mean; - sigma=sigma; - nbins=nbins; - sigmaMax=sigmaMax; - array=array; - xbins=xbins; return 0; } @@ -1427,20 +1401,20 @@ TH1F* AliTPCCalibViewer::Integrate(TH1F *const histogram, Float_t mean, Float_t // "sigmaStep": the binsize of the generated histogram, -1 means, that the maximal reasonable stepsize is used // The actual work is done on the array. /* Begin_Latex - f(x, #mu, #sigma) #Rightarrow S(t, #mu, #sigma) = #frac{#int_{-#infty}^{#mu + t #sigma} f(x, #mu, #sigma) dx}{ #int_{-#infty}^{+#infty} f(x, #mu, #sigma) dx } + f(x, #mu, #sigma) #Rightarrow S(t, #mu, #sigma) = #int_{-#infty}^{#mu + t #sigma} f(x, #mu, #sigma) dx / #int_{-#infty}^{+#infty} f(x, #mu, #sigma) dx End_Latex - begin_macro(source) + Begin_Macro(source) { Float_t mean = 0; Float_t sigma = 1.5; Float_t sigmaMax = 4; gROOT->SetStyle("Plain"); - TH1F *distribution = new TH1F("Distribution2", "Distribution f(x, #mu, #sigma)", 1000,-5,5); + TH1F *distribution = new TH1F("Distrib2", "Distribution f(x, #mu, #sigma)", 1000,-5,5); TRandom rand(23); for (Int_t i = 0; i <50000;i++) distribution->Fill(rand.Gaus(mean, sigma)); Float_t *ar = distribution->GetArray(); - TCanvas* macro_example_canvas = new TCanvas("macro_example_canvas_Integrate", "", 350, 350); + TCanvas* macro_example_canvas = new TCanvas("cAliTPCCalibViewer2", "", 350, 350); macro_example_canvas->Divide(0,2); TVirtualPad *pad1 = macro_example_canvas->cd(1); pad1->SetGridy(); @@ -1455,7 +1429,7 @@ TH1F* AliTPCCalibViewer::Integrate(TH1F *const histogram, Float_t mean, Float_t return macro_example_canvas_Integrate; } - end_macro + End_Macro */ @@ -1782,7 +1756,10 @@ TString* AliTPCCalibViewer::Fit(const char* drawCommand, const char* formula, co fitter->ClearPoints(); Int_t entries = Draw(drawStr.Data(), cutStr.Data(), "goff"); - if (entries == -1) return new TString("An ERROR has occured during fitting!"); + if (entries == -1) { + delete formulaTokens; + return new TString("An ERROR has occured during fitting!"); + } Double_t **values = new Double_t*[dim+1] ; for (Int_t i = 0; i < dim + 1; i++){ @@ -1790,7 +1767,11 @@ TString* AliTPCCalibViewer::Fit(const char* drawCommand, const char* formula, co if (i < dim) centries = fTree->Draw(((TObjString*)formulaTokens->At(i))->GetName(), cutStr.Data(), "goff"); else centries = fTree->Draw(drawStr.Data(), cutStr.Data(), "goff"); - if (entries != centries) return new TString("An ERROR has occured during fitting!"); + if (entries != centries) { + delete [] values; + delete formulaTokens; + return new TString("An ERROR has occured during fitting!"); + } values[i] = new Double_t[entries]; memcpy(values[i], fTree->GetV1(), entries*sizeof(Double_t)); } @@ -1806,7 +1787,7 @@ TString* AliTPCCalibViewer::Fit(const char* drawCommand, const char* formula, co fitter->GetParameters(fitParam); fitter->GetCovarianceMatrix(covMatrix); chi2 = fitter->GetChisquare(); - chi2 = chi2; +// chi2 = chi2; TString *preturnFormula = new TString(Form("( %e+",fitParam[0])), &returnFormula = *preturnFormula; @@ -1817,7 +1798,10 @@ TString* AliTPCCalibViewer::Fit(const char* drawCommand, const char* formula, co returnFormula.Append(" )"); delete formulaTokens; delete fitter; - delete[] values; + for (Int_t i = 0; i < dim + 1; i++){ + delete [] values[i]; + } + delete [] values; return preturnFormula; } @@ -2384,6 +2368,7 @@ void AliTPCCalibViewer::CreateObjectList(const Char_t *filename, TObjArray *cali } delete fIn; } + delete arrFileLine; }