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
fDESegmentations->Add(detElemId, segmentation);
}
+//______________________________________________________________________________
+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)
{
#include <TObject.h>
+#include "AliMUONGeometryDirection.h"
+
class TObjArray;
class TF1;
// 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
}
+//______________________________________________________________________________
+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
{
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;
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
//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();
#define ALI_MUON_V_GEOMETRY_DE_SEGMENTATION_H
#include "AliSegmentation.h"
+#include "AliMUONGeometryDirection.h"
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);
// 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
#pragma link C++ class AliMUONGeometryStore+;
#pragma link C++ class AliMUONVGeometryDESegmentation+;
#pragma link C++ class AliMUONGeometrySegmentation+;
+
+#pragma link C++ enum AliMUONGeometryDirection;
#endif
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
==========================================================