ROOT logo
#ifndef ALIFMDCALIBGAIN_H
#define ALIFMDCALIBGAIN_H
/* Copyright(c) 1998-2000, ALICE Experiment at CERN, All rights
 * reserved. 
 *
 * See cxx source for full Copyright notice                               
 */
/** @file    AliFMDCalibGain.h
    @author  Christian Holm Christensen <cholm@nbi.dk>
    @date    Sun Mar 26 18:30:16 2006
    @brief   Per strip gain calibration 
*/
// Gain value and width for each strip in the FMD. 
// Foo 
// Bar 
//
#ifndef ALIFMDFLOATMAP_H
# include <AliFMDFloatMap.h>
#endif
#include <iosfwd>
class AliFMDBoolMap;

//____________________________________________________________________
/** @brief Gain value and width for each strip in the FMD 
    @ingroup FMD_base
*/
class AliFMDCalibGain : public TObject 
{
public:
  /** Constructor */
  AliFMDCalibGain();
  /** Destructor */
  ~AliFMDCalibGain() {}
  /** Copy constructor 
      @param o object to copy from */
  AliFMDCalibGain(const AliFMDCalibGain& o);
  /** Assignment operator 
      @param o Object to assign from */
  AliFMDCalibGain& operator=(const AliFMDCalibGain& o);
  /** Set the values for a strip. 
      @param det  Detector 
      @param ring Ring 
      @param sec  Sector 
      @param str  Strip
      @param val  Value of gain */
  void Set(UShort_t det, Char_t ring, UShort_t sec, UShort_t str, Float_t val);
  /** Set the global threshold 
      @param thres Threshold */
  void Set(Float_t thres) { fThreshold = thres; }
  /** Get gain for a strip. 
      @param det  Detector 
      @param ring Ring 
      @param sec  Sector 
      @param str  Strip
      @return Gain for strip */
  Float_t Value(UShort_t det, Char_t ring, UShort_t sec, UShort_t str);

  /**
     Read information from file and set values
     @param inFile inputFile
   */
  Bool_t ReadFromFile(std::istream & inFile);

  /** @return threshold */
  Float_t Threshold() const { return fThreshold; }
  const AliFMDFloatMap& Values() const { return fValue; }
  /** 
   * Make a dead map based on the gain of the channels.  If the gain 
   * of a paraticular channel falls outside the range specified by @a
   * min and @a max, then the channel is marked as dead. 
   *
   * If the argument @a dead is non-null, then the map passed is
   * modified.  That is, channels marked as dead in the map will
   * remain marked.   Channels that meat the criterion (gain outside
   * the specified range) will in addition be marked as dead. 
   *
   * If the argument @a dead is null, then a new map is created and a
   * pointer to this will be returned. 
   * 
   * @param min Minimum value of gain for a channel before it is
   * @param max Maximum value of gain for a channel before it is
   * marked as dead. 
   * @param dead If non-null, then modify this map. 
   * 
   * @return A pointer to possibly newly allocated dead map. 
   */
  AliFMDBoolMap* MakeDeadMap(Float_t min, Float_t max, 
			     AliFMDBoolMap* dead=0) const;
private:
  AliFMDFloatMap fValue;       // Map
  Float_t        fThreshold;   // Global threshold
  ClassDef(AliFMDCalibGain, 1) // Gain data for the FMD 
};


#endif
//____________________________________________________________________
//
// Local Variables:
//   mode: C++
// End:
//


 AliFMDCalibGain.h:1
 AliFMDCalibGain.h:2
 AliFMDCalibGain.h:3
 AliFMDCalibGain.h:4
 AliFMDCalibGain.h:5
 AliFMDCalibGain.h:6
 AliFMDCalibGain.h:7
 AliFMDCalibGain.h:8
 AliFMDCalibGain.h:9
 AliFMDCalibGain.h:10
 AliFMDCalibGain.h:11
 AliFMDCalibGain.h:12
 AliFMDCalibGain.h:13
 AliFMDCalibGain.h:14
 AliFMDCalibGain.h:15
 AliFMDCalibGain.h:16
 AliFMDCalibGain.h:17
 AliFMDCalibGain.h:18
 AliFMDCalibGain.h:19
 AliFMDCalibGain.h:20
 AliFMDCalibGain.h:21
 AliFMDCalibGain.h:22
 AliFMDCalibGain.h:23
 AliFMDCalibGain.h:24
 AliFMDCalibGain.h:25
 AliFMDCalibGain.h:26
 AliFMDCalibGain.h:27
 AliFMDCalibGain.h:28
 AliFMDCalibGain.h:29
 AliFMDCalibGain.h:30
 AliFMDCalibGain.h:31
 AliFMDCalibGain.h:32
 AliFMDCalibGain.h:33
 AliFMDCalibGain.h:34
 AliFMDCalibGain.h:35
 AliFMDCalibGain.h:36
 AliFMDCalibGain.h:37
 AliFMDCalibGain.h:38
 AliFMDCalibGain.h:39
 AliFMDCalibGain.h:40
 AliFMDCalibGain.h:41
 AliFMDCalibGain.h:42
 AliFMDCalibGain.h:43
 AliFMDCalibGain.h:44
 AliFMDCalibGain.h:45
 AliFMDCalibGain.h:46
 AliFMDCalibGain.h:47
 AliFMDCalibGain.h:48
 AliFMDCalibGain.h:49
 AliFMDCalibGain.h:50
 AliFMDCalibGain.h:51
 AliFMDCalibGain.h:52
 AliFMDCalibGain.h:53
 AliFMDCalibGain.h:54
 AliFMDCalibGain.h:55
 AliFMDCalibGain.h:56
 AliFMDCalibGain.h:57
 AliFMDCalibGain.h:58
 AliFMDCalibGain.h:59
 AliFMDCalibGain.h:60
 AliFMDCalibGain.h:61
 AliFMDCalibGain.h:62
 AliFMDCalibGain.h:63
 AliFMDCalibGain.h:64
 AliFMDCalibGain.h:65
 AliFMDCalibGain.h:66
 AliFMDCalibGain.h:67
 AliFMDCalibGain.h:68
 AliFMDCalibGain.h:69
 AliFMDCalibGain.h:70
 AliFMDCalibGain.h:71
 AliFMDCalibGain.h:72
 AliFMDCalibGain.h:73
 AliFMDCalibGain.h:74
 AliFMDCalibGain.h:75
 AliFMDCalibGain.h:76
 AliFMDCalibGain.h:77
 AliFMDCalibGain.h:78
 AliFMDCalibGain.h:79
 AliFMDCalibGain.h:80
 AliFMDCalibGain.h:81
 AliFMDCalibGain.h:82
 AliFMDCalibGain.h:83
 AliFMDCalibGain.h:84
 AliFMDCalibGain.h:85
 AliFMDCalibGain.h:86
 AliFMDCalibGain.h:87
 AliFMDCalibGain.h:88
 AliFMDCalibGain.h:89
 AliFMDCalibGain.h:90
 AliFMDCalibGain.h:91
 AliFMDCalibGain.h:92
 AliFMDCalibGain.h:93
 AliFMDCalibGain.h:94
 AliFMDCalibGain.h:95
 AliFMDCalibGain.h:96
 AliFMDCalibGain.h:97
 AliFMDCalibGain.h:98
 AliFMDCalibGain.h:99
 AliFMDCalibGain.h:100
 AliFMDCalibGain.h:101
 AliFMDCalibGain.h:102
 AliFMDCalibGain.h:103
 AliFMDCalibGain.h:104