Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 11:57:36

0001 #ifndef ZTR_TEcnaParHistos
0002 #define ZTR_TEcnaParHistos
0003 
0004 #include <Riostream.h>
0005 
0006 #include "TObject.h"
0007 #include "TSystem.h"
0008 #include "Riostream.h"
0009 
0010 #include "TCanvas.h"
0011 #include "TRootCanvas.h"
0012 #include "TH1.h"
0013 #include "TStyle.h"
0014 #include "TGraph.h"
0015 #include "TString.h"
0016 #include "TColor.h"
0017 #include "TPaveText.h"
0018 #include "TVectorD.h"
0019 #include "TMatrixD.h"
0020 
0021 #include "CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/interface/TEcnaObject.h"
0022 #include "CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/interface/TEcnaParEcal.h"
0023 #include "CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/interface/TEcnaNumbering.h"
0024 
0025 ///-----------------------------------------------------------
0026 ///   TEcnaParHistos.h
0027 ///   Update: 05/10/2012
0028 ///   Author:    B.Fabbro (bernard.fabbro@cea.fr)
0029 ///              DSM/IRFU/SPP CEA-Saclay
0030 ///   Copyright: Those valid for CEA sofware
0031 ///
0032 ///   ECNA web page:
0033 ///     http://cms-fabbro.web.cern.ch/cms-fabbro/
0034 ///     cna_new/Correlated_Noise_Analysis/ECNA_main_page.htm
0035 ///-----------------------------------------------------------
0036 ///
0037 ///    Values of different parameters for plots in the framework of TEcnaHistos
0038 ///    (see TEcnaHistos documentation)
0039 ///
0040 ///    Examples of parameters:  ymin and ymax values for histos, title sizes,
0041 ///                             margins for plots, etc...
0042 ///
0043 
0044 class TEcnaParHistos : public TObject {
0045 private:
0046   //..... Attributes
0047 
0048   // static const Int_t fgMaxCar = 512;                   // <=== HYPER DANGEREUX !!!
0049 
0050   Int_t fgMaxCar;  // Max nb of caracters for char*
0051 
0052   Int_t fCnew, fCdelete;
0053   Int_t fCnewRoot, fCdeleteRoot;
0054 
0055   TString fTTBELL;
0056 
0057   Int_t fCnaCommand, fCnaError;
0058 
0059   TEcnaParEcal* fEcal;
0060   TEcnaNumbering* fEcalNumbering;
0061 
0062   TString fFlagSubDet;
0063 
0064   //...............................................................
0065 
0066   Int_t fMaxColorNumber;
0067   Double_t fMarginAutoMinMax;
0068   Int_t fNbOfRunsDisplayed;
0069   Int_t fMaxNbOfRunsInLists;
0070 
0071   TString fOnlyOnePlot;
0072   TString fSeveralPlot;
0073   TString fSameOnePlot;
0074   TString fAllXtalsInStinPlot;
0075   Int_t fPlotAllXtalsInStin;
0076 
0077 public:
0078   //..... Methods
0079 
0080   TEcnaParHistos();
0081   TEcnaParHistos(TEcnaObject*, const TString&);
0082   TEcnaParHistos(const TString&, TEcnaParEcal*, TEcnaNumbering*);
0083   ~TEcnaParHistos() override;
0084 
0085   void Init();
0086   void SetEcalSubDetector(const TString&);
0087   void SetEcalSubDetector(const TString&, TEcnaParEcal*, TEcnaNumbering*);
0088 
0089   //...................................................... PLOT methods
0090   UInt_t SetCanvasWidth(const TString&, const TString&);
0091   UInt_t SetCanvasHeight(const TString&, const TString&);
0092   UInt_t CanvasFormatW(const TString&);
0093   UInt_t CanvasFormatH(const TString&);
0094 
0095   Double_t BoxLeftX(const TString&);
0096   Double_t BoxRightX(const TString&);
0097   Double_t BoxBottomY(const TString&);
0098   Double_t BoxTopY(const TString&);
0099 
0100   void SetColorPalette(const TString&);
0101   Color_t ColorTab(const Int_t&);
0102   Color_t ColorDefinition(const TString&);
0103   Int_t GetMaxNbOfColors();
0104 
0105   Int_t GetNbOfRunsDisplayed();
0106   Double_t GetMarginAutoMinMax();
0107 
0108   void SetViewHistoStyle(const TString&);
0109   void SetViewHistoPadMargins(const TString&, const TString&);
0110   void SetViewHistoStats(TH1D*, const TString&);
0111   void SetViewHistoOffsets(TH1D*, const TString&, const TString&);
0112   void SetViewGraphOffsets(TGraph*, const TString&);
0113 
0114   Float_t AxisTitleOffset();
0115   Float_t AxisTitleOffset(const TString&);
0116   Float_t AxisTitleSize();
0117   Float_t AxisTitleSize(const TString&);
0118   Float_t AxisLabelOffset();
0119   Float_t AxisLabelOffset(const TString&);
0120   Float_t AxisLabelSize();
0121   Float_t AxisLabelSize(const TString&);
0122   Float_t AxisTickSize();
0123   Float_t AxisTickSize(const TString&);
0124 
0125   Float_t DeeOffsetX(const TString&, const Int_t&);
0126   Float_t DeeNameOffsetX(const Int_t&);
0127   Float_t DeeNumberOffsetX(const TString&, const Int_t&);
0128 
0129   TPaveText* SetPaveGeneralComment(const TString&);
0130   TPaveText* SetPaveAnalysisRun(
0131       const TString&, const Int_t&, const Int_t&, const TString&, const Int_t&, const Int_t&, const TString&);
0132   TPaveText* SetPaveNbOfEvts(const Int_t&, const TString&, const TString&, const TString&);
0133   TPaveText* SetPaveEvolNbOfEvtsAna(const TString&, const Int_t&, const Int_t&, const Int_t&, const TString&);
0134   TPaveText* SetPaveEvolRuns(const Int_t&, const TString&, const Int_t&, const TString&, const TString&, const TString&);
0135 
0136   TPaveText* SetOptionSamePaveBorder(const TString&, const TString&);
0137 
0138   TPaveText* SetPaveStas();
0139   TPaveText* SetPaveSM(const TString&, const Int_t&, const TString&);
0140   TPaveText* SetPaveTower(const Int_t&);
0141   TPaveText* SetPaveTowersXY(const Int_t&, const Int_t&);
0142   TPaveText* SetPaveLVRB(const Int_t&, const Int_t&);
0143   Color_t SetColorsForNumbers(const TString&);
0144 
0145   TPaveText* SetPaveDee(const TString&, const Int_t&, const TString&);
0146   TPaveText* SetPaveSC(const Int_t&, const Int_t&);
0147   TPaveText* SetPaveSCsXY(const Int_t&, const Int_t&);
0148   TPaveText* SetPaveCxyz(const Int_t&);
0149 
0150   TPaveText* SetPaveStex(const TString&, const Int_t&);
0151   TPaveText* SetPaveStin(const Int_t&, const Int_t&);
0152   TPaveText* SetPaveStinsXY(const Int_t&, const Int_t&);
0153   TPaveText* SetPaveCrystal(const Int_t&, const Int_t&, const Int_t&);
0154   TPaveText* SetPaveCrystal(const Int_t&, const Int_t&, const Int_t&, const Int_t&, const Int_t&);
0155   TPaveText* SetPaveCrystalSample(const Int_t&, const Int_t&, const Int_t&, const Int_t&);
0156 
0157   TString GetHistoType(const TString&);
0158   TString GetXVarHisto(const TString&, const TString&, const Int_t&);
0159   TString GetYVarHisto(const TString&, const TString&, const Int_t&);
0160   TString GetQuantityName(const TString&);
0161 
0162   Double_t GetYminDefaultValue(const TString&);
0163   Double_t GetYmaxDefaultValue(const TString&);
0164 
0165   Int_t MaxNbOfRunsInLists();
0166 
0167   //...............................................................
0168   TString BuildStandardDetectorCode(const TString&);
0169   TString BuildStandardPlotOption(const TString&, const TString&);
0170   TString BuildStandard1DHistoCodeX(const TString&, const TString&);
0171   TString BuildStandard1DHistoCodeY(const TString&, const TString&);
0172   TString BuildStandard1DHistoCodeXY(const TString&);
0173   TString BuildStandardCovOrCorCode(const TString&, const TString&);
0174   TString BuildStandardBetweenWhatCode(const TString&, const TString&);
0175 
0176   void ListOfStandardCodes(const TString&);
0177 
0178   TString GetTechHistoCode(const TString&);
0179   TString GetTechHistoCode(const TString&, const TString&);
0180 
0181   TString GetCodeOnlyOnePlot();
0182   TString GetCodeSeveralPlot();
0183   TString GetCodeSameOnePlot();
0184   TString GetCodeAllXtalsInStinPlot();
0185   Int_t GetCodePlotAllXtalsInStin();
0186 
0187   ClassDefOverride(TEcnaParHistos, 1)  // Parameter management for CNA (Correlated Noises Analysis)
0188 };
0189 
0190 #endif  //    ZTR_TEcnaParameter