]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TRD/AliTRDfeeParam.h
Fixing warnings
[u/mrichter/AliRoot.git] / TRD / AliTRDfeeParam.h
index c43c249f052ae6250cb1f3377355350d36069e36..efeec152da966cad8a9663c53ea428d27470c525 100644 (file)
@@ -5,16 +5,21 @@
 
 /* $Id$ */
 
-//////////////////////////////////////////////////
-//                                              //
-//  TRD front end electronics parameters class  //
-//  Contains all FEE (MCM, TRAP, PASA) related  //
-//  parameters, constants, and mapping.         //
-//                                              //
-//////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+//                                                                        //
+//  TRD front end electronics parameters class                            //
+//  Contains all FEE (MCM, TRAP, PASA) related                            //
+//  parameters, constants, and mapping.                                   //
+//                                                                        //
+//  Author:                                                               //
+//    Ken Oyama (oyama@physi.uni-heidelberg.de)                           //
+//                                                                        //
+////////////////////////////////////////////////////////////////////////////
 
 #include <TObject.h>
 
+class TRootIoCtor;
+
 class AliTRDCommonParam;
 class AliTRDpadPlane;
 class AliTRDgeometry;
@@ -25,6 +30,7 @@ class AliTRDfeeParam : public TObject
 
  public:
 
+  AliTRDfeeParam(TRootIoCtor *);
   AliTRDfeeParam(const AliTRDfeeParam &p);
   virtual           ~AliTRDfeeParam();
   AliTRDfeeParam    &operator=(const AliTRDfeeParam &p);
@@ -36,34 +42,46 @@ class AliTRDfeeParam : public TObject
   // Translation from MCM to Pad and vice versa
   virtual Int_t    GetPadRowFromMCM(Int_t irob, Int_t imcm) const;
   virtual Int_t    GetPadColFromADC(Int_t irob, Int_t imcm, Int_t iadc) const;
+  virtual Int_t    GetExtendedPadColFromADC(Int_t irob, Int_t imcm, Int_t iadc) const;
   virtual Int_t    GetMCMfromPad(Int_t irow, Int_t icol) const;
+  virtual Int_t    GetMCMfromSharedPad(Int_t irow, Int_t icol) const;
   virtual Int_t    GetROBfromPad(Int_t irow, Int_t icol) const;
+  virtual Int_t    GetROBfromSharedPad(Int_t irow, Int_t icol) const;
   virtual Int_t    GetRobSide(Int_t irob) const;
   virtual Int_t    GetColSide(Int_t icol) const;
 
   static  Float_t  GetSamplingFrequency() { return (Float_t)fgkLHCfrequency / 4000000.0; }
-  static  Int_t    GetNmcmRob()           { return fgkNmcmRob; }
+  static  Int_t    GetNmcmRob()           { return fgkNmcmRob;      }
   static  Int_t    GetNmcmRobInRow()      { return fgkNmcmRobInRow; }
   static  Int_t    GetNmcmRobInCol()      { return fgkNmcmRobInCol; }
-  static  Int_t    GetNrobC0()            { return fgkNrobC0; }
-  static  Int_t    GetNrobC1()            { return fgkNrobC1; }
-  static  Int_t    GetNadcMcm()           { return fgkNadcMcm; }
-  // static  Int_t    GetNtimebin()       { return fgkNtimebin; }
-  static  Int_t    GetNcol()              { return fgkNcol; }
-  static  Int_t    GetNcolMcm()           { return fgkNcolMcm; }
-  static  Int_t    GetNrowC0()            { return fgkNrowC0; }
-  static  Int_t    GetNrowC1()            { return fgkNrowC1; }
-
-  // static  Int_t    GetADCpedestal()    { return fgkADCpedestal; }
-  // static  Int_t    GetADCnoise()       { return fgkADCnoise; }
-  static  Int_t    GetADCDAC()            { return fgkADCDAC; }
-
-  static  Bool_t   isPFon()               { return fgkPFon; }
-  static  Bool_t   isGFon()               { return fgkGFon; }
-  static  Bool_t   isTFon()               { return fgkTFon; }
-
-  static  Int_t    GetPFtimeConstant()    {  return fgkPFtimeConstant; }
-  static  Int_t    GetPFeffectPedestal()  {  return fgkPFeffectPedestal; }
+  static  Int_t    GetNrobC0()            { return fgkNrobC0;       }
+  static  Int_t    GetNrobC1()            { return fgkNrobC1;       }
+  static  Int_t    GetNadcMcm()           { return fgkNadcMcm;      }
+  // static  Int_t    GetNtimebin()       { return fgkNtimebin;     }
+  static  Int_t    GetNcol()              { return fgkNcol;         }
+  static  Int_t    GetNcolMcm()           { return fgkNcolMcm;      }
+  static  Int_t    GetNrowC0()            { return fgkNrowC0;       }
+  static  Int_t    GetNrowC1()            { return fgkNrowC1;       }
+
+  // static  Int_t    GetADCpedestal()    { return fgkADCpedestal;  }
+  // static  Int_t    GetADCnoise()       { return fgkADCnoise;     }
+  static  Int_t    GetADCDAC()            { return fgkADCDAC;       }
+
+  static  Bool_t   IsPFon()               { return fgkPFon;         }
+  static  Bool_t   IsGFon()               { return fgkGFon;         }
+  static  Bool_t   IsTFon()               { return fgkTFon;         }
+
+  static  Int_t    GetPFtimeConstant()    { return fgkPFtimeConstant;   }
+  static  Int_t    GetPFeffectPedestal()  { return fgkPFeffectPedestal; }
+
+  //new
+  static  Int_t    GetQacc0Start()        {  return fgkPREPqAcc0Start; }
+  static  Int_t    GetQacc0End()          {  return fgkPREPqAcc0End; }
+  static  Int_t    GetQacc1Start()        {  return fgkPREPqAcc1Start; }
+  static  Int_t    GetQacc1End()          {  return fgkPREPqAcc1End; }
+          Float_t  GetMinClusterCharge() const {  return fgkMinClusterCharge; }
+  static  Int_t    GetLinearFitStart()    {  return fgkPREPLinearFitStart; }
+  static  Int_t    GetLinearFitEnd()      {  return fgkPREPLinearFitEnd;  }
 
   //        Float_t  GetClusThr()           { return fClusThr; };
   //        Float_t  GetPadThr() const { return fPadThr; };
@@ -72,34 +90,50 @@ class AliTRDfeeParam : public TObject
   //virtual void     GetFilterParam(Float_t &r1, Float_t &r2, Float_t &c1, Float_t &c2, Float_t &ped) const;
   //        Int_t    GetFilterType() const { return fFilterType; };
 
-  static  Int_t    GetTFtype()            { return fgkTFtype; }
-  static  Int_t    GetTFnExp()            { return fgkTFnExp; }
-          Float_t  GetTFr1()              { return fTFr1; }
-          Float_t  GetTFr2()              { return fTFr2; }
-          Float_t  GetTFc1()              { return fTFc1; }
-          Float_t  GetTFc2()              { return fTFc2; }
-
-  static  Float_t  GetTFattPar()          { return ((Float_t)fgkTFattPar1) / ((Float_t)fgkTFattPar2) ; }
-  static  Float_t  GetTFf0()              { return 1 + fgkTFon*(-1+GetTFattPar()); }   // 1 if TC off
-  
-  static  Int_t    GetEBsglIndThr()       { return fgkEBsglIndThr; }
-  static  Int_t    GetEBsumIndThr()       { return fgkEBsumIndThr; }
-  static  Int_t    GetEBindLUT()          { return fgkEBindLUT; }
-  static  Int_t    GetEBignoreNeighbour() { return fgkEBignoreNeighbour; }
+  static  Int_t    GetTFtype()            { return fgkTFtype;       }
+  //static  Int_t    GetTFnExp()            { return fgkTFnExp;       }
+          Int_t    GetTFnExp()      const { return fTFnExp;         }
+          Float_t  GetTFr1()        const { return fTFr1;           }
+          Float_t  GetTFr2()        const { return fTFr2;           }
+          Float_t  GetTFc1()        const { return fTFc1;           }
+          Float_t  GetTFc2()        const { return fTFc2;           }
+
+ // for tracklets
+         Bool_t   GetTracklet()         const { return fgTracklet; } 
+  static  void     SetTracklet(Bool_t trackletSim = kTRUE) { fgTracklet = trackletSim; }
+          Int_t    GetMaxNrOfTracklets() const { return fgkMaxNrOfTracklets; } 
+         Bool_t   GetMCTrackletOutput() const { return fgkMCTrackletOutput; }
+
+  static  Float_t  GetTFattPar()          { return ((Float_t) fgkTFattPar1) / ((Float_t) fgkTFattPar2); }
+          Float_t  GetTFf0()        const { return 1.0 + fgkTFon*(-1.0+GetTFattPar()); }   // 1 if TC off
+
+          void     SetEBsglIndThr(Int_t val);  
+          Int_t    GetEBsglIndThr() const { return fEBsglIndThr;    }
+
+          void     SetEBsumIndThr(Int_t val);
+          Int_t    GetEBsumIndThr() const { return fEBsumIndThr;    }
+
+          void     SetEBindLUT(Int_t val);
+          Int_t    GetEBindLUT()    const { return fEBindLUT;       }
+
+          void     SetEBignoreNeighbour(Int_t val);
+          Int_t    GetEBignoreNeighbour() const             { return fEBignoreNeighbour; }
 
   // Concerning raw data format
-          Int_t    GetRAWversion();
+          Int_t    GetRAWversion() const                    { return fRAWversion;        }
           void     SetRAWversion( Int_t rawver );
-          Bool_t   GetRAWstoreRaw();
-          void     SetRAWstoreRaw( Bool_t storeraw );
+          Bool_t   GetRAWstoreRaw() const                   { return fRAWstoreRaw;       }
+          void     SetRAWstoreRaw( Bool_t storeraw )        { fRAWstoreRaw = storeraw;   }
+
+          void     SetXenon();
+          void     SetArgon();
 
  protected:
 
-  static AliTRDfeeParam *fgInstance;
-  static Bool_t          fgTerminated;       //  Defines if this class has already been terminated                                                        
+  static AliTRDfeeParam *fgInstance;         // Singleton instance
+  static Bool_t          fgTerminated;       // Defines if this class has already been terminated
 
-  //  AliTRDgeometry    *fGeo;     // TRD geometry class
-  AliTRDCommonParam *fCP;      // TRD common parameters class
+  AliTRDCommonParam     *fCP;                // TRD common parameters class
 
   // Remark: ISO C++ allows initialization of static const values only for integer.
 
@@ -118,8 +152,6 @@ class AliTRDfeeParam : public TObject
   static const Int_t    fgkNrowC1            = 16;        // Number of Rows per C1 chamber  (old fgkRowmaxC1)
 
   // ADC intrinsic parameters
-  // static const Int_t    fgkADCpedestal    = 0;         // This is simulation parameter and not the value set in FEE, moved to simParam
-  // static const Int_t    fgkADCnoise       = 10;        // This is simulation parameter and not the value set in FEE, moved to simParam
   static const Int_t    fgkADCDAC            = 0;         // 5 bit ADC gain parameter
 
   // TRAP filter global setup
@@ -128,58 +160,73 @@ class AliTRDfeeParam : public TObject
   static const Bool_t   fgkTFon              = kTRUE;     // Tail cancelation Filter enable/disable flag (old name fTCOn)
 
   // PF setup
-  static const Int_t    fgkPFtimeConstant    =  0;    // 0 for fastest, 3 for slowest (no effect, probably)
-  static const Int_t    fgkPFeffectPedestal  = 10;    // [in ADC units] the desired baseline (Additive)
+  static const Int_t    fgkPFtimeConstant    =  0;        // 0 for fastest, 3 for slowest (no effect, probably)
+  static const Int_t    fgkPFeffectPedestal  = 10;        // [in ADC units] the desired baseline (Additive)
 
   // GF setup
-  static const Int_t    fgkGFnoise           =  0;    // Noise level increased by gain filter x 100 [in ADC] (to be measured)
+  static const Int_t    fgkGFnoise           =  0;        // Noise level increased by gain filter x 100 [in ADC] (to be measured)
 
   // TF setup
-  static const Int_t    fgkTFtype            = 1;     // TC type (0=analog, 1=digital, 2=MI) (old name fFilterType)
+  static const Int_t    fgkTFtype            = 1;         // TC type (0=analog, 1=digital, 2=MI, 3=close to electronics) (old name fFilterType)
 
   // OLD TF setup (calculated from above)  (valid only for fgkTFsimType = 0 or 1)
-  static const Int_t    fgkTFnExp          = 1;       // Number of exponential for simType 0 and 1
+  //static const Int_t    fgkTFnExp          = 1;           // Number of exponential for simType 0 and 1
+               Int_t    fTFnExp;                            // Number of exponential for simType 0 and 1
+
+ // Tracklet  processing on/off 
+  static       Bool_t   fgTracklet; // tracklet processing
+
+  static const Int_t    fgkMaxNrOfTracklets = 4;          // Max. nr of tracklet words for one mcm
+
+  // additional tracklet folder structure output, 
+  // containing all necessary Monte Carlo information; maybe this should go somewhere else;
+  static const Bool_t   fgkMCTrackletOutput = kTRUE;      // Default should be kTRUE
 
   // following need Instance because initialized in constructor
-               Float_t  fTFr1;                        // Time constant [us] long (old name fR1)
-               Float_t  fTFr2;                        // Time constant [us] short(old name fR2)
-               Float_t  fTFc1;                        // Weight long  (old name fC1)
-               Float_t  fTFc2;                        // Weight short (old name fC2)
+               Float_t  fTFr1;                            // Time constant [us] long (old name fR1)
+               Float_t  fTFr2;                            // Time constant [us] short(old name fR2)
+               Float_t  fTFc1;                            // Weight long  (old name fC1)
+               Float_t  fTFc2;                            // Weight short (old name fC2)
 
   // here is for TRAP simulation (not yet used)
-  static const Int_t    fgkTFdecayWeightL     = 270;  // 0 to 1024 corresponds to 0 to 0.5
-  static const Int_t    fgkTFdecayParL        = 348;  // 0 to 511 corresponds to 0.75 to 1
-  static const Int_t    fgkTFdecayParS        = 449;  // 0 to 511 correponds to 0.25 to 0.5
-  static const Int_t    fgkTFattPar1          = 45;   // attenuationParameter = fgkTFattenuationParameter1/fgkTFattenuationParameter2
-  static const Int_t    fgkTFattPar2          = 14;   //                      = -alphaL/ln(lambdaL)-(1-alphaL)/ln(lambdaS)
+  static const Int_t    fgkTFdecayWeightL     = 270;      // 0 to 1024 corresponds to 0 to 0.5
+  static const Int_t    fgkTFdecayParL        = 348;      // 0 to 511 corresponds to 0.75 to 1
+  static const Int_t    fgkTFdecayParS        = 449;      // 0 to 511 correponds to 0.25 to 0.5
+  static const Int_t    fgkTFattPar1          = 45;       // attenuationParameter = fgkTFattenuationParameter1/fgkTFattenuationParameter2
+  static const Int_t    fgkTFattPar2          = 14;       //                      = -alphaL/ln(lambdaL)-(1-alphaL)/ln(lambdaS)
 
   // ZS parameters
-  static const Int_t    fgkEBsglIndThr        = 5;    // EBIS in ADC units
-  static const Int_t    fgkEBsumIndThr        = 5;    // EBIT in ADC units
-  static const Int_t    fgkEBindLUT           = 0xF0; // EBIL lookup table
-  static const Int_t    fgkEBignoreNeighbour  = 0;    // EBIN 0:include neighbor
+               Int_t    fEBsglIndThr;                     // EBIS in ADC units
+               Int_t    fEBsumIndThr;                     // EBIT in ADC units
+               Int_t    fEBindLUT;                        // EBIL lookup table
+               Int_t    fEBignoreNeighbour;               // EBIN 0:include neighbor
 
   // Charge accumulators
-  static const Int_t    fgkPREPqAcc0Start      =  0;   // Preprocessor Charge Accumulator 0 Start
-  static const Int_t    fgkPREPqAcc0End        = 10;   // Preprocessor Charge Accumulator 0 End
-  static const Int_t    fgkPREPqAcc1Start      = 11;   // Preprocessor Charge Accumulator 1 Start
-  static const Int_t    fgkPREPqAcc1End        = 20;   // Preprocessor Charge Accumulator 1 End
-  static const Int_t    fgkMinClusterCharge    = 20;   // Hit detection [in ADC units]
+  static const Int_t    fgkPREPqAcc0Start     =  5;       // Preprocessor Charge Accumulator 0 Start
+  static const Int_t    fgkPREPqAcc0End       = 10;       // Preprocessor Charge Accumulator 0 End
+  static const Int_t    fgkPREPqAcc1Start     = 11;       // Preprocessor Charge Accumulator 1 Start
+  static const Int_t    fgkPREPqAcc1End       = 20;       // Preprocessor Charge Accumulator 1 End
+  static const Int_t    fgkMinClusterCharge   = 20;       // Hit detection [in ADC units]
+
+  //new
+  static const Int_t    fgkPREPLinearFitStart = 5;        // Time constants for linear fit
+  static const Int_t    fgkPREPLinearFitEnd   = 20;       // Time constants for linear fit
 
   // OLD TRAP processing parameters calculated from above
-  //static const Float_t  fClusThr;                     // Cluster threshold
-  //static const Float_t  fPadThr;                      // Pad threshold
+  //static const Float_t  fClusThr;                       // Cluster threshold
+  //static const Float_t  fPadThr;                        // Pad threshold
 
   // For raw production
-               Int_t    fRAWversion;                    // Raw data production version
-  static const Int_t    fgkMaxRAWversion       = 3;     // Maximum raw version number supported
-               Bool_t   fRAWstoreRaw;                   // Store unfiltered data for raw data stream
+               Int_t    fRAWversion;                      // Raw data production version
+  static const Int_t    fgkMaxRAWversion      = 3;        // Maximum raw version number supported
+               Bool_t   fRAWstoreRaw;                     // Store unfiltered data for raw data stream
 
  private:
 
   AliTRDfeeParam();
 
-  ClassDef(AliTRDfeeParam,1)  //
-};
+  ClassDef(AliTRDfeeParam,3)                              // The TRD front end electronics parameter
 
+};
 #endif
+