]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TRD/AliTRDgtuParam.h
changes from fzhou
[u/mrichter/AliRoot.git] / TRD / AliTRDgtuParam.h
index ee25ac12e4f74850fcee22f06d2c942a4496a92e..f8fa205912baf8e2bf7098be9920a6863fea57ea 100644 (file)
@@ -6,8 +6,8 @@
 /* $Id: AliTRDgtuParam.h 27496 2008-07-22 08:35:45Z cblume $ */
 
 // --------------------------------------------------------
-// 
-// Singleton class to hold the parameters steering the GTU 
+//
+// Singleton class to hold the parameters steering the GTU
 // tracking
 //
 // --------------------------------------------------------
@@ -21,7 +21,7 @@ class AliTRDgtuParam : public TObject {
   virtual ~AliTRDgtuParam();
 
   static AliTRDgtuParam *Instance(); // Singleton
-  static void Terminate(); 
+  static void Terminate();
 
   static Int_t GetNLinks() { return fgkNLinks; }
   static Int_t GetNLayers() { return fgkNLinks/2; }
@@ -50,10 +50,10 @@ class AliTRDgtuParam : public TObject {
   Int_t GetDeltaY() const { return fgDeltaY; }
   Int_t GetDeltaAlpha() const { return fgDeltaAlpha; }
   Int_t GetZSubchannel(Int_t stack, Int_t layer, Int_t zchannel, Int_t zpos) const;
-  Int_t GetRefLayer(Int_t refLayerIdx) const;
+  static Int_t GetRefLayer(Int_t refLayerIdx);
 //  Bool_t GetFitParams(TVectorD &rhs, Int_t k); // const
   Bool_t GetIntersectionPoints(Int_t k, Float_t &x1, Float_t &x2); // const
-  Float_t GetPt(Int_t a, Float_t b, Float_t x1, Float_t x2) const;
+  static Int_t GetPt(Int_t layerMask, Int_t a, Float_t b, Float_t x1, Float_t x2, Float_t magField);
 
   Bool_t IsInZChannel(Int_t stack, Int_t layer, Int_t zchannel, Int_t zpos) const;
 
@@ -62,6 +62,9 @@ class AliTRDgtuParam : public TObject {
   static void SetDeltaY(Int_t dy) { fgDeltaY = dy; }
   static void SetDeltaAlpha(Int_t da) { fgDeltaAlpha = da; }
 
+  static void SetUseGTUconst(Bool_t b) { fgUseGTUconst = b; }
+  static Bool_t GetUseGTUconst() { return fgUseGTUconst; }
+
   // z-channel map
   Int_t GenerateZChannelMap(); // could have different modes (for beam-beam, cosmics, ...)
   Bool_t DisplayZChannelMap(Int_t zchannel = -1, Int_t subch = 0) const;
@@ -77,12 +80,9 @@ class AliTRDgtuParam : public TObject {
   void SetMagField(Float_t field) { fMagField = field; }
   Float_t GetMagField() const { return fMagField; }
 
- protected:
   static const Int_t fgkNZChannels = 3; // No. of z-channels
   static const Int_t fgkNLinks = 12;   // No. of links
   static const Int_t fgkFixLayer = 2;  // which layer is fixed for the generation of the z-channel map
-  static       Int_t fgDeltaY;         // accepted deviation in y_proj, default: 9
-  static       Int_t fgDeltaAlpha;      // accepted deviation in alpha, default: 11
   static const Int_t fgkNRefLayers = 3;         // no. of reference layers
 
   static const Float_t fgkBinWidthY; // bin width for y-position
@@ -94,7 +94,17 @@ class AliTRDgtuParam : public TObject {
   static const Int_t fgkBitExcessY; // excess bits for y-position
   static const Int_t fgkBitExcessAlpha; // excess bits for alpha
   static const Int_t fgkBitExcessYProj; // excess bits for projected y-position
+
+ protected:
+  static       Int_t fgDeltaY;         // accepted deviation in y_proj, default: 9
+  static       Int_t fgDeltaAlpha;      // accepted deviation in alpha, default: 11
+
+  static       Int_t fgRefLayers[3];    // reference layers for track finding
+
+  static       Bool_t fgUseGTUconst;    // use constants as in the GTU for the calculations
+                                              // instead of geometry derived quantities
+  static const Bool_t fgZChannelMap[5][16][6][16]; // z-channel tables as in GTU
+
   Float_t fVertexSize;         // assumed vertex size (z-dir.) for the z-channel map
 
   Int_t fZChannelMap[5][16][6][16];              // must be changed
@@ -105,8 +115,6 @@ class AliTRDgtuParam : public TObject {
   Float_t fBki[6]; // coefficients used for the fit, calculated for the current tracklet mask
   Float_t fCki[6]; // coefficients used for the fit, calculated for the current tracklet mask
 
-  Int_t *fRefLayers;           //[fgkNRefLayers] reference layers for track finding
-
   Float_t fMagField;            // magnetic field in T
 
   AliTRDgeometry *fGeo;                //! pointer to the TRD geometry