LCOV - code coverage report
Current view: top level - FMD/FMDbase - AliFMDSDigit.cxx (source / functions) Hit Total Coverage
Test: coverage.info Lines: 23 44 52.3 %
Date: 2016-06-14 17:26:59 Functions: 5 6 83.3 %

          Line data    Source code
       1             : /**************************************************************************
       2             :  * Copyright(c) 2004, ALICE Experiment at CERN, All rights reserved. *
       3             :  *                                                                        *
       4             :  * Author: The ALICE Off-line Project.                                    *
       5             :  * Contributors are mentioned in the code where appropriate.              *
       6             :  *                                                                        *
       7             :  * Permission to use, copy, modify and distribute this software and its   *
       8             :  * documentation strictly for non-commercial purposes is hereby granted   *
       9             :  * without fee, provided that the above copyright notice appears in all   *
      10             :  * copies and that both the copyright notice and this permission notice   *
      11             :  * appear in the supporting documentation. The authors make no claims     *
      12             :  * about the suitability of this software for any purpose. It is          *
      13             :  * provided "as is" without express or implied warranty.                  *
      14             :  **************************************************************************/
      15             : /* $Id$ */
      16             : /** @file    AliFMDSDigit.cxx
      17             :     @author  Christian Holm Christensen <cholm@nbi.dk>
      18             :     @date    Mon Mar 27 12:37:41 2006
      19             :     @brief   Digits for the FMD 
      20             :     @ingroup FMD_base
      21             : */
      22             : //////////////////////////////////////////////////////////////////////
      23             : //
      24             : //  Digits classes for the FMD                
      25             : //
      26             : //  Digits consists of
      27             : //   - Detector #
      28             : //   - Ring ID                                             
      29             : //   - Sector #     
      30             : //   - Strip #
      31             : //   - ADC count in this channel                                  
      32             : //
      33             : //  Digits consists of
      34             : //   - Detector #
      35             : //   - Ring ID                                             
      36             : //   - Sector #     
      37             : //   - Strip #
      38             : //   - Total energy deposited in the strip
      39             : //   - ADC count in this channel                                  
      40             : //
      41             : // As the Digits and SDigits have so much in common, the classes
      42             : // AliFMDDigit and AliFMDSDigit are implemented via a base
      43             : // class AliFMDBaseDigit.
      44             : ///
      45             : //              +-----------------+
      46             : //              | AliFMDBaseDigit |
      47             : //              +-----------------+
      48             : //                      ^
      49             : //                      |
      50             : //                +------------+
      51             : //                |            |
      52             : //      +-------------+ +--------------+
      53             : //      | AliFMDDigit | | AliFMDSDigit |
      54             : //      +-------------+ +--------------+
      55             : //
      56             : // (Note, that I'd really would have liked to implement AliFMDHit as a
      57             : // derived class from some base class - say AliFMDStrip, and the Digit
      58             : // classes would (eventually) have derived from that as well.
      59             : // However, ROOT doesn't do well with multiple inheritance, so I chose
      60             : // not to anyway).
      61             : //
      62             : // Latest changes by Christian Holm Christensen
      63             : //
      64             : //////////////////////////////////////////////////////////////////////
      65             : 
      66             : #include "AliFMDSDigit.h"     // ALIFMDDIGIT_H
      67             : #include "Riostream.h"                // ROOT_Riostream
      68             : #include <TString.h>
      69             : 
      70             : //====================================================================
      71          12 : ClassImp(AliFMDSDigit)
      72             : #if 0
      73             : ; // Here to make Emacs happy
      74             : #endif
      75             : //____________________________________________________________________
      76          75 : AliFMDSDigit::AliFMDSDigit()
      77          75 :   : fEdep(0), 
      78          75 :     fCount1(0),
      79          75 :     fCount2(-1),
      80          75 :     fCount3(-1), 
      81          75 :     fCount4(-1), 
      82          75 :     fNParticles(0),
      83          75 :     fNPrimaries(0)
      84             :     // ,     fLabels(0)
      85         375 : {
      86             :   // cTOR 
      87         150 : }
      88             : 
      89             : //____________________________________________________________________
      90             : AliFMDSDigit::AliFMDSDigit(UShort_t       detector, 
      91             :                            Char_t         ring, 
      92             :                            UShort_t       sector, 
      93             :                            UShort_t       strip, 
      94             :                            Float_t        edep,
      95             :                            UShort_t       count1,
      96             :                            Short_t        count2, 
      97             :                            Short_t        count3, 
      98             :                            Short_t        count4,
      99             :                            UShort_t       npart,
     100             :                            UShort_t       nprim,
     101             :                            const Int_t*   refs)
     102         106 :   : AliFMDBaseDigit(detector, ring, sector, strip), 
     103         106 :     fEdep(edep),
     104         106 :     fCount1(count1),
     105         106 :     fCount2(count2),
     106         106 :     fCount3(count3),
     107         106 :     fCount4(count4),
     108         106 :     fNParticles(npart), 
     109         106 :     fNPrimaries(nprim)
     110             :     // , fLabels(refs)
     111         530 : {
     112             :   //
     113             :   // Creates a real data digit object
     114             :   //
     115             :   // Parameters 
     116             :   //
     117             :   //    detector  Detector # (1, 2, or 3)                      
     118             :   //    ring      Ring ID ('I' or 'O')
     119             :   //    sector    Sector # (For inner/outer rings: 0-19/0-39)
     120             :   //    strip     Strip # (For inner/outer rings: 0-511/0-255)
     121             :   //    edep      Total energy deposited 
     122             :   //    count1    ADC count (a 10-bit word)
     123             :   //    count2    ADC count (a 10-bit word) -1 if not used
     124             :   //    count3    ADC count (a 10-bit word) -1 if not used
     125         106 :   if (!refs) return;
     126         539 :   for (Int_t i = 0; i < npart; i++) AddTrack(refs[i]);
     127         212 : }
     128             : 
     129             : //____________________________________________________________________
     130             : void
     131             : AliFMDSDigit::Print(Option_t* option) const 
     132             : {
     133             :   // Print digit to standard out 
     134           0 :   AliFMDBaseDigit::Print();
     135           0 :   std::cout << "\t" 
     136           0 :             << std::setw(10) << fEdep << " -> "
     137           0 :             << std::setw(4) << fCount1 << " (" 
     138           0 :             << std::setw(4) << fCount2 << "," 
     139           0 :             << std::setw(4) << fCount3 << "," 
     140           0 :             << std::setw(4) << fCount4 << ") = " 
     141           0 :             << std::setw(4) << Counts() << std::flush;
     142             : 
     143           0 :   TString opt(option);
     144           0 :   if (opt.Contains("p", TString::kIgnoreCase)) 
     145           0 :     std::cout << " [" 
     146           0 :               << std::setw(2) << fNPrimaries << "/" 
     147           0 :               << std::setw(2) << fNParticles << "]"
     148           0 :               << std::flush;
     149           0 :   if (opt.Contains("l", TString::kIgnoreCase)) {
     150           0 :     std::cout << " ";
     151           0 :     for (Int_t i = 0; i < GetNTrack(); i++) 
     152           0 :       std::cout << (i == 0 ? "" : ",") << std::setw(5) << fTracks[i];
     153             : #if 0
     154             :     for (Int_t i = 0; i < fLabels.fN; i++) 
     155             :       std::cout << (i == 0 ? "" : ",") << fLabels.fArray[i];
     156             : #endif
     157           0 :   }
     158           0 :   std::cout << std::endl;
     159           0 : }
     160             : 
     161             : //____________________________________________________________________
     162             : //
     163             : // EOF
     164             : //

Generated by: LCOV version 1.11