ROOT logo
#ifndef ALIFMDCALIBPEDESTAL_H
#define ALIFMDCALIBPEDESTAL_H
/* Copyright(c) 1998-2000, ALICE Experiment at CERN, All rights
 * reserved. 
 *
 * See cxx source for full Copyright notice                               
 */
//____________________________________________________________________
//                                                                          
// This class stores a pedestal and pedestal width for each strip in
// the FMD detectors. 
// The values are stored as floats, since they may be results from a
// fit. 
// Need to make algorithm that makes this data
/** @file    AliFMDCalibPedestal.h
    @author  Christian Holm Christensen <cholm@nbi.dk>
    @date    Sun Mar 26 18:30:51 2006
    @brief   Per strip pedestal calibration 
    @ingroup FMD_base
*/
#ifndef ALIFMDFLOATMAP_H
# include <AliFMDFloatMap.h>
#endif
#include <iosfwd>
class AliFMDBoolMap;

//____________________________________________________________________
/** @brief Pedestal value and width for each strip in the FMD 
    @ingroup FMD_base
*/
class AliFMDCalibPedestal : public TObject 
{
public:
  /** CTOR */
  AliFMDCalibPedestal();
  /** DTOR */
  ~AliFMDCalibPedestal() {}
  /** 
   * Copy ctor 
   *
   * @param o Object to copy from  
   */
  AliFMDCalibPedestal(const AliFMDCalibPedestal& o);
  /** 
   * Assignment 
   *
   * @param o Object to assign from
   * @return Reference to this object   
   */
  AliFMDCalibPedestal& operator=(const AliFMDCalibPedestal& o);
  /** 
   * Set the values for a strip. 
   * 
   * @param det  Detector 
   * @param ring Ring 
   * @param sec  Sector 
   * @param str  Strip
   * @param ped  Value of pedestal 
   * @param pedW Width of pedestal 
   */
  void Set(UShort_t det, Char_t ring, UShort_t sec, UShort_t str, 
	   Float_t ped, Float_t pedW);
  /** 
   * Get pedestal for a strip. 
   *
   * @param det  Detector 
   * @param ring Ring 
   * @param sec  Sector 
   * @param str  Strip
   * @return Pedestal for strip 
   */  
  Float_t Value(UShort_t det, Char_t ring, UShort_t sec, UShort_t str);
  /** Get pedestal width for a strip. 
      @param det  Detector 
      @param ring Ring 
      @param sec  Sector 
      @param str  Strip
      @return Pedestal width for strip */  
  Float_t Width(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);
  /** 
   * Make a dead map based on the noise of the channels.  If the noise
   * of a paraticular channel is larger than @a maxW, 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 (noise larger
   * than @a maxW) 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 maxW Maximum value of noise 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 maxW, AliFMDBoolMap* dead=0) const;

  const AliFMDFloatMap& Values() const { return fValue; }
  const AliFMDFloatMap& Widths() const { return fWidth; }
private:
  AliFMDFloatMap fValue; /** Pedestal */
  AliFMDFloatMap fWidth; /** Pedestal width */
  ClassDef(AliFMDCalibPedestal, 1) // Pedestal data for the FMD 
};


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


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