51 #include "TGeoMatrix.h" 52 #include "TObjArray.h" 53 #include "TObjString.h" 63 : TObject(), fDETransformations(deTransformations), fLocalManuContours(222,1)
67 fLocalManuContours.SetOwnerKeyValue(kTRUE,kTRUE);
86 if ( sname.Length()==0 )
98 AliError(Form(
"Could not build contour %s",sname.Data()));
102 contour->SetName(sname.Data());
107 TGeoHMatrix* matrix = 0x0;
112 if ( matrix ) contour->
Transform(*matrix);
127 TString mpName(
NameIt(motifPosition));
138 polygons.SetOwner(kTRUE);
144 if ( motifType->
IsFull() )
176 if (!contour || !contour->
IsValid() )
178 AliError(Form(
"Failed to properly create contour %s contour = %p",mpName.Data(),contour));
208 manuContours->SetOwner(kTRUE);
211 Int_t detElemId, manuId;
215 while ( it.
Next(detElemId,manuId) )
221 manuContours->Add(contour);
243 TString name(Form(
"%s",motif->
GetID().Data()));
271 Int_t stationId = chamberId/2;
275 AliMpUID id(cathodeType,stationId,chamberId,detElemId,busPatchId,manuId);
277 if ( withCathodeName )
return id.PathName();
279 TString name(
id.PathName());
281 name.ReplaceAll(
"Cathode0/",
"");
282 name.ReplaceAll(
"Cathode1/",
"");
Double_t GetPositionY() const
Return y position.
virtual Double_t GetPadDimensionY(Int_t i) const =0
Return the i-th pad y dimension.
static AliMpSegmentation * Instance(Bool_t warn=true)
static AliMp::CathodType GetCathod(Int_t detElemId, AliMp::PlaneType planeType)
Global (string-eable) ID of a tracker channel.
virtual Double_t DimensionY() const =0
Return y dimensions.
AliMpConnection * FindConnectionByGassiNum(Int_t gassiNum) const
virtual AliMpMotifPosition * MotifPosition(Int_t manuId) const =0
Return the position of a given manu (aka motifPosition)
const AliMpVSegmentation * GetMpSegmentationByElectronics(Int_t detElemId, Int_t elCardID, Bool_t warn=true) const
Int_t NumberOfVertices() const
Get the number of vertices of this contour.
virtual TObject * Clone(const char *="") const
Get a full copy of this object.
AliMpMotifType * GetMotifType() const
Return the motif type.
Bool_t Next(Int_t &detElemId, Int_t &manuId)
Class to loop over all manus of MUON Tracker.
void Offset(Double_t x, Double_t y)
Add an offset to all points.
AliMUONContour * CreateMotifContour(const AliMpMotifPosition &motifPosition) const
static AliMpDDLStore * Instance(Bool_t warn=true)
static Int_t GetChamberId(Int_t detElemId, Bool_t warn=true)
static Int_t ManuNofChannels()
Max number of channels per manu.
virtual Double_t GetPositionY() const =0
Return the y position of the origin of the detection element.
Int_t GetBusPatchId(Int_t detElemId, Int_t manuId) const
TString GetID() const
Return the motif identifier.
TString NameIt(const AliMpMotifPosition &motifPosition) const
void Print(Option_t *opt="") const
#define AliCodeTimerAuto(message, counter)
Maker of AliMUONContour objects for all the tracker manus.
TMap fLocalManuContours
map of local manu contours
TObject * GetValue(Int_t keyFirst, Int_t keySecond) const
AliMpVMotif * GetMotif() const
Return motif.
static TString ManuPathName(Int_t detElemId, Int_t manu, Bool_t withCathodeName=kTRUE)
virtual Double_t DimensionX() const =0
Return x dimensions.
#define StdoutToAliError(whatever)
TObjArray * GenerateManuContours(Bool_t stopAtError=kFALSE)
virtual void PadPositionLocal(MpPair_t localIndices, Double_t &posx, Double_t &posy) const =0
Fill local position of the pad specified by local indices.
Creator/merger of AliMUONContour objects.
Abstract base class for a motif with its unique ID and the motif type.
virtual ~AliMUONManuContourMaker()
The abstract base class for the segmentation.
Bool_t IsValid() const
Return validity.
AliMUONContour * CreateContour(const TObjArray &polygons, const char *name=0x0) const
virtual Int_t GetNofPadDimensions() const =0
Return the number of pad dimensions.
virtual Double_t GetPadDimensionX(Int_t i) const =0
Return the i-th pad x dimension.
Double_t GetPositionX() const
Return x position.
#define AliError(message)
Bool_t IsFull() const
Return true if the motif conatins all pads.
virtual Double_t GetPositionX() const =0
Return the x position of the origin of the detection element.
void Transform(const TGeoHMatrix &matrix)
Apply a global transformation to all points.
Helper class making Root persistent TExMap.
static Int_t ManuMask(AliMp::PlaneType planeType)
Class that defines the motif properties.
AliMUONContour * CreateManuContour(Int_t detElemId, Int_t manuId, const char *name="") const
virtual void GetPadDimensionsByIndices(MpPair_t localIndices, Double_t &dx, Double_t &dy) const =0
Return the dimensions of the pad specified by localIndices.
AliMpExMap * fDETransformations
map<int,TGeoHMatrix> of detElemId to matrix