CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/Alignment/MillePedeAlignmentAlgorithm/macros/CompareMillePede.h

Go to the documentation of this file.
00001 // Original Author: Gero Flucke
00002 // last change    : $Date: 2010/10/26 21:34:25 $
00003 // by             : $Author: flucke $
00004 #ifndef COMPAREMILLEPEDE_H
00005 #define COMPAREMILLEPEDE_H
00006 
00007 class PlotMillePede;
00008 
00009 class GFHistManager;
00010 class CompareMillePede
00011 
00012 {
00013  public:
00014   CompareMillePede(const char *fileName1, const char *fileName2, Int_t iter1 = 2, Int_t iter2 = 2,
00015                    Int_t hieraLevel = 0);// iter=1/2: singlerun/merged; heiraLev: -1 ignore, 0 lowest level, etc.
00016   virtual ~CompareMillePede();
00017 
00018   void DrawPedeParam(Option_t *option = "", unsigned int nNonRigidParam = 12);//"add": keep old canvas, "free1/2": if free param in file 1/2 
00019   void DrawPedeParamVsLocation(Option_t *option = "", unsigned int nNonRigidParam = 12);//"add": keep old canvas, "free1/2": if free param in file 1/2 
00020 
00021   void DrawParam(Option_t *option="");//"add": keep old canvas, "free1/2": if free param in file 1/2 
00022   void DrawParamVsLocation(Option_t *option="");//"add": keep old canvas, "free1/2": if free param in file 1/2 
00023   void DrawParamDeltaMis(Option_t *option="");//"add": keep old canvas, "free1/2": if free param in file 1/2 
00024   void DrawParamDeltaMisVsLoc(Option_t *option="");//"add": keep old canvas, "free1/2": if free param in file 1/2
00025   void DrawNumHits(Option_t *opt="");//"add": keep old canvas
00026 
00027   bool IsConsistent(); // check correct order of alignables, if false draw some hists
00028   TString DeltaPar(UInt_t iPar) const; // par_2 - par_1
00029   TString DeltaParBySigma(UInt_t iPar, const PlotMillePede *sigmaSource) const;
00030   TString DeltaMisPar(UInt_t iPar) const; // abs(misalignment_2)-abs(misalignment_1)
00031   TString DeltaMisParBySigma(UInt_t iPar, const PlotMillePede *sigmaSource) const;
00032   TString DeltaPos(UInt_t iPos) const;
00033 
00034   void AddIsFreeSel(TString &sel, const TString &option, UInt_t iPar) const;
00035 
00036   void SetSubDetId(Int_t subDetId); // 1-6 are TPB, TPE, TIB, TID, TOB, TEC, -1 means: take all
00037   void AddSubDetId(Int_t subDetId); // 1-6 are TPB, TPE, TIB, TID, TOB, TEC
00038   void SetAlignableTypeId(Int_t alignableTypeId);//detunit=1,det=2,rod=3,etc. from AlignableObjectIdType (-1: all)
00039   void SetHieraLevel(Int_t hieraLevel); // select hierarchical level (-1: all)
00040   void AddAdditionalSel(const char *selection);// special select; StripDoubleOr1D,StripRphi,StripStereo
00041   void AddAdditionalSel(const TString &xyzrPhiNhit, Float_t min, Float_t max); // x,y,z,r,phi,Nhit
00042   //  const TString GetAdditionalSel () const { return fAdditionalSel;}
00043   void ClearAdditionalSel ();
00044 
00045 
00046   TString TitleAdd() const;
00047 
00048   PlotMillePede* GetPlotMillePede1() {return fPlotMp1;}
00049   PlotMillePede* GetPlotMillePede2() {return fPlotMp2;}
00050   GFHistManager* GetHistManager() { return fHistManager;}
00051 
00052   static const unsigned int kNpar; // number of parameters we have...
00053 
00054  private: 
00055   CompareMillePede() : fPlotMp1(0), fPlotMp2(0), fHistManager(0) {}
00056 
00057   Int_t PrepareAdd(bool addPlots);
00058 
00059   PlotMillePede *fPlotMp1;
00060   PlotMillePede *fPlotMp2;
00061 
00062   GFHistManager *fHistManager;
00063 };
00064 
00065 #endif