]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - FMD/AliFMDPattern.h
Added new 'status' histogram to the DQM data maker and checker. This histogram
[u/mrichter/AliRoot.git] / FMD / AliFMDPattern.h
index b29c5e037aa08620e9b6843256304b7c1dbefee1..f230a04e1c7c399a5d13ced5288c4c8ab318c2f1 100644 (file)
@@ -24,6 +24,7 @@
 // #include <TGraph.h>
 #include <TLatex.h>
 #include <TLine.h>
+// class AliPhysicsSelection;
 class TCanvas;
 class TPad;
 class TH2;
@@ -65,25 +66,83 @@ public:
                TObjArray&  outers);
     /** Draw everything 
        @param a Array of shapes to draw */
-    void  DrawShape(TObjArray& a);
+    void  DrawShape(const TObjArray& a);
     /** Add a marker at specified coordinates 
        @param X X coordinate 
        @param Y Y coordinate 
        @param Z Z coordinate 
        @param max The maximum value to scale to */
     void  AddMarker(Double_t x, Double_t y, Float_t s, Float_t max);
+    /** 
+     * Get the indentifier 
+     * 
+     * @return Identifier 
+     */
+    Int_t GetId() const { return fId; }
+    /** 
+     * Get the counts array. Number of counts at each level  
+     * 
+     * @return Counts array
+     */
+    TArrayI&     GetCounts() { return fCounts; }
+    /** 
+     * Get the counts array. Number of counts at each level 
+     * 
+     * @return Counts array
+     */
+    const TArrayI& GetCounts() const { return fCounts; }
+    /** 
+     * Get the list of graphs 
+     * 
+     * @return Array of graphs - one for each level
+     */
+    TObjArray& GetGraphs() { return fGraphs; }
+    /** 
+     * Get the list of graphs 
+     * 
+     * @return Array of graphs - one for each level
+     */
+    const TObjArray& GetGraphs() const { return fGraphs; } 
+    /** 
+     * Get the mother frame
+     * 
+     * @return The mother frame 
+     */
+    TH2*& GetFrame() { return fFrame; }
+    /** 
+     * Get the mother frame
+     * 
+     * @return The mother frame 
+     */
+    const TH2* GetFrame() const { return fFrame; }  
+  private:
+    /** 
+     * Copy constructor 
+     * - Not implemented. 
+     */ 
+    AliFMDPatternDetector(const AliFMDPatternDetector&);
+    /** 
+     * Assignement operator 
+     * -- Not implemented 
+     */
+    AliFMDPatternDetector& operator=(const AliFMDPatternDetector&);
+    /** 
+     * Copy shapes
+     * 
+     * @param input  Source
+     * @param own    Ours
+     * @param ang    Angle 
+     * @param fx     Factor x
+     * @param fy     Factor y
+     */
+    void CopyShapes(const TObjArray& input, TObjArray& own, 
+                   Double_t ang=0, Double_t fx=1, Double_t fy=1);
     Int_t     fId;     // Identifier # 
     TArrayI   fCounts; // Number of counts at each level 
     TObjArray fGraphs; // Array of graphs - one for each level
     TH2*      fFrame;  // The mother frame 
-  private:
-    /** Copy constructor 
-       - Not implemented. */ 
-    AliFMDPatternDetector(const AliFMDPattern&);
-    /** Assignement operator 
-       -- Not implemented */
-    AliFMDPatternDetector& operator=(const AliFMDPatternDetector&);
-
+    TObjArray fInners; // Our own cache of shapes
+    TObjArray fOuters; // Our own cache of shapes
   };
   
   
@@ -107,6 +166,11 @@ public:
   /** Assignement operator 
       -- Not implemented */
   AliFMDPattern& operator=(const AliFMDPattern&);
+  virtual void AddMarker(Float_t x, Float_t y, Float_t z, 
+                        TObject* o, Float_t s, Float_t min, Float_t max)
+  {
+    AliFMDDisplay::AddMarker(x, y, z, o, s, min, max);
+  }
   /** Add a marker to the display
       @param det Detector
       @param rng Ring
@@ -116,43 +180,38 @@ public:
       @param s   Signal 
       @param max Maximum of signal */
   virtual void AddMarker(UShort_t det, Char_t rng, UShort_t sec,
-                        UShort_t str, TObject* o, Float_t s, Float_t max);
+                        UShort_t str, TObject* o, Float_t s, 
+                        Float_t min, Float_t max);
   /** @param hit Hit to process */
   virtual Bool_t ProcessHit(AliFMDHit* hit, TParticle*);
   /** Re-draw the patterns */
   virtual void Redisplay();
   /** Called at the end. */
   virtual void AtEnd();
-  /** Graph to show shape of inner sensor */
   TObjArray fInners;   // Graph to show shape of inner sensor
-  /** Graph to show shape of outer sensor */
   TObjArray fOuters;   // Graph to show shape of outer sensor
-  /** Max inner radius */
   Float_t fInnerMax;   // Max inner radius
-  /** Max outer radius */
   Float_t fOuterMax;   // Max outer radius
-  /** FMD1 Pad */
   TPad*  fFMD1Pad;     // FMD1 Pad
-  /** FMD1 Frame */
   AliFMDPatternDetector fFMD1; // FMD1 Frame
-  /** FMD2 Pad  */
   TPad*  fFMD2Pad;     // FMD2 Pad 
-  /** FMD2 Frame */
   AliFMDPatternDetector fFMD2; // FMD2 Frame
-  /** FMD3 Pad */
   TPad*  fFMD3Pad;     // FMD3 Pad
-  /** FMD3 Frame */
   AliFMDPatternDetector fFMD3; // FMD3 Frame
-  /** Summary pad */
   TPad* fSummary;      // Summary pad
-  /** Text fields */
   TLatex fEvent;       // Text fields
   TLatex fFMD1Sum;     // Total in FMD1
-  TLatex fFMD2Sum;     // Total in FMD1
-  TLatex fFMD3Sum;     // Total in FMD1
+  TLatex fFMD2Sum;     // Total in FMD2
+  TLatex fFMD3Sum;     // Total in FMD3
   TLine  fLine;                // Just a line 
   TLatex fTotal;       // Total in FMD
 
+  Double_t fFMD1Area;   // estimated FMD1 area
+  Double_t fFMD2Area;   // estimated FMD2 area
+  Double_t fFMD3Area;   // estimated FMD3 area
+
+  // AliPhysicsSelection* fPhysicsSelection;
+  
   ClassDef(AliFMDPattern,0) // Display FMD data as hit-patterns. 
 };