/*
$Log$
+Revision 1.2 2000/06/15 07:58:48 morsch
+Code from MUON-dev joined
+
Revision 1.1.2.1 2000/06/09 21:51:03 morsch
Code from AliMUONSegResTrigger.cxx
*/
+
/*
Old Log:
Revision 1.1.2.4 2000/04/26 12:33:25 morsch
*/
#include "AliMUONSegmentationTriggerX.h"
+#include "AliMUONTriggerConstants.h"
#include "TMath.h"
#include "TRandom.h"
#include "TArc.h"
#include "AliMUONChamber.h"
#include <iostream.h>
ClassImp(AliMUONSegmentationTriggerX)
-
+
+//------------------------------------------------------------------
void AliMUONSegmentationTriggerX::Init(AliMUONChamber* Chamber)
{
+// intialize X segmentation
cout << "Initialize Trigger Chamber Geometry X " << "\n";
AliMUONSegmentationTrigger::Init(Chamber);
// calculate x & y position of X strips
- for (Int_t imodule=0; imodule<fgNmodule; imodule++) {
- Float_t width=StripSizeX(fgNum[imodule]);
- for (Int_t istrip=0; istrip<fgNstripx[imodule]; istrip++){
- fXofxsmin[imodule][istrip] = fgXcmin[imodule]*fZscale;
- fXofxsmax[imodule][istrip] = fgXcmax[imodule]*fZscale;
+ Int_t nModule=AliMUONTriggerConstants::Nmodule();
+ for (Int_t imodule=0; imodule<nModule; imodule++) {
+ Float_t width=StripSizeX(AliMUONTriggerConstants::ModuleId(imodule));
+ Int_t nStrip=AliMUONTriggerConstants::NstripX(imodule);
+ for (Int_t istrip=0; istrip<nStrip; istrip++){
+ fXofxsmin[imodule][istrip] = AliMUONTriggerConstants::XcMin(imodule)*fZscale;
+ fXofxsmax[imodule][istrip] = AliMUONTriggerConstants::XcMax(imodule)*fZscale;
- fYofxsmin[imodule][istrip] = (fgYcmin[imodule]+width*(istrip))*fZscale;
- fYofxsmax[imodule][istrip] = (fgYcmin[imodule]+width*(istrip+1))*fZscale;
+ fYofxsmin[imodule][istrip] = (fYcmin[imodule]+width*(istrip))*fZscale;
+ fYofxsmax[imodule][istrip] = (fYcmin[imodule]+width*(istrip+1))*fZscale;
}
}
}
// x,y = real coordinates; ix = module number , iy = strip number
ix = 0;
iy = 0;
- for (Int_t imodule=0; imodule<fgNmodule; imodule++) {
- for (Int_t istrip=0; istrip<fgNstripx[imodule]; istrip++){
- if (x>fXofxsmin[imodule][istrip]&&x<fXofxsmax[imodule][istrip]&&
- y>fYofxsmin[imodule][istrip]&&y<fYofxsmax[imodule][istrip]){
- ix = fgNum[imodule];
- iy = istrip;
+ Int_t nModule=AliMUONTriggerConstants::Nmodule();
+ for (Int_t imodule=0; imodule<nModule; imodule++) {
+ Int_t nStrip=AliMUONTriggerConstants::NstripX(imodule);
+ for (Int_t istrip=0; istrip<nStrip; istrip++){
+ if (x>fXofxsmin[imodule][istrip]&&x<fXofxsmax[imodule][istrip]&&
+ y>fYofxsmin[imodule][istrip]&&y<fYofxsmax[imodule][istrip]){
+ ix = AliMUONTriggerConstants::ModuleId(imodule);
+ iy = istrip;
+ }
}
- }
}
}
// ix = module number , iy = strip number; x,y = center of strip
x = 0.;
y = 0.;
-
- for (Int_t imodule=0; imodule<fgNmodule; imodule++) {
- if (fgNum[imodule]==ix){
+ Int_t nModule=AliMUONTriggerConstants::Nmodule();
+
+ for (Int_t imodule=0; imodule<nModule; imodule++) {
+ if (AliMUONTriggerConstants::ModuleId(imodule)==ix){
x=fXofxsmin[imodule][iy]+(fXofxsmax[imodule][iy]-fXofxsmin[imodule][iy])/2.;
y=fYofxsmin[imodule][iy]+(fYofxsmax[imodule][iy]-fYofxsmin[imodule][iy])/2.;
}
if (absiX!=0) {
Int_t numModule=ModuleNumber(absiX);
- if (iY<fgNstripx[numModule]-1) { // strip up in same module
+ if (iY<AliMUONTriggerConstants::NstripX(numModule)-1) { // strip up in same module
*Nlist=1;
Xlist[0]=absiX;
Ylist[0]=iY+1;
//------------------------------------------------------------------
Float_t AliMUONSegmentationTriggerX::Dpx(Int_t isec)
-{ // returns x size of x strips for sector isec
+{
+// returns x size of x strips for sector isec
if (isec==1) {
return 17.0*fZscale;
//------------------------------------------------------------------
Float_t AliMUONSegmentationTriggerX::Dpy(Int_t isec)
-{ // returns y size of x strips for sector isec
- // cout << " In AliMUONSegmentationTriggerX::Dpx" << "\n";
+{
+// returns y size of x strips for sector isec
if (isec==1) {
return 1.0625*fZscale;
//------------------------------------------------------------------
void AliMUONSegmentationTriggerX::SetHit(Float_t xhit, Float_t yhit)
-{ AliMUONSegmentationTrigger::SetHit(xhit,yhit);}
+{
+// set hit during disIntegration
+AliMUONSegmentationTrigger::SetHit(xhit,yhit);
+}
//------------------------------------------------------------------
Int_t AliMUONSegmentationTriggerX::Sector(Int_t ix, Int_t iy)
{
// Returns sector number for given module
//
+
Int_t absix=TMath::Abs(ix);
Int_t iwidth=Int_t(StripSizeX(absix));
-
+
if (absix==52) {
return 1;
} else if (absix==41||absix==61) {
//------------------------------------------------------------------
void AliMUONSegmentationTriggerX::
IntegrationLimits(Float_t& x1, Float_t& x2, Float_t& x3, Float_t& width)
-{ // returns quantities needed to evaluate neighbour strip response
-// cout << " In AliMUONSegmentationTriggerX::IntegrationLimits" << "\n";
+{
+// returns quantities needed to evaluate neighbour strip response
+
Int_t ix,iy;
Float_t xstrip,ystrip;
GetPadIxy(fxhit,fyhit,ix,iy);
/*
$Log$
+Revision 1.2 2000/06/15 07:58:48 morsch
+Code from MUON-dev joined
+
Revision 1.1.2.1 2000/06/09 21:51:58 morsch
Code from AliMUONSegResTriggerY.cxx
*/
+
/*
Old Log:
Revision 1.1.2.4 2000/05/05 10:17:04 morsch
*/
#include "AliMUONSegmentationTriggerY.h"
+#include "AliMUONTriggerConstants.h"
#include "TMath.h"
#include "TRandom.h"
#include "TArc.h"
#include <iostream.h>
ClassImp(AliMUONSegmentationTriggerY)
+//------------------------------------------------------------------
void AliMUONSegmentationTriggerY::Init(AliMUONChamber* Chamber)
{
+// intialize Y segmentation
cout << "Initialize Trigger Chamber Geometry Y " << "\n";
AliMUONSegmentationTrigger::Init(Chamber);
// calculate x & y position of Y strips
- for (Int_t imodule=0; imodule<fgNmodule; imodule++) {
- Float_t width=StripSizeY(fgNum[imodule]);
- for (Int_t istrip=0; istrip<fgNstripy[imodule]; istrip++){
+ Int_t nModule=AliMUONTriggerConstants::Nmodule();
+ for (Int_t imodule=0; imodule<nModule; imodule++) {
+ Float_t width=StripSizeY(AliMUONTriggerConstants::ModuleId(imodule));
+ Int_t nStrip=AliMUONTriggerConstants::NstripY(imodule);
+ for (Int_t istrip=0; istrip<nStrip; istrip++){
if (imodule<63) {
- fXofysmin[imodule][istrip]=(fgXcmin[imodule]+width*(istrip))*fZscale;
- fXofysmax[imodule][istrip]=(fgXcmin[imodule]+width*(istrip+1))*fZscale;
+ fXofysmin[imodule][istrip]=
+ (AliMUONTriggerConstants::XcMin(imodule)+width*(istrip))*fZscale;
+ fXofysmax[imodule][istrip]=
+ (AliMUONTriggerConstants::XcMin(imodule)+width*(istrip+1))*fZscale;
} else {
fXofysmin[imodule][istrip]=-1.*fXofysmax[imodule-63][istrip];
fXofysmax[imodule][istrip]=-1.*fXofysmin[imodule-63][istrip];
}
- fYofysmin[imodule][istrip] = fgYcmin[imodule]*fZscale;
- fYofysmax[imodule][istrip] = fgYcmax[imodule]*fZscale;
+ fYofysmin[imodule][istrip] = fYcmin[imodule]*fZscale;
+ fYofysmax[imodule][istrip] = fYcmax[imodule]*fZscale;
}
}
ix = 0;
iy = 0;
- for (Int_t imodule=0; imodule<fgNmodule; imodule++) {
- for (Int_t istrip=0; istrip<fgNstripy[imodule]; istrip++){
+ Int_t nModule=AliMUONTriggerConstants::Nmodule();
+ for (Int_t imodule=0; imodule<nModule; imodule++) {
+ Int_t nStrip=AliMUONTriggerConstants::NstripY(imodule);
+ for (Int_t istrip=0; istrip<nStrip; istrip++){
if (x>fXofysmin[imodule][istrip]&&x<fXofysmax[imodule][istrip]&&
y>fYofysmin[imodule][istrip]&&y<fYofysmax[imodule][istrip]){
- ix = fgNum[imodule];
+ ix = AliMUONTriggerConstants::ModuleId(imodule);
iy = istrip;
}
}
// ix = module number , iy = strip number; x,y = center of strip
x = 0.;
y = 0.;
- for (Int_t imodule=0; imodule<fgNmodule; imodule++) {
- if (fgNum[imodule]==ix){
+ Int_t nModule=AliMUONTriggerConstants::Nmodule();
+ for (Int_t imodule=0; imodule<nModule; imodule++) {
+ if (AliMUONTriggerConstants::ModuleId(imodule)==ix){
x=fXofysmin[imodule][iy]+(fXofysmax[imodule][iy]-fXofysmin[imodule][iy])/2.;
y=fYofysmin[imodule][iy]+(fYofysmax[imodule][iy]-fYofysmin[imodule][iy])/2.;
}
if (absiX!=0) {
Int_t numModule=ModuleNumber(absiX);
- if (iY==fgNstripy[numModule]-1) { // strip right
+ if (iY==AliMUONTriggerConstants::NstripY(numModule)-1) { // strip right
if (absiX%10!=7) {
*Nlist=1;
Xlist[0]=absiX+1;
if (absiX%10!=1&&absiX!=52) {
*Nlist=*Nlist+1;
Xlist[*Nlist-1]=absiX-1;
- Ylist[*Nlist-1]=fgNstripy[numModule-1]-1;
+ Ylist[*Nlist-1]=AliMUONTriggerConstants::NstripY(numModule-1)-1;
}
} else {
*Nlist=*Nlist+1;
//------------------------------------------------------------------
Float_t AliMUONSegmentationTriggerY::Dpx(Int_t isec)
-{ // returns x size of y strips for sector isec
-
+{
+// returns x size of y strips for sector isec
if (isec==1) {
return 2.125*fZscale;
} else if (isec==2) {
//------------------------------------------------------------------
Float_t AliMUONSegmentationTriggerY::Dpy(Int_t isec)
-{ // returns y size of y strips for sector isec
- // cout << " In AliMUONSegmentationTriggerX::Dpx" << "\n";
-
+{
+// returns y size of y strips for sector isec
if (isec==1) {
return 68.0*fZscale;
} else if (isec==2) {
//------------------------------------------------------------------
void AliMUONSegmentationTriggerY::SetHit(Float_t xhit, Float_t yhit)
-{ AliMUONSegmentationTrigger::SetHit(xhit,yhit);}
+{
+// set hits during diintegration
+ AliMUONSegmentationTrigger::SetHit(xhit,yhit);
+}
//------------------------------------------------------------------
Int_t AliMUONSegmentationTriggerY::Sector(Int_t ix, Int_t iy)
//
Int_t absix=TMath::Abs(ix);
Int_t iwidth=Int_t(StripSizeY(absix));
-
+
if (absix==52) {
return 1;
} else if (absix==41||absix==61) {