LCOV - code coverage report
Current view: top level - STEER/ESD - AliESDAD.cxx (source / functions) Hit Total Coverage
Test: coverage.info Lines: 48 199 24.1 %
Date: 2016-06-14 17:26:59 Functions: 10 37 27.0 %

          Line data    Source code
       1             : /**************************************************************************
       2             :  * Copyright(c) 1998-2007, 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             : 
      16             : //-------------------------------------------------------------------------
      17             : //     Container class for ESD AD data
      18             : //     Author: Michal Broz
      19             : //-------------------------------------------------------------------------
      20             : 
      21             : #include "AliESDAD.h"
      22             : #include "AliLog.h"
      23             : 
      24         172 : ClassImp(AliESDAD)
      25             : 
      26             : //__________________________________________________________________________
      27             : AliESDAD::AliESDAD()
      28          45 :   :AliVAD(),
      29          45 :    fBBtriggerADA(0),
      30          45 :    fBGtriggerADA(0),
      31          45 :    fBBtriggerADC(0),
      32          45 :    fBGtriggerADC(0),
      33          45 :    fADATime(-1024),
      34          45 :    fADCTime(-1024),
      35          45 :    fADATimeError(0),
      36          45 :    fADCTimeError(0),
      37          45 :    fADADecision(kADInvalid),
      38          45 :    fADCDecision(kADInvalid),
      39          45 :    fTriggerChargeA(0),
      40          45 :    fTriggerChargeC(0),
      41          45 :    fTriggerBits(0)
      42         225 : {   
      43             :    // Default constructor 
      44        1530 :    for(Int_t j=0; j<16; j++){ 
      45         720 :       fMultiplicity[j] = 0.0;   
      46         720 :       fAdc[j]   = 0.0;   
      47         720 :       fTime[j]  = 0.0; 
      48         720 :       fWidth[j] = 0.0; 
      49         720 :       fBBFlag[j]= kFALSE;
      50         720 :       fBGFlag[j]= kFALSE;
      51       31680 :       for(Int_t k = 0; k < 21; ++k) fIsBB[j][k] = fIsBG[j][k] = kFALSE; 
      52         720 :       fAdcTail[j]   = 0.0; 
      53         720 :       fAdcTrigger[j]   = 0.0; 
      54             :    }
      55          90 : }
      56             : 
      57             : //__________________________________________________________________________
      58             : AliESDAD::AliESDAD(const AliESDAD &o)
      59           0 :   :AliVAD(o),
      60           0 :    fBBtriggerADA(o.fBBtriggerADA),
      61           0 :    fBGtriggerADA(o.fBGtriggerADA),
      62           0 :    fBBtriggerADC(o.fBBtriggerADC),
      63           0 :    fBGtriggerADC(o.fBGtriggerADC),
      64           0 :    fADATime(o.fADATime),
      65           0 :    fADCTime(o.fADCTime),
      66           0 :    fADATimeError(o.fADATimeError),
      67           0 :    fADCTimeError(o.fADCTimeError),
      68           0 :    fADADecision(o.fADADecision),
      69           0 :    fADCDecision(o.fADCDecision),
      70           0 :    fTriggerChargeA(o.fTriggerChargeA),
      71           0 :    fTriggerChargeC(o.fTriggerChargeC),
      72           0 :    fTriggerBits(o.fTriggerBits)
      73           0 : {   
      74             :    // Default constructor 
      75           0 :    for(Int_t j=0; j<16; j++) {
      76           0 :        fMultiplicity[j] = o.fMultiplicity[j];
      77           0 :        fAdc[j]    = o.fAdc[j];
      78           0 :        fTime[j]   = o.fTime[j];
      79           0 :        fWidth[j]  = o.fWidth[j];
      80           0 :        fBBFlag[j] = o.fBBFlag[j];
      81           0 :        fBGFlag[j] = o.fBGFlag[j];
      82           0 :        for(Int_t k = 0; k < 21; ++k) {
      83           0 :          fIsBB[j][k] = o.fIsBB[j][k];
      84           0 :          fIsBG[j][k] = o.fIsBG[j][k];
      85             :        }
      86           0 :        fAdcTail[j]    = o.fAdcTail[j];
      87           0 :        fAdcTrigger[j]   = o.fAdcTrigger[j];
      88             :    }
      89           0 : }
      90             : 
      91             : //__________________________________________________________________________
      92             : AliESDAD::AliESDAD(UInt_t BBtriggerADA, UInt_t BGtriggerADA,
      93             :               UInt_t BBtriggerADC, UInt_t BGtriggerADC,
      94             :               Float_t *Multiplicity, Float_t *Adc, 
      95             :               Float_t *Time, Float_t *Width, Bool_t *BBFlag, Bool_t *BGFlag)
      96           0 :   :AliVAD(),
      97           0 :    fBBtriggerADA(BBtriggerADA),
      98           0 :    fBGtriggerADA(BGtriggerADA),
      99           0 :    fBBtriggerADC(BBtriggerADC),
     100           0 :    fBGtriggerADC(BGtriggerADC),
     101           0 :    fADATime(-1024),
     102           0 :    fADCTime(-1024),
     103           0 :    fADATimeError(0),
     104           0 :    fADCTimeError(0),
     105           0 :    fADADecision(kADInvalid),
     106           0 :    fADCDecision(kADInvalid),
     107           0 :    fTriggerChargeA(0),
     108           0 :    fTriggerChargeC(0),
     109           0 :    fTriggerBits(0)
     110           0 : {
     111             :    // Constructor
     112           0 :    for(Int_t j=0; j<16; j++) {
     113           0 :        fMultiplicity[j] = Multiplicity[j];
     114           0 :        fAdc[j]    = Adc[j];
     115           0 :        fTime[j]   = Time[j];
     116           0 :        fWidth[j]  = Width[j];
     117           0 :        fBBFlag[j] = BBFlag[j];
     118           0 :        fBGFlag[j] = BGFlag[j];
     119           0 :        for(Int_t k = 0; k < 21; ++k) fIsBB[j][k] = fIsBG[j][k] = kFALSE;
     120           0 :        fAdcTail[j]    = 0.0;
     121           0 :        fAdcTrigger[j]   = 0.0; 
     122             :    }
     123           0 : }
     124             : 
     125             : //__________________________________________________________________________
     126             : AliESDAD& AliESDAD::operator=(const AliESDAD& o)
     127             : {
     128             : 
     129           0 :   if(this==&o) return *this;
     130           0 :   AliVAD::operator=(o);
     131             :   // Assignment operator
     132           0 :   fBBtriggerADA=o.fBBtriggerADA;
     133           0 :   fBGtriggerADA=o.fBGtriggerADA;
     134           0 :   fBBtriggerADC=o.fBBtriggerADC;
     135           0 :   fBGtriggerADC=o.fBGtriggerADC;
     136             : 
     137           0 :   fADATime = o.fADATime;
     138           0 :   fADCTime = o.fADCTime;
     139           0 :   fADATimeError = o.fADATimeError;
     140           0 :   fADCTimeError = o.fADCTimeError;
     141           0 :   fADADecision = o.fADADecision;
     142           0 :   fADCDecision = o.fADCDecision;
     143           0 :   fTriggerChargeA = o.fTriggerChargeA;
     144           0 :   fTriggerChargeC = o.fTriggerChargeC;
     145           0 :   fTriggerBits = o.fTriggerBits;
     146             : 
     147           0 :    for(Int_t j=0; j<16; j++) {
     148           0 :        fMultiplicity[j] = o.fMultiplicity[j];
     149           0 :        fAdc[j]    = o.fAdc[j];
     150           0 :        fTime[j]   = o.fTime[j];
     151           0 :        fWidth[j]  = o.fWidth[j];
     152           0 :        fBBFlag[j] = o.fBBFlag[j];
     153           0 :        fBGFlag[j] = o.fBGFlag[j];
     154           0 :        for(Int_t k = 0; k < 21; ++k) {
     155           0 :          fIsBB[j][k] = o.fIsBB[j][k];
     156           0 :          fIsBG[j][k] = o.fIsBG[j][k];
     157             :        }
     158           0 :        fAdcTail[j]    = o.fAdcTail[j];
     159           0 :        fAdcTrigger[j]   = o.fAdcTrigger[j];
     160             :    }
     161           0 :   return *this;
     162           0 : }
     163             : 
     164             : //______________________________________________________________________________
     165             : void AliESDAD::Copy(TObject &obj) const {
     166             :   
     167             :   // this overwrites the virtual TOBject::Copy()
     168             :   // to allow run time copying without casting
     169             :   // in AliESDEvent
     170             : 
     171           0 :   if(this==&obj)return;
     172           0 :   AliESDAD *robj = dynamic_cast<AliESDAD*>(&obj);
     173           0 :   if(!robj)return; // not an AliESDAD
     174           0 :   *robj = *this;
     175             : 
     176           0 : }
     177             : 
     178             : //__________________________________________________________________________
     179             : Short_t AliESDAD::GetNbPMADA() const
     180             : {
     181             :   // Returns the number of
     182             :   // fired PM in ADA
     183             :   Short_t n=0;
     184           0 :   for(Int_t i=8;i<16;i++) 
     185           0 :     if (fMultiplicity[i]>0) n++;
     186           0 :   return n;
     187             : }
     188             : 
     189             : //__________________________________________________________________________
     190             : Short_t AliESDAD::GetNbPMADC() const
     191             : {
     192             :   // Returns the number of
     193             :   // fired PM in ADC
     194             :   Short_t n=0;
     195           0 :   for(Int_t i=0;i<8;i++) 
     196           0 :     if (fMultiplicity[i]>0) n++;
     197           0 :   return n;
     198             : }
     199             : 
     200             : //__________________________________________________________________________
     201             : Float_t AliESDAD::GetMTotADA() const
     202             : {
     203             :   // returns total multiplicity
     204             :   // in ADA
     205             :   Float_t mul=0.0;
     206           0 :   for(Int_t i=8;i<16;i++) 
     207           0 :     mul+=  fMultiplicity[i];
     208           0 :   return mul;
     209             : }
     210             : 
     211             : //__________________________________________________________________________
     212             : Float_t AliESDAD::GetMTotADC() const
     213             : {
     214             :   // returns total multiplicity
     215             :   // in ADC
     216             :   Float_t mul=0.0;
     217           0 :   for(Int_t i=0;i<8;i++) 
     218           0 :     mul+=  fMultiplicity[i];
     219           0 :   return mul;
     220             : }
     221             : 
     222             : 
     223             : //__________________________________________________________________________
     224             : Float_t AliESDAD::GetMultiplicity(Int_t i) const
     225             : 
     226             : {
     227             :   // returns multiplicity in a
     228             :   // given cell of AD
     229         256 :   if (OutOfRange(i, "AliESDAD::GetMultiplicity:",16)) return -1;
     230         128 :   return fMultiplicity[i];
     231         128 : }
     232             : 
     233             : //__________________________________________________________________________
     234             : Float_t AliESDAD::GetMultiplicityADA(Int_t i) const
     235             : 
     236             : {
     237             :   // returns multiplicity in a
     238             :   // given cell of ADA
     239           0 :   if (OutOfRange(i, "AliESDAD::GetMultiplicityADA:",8)) return -1;
     240           0 :   return fMultiplicity[8+i];
     241           0 : }
     242             : 
     243             : //__________________________________________________________________________
     244             : Float_t AliESDAD::GetMultiplicityADC(Int_t i) const
     245             : 
     246             : {
     247             :   // returns multiplicity in a
     248             :   // given cell of ADC
     249           0 :   if (OutOfRange(i, "AliESDAD::GetMultiplicityADC:",8)) return -1;
     250           0 :   return fMultiplicity[i];
     251           0 : }
     252             : 
     253             : //__________________________________________________________________________
     254             : Float_t AliESDAD::GetAdc(Int_t i) const
     255             : 
     256             : {
     257             :   // returns ADC charge in a
     258             :   // given cell of AD
     259           0 :   if (OutOfRange(i, "AliESDAD::GetAdc:",16)) return -1;
     260           0 :   return fAdc[i];
     261           0 : }
     262             : 
     263             : //__________________________________________________________________________
     264             : Float_t AliESDAD::GetAdcADA(Int_t i) const
     265             : 
     266             : {
     267             :   // returns ADC charge in a
     268             :   // given cell of ADA
     269           0 :   if (OutOfRange(i, "AliESDAD::GetAdcADA:",8)) return -1;
     270           0 :   return fAdc[8+i];
     271           0 : }
     272             : 
     273             : //__________________________________________________________________________
     274             : Float_t AliESDAD::GetAdcADC(Int_t i) const
     275             : 
     276             : {
     277             :   // returns ADC charge in a
     278             :   // given cell of ADC
     279           0 :   if (OutOfRange(i, "AliESDAD::GetAdcADC:",8)) return -1;
     280           0 :   return fAdc[i];
     281           0 : }
     282             : 
     283             : //__________________________________________________________________________
     284             : Float_t AliESDAD::GetAdcTail(Int_t i) const
     285             : 
     286             : {
     287             :   // returns ADC charge in a
     288             :   // given cell of AD
     289           0 :   if (OutOfRange(i, "AliESDAD::GetAdcTail:",16)) return -1;
     290           0 :   return fAdcTail[i];
     291           0 : }
     292             : 
     293             : //__________________________________________________________________________
     294             : Float_t AliESDAD::GetAdcTailADA(Int_t i) const
     295             : 
     296             : {
     297             :   // returns ADC charge in a
     298             :   // given cell of ADA
     299           0 :   if (OutOfRange(i, "AliESDAD::GetAdcTailADA:",8)) return -1;
     300           0 :   return fAdcTail[8+i];
     301           0 : }
     302             : 
     303             : //__________________________________________________________________________
     304             : Float_t AliESDAD::GetAdcTailADC(Int_t i) const
     305             : 
     306             : {
     307             :   // returns ADC charge in a
     308             :   // given cell of ADC
     309           0 :   if (OutOfRange(i, "AliESDAD::GetAdcTailADC:",8)) return -1;
     310           0 :   return fAdcTail[i];
     311           0 : }
     312             : 
     313             : //__________________________________________________________________________
     314             : Float_t AliESDAD::GetAdcTrigger(Int_t i) const
     315             : 
     316             : {
     317             :   // returns ADC charge in a
     318             :   // given cell of AD
     319           0 :   if (OutOfRange(i, "AliESDAD::GetAdcTrigger:",16)) return -1;
     320           0 :   return fAdcTrigger[i];
     321           0 : }
     322             : 
     323             : //__________________________________________________________________________
     324             : Float_t AliESDAD::GetAdcTriggerADA(Int_t i) const
     325             : 
     326             : {
     327             :   // returns ADC charge in a
     328             :   // given cell of ADA
     329           0 :   if (OutOfRange(i, "AliESDAD::GetAdcTriggerADA:",8)) return -1;
     330           0 :   return fAdcTrigger[8+i];
     331           0 : }
     332             : 
     333             : //__________________________________________________________________________
     334             : Float_t AliESDAD::GetAdcTriggerADC(Int_t i) const
     335             : 
     336             : {
     337             :   // returns ADC charge in a
     338             :   // given cell of ADC
     339           0 :   if (OutOfRange(i, "AliESDAD::GetAdcTriggerADC:",8)) return -1;
     340           0 :   return fAdcTrigger[i];
     341           0 : }
     342             : 
     343             : 
     344             : 
     345             : //__________________________________________________________________________
     346             : Float_t AliESDAD::GetTime(Int_t i) const
     347             : 
     348             : {
     349             :   // returns leading time measured by TDC
     350             :   // in a given cell of AD
     351           0 :   if (OutOfRange(i, "AliESDAD::GetTime:",16)) return -1;
     352           0 :   return fTime[i];
     353           0 : }
     354             : 
     355             : //__________________________________________________________________________
     356             : Float_t AliESDAD::GetTimeADA(Int_t i) const
     357             : 
     358             : {
     359             :   // returns leading time measured by TDC
     360             :   // in a given cell of ADA
     361           0 :   if (OutOfRange(i, "AliESDAD::GetTimeADA:",8)) return -1;
     362           0 :   return fTime[8+i];
     363           0 : }
     364             : 
     365             : //__________________________________________________________________________
     366             : Float_t AliESDAD::GetTimeADC(Int_t i) const
     367             : 
     368             : {
     369             :   // returns leading time measured by TDC
     370             :   // in a given cell of ADC
     371           0 :   if (OutOfRange(i, "AliESDAD::GetTimeADC:",8)) return -1;
     372           0 :   return fTime[i];
     373           0 : }
     374             : 
     375             : //__________________________________________________________________________
     376             : Float_t AliESDAD::GetWidth(Int_t i) const
     377             : 
     378             : {
     379             :   // returns time signal width
     380             :   // in a given cell of AD
     381           0 :   if (OutOfRange(i, "AliESDAD::GetWidth:",16)) return -1;
     382           0 :   return fWidth[i];
     383           0 : }
     384             : 
     385             : //__________________________________________________________________________
     386             : Float_t AliESDAD::GetWidthADA(Int_t i) const
     387             : 
     388             : {
     389             :   // returns time signal width
     390             :   // in a given cell of ADA
     391           0 :   if (OutOfRange(i, "AliESDAD::GetWidthADA:",8)) return -1;
     392           0 :   return fWidth[8+i];
     393           0 : }
     394             : 
     395             : //__________________________________________________________________________
     396             : Float_t AliESDAD::GetWidthADC(Int_t i) const
     397             : 
     398             : {
     399             :   // returns time signal width
     400             :   // in a given cell of ADC
     401           0 :   if (OutOfRange(i, "AliESDAD::GetWidthADC:",8)) return -1;
     402           0 :   return fWidth[i];
     403           0 : }
     404             : 
     405             : //__________________________________________________________________________
     406             : Bool_t AliESDAD::BBTriggerADA(Int_t i) const
     407             : {
     408             :   // returns offline beam-beam flags in ADA
     409             :   // one bit per cell
     410         128 :   if (OutOfRange(i, "AliESDAD:::BBTriggerADA",8)) return kFALSE;
     411             :   UInt_t test = 1;
     412          64 :   return ( fBBtriggerADA & (test << i) ? kTRUE : kFALSE );
     413          64 : }
     414             : 
     415             : //__________________________________________________________________________
     416             : Bool_t AliESDAD::BGTriggerADA(Int_t i) const
     417             : {
     418             :   // returns offline beam-gas flags in ADA
     419             :   // one bit per cell
     420         128 :   if (OutOfRange(i, "AliESDAD:::BGTriggerADA",8)) return kFALSE;
     421             :   UInt_t test = 1;
     422          64 :   return ( fBGtriggerADA & (test << i) ? kTRUE : kFALSE );
     423          64 : }
     424             : 
     425             : //__________________________________________________________________________
     426             : Bool_t AliESDAD::BBTriggerADC(Int_t i) const
     427             : {
     428             :   // returns offline beam-beam flags in ADC
     429             :   // one bit per cell
     430         128 :   if (OutOfRange(i, "AliESDAD:::BBTriggerADC",8)) return kFALSE;
     431             :   UInt_t test = 1;
     432          64 :   return ( fBBtriggerADC & (test << i) ? kTRUE : kFALSE );
     433          64 : }
     434             : 
     435             : //__________________________________________________________________________
     436             : Bool_t AliESDAD::BGTriggerADC(Int_t i) const
     437             : {
     438             :   // returns offline beam-gasflags in ADC
     439             :   // one bit per cell
     440         128 :   if (OutOfRange(i, "AliESDAD:::BGTriggerADC",8)) return kFALSE;
     441             :   UInt_t test = 1;
     442          64 :   return ( fBGtriggerADC & (test << i) ? kTRUE : kFALSE );
     443          64 : }
     444             : 
     445             : //__________________________________________________________________________
     446             : Bool_t AliESDAD::GetBBFlag(Int_t i) const
     447             : 
     448             : {
     449             :   // returns online beam-beam flag in AD
     450             :   // one boolean per cell
     451         256 :   if (OutOfRange(i, "AliESDAD::GetBBFlag:",16)) return kFALSE;
     452         128 :   return fBBFlag[i];
     453         128 : }
     454             : 
     455             : //__________________________________________________________________________
     456             : Bool_t AliESDAD::GetBGFlag(Int_t i) const
     457             : 
     458             : {
     459             :   // returns online beam-gas flag in AD
     460             :   // one boolean per cell
     461         256 :   if (OutOfRange(i, "AliESDAD::GetBGFlag:",16)) return kFALSE;
     462         128 :   return fBGFlag[i];
     463         128 : }

Generated by: LCOV version 1.11