]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCCalibViewerGUI.cxx
cosmetics
[u/mrichter/AliRoot.git] / TPC / AliTPCCalibViewerGUI.cxx
index 4a87107b3e228a17455c06b44c1c32c2fdf47628..837f83428c6e92d5112e5a669209369d023f9eaf 100644 (file)
@@ -32,6 +32,7 @@
 
 
 #include "AliTPCCalibViewerGUI.h"
+#include "AliTPCCalPad.h"
 #include <iostream>
 
 #include <TCanvas.h>
@@ -39,6 +40,7 @@
 #include <TVirtualPad.h>
 
 #include <TROOT.h>
+#include <TMath.h>
 #include <TObjArray.h>
 #include <TObjString.h>
 #include <TVector.h>
@@ -212,7 +214,7 @@ AliTPCCalibViewerGUI::AliTPCCalibViewerGUI(const TGWindow *p, UInt_t w, UInt_t h
 }
 
 
-void AliTPCCalibViewerGUI::DrawGUI(const TGWindow *p, UInt_t w, UInt_t h) {
+void AliTPCCalibViewerGUI::DrawGUI(const TGWindow */*p*/, UInt_t w, UInt_t h) {
    // 
    // draw the GUI
    // 
@@ -221,7 +223,6 @@ void AliTPCCalibViewerGUI::DrawGUI(const TGWindow *p, UInt_t w, UInt_t h) {
    // ======================================================================
    
    SetCleanup(kDeepCleanup);
-   p = p; // to avoid compiler warnings
 
    // *****************************************************************************
    // ************************* content of this MainFrame *************************
@@ -1223,7 +1224,7 @@ void AliTPCCalibViewerGUI::CloseWindow() {
 */
 
 
-void AliTPCCalibViewerGUI::Initialize(char* fileName, char* treeName) {
+void AliTPCCalibViewerGUI::Initialize(const char* fileName, const char* treeName) {
    // 
    // initialize the GUI with a calibrationTree from fileName
    // 
@@ -1264,22 +1265,33 @@ void AliTPCCalibViewerGUI::Initialize(AliTPCCalibViewer *viewer) {
       if (fInitialized && currentStr->GetString() == selectedVariable) variableId = id;
       id++;
    }
-   delete iter;
-   arr->Delete();
-   delete arr;
 
    // fill fListNorm, list of normalization variables:
-   arr = fViewer->GetListOfNormalizationVariables();
-   iter = arr->MakeIterator();
-   iter->Reset();
+   TObjArray *arrNorm = fViewer->GetListOfNormalizationVariables();
+   TIterator *iterNorm = arrNorm->MakeIterator();
+   iterNorm->Reset();
    currentStr = 0;
    id = 0;
    fListNormalization->RemoveAll();
+   while ((currentStr = (TObjString*)(iterNorm->Next()))) {
+      fListNormalization->AddEntry(currentStr->GetString().Data(), id);
+      if (fInitialized && currentStr->GetString() == selectedNormalization) normalizationId = id;
+      id++;
+   }
+   currentStr = 0;
+   iter->Reset();
+   //Add draw variables to the list of normalisation
    while ((currentStr = (TObjString*)(iter->Next()))) {
+      if (currentStr->GetString().BeginsWith("Map")) continue; //don't add mapping information
       fListNormalization->AddEntry(currentStr->GetString().Data(), id);
       if (fInitialized && currentStr->GetString() == selectedNormalization) normalizationId = id;
       id++;
    }
+
+   delete iterNorm;
+   arrNorm->Delete();
+   delete arrNorm;
+
    delete iter;
    arr->Delete();
    delete arr;
@@ -1301,6 +1313,15 @@ void AliTPCCalibViewerGUI::Initialize(AliTPCCalibViewer *viewer) {
 
 }
 
+void AliTPCCalibViewerGUI::Reset(){
+  //
+  // reset variables, delete calib viewer
+  //
+  if (fViewer) delete fViewer;
+  fListVariables->RemoveAll();
+  fListNormalization->RemoveAll();
+  fInitialized = kFALSE;
+}
 
 void AliTPCCalibViewerGUI::HandleButtonsGeneral(Int_t id) {
    //
@@ -1508,6 +1529,33 @@ void AliTPCCalibViewerGUI::HandleButtonsNoRedraw(Int_t id) {
    SetMinMaxLabel();
 }
 
+void AliTPCCalibViewerGUI::ReplacePlaceHolders(TString &str)
+{
+    //
+    // replace the defined placeholders in the custom draw string and cut string
+    //
+    TString drawPlaceHolder("#draw#");
+    TString normPlaceHolder("#norm#");
+
+    //current draw variable
+    TString desiredData("");
+    if (fListVariables->GetSelectedEntry()){
+      desiredData += ((TGTextLBEntry*)(fListVariables->GetSelectedEntry()))->GetTitle();
+      str.ReplaceAll(drawPlaceHolder,desiredData);
+    }
+//    desiredData += fViewer->GetAbbreviation();
+
+    //current normalisation
+    TString normalizationData("");
+    if (fListNormalization->GetSelectedEntry()){
+      normalizationData += ((TGTextLBEntry*)(fListNormalization->GetSelectedEntry()))->GetTitle();
+      if (! (TString(((TGTextLBEntry*)(fListNormalization->GetSelectedEntry()))->GetTitle())).BeginsWith("Fit"))
+        if ( normalizationData.BeginsWith("_") ) normalizationData = desiredData+normalizationData;
+      if ( fListVariables->FindEntry(normalizationData.Data()) )
+        normalizationData+="~";
+      str.ReplaceAll(normPlaceHolder,normalizationData);
+    }
+}
 
 void AliTPCCalibViewerGUI::DoNewSelection() {
    //
@@ -1585,12 +1633,15 @@ TString* AliTPCCalibViewerGUI::GetDrawString() {
 
       desiredData += op;
       if (! (TString(((TGTextLBEntry*)(fListNormalization->GetSelectedEntry()))->GetTitle())).BeginsWith("Fit"))
-         desiredData += ((TGTextLBEntry*)(fListVariables->GetSelectedEntry()))->GetTitle();
+         if ( normalizationData.BeginsWith("_") ) desiredData += ((TGTextLBEntry*)(fListVariables->GetSelectedEntry()))->GetTitle();
+      if ( fListVariables->FindEntry(normalizationData.Data()) )
+          normalizationData+="~";
       desiredData += normalizationData;
    }
    else if (fRadioCustom->GetState() == kButtonDown) {
       desiredData = fComboCustom->GetTextEntry()->GetText();
       if (desiredData == "") return 0;
+      ReplacePlaceHolders(desiredData);
    }
    
    // try to add forgotten '~'
@@ -1643,8 +1694,11 @@ TString* AliTPCCalibViewerGUI::GetSectorString() {
       cutsStr += "!=0";
       if (fChkAddCuts->GetState() == kButtonDown) cutsStr += " && ";
    }
-   if (fChkAddCuts->GetState() == kButtonDown)
-      cutsStr += fComboAddCuts->GetTextEntry()->GetText();
+   if (fChkAddCuts->GetState() == kButtonDown){
+       cutsStr += fComboAddCuts->GetTextEntry()->GetText();
+       ReplacePlaceHolders(cutsStr);
+   }
+
    
    // try to add forgotten '~'
    if (fChkAutoAppend->GetState() == kButtonDown) 
@@ -1722,7 +1776,6 @@ void AliTPCCalibViewerGUI::DoFit() {
    TMatrixD covMatrix(0,0);
    TString cutStr("");
    TString formulaStr("");
-   TString *returnStr = new TString("");
 
    // specify data to plot:
    TString drawStr(GetDrawString()->Data());
@@ -1758,12 +1811,16 @@ void AliTPCCalibViewerGUI::DoFit() {
       formulaStr = TString(fViewer->AddAbbreviations((char*)formulaStr.Data()));
 
    // ********** call AliTPCCalibViewer's fit-function
-   returnStr = fViewer->Fit(drawStr.Data(), formulaStr.Data(), cutStr.Data(), chi2, fitParam, covMatrix);
+  ReplacePlaceHolders(drawStr);
+  ReplacePlaceHolders(cutStr);
+  TString *returnStr = fViewer->Fit(drawStr.Data(), formulaStr.Data(), cutStr.Data(), chi2, fitParam, covMatrix);
    
    std::cout << std::endl;
    std::cout << "Your fit formula reads as follows:" << std::endl;
    std::cout << returnStr->Data() << std::endl;
    std::cout << "chi2 = " << chi2 << std::endl;
+
+  delete returnStr;
 }
 
 
@@ -1784,7 +1841,7 @@ void AliTPCCalibViewerGUI::DoExport() {
    // create calPad according to drawCommand and cuts
    AliTPCCalPad *calPad = fViewer->GetCalPad(desiredData.Data(), (char*)cutsStr.Data(), (char*)calPadName);
    // finally export calPad to Cint:
-   gROOT->ProcessLine(Form("AliTPCCalPad* %s = (AliTPCCalPad*)0x%lx;", calPadName, calPad));
+   gROOT->ProcessLine(Form("AliTPCCalPad* %s = (AliTPCCalPad*)0x%lx;", calPadName, (ULong_t)calPad));
    fPreprocessor->AddComponent(calPad);
    Info("ExportCalPad", "Current 2D view has been exported to an AliTPCCalPad* with name '%s'", calPadName);
 }
@@ -1801,6 +1858,7 @@ void AliTPCCalibViewerGUI::DoExportNorm() {
    }
    
    Error("DoExportNorm", "Not yet implemented.");
+/*  
    return;
    
    // specify data to plot:
@@ -1815,8 +1873,9 @@ void AliTPCCalibViewerGUI::DoExportNorm() {
    // create calPad according to drawCommand and cuts
    AliTPCCalPad *calPad = fViewer->GetCalPad(desiredData.Data(), (char*)cutsStr.Data(), (char*)fComboExportName->GetTextEntry()->GetText());
    // finally export calPad to Cint:
-   gROOT->ProcessLine(Form("AliTPCCalPad* %s = (AliTPCCalPad*)0x%lx;", calPadName, calPad));
+   gROOT->ProcessLine(Form("AliTPCCalPad* %s = (AliTPCCalPad*)0x%lx;", calPadName, (ULong_t) calPad));
    Info("ExportCalPad", "Current 2D view has been exported to an AliTPCCalPad* with name '%s'", calPadName);
+  */
 }
 
 
@@ -1831,7 +1890,7 @@ void AliTPCCalibViewerGUI::GetMinMax() {
       ptr = listOfPrimitives->At(i);
       if ( ptr->InheritsFrom("TH1") ) break;
    }
-   if ( ptr != 0 && !ptr->InheritsFrom("TH1") ) return;      // if the loop did not find a TH1
+   if ( !ptr || !ptr->InheritsFrom("TH1") ) return;      // if the loop did not find a TH1
    TH1 *hist = (TH1*)ptr;
 
 //    Double_t histMax = hist->GetMaximum();
@@ -1925,7 +1984,12 @@ void AliTPCCalibViewerGUI::ChangeSector(){
    // 
    // function that is called, when the number of the sector is changed
    // to change the sector label
-   // 
+   //
+   if ( fRadioROC->GetState()!=kButtonDown && fRadioSector->GetState()!=kButtonDown ){
+       fLblSector->SetText("not used");
+       return;
+   }
+
    Int_t sector = (Int_t)(fNmbSector->GetNumber());
    TString secLabel = "";
    if ( sector < 36 )
@@ -2027,7 +2091,7 @@ void AliTPCCalibViewerGUI::MouseMove(Int_t event, Int_t x, Int_t y, TObject *sel
    if (quadrant == 3) phi = pi + phi;
    if (quadrant == 4) phi = 2 * pi - phi;
    Double_t phiGrad = phi / pi * 180;
-   Int_t sector = (Int_t) phiGrad / 20;  // one sector coresponds to 20°
+   Int_t sector = (Int_t) phiGrad / 20;  // one sector coresponds to 20
    // IROC starts at 84.5 cm
    // IROC ends at 135.5 cm, OROC begins
    // OROC ends at 250 cm
@@ -2133,7 +2197,7 @@ void AliTPCCalibViewerGUI::DoDumpToFile() {
    new TGFileDialog(gClient->GetRoot(), gClient->GetRoot(), kFDSave, &fi);
    if (fi.fFilename && strlen(fi.fFilename)) {
       fPreprocessor->DumpToFile(fi.fFilename);
-      Info("DumpToFile", Form("New CalibTree has been writen to file '%s'", fi.fFilename));
+      Info("DumpToFile","New CalibTree has been writen to file '%s'", fi.fFilename);
    }
 }