- New virtual function in AliMUONVGeometryDESegmentation and in the daughters GetDire...
authormartinez <martinez@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 27 Jan 2005 13:20:51 +0000 (13:20 +0000)
committermartinez <martinez@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 27 Jan 2005 13:20:51 +0000 (13:20 +0000)
This returns an enum defined in AliMUONGeometryDirection kDirX, KDirY and kDirUndefined
This method gives the direction where the pad size of the chamber is constant.
In other words this corresponds with the coordinate where the spatial resolution is the best.
Normally kDirY will correspond with cathode segmentation for the bending plane and
kDirX  with cathode segmentation for the non bending plane
- README Info for running a test script of the MUON code

MUON/AliMUONGeometrySegmentation.cxx
MUON/AliMUONGeometrySegmentation.h
MUON/AliMUONSt12QuadrantSegmentation.cxx
MUON/AliMUONSt12QuadrantSegmentation.h
MUON/AliMUONSt345SlatSegmentation.h
MUON/AliMUONTest.cxx
MUON/AliMUONVGeometryDESegmentation.h
MUON/Config.C
MUON/MUONLinkDefGeometry.h
MUON/README

index a321087..e728618 100644 (file)
@@ -150,6 +150,17 @@ void AliMUONGeometrySegmentation::Add(Int_t detElemId,
 }  
 
 //______________________________________________________________________________
+AliMUONGeometryDirection 
+AliMUONGeometrySegmentation::GetDirection(Int_t detElemId) const
+{
+// Return direction with a constant pad size (Direction or coordinate where the resolution is the best)
+
+  if (!Notify(detElemId)) return kDirUndefined;
+
+  return fCurrentSegmentation->GetDirection();
+}
+
+//______________________________________________________________________________
 void AliMUONGeometrySegmentation::SetPadSize(Float_t p1, Float_t p2)
 {
 // Set pad size Dx*Dy to all detection element segmentations 
index 94f8329..80dc654 100644 (file)
@@ -17,6 +17,8 @@
 
 #include <TObject.h>
 
+#include "AliMUONGeometryDirection.h"
+
 class TObjArray;
 class TF1;
 
@@ -38,6 +40,8 @@ class AliMUONGeometrySegmentation : public TObject
  
     // get methods
     AliMUONGeometryModule* GetGeometry() const;              
+    virtual AliMUONGeometryDirection GetDirection(Int_t detElemId) const;
+                       // Direction with a constant pad size  (Direction or coordinate where the resolution is the best)
     
     //    
     // redefined methods from AliSegmentation interface
index 3979b9e..e3bacdf 100644 (file)
@@ -211,6 +211,18 @@ Bool_t  AliMUONSt12QuadrantSegmentation::HasPad(Int_t ix, Int_t iy)
 
 
 //______________________________________________________________________________
+AliMUONGeometryDirection  AliMUONSt12QuadrantSegmentation::GetDirection()
+{
+// Returns the direction with a constant pad size  (Direction or coordinate where the resolution is the best)
+
+  switch ( fSector->GetDirection() ) {
+    case kX: return kDirX;
+    case kY: return kDirY;
+    default: return kDirUndefined;
+  }  
+}  
+
+//______________________________________________________________________________
 Float_t AliMUONSt12QuadrantSegmentation::GetAnod(Float_t xhit) const
 {
 // Anod wire coordinate closest to xhit
index fe8b2e6..7dd8a77 100644 (file)
@@ -55,6 +55,11 @@ class AliMUONSt12QuadrantSegmentation : public AliMUONVGeometryDESegmentation
     virtual Bool_t  HasPad(Int_t ix, Int_t iy);
                        // Returns true if a pad with given indices exists
 
+    // Quadrant type
+    //
+    virtual AliMUONGeometryDirection  GetDirection();
+                       // Returns the direction with a constant pad size
+
     // Transform from pad (wire) to real coordinates and vice versa
     //
     virtual Float_t GetAnod(Float_t xhit) const;
index d687ef2..bd67122 100644 (file)
@@ -35,6 +35,7 @@ class AliMUONSt345SlatSegmentation : public AliMUONVGeometryDESegmentation
 
     virtual Bool_t   HasPad(Float_t /*x*/, Float_t /*y*/, Float_t /*z*/) { return true; }
     virtual Bool_t   HasPad(Int_t /*ix*/, Int_t /*iy*/) { return true; }
+    virtual AliMUONGeometryDirection  GetDirection() { return kDirUndefined; } 
 
     virtual Float_t  GetAnod(Float_t xhit) const;  // Anod wire coordinate closest to xhit
     virtual void     GetPadI(Float_t x ,Float_t y ,Int_t   &ix,Int_t &iy);  // Transform from pad to real coordinates
index f34bb8b..d3cdc4e 100644 (file)
@@ -876,6 +876,8 @@ void AliMUONTest::DrawPad(Int_t& counter,
   //printf(" ***** Pad position is ix: %d iy: %d x: %f y: %f sector: %d dpx: %f dpy: %f \n",
   //       ix, iy, x, y, sector, dpx, dpy);
 
+  if (!fCanvas) Before(kDrawPads);
+
   fCanvas->cd();
   TPave* pave = new TPave(x-dpx/2., y-dpy/2., x+dpx/2., y+dpy/2., 1);
   pave->Draw();
index a13e909..6fa7c4e 100644 (file)
@@ -17,6 +17,7 @@
 #define ALI_MUON_V_GEOMETRY_DE_SEGMENTATION_H
 
 #include "AliSegmentation.h"
+#include "AliMUONGeometryDirection.h"
 
 class AliMUONVGeometryDESegmentation : public AliSegmentation
 {
@@ -30,6 +31,14 @@ class AliMUONVGeometryDESegmentation : public AliSegmentation
     virtual Bool_t  HasPad(Int_t ix, Int_t iy) = 0;
                        // Returns true if a pad with given indices exists
 
+    virtual AliMUONGeometryDirection  GetDirection() = 0;
+    // Returns the direction with a constant pad size  (Direction or coordinate where the resolution is the best)
+    // This returns an enum defined in AliMUONGeometryDirection kDirX, KDirY and kDirUndefined
+    // This method gives the direction where the pad size of the chamber is constant.
+    // In other words this corresponds with the coordinate where the spatial resolution is the best.
+    // Normally kDirY will correspond with cathode segmentation for the bending plane and 
+    // kDirX  with cathode segmentation for the non bending plane
+
   protected:
     AliMUONVGeometryDESegmentation(const AliMUONVGeometryDESegmentation& rhs);
   
index c9bf673..f0fa3ca 100644 (file)
@@ -2,7 +2,7 @@
 // Remember to define the directory and option
 // gAlice->SetConfigFunction("Config('$HOME','box');");
 
-void Config(char directory[100]="", char option[6]="box")
+void Config(char directory[100]="", char option[6]="param")
 {
   //
   // Config file for MUON test
index 9c96ae8..f61f914 100644 (file)
@@ -17,5 +17,7 @@
 #pragma link C++ class  AliMUONGeometryStore+;
 #pragma link C++ class  AliMUONVGeometryDESegmentation+;
 #pragma link C++ class  AliMUONGeometrySegmentation+;
+
+#pragma link C++ enum   AliMUONGeometryDirection;
 #endif
 
index 487e4df..b8a2fdd 100644 (file)
@@ -21,6 +21,21 @@ config files, simulation, digitalization, clusterization,
 reconstruction and macro analysis
 
 ==========================================================
+ How to check that your aliroot is working well
+==========================================================
+There is a script file AlirootRun_MUONtest.script which 
+allows for simulating, reconstructing and making the
+invariant analysis of the generated Upsilon (1S).
+The used configuration file is Config.C in MUON 
+directory.
+There you have to type :
+
+source $ALICE_ROOT/MUON/AlirootRun_MUONtest.script
+
+If you do not recover a few Upsilons in their mass region 
+in the file MUONmassPlot.root
+
+==========================================================
  How to run a MUON generation
 ==========================================================
 aliroot