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    AliFMDSDigit.cxx
    @author  Christian Holm Christensen <cholm@nbi.dk>
    @date    Mon Mar 27 12:37:41 2006
    @brief   Digits for the FMD 
    @ingroup FMD_base
*/
//////////////////////////////////////////////////////////////////////
//
//  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 "AliFMDSDigit.h"	// ALIFMDDIGIT_H
#include "Riostream.h"		// ROOT_Riostream
#include <TString.h>

//====================================================================
ClassImp(AliFMDSDigit)
#if 0
; // Here to make Emacs happy
#endif
//____________________________________________________________________
AliFMDSDigit::AliFMDSDigit()
  : fEdep(0), 
    fCount1(0),
    fCount2(-1),
    fCount3(-1), 
    fCount4(-1), 
    fNParticles(0),
    fNPrimaries(0)
    // ,     fLabels(0)
{
  // cTOR 
}

//____________________________________________________________________
AliFMDSDigit::AliFMDSDigit(UShort_t       detector, 
			   Char_t         ring, 
			   UShort_t       sector, 
			   UShort_t       strip, 
			   Float_t        edep,
			   UShort_t       count1,
			   Short_t        count2, 
			   Short_t        count3, 
			   Short_t        count4,
			   UShort_t       npart,
			   UShort_t       nprim,
			   const Int_t*   refs)
  : AliFMDBaseDigit(detector, ring, sector, strip), 
    fEdep(edep),
    fCount1(count1),
    fCount2(count2),
    fCount3(count3),
    fCount4(count4),
    fNParticles(npart), 
    fNPrimaries(nprim)
    // , fLabels(refs)
{
  //
  // 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)
  //    edep      Total energy deposited 
  //    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 < npart; i++) AddTrack(refs[i]);
}

//____________________________________________________________________
void
AliFMDSDigit::Print(Option_t* option) const 
{
  // Print digit to standard out 
  AliFMDBaseDigit::Print();
  std::cout << "\t" 
	    << std::setw(10) << fEdep << " -> "
	    << 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("p", TString::kIgnoreCase)) 
    std::cout << " [" 
	      << std::setw(2) << fNPrimaries << "/" 
	      << std::setw(2) << fNParticles << "]"
	      << std::flush;
  if (opt.Contains("l", TString::kIgnoreCase)) {
    std::cout << " ";
    for (Int_t i = 0; i < GetNTrack(); i++) 
      std::cout << (i == 0 ? "" : ",") << std::setw(5) << fTracks[i];
#if 0
    for (Int_t i = 0; i < fLabels.fN; i++) 
      std::cout << (i == 0 ? "" : ",") << fLabels.fArray[i];
#endif
  }
  std::cout << std::endl;
}

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