ROOT logo
//////////////////////////////////////////////////////////////////////////////
//
// $Id: $
//
//*-- Author  : Witold Przygoda (przygoda@psja1.if.uj.edu.pl)
//*-- Revised : Martin Jurkovic <martin.jurkovic@ph.tum.de> 2010
//
//_HADES_CLASS_DESCRIPTION
//////////////////////////////////////////////////////////////////////////////
//
//  HRichPad
//
//
//////////////////////////////////////////////////////////////////////////////


#ifndef RICHPAD_H
#define RICHPAD_H

#include "TObjArray.h"
#include "TObject.h"

class HRichPadCorner;

// ****************************************************************************
//============================================================================


// ****************************************************************************
class HRichPad : public TObject {

private:

   Int_t fCornersNr;            // Number of corners
   TObjArray fPadCornersArray;  // Array of pad corners

   Float_t fX;                  // X of a pad in mm
   Float_t fY;                  // Y of a pad in mm
   Int_t   fPadX;               // X of a pad in pads units
   Int_t   fPadY;               // Y of a pad in pads units
   Int_t   fPadNr;              // Pad number
   Int_t   fPadFlag;            // 0-total outside, 1-inside, 2-partial inside
   Float_t fAmplitFraction;     // fraction amplitude

   Float_t fXlab[6];            // X of a pad in LAB in sector 0..5
   Float_t fYlab[6];            // Y of a pad in LAB in sector 0..5
   Float_t fZlab[6];            // Z of a pad in LAB in sector 0..5
   Float_t fTheta;              // Theta of a pad
   Float_t fPhi[6];             // Phi of a pad in sector 0..5

   Float_t fXmin;               // Left border of a pad
   Float_t fYmin;               // Lower border of a pad
   Float_t fXmax;               // Right border of a pad
   Float_t fYmax;               // Upper border of a pad

   Bool_t fPadActive;           // Flag active pads: 0-not actove, 1-active


public:

   HRichPad();
   virtual ~HRichPad();
   HRichPad(const HRichPad& source);
   HRichPad& operator=(const HRichPad& source);

   void reset();
   void calcPadCenter();

   Bool_t isOut(Float_t x, Float_t y);
   Bool_t isOutX(Float_t x);
   Int_t addCorner(HRichPadCorner* corner);


///////////////////////////////////////////////////////////////////
// GETTERS
   HRichPadCorner* getCorner(Int_t n);
   Int_t getCornersNr();
   Float_t getXmin();
   Float_t getYmin();
   Float_t getXmax();
   Float_t getYmax();
   Float_t getX();
   Float_t getY();
   Int_t  getPadX();
   Int_t  getPadY();
   Int_t  getPadNr();
   void   getXY(Float_t *pX, Float_t *pY);
   void   getPadXY(Int_t *pX, Int_t *pY);
   Int_t  getPadFlag();
   Bool_t getPadActive();
   Float_t getXlab(const Int_t sec);
   Float_t getYlab(const Int_t sec);
   Float_t getZlab(const Int_t sec);
   Float_t getTheta();
   Float_t getPhi(const Int_t sec);
   void getXYZlab(const Int_t sec, Float_t *pX, Float_t *pY, Float_t *pZ);
   void getAngles(const Int_t sec, Float_t *pTheta, Float_t *pPhi);
   Float_t getAmplitFraction();


///////////////////////////////////////////////////////////////////
// SETTERS
   Int_t setCorner(HRichPadCorner* corner, Int_t n);
   void setXmin(Float_t xmin);
   void setYmin(Float_t ymin);
   void setXmax(Float_t xmax);
   void setYmax(Float_t ymax);
   void setX(const Float_t x);
   void setY(const Float_t y);
   void setPadX(Int_t padx);
   void setPadY(Int_t pady);
   void setPadNr(Int_t padnr);
   void setXY(const Float_t x, const Float_t y);
   void setPadXY(Int_t padx, Int_t pady);
   void setPadFlag(Int_t flag);
   void setPadActive(Bool_t active);
   void setAmplitFraction(Float_t ampl);
   void setXlab(const Int_t sec, const Float_t x);
   void setYlab(const Int_t sec, const Float_t y);
   void setZlab(const Int_t sec, const Float_t z);
   void setXYZlab(const Int_t sec, const Float_t x,
                  const Float_t y, const Float_t z);
   void setTheta(const Float_t thetha);
   void setPhi(const Int_t sec, const Float_t phi);

   void CalcNrtoXY(Int_t padsx);
   void CalcXYtoNr(Int_t padsx);

   ClassDef(HRichPad, 1)
};

///////////////////////////////////////////////////////////////////
// GETTERS
inline Int_t HRichPad::getCornersNr()
{
   return fCornersNr;
}
inline Float_t HRichPad::getXmin()
{
   return fXmin;
}
inline Float_t HRichPad::getYmin()
{
   return fYmin;
}
inline Float_t HRichPad::getXmax()
{
   return fXmax;
}
inline Float_t HRichPad::getYmax()
{
   return fYmax;
}
inline Float_t HRichPad::getX()
{
   return fX;
}
inline Float_t HRichPad::getY()
{
   return fY;
}
inline Int_t  HRichPad::getPadX()
{
   return fPadX;
}
inline Int_t  HRichPad::getPadY()
{
   return fPadY;
}
inline Int_t  HRichPad::getPadNr()
{
   return fPadNr;
}
inline Int_t  HRichPad::getPadFlag()
{
   return fPadFlag;
}
inline Bool_t HRichPad::getPadActive()
{
   return fPadActive;
}
inline Float_t HRichPad::getXlab(const Int_t sec)
{
   return fXlab[sec];
}
inline Float_t HRichPad::getYlab(const Int_t sec)
{
   return fYlab[sec];
}
inline Float_t HRichPad::getZlab(const Int_t sec)
{
   return fZlab[sec];
}
inline Float_t HRichPad::getTheta()
{
   return fTheta;
}
inline Float_t HRichPad::getPhi(const Int_t sec)
{
   return fPhi[sec];
}
inline Float_t HRichPad::getAmplitFraction()
{
   return fAmplitFraction;
}

///////////////////////////////////////////////////////////////////
// SETTERS
inline void HRichPad::setXmin(Float_t xmin)
{
   fXmin = xmin;
}
inline void HRichPad::setYmin(Float_t ymin)
{
   fYmin = ymin;
}
inline void HRichPad::setXmax(Float_t xmax)
{
   fXmax = xmax;
}
inline void HRichPad::setYmax(Float_t ymax)
{
   fYmax = ymax;
}
inline void HRichPad::setX(const Float_t x)
{
   fX = x;
}
inline void HRichPad::setY(const Float_t y)
{
   fY = y;
}
inline void HRichPad::setPadX(Int_t padx)
{
   fPadX = padx;
}
inline void HRichPad::setPadY(Int_t pady)
{
   fPadY = pady;
}
inline void HRichPad::setPadNr(Int_t padnr)
{
   fPadNr = padnr;
}
inline void HRichPad::setXY(const Float_t x, const Float_t y)
{
   fX = x;
   fY = y;
}
inline void HRichPad::setPadXY(Int_t padx, Int_t pady)
{
   fPadX = padx;
   fPadY = pady;
}
inline void HRichPad::setPadFlag(Int_t flag)
{
   fPadFlag = flag;
}
inline void HRichPad::setPadActive(Bool_t active)
{
   fPadActive = active;
}
inline void HRichPad::setAmplitFraction(Float_t ampl)
{
   fAmplitFraction = ampl;
}
inline void HRichPad::setXlab(const Int_t sec, const Float_t x)
{
   fXlab[sec] = x;
}
inline void HRichPad::setYlab(const Int_t sec, const Float_t y)
{
   fYlab[sec] = y;
}
inline void HRichPad::setZlab(const Int_t sec, const Float_t z)
{
   fZlab[sec] = z;
}
inline void HRichPad::setXYZlab(const Int_t sec, const Float_t x,
                                const Float_t y, const Float_t z)
{
   fXlab[sec] = x;
   fYlab[sec] = y;
   fZlab[sec] = z;
}
inline void HRichPad::setTheta(const Float_t thetha)
{
   fTheta = thetha;
}
inline void HRichPad::setPhi(const Int_t sec, const Float_t phi)
{
   fPhi[sec] = phi;
}

#endif // RICHPAD_H
 hrichpad.h:1
 hrichpad.h:2
 hrichpad.h:3
 hrichpad.h:4
 hrichpad.h:5
 hrichpad.h:6
 hrichpad.h:7
 hrichpad.h:8
 hrichpad.h:9
 hrichpad.h:10
 hrichpad.h:11
 hrichpad.h:12
 hrichpad.h:13
 hrichpad.h:14
 hrichpad.h:15
 hrichpad.h:16
 hrichpad.h:17
 hrichpad.h:18
 hrichpad.h:19
 hrichpad.h:20
 hrichpad.h:21
 hrichpad.h:22
 hrichpad.h:23
 hrichpad.h:24
 hrichpad.h:25
 hrichpad.h:26
 hrichpad.h:27
 hrichpad.h:28
 hrichpad.h:29
 hrichpad.h:30
 hrichpad.h:31
 hrichpad.h:32
 hrichpad.h:33
 hrichpad.h:34
 hrichpad.h:35
 hrichpad.h:36
 hrichpad.h:37
 hrichpad.h:38
 hrichpad.h:39
 hrichpad.h:40
 hrichpad.h:41
 hrichpad.h:42
 hrichpad.h:43
 hrichpad.h:44
 hrichpad.h:45
 hrichpad.h:46
 hrichpad.h:47
 hrichpad.h:48
 hrichpad.h:49
 hrichpad.h:50
 hrichpad.h:51
 hrichpad.h:52
 hrichpad.h:53
 hrichpad.h:54
 hrichpad.h:55
 hrichpad.h:56
 hrichpad.h:57
 hrichpad.h:58
 hrichpad.h:59
 hrichpad.h:60
 hrichpad.h:61
 hrichpad.h:62
 hrichpad.h:63
 hrichpad.h:64
 hrichpad.h:65
 hrichpad.h:66
 hrichpad.h:67
 hrichpad.h:68
 hrichpad.h:69
 hrichpad.h:70
 hrichpad.h:71
 hrichpad.h:72
 hrichpad.h:73
 hrichpad.h:74
 hrichpad.h:75
 hrichpad.h:76
 hrichpad.h:77
 hrichpad.h:78
 hrichpad.h:79
 hrichpad.h:80
 hrichpad.h:81
 hrichpad.h:82
 hrichpad.h:83
 hrichpad.h:84
 hrichpad.h:85
 hrichpad.h:86
 hrichpad.h:87
 hrichpad.h:88
 hrichpad.h:89
 hrichpad.h:90
 hrichpad.h:91
 hrichpad.h:92
 hrichpad.h:93
 hrichpad.h:94
 hrichpad.h:95
 hrichpad.h:96
 hrichpad.h:97
 hrichpad.h:98
 hrichpad.h:99
 hrichpad.h:100
 hrichpad.h:101
 hrichpad.h:102
 hrichpad.h:103
 hrichpad.h:104
 hrichpad.h:105
 hrichpad.h:106
 hrichpad.h:107
 hrichpad.h:108
 hrichpad.h:109
 hrichpad.h:110
 hrichpad.h:111
 hrichpad.h:112
 hrichpad.h:113
 hrichpad.h:114
 hrichpad.h:115
 hrichpad.h:116
 hrichpad.h:117
 hrichpad.h:118
 hrichpad.h:119
 hrichpad.h:120
 hrichpad.h:121
 hrichpad.h:122
 hrichpad.h:123
 hrichpad.h:124
 hrichpad.h:125
 hrichpad.h:126
 hrichpad.h:127
 hrichpad.h:128
 hrichpad.h:129
 hrichpad.h:130
 hrichpad.h:131
 hrichpad.h:132
 hrichpad.h:133
 hrichpad.h:134
 hrichpad.h:135
 hrichpad.h:136
 hrichpad.h:137
 hrichpad.h:138
 hrichpad.h:139
 hrichpad.h:140
 hrichpad.h:141
 hrichpad.h:142
 hrichpad.h:143
 hrichpad.h:144
 hrichpad.h:145
 hrichpad.h:146
 hrichpad.h:147
 hrichpad.h:148
 hrichpad.h:149
 hrichpad.h:150
 hrichpad.h:151
 hrichpad.h:152
 hrichpad.h:153
 hrichpad.h:154
 hrichpad.h:155
 hrichpad.h:156
 hrichpad.h:157
 hrichpad.h:158
 hrichpad.h:159
 hrichpad.h:160
 hrichpad.h:161
 hrichpad.h:162
 hrichpad.h:163
 hrichpad.h:164
 hrichpad.h:165
 hrichpad.h:166
 hrichpad.h:167
 hrichpad.h:168
 hrichpad.h:169
 hrichpad.h:170
 hrichpad.h:171
 hrichpad.h:172
 hrichpad.h:173
 hrichpad.h:174
 hrichpad.h:175
 hrichpad.h:176
 hrichpad.h:177
 hrichpad.h:178
 hrichpad.h:179
 hrichpad.h:180
 hrichpad.h:181
 hrichpad.h:182
 hrichpad.h:183
 hrichpad.h:184
 hrichpad.h:185
 hrichpad.h:186
 hrichpad.h:187
 hrichpad.h:188
 hrichpad.h:189
 hrichpad.h:190
 hrichpad.h:191
 hrichpad.h:192
 hrichpad.h:193
 hrichpad.h:194
 hrichpad.h:195
 hrichpad.h:196
 hrichpad.h:197
 hrichpad.h:198
 hrichpad.h:199
 hrichpad.h:200
 hrichpad.h:201
 hrichpad.h:202
 hrichpad.h:203
 hrichpad.h:204
 hrichpad.h:205
 hrichpad.h:206
 hrichpad.h:207
 hrichpad.h:208
 hrichpad.h:209
 hrichpad.h:210
 hrichpad.h:211
 hrichpad.h:212
 hrichpad.h:213
 hrichpad.h:214
 hrichpad.h:215
 hrichpad.h:216
 hrichpad.h:217
 hrichpad.h:218
 hrichpad.h:219
 hrichpad.h:220
 hrichpad.h:221
 hrichpad.h:222
 hrichpad.h:223
 hrichpad.h:224
 hrichpad.h:225
 hrichpad.h:226
 hrichpad.h:227
 hrichpad.h:228
 hrichpad.h:229
 hrichpad.h:230
 hrichpad.h:231
 hrichpad.h:232
 hrichpad.h:233
 hrichpad.h:234
 hrichpad.h:235
 hrichpad.h:236
 hrichpad.h:237
 hrichpad.h:238
 hrichpad.h:239
 hrichpad.h:240
 hrichpad.h:241
 hrichpad.h:242
 hrichpad.h:243
 hrichpad.h:244
 hrichpad.h:245
 hrichpad.h:246
 hrichpad.h:247
 hrichpad.h:248
 hrichpad.h:249
 hrichpad.h:250
 hrichpad.h:251
 hrichpad.h:252
 hrichpad.h:253
 hrichpad.h:254
 hrichpad.h:255
 hrichpad.h:256
 hrichpad.h:257
 hrichpad.h:258
 hrichpad.h:259
 hrichpad.h:260
 hrichpad.h:261
 hrichpad.h:262
 hrichpad.h:263
 hrichpad.h:264
 hrichpad.h:265
 hrichpad.h:266
 hrichpad.h:267
 hrichpad.h:268
 hrichpad.h:269
 hrichpad.h:270
 hrichpad.h:271
 hrichpad.h:272
 hrichpad.h:273
 hrichpad.h:274
 hrichpad.h:275
 hrichpad.h:276
 hrichpad.h:277
 hrichpad.h:278
 hrichpad.h:279
 hrichpad.h:280
 hrichpad.h:281
 hrichpad.h:282
 hrichpad.h:283
 hrichpad.h:284
 hrichpad.h:285
 hrichpad.h:286
 hrichpad.h:287
 hrichpad.h:288
 hrichpad.h:289
 hrichpad.h:290
 hrichpad.h:291
 hrichpad.h:292
 hrichpad.h:293
 hrichpad.h:294
 hrichpad.h:295