ROOT logo
/**************************************************************************
 * Copyright(c) 2004, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/
/* $Id$ */
/** @file    AliFMDDigit.cxx
    @author  Christian Holm Christensen <cholm@nbi.dk>
    @date    Mon Mar 27 12:37:41 2006
    @brief   Digits for the FMD 
*/
//////////////////////////////////////////////////////////////////////
//
//  Digits classes for the FMD                
//
//  Digits consists of
//   - Detector #
//   - Ring ID                                             
//   - Sector #     
//   - Strip #
//   - ADC count in this channel                                  
//
//  Digits consists of
//   - Detector #
//   - Ring ID                                             
//   - Sector #     
//   - Strip #
//   - Total energy deposited in the strip
//   - ADC count in this channel                                  
//
// As the Digits and SDigits have so much in common, the classes
// AliFMDDigit and AliFMDSDigit are implemented via a base
// class AliFMDBaseDigit.
///
//              +-----------------+
//              | AliFMDBaseDigit |
//              +-----------------+
//                      ^
//                      |
//                +------------+
//                |            |
//      +-------------+ +--------------+
//      | AliFMDDigit |	| AliFMDSDigit |
//      +-------------+	+--------------+
//
// (Note, that I'd really would have liked to implement AliFMDHit as a
// derived class from some base class - say AliFMDStrip, and the Digit
// classes would (eventually) have derived from that as well.
// However, ROOT doesn't do well with multiple inheritance, so I chose
// not to anyway).
//
// Latest changes by Christian Holm Christensen
//
//////////////////////////////////////////////////////////////////////

#include "AliFMDDigit.h"	// ALIFMDDIGIT_H
#include "Riostream.h"		// ROOT_Riostream
#include <TString.h>

//====================================================================
ClassImp(AliFMDDigit)
#if 0
; // Here to make Emacs happy
#endif

//____________________________________________________________________
AliFMDDigit::AliFMDDigit()
  : AliFMDBaseDigit(),
    fCount1(0),
    fCount2(-1),
    fCount3(-1),
    fCount4(-1)
{
  // CTOR
}

//____________________________________________________________________
AliFMDDigit::AliFMDDigit(UShort_t       detector, 
			 Char_t         ring, 
			 UShort_t       sector, 
			 UShort_t       strip, 
			 UShort_t       count1,
			 Short_t        count2, 
			 Short_t        count3,
			 Short_t        count4, 
			 UShort_t	nrefs,
			 const Int_t*	refs)
  : AliFMDBaseDigit(detector, ring, sector, strip), 
    fCount1(count1),
    fCount2(count2),
    fCount3(count3), 
    fCount4(count4)
{
  //
  // Creates a real data digit object
  //
  // Parameters 
  //
  //    detector  Detector # (1, 2, or 3)                      
  //    ring	  Ring ID ('I' or 'O')
  //    sector	  Sector # (For inner/outer rings: 0-19/0-39)
  //    strip	  Strip # (For inner/outer rings: 0-511/0-255)
  //    count1    ADC count (a 10-bit word)
  //    count2    ADC count (a 10-bit word) -1 if not used
  //    count3    ADC count (a 10-bit word) -1 if not used
  if (!refs) return;
  for (Int_t i = 0; i < nrefs; i++) AddTrack(refs[i]);
}

//____________________________________________________________________
const char*
AliFMDDigit::GetTitle() const 
{ 
  // Get the title 
  static TString t;
  t = Form("ADC: %d", Counts());
  return t.Data();
}

//____________________________________________________________________
void
AliFMDDigit::Print(Option_t* option) const 
{
  // Print digit to standard out 
  AliFMDBaseDigit::Print();
  std::cout << "\t" 
	    << std::setw(4) << fCount1 << " (" 
	    << std::setw(4) << fCount2 << "," 
	    << std::setw(4) << fCount3 << "," 
	    << std::setw(4) << fCount4 << ") = " 
	    << std::setw(4) << Counts() << std::flush;
  TString opt(option);
  if (opt.Contains("l", TString::kIgnoreCase)) {
    std::cout << " ";
    for (Int_t i = 0; i < 3; i++) 
      std::cout << (i == 0 ? "" : ",") << std::setw(5) << fTracks[i];
  }
  std::cout << std::endl;
}

//____________________________________________________________________
//
// EOF
//
 AliFMDDigit.cxx:1
 AliFMDDigit.cxx:2
 AliFMDDigit.cxx:3
 AliFMDDigit.cxx:4
 AliFMDDigit.cxx:5
 AliFMDDigit.cxx:6
 AliFMDDigit.cxx:7
 AliFMDDigit.cxx:8
 AliFMDDigit.cxx:9
 AliFMDDigit.cxx:10
 AliFMDDigit.cxx:11
 AliFMDDigit.cxx:12
 AliFMDDigit.cxx:13
 AliFMDDigit.cxx:14
 AliFMDDigit.cxx:15
 AliFMDDigit.cxx:16
 AliFMDDigit.cxx:17
 AliFMDDigit.cxx:18
 AliFMDDigit.cxx:19
 AliFMDDigit.cxx:20
 AliFMDDigit.cxx:21
 AliFMDDigit.cxx:22
 AliFMDDigit.cxx:23
 AliFMDDigit.cxx:24
 AliFMDDigit.cxx:25
 AliFMDDigit.cxx:26
 AliFMDDigit.cxx:27
 AliFMDDigit.cxx:28
 AliFMDDigit.cxx:29
 AliFMDDigit.cxx:30
 AliFMDDigit.cxx:31
 AliFMDDigit.cxx:32
 AliFMDDigit.cxx:33
 AliFMDDigit.cxx:34
 AliFMDDigit.cxx:35
 AliFMDDigit.cxx:36
 AliFMDDigit.cxx:37
 AliFMDDigit.cxx:38
 AliFMDDigit.cxx:39
 AliFMDDigit.cxx:40
 AliFMDDigit.cxx:41
 AliFMDDigit.cxx:42
 AliFMDDigit.cxx:43
 AliFMDDigit.cxx:44
 AliFMDDigit.cxx:45
 AliFMDDigit.cxx:46
 AliFMDDigit.cxx:47
 AliFMDDigit.cxx:48
 AliFMDDigit.cxx:49
 AliFMDDigit.cxx:50
 AliFMDDigit.cxx:51
 AliFMDDigit.cxx:52
 AliFMDDigit.cxx:53
 AliFMDDigit.cxx:54
 AliFMDDigit.cxx:55
 AliFMDDigit.cxx:56
 AliFMDDigit.cxx:57
 AliFMDDigit.cxx:58
 AliFMDDigit.cxx:59
 AliFMDDigit.cxx:60
 AliFMDDigit.cxx:61
 AliFMDDigit.cxx:62
 AliFMDDigit.cxx:63
 AliFMDDigit.cxx:64
 AliFMDDigit.cxx:65
 AliFMDDigit.cxx:66
 AliFMDDigit.cxx:67
 AliFMDDigit.cxx:68
 AliFMDDigit.cxx:69
 AliFMDDigit.cxx:70
 AliFMDDigit.cxx:71
 AliFMDDigit.cxx:72
 AliFMDDigit.cxx:73
 AliFMDDigit.cxx:74
 AliFMDDigit.cxx:75
 AliFMDDigit.cxx:76
 AliFMDDigit.cxx:77
 AliFMDDigit.cxx:78
 AliFMDDigit.cxx:79
 AliFMDDigit.cxx:80
 AliFMDDigit.cxx:81
 AliFMDDigit.cxx:82
 AliFMDDigit.cxx:83
 AliFMDDigit.cxx:84
 AliFMDDigit.cxx:85
 AliFMDDigit.cxx:86
 AliFMDDigit.cxx:87
 AliFMDDigit.cxx:88
 AliFMDDigit.cxx:89
 AliFMDDigit.cxx:90
 AliFMDDigit.cxx:91
 AliFMDDigit.cxx:92
 AliFMDDigit.cxx:93
 AliFMDDigit.cxx:94
 AliFMDDigit.cxx:95
 AliFMDDigit.cxx:96
 AliFMDDigit.cxx:97
 AliFMDDigit.cxx:98
 AliFMDDigit.cxx:99
 AliFMDDigit.cxx:100
 AliFMDDigit.cxx:101
 AliFMDDigit.cxx:102
 AliFMDDigit.cxx:103
 AliFMDDigit.cxx:104
 AliFMDDigit.cxx:105
 AliFMDDigit.cxx:106
 AliFMDDigit.cxx:107
 AliFMDDigit.cxx:108
 AliFMDDigit.cxx:109
 AliFMDDigit.cxx:110
 AliFMDDigit.cxx:111
 AliFMDDigit.cxx:112
 AliFMDDigit.cxx:113
 AliFMDDigit.cxx:114
 AliFMDDigit.cxx:115
 AliFMDDigit.cxx:116
 AliFMDDigit.cxx:117
 AliFMDDigit.cxx:118
 AliFMDDigit.cxx:119
 AliFMDDigit.cxx:120
 AliFMDDigit.cxx:121
 AliFMDDigit.cxx:122
 AliFMDDigit.cxx:123
 AliFMDDigit.cxx:124
 AliFMDDigit.cxx:125
 AliFMDDigit.cxx:126
 AliFMDDigit.cxx:127
 AliFMDDigit.cxx:128
 AliFMDDigit.cxx:129
 AliFMDDigit.cxx:130
 AliFMDDigit.cxx:131
 AliFMDDigit.cxx:132
 AliFMDDigit.cxx:133
 AliFMDDigit.cxx:134
 AliFMDDigit.cxx:135
 AliFMDDigit.cxx:136
 AliFMDDigit.cxx:137
 AliFMDDigit.cxx:138
 AliFMDDigit.cxx:139
 AliFMDDigit.cxx:140
 AliFMDDigit.cxx:141
 AliFMDDigit.cxx:142
 AliFMDDigit.cxx:143
 AliFMDDigit.cxx:144
 AliFMDDigit.cxx:145
 AliFMDDigit.cxx:146
 AliFMDDigit.cxx:147
 AliFMDDigit.cxx:148
 AliFMDDigit.cxx:149
 AliFMDDigit.cxx:150
 AliFMDDigit.cxx:151
 AliFMDDigit.cxx:152
 AliFMDDigit.cxx:153