ROOT logo
#ifndef ALIFMDCALIBSTRIPRANGE_H
#define ALIFMDCALIBSTRIPRANGE_H
/* Copyright(c) 1998-2000, ALICE Experiment at CERN, All rights
 * reserved. 
 *
 * See cxx source for full Copyright notice                               
 */
//____________________________________________________________________
//                                                                          
// This class stores which strips are read-out.  
// In principle this can be set for each half-ring.   
// However, in real life, all the detectors will probably read out all
// strips, and dead areas can be handled off-line. 
// This information comes from DCS or the like.
//
/** @file    AliFMDCalibStripRange.h
    @author  Christian Holm Christensen <cholm@nbi.dk>
    @date    Sun Mar 26 18:32:14 2006
    @brief   Per digitizer card pulser calibration
    @ingroup FMD_base
*/
#include <iosfwd>
#ifndef ROOT_TObject
# include <TObject.h>
#endif
#ifndef ALIFMDUSHORTMAP_H
# include "AliFMDUShortMap.h"
#endif
#ifndef ROOT_TArrayI
# include <TArrayI.h>
#endif

//____________________________________________________________________
/** @brief Per digitizer card pulser calibration
    @ingroup FMD_base
*/
class AliFMDCalibStripRange : public TObject
{
public:
  /** CTOR */
  AliFMDCalibStripRange();
  /** Copy CTOR
      @param o Object to copy from  */
  AliFMDCalibStripRange(const AliFMDCalibStripRange& o);
  /** Assignment operator 
      @param o Object to assign from 
      @return Reference to assign from  */
  AliFMDCalibStripRange& operator=(const AliFMDCalibStripRange& o);
  /** Set sample for a DDL
      @param det   Detector #
      @param ring  Ring ID 
      @param sec   Sector # 
      @param str   Strip number (not used)
      @param min   Minimum strip (0-127)
      @param max   Maximum strip (0-127) */
  void Set(UShort_t det, Char_t ring, UShort_t sec, UShort_t str, 
	   UShort_t min, UShort_t max);
  /** Get minimum strip read out (0-127)
      @param det  Detector #
      @param ring Ring ID 
      @param sec  Sector # 
      @param str  Strip number (not used)
      @return Minimum strip  */
  UShort_t Min(UShort_t det, Char_t ring, UShort_t sec, UShort_t str=0) const;
  /** Get maximum strip read out (0-127)
      @param det  Detector #
      @param ring Ring ID 
      @param sec  Sector # 
      @param str  Strip number (not used)
      @return Maximum strip  */
  UShort_t Max(UShort_t det, Char_t ring, UShort_t sec, UShort_t str=0) const;
  /**
     Dump stored strip ranges to file passed as ofstream
     @param outFile Outputfile
  */
  void WriteToFile(std::ostream &, Bool_t* detectors=0);
  /**
     Read information from file and set values
     @param inFile inputFile
   */
  void ReadFromFile(std::istream &);
  
  const AliFMDUShortMap& Ranges() const { return fRanges; }
protected:
  // TArrayI fRates; // Sample rates 
  AliFMDUShortMap fRanges; // Min max 
  ClassDef(AliFMDCalibStripRange,1); // Sample rates 
};

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


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