LCOV - code coverage report
Current view: top level - STEER/AOD - AliAODVZERO.cxx (source / functions) Hit Total Coverage
Test: coverage.info Lines: 44 164 26.8 %
Date: 2016-06-14 17:26:59 Functions: 4 24 16.7 %

          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 AOD VZERO data
      18             : //     Author: Cvetan Cheshkov
      19             : //     cvetan.cheshkov@cern.ch 2/02/2011
      20             : //-------------------------------------------------------------------------
      21             : 
      22             : #include "AliAODVZERO.h"
      23             : #include "AliLog.h"
      24             : 
      25         170 : ClassImp(AliAODVZERO)
      26             : 
      27             : //__________________________________________________________________________
      28             : AliAODVZERO::AliAODVZERO()
      29           2 :   :AliVVZERO(),
      30           2 :    fBBtriggerV0A(0),
      31           2 :    fBGtriggerV0A(0),
      32           2 :    fBBtriggerV0C(0),
      33           2 :    fBGtriggerV0C(0),
      34           2 :    fV0ATime(-1024),
      35           2 :    fV0CTime(-1024),
      36           2 :    fV0ADecision(kV0Invalid),
      37           2 :    fV0CDecision(kV0Invalid),
      38           2 :    fTriggerChargeA(0),
      39           2 :    fTriggerChargeC(0),
      40           2 :    fTriggerBits(0)
      41          10 : {   
      42             :    // Default constructor 
      43         260 :    for(Int_t j=0; j<64; j++){ 
      44         128 :       fMultiplicity[j] = 0.0;   
      45         128 :       fBBFlag[j]= kFALSE;
      46         128 :       fBGFlag[j]= kFALSE;  
      47        5632 :       for(Int_t k = 0; k < 21; ++k) fIsBB[j][k] = fIsBG[j][k] = kFALSE;
      48             :    }
      49           4 : }
      50             : 
      51             : //__________________________________________________________________________
      52             : AliAODVZERO::AliAODVZERO(const AliAODVZERO &source)
      53           0 :   :AliVVZERO(source),
      54           0 :    fBBtriggerV0A(source.fBBtriggerV0A),
      55           0 :    fBGtriggerV0A(source.fBGtriggerV0A),
      56           0 :    fBBtriggerV0C(source.fBBtriggerV0C),
      57           0 :    fBGtriggerV0C(source.fBGtriggerV0C),
      58           0 :    fV0ATime(source.fV0ATime),
      59           0 :    fV0CTime(source.fV0CTime),
      60           0 :    fV0ADecision(source.fV0ADecision),
      61           0 :    fV0CDecision(source.fV0CDecision),
      62           0 :    fTriggerChargeA(source.fTriggerChargeA),
      63           0 :    fTriggerChargeC(source.fTriggerChargeC),
      64           0 :    fTriggerBits(source.fTriggerBits)
      65           0 : {   
      66             :    // Default constructor 
      67           0 :    for(Int_t j=0; j<64; j++) {
      68           0 :        fMultiplicity[j] = source.fMultiplicity[j];
      69           0 :        fBBFlag[j] = source.fBBFlag[j];
      70           0 :        fBGFlag[j] = source.fBGFlag[j];
      71           0 :        for(Int_t k = 0; k < 21; ++k) {
      72           0 :          fIsBB[j][k] = source.fIsBB[j][k];
      73           0 :          fIsBG[j][k] = source.fIsBG[j][k];
      74             :        }
      75             :    }
      76           0 : }
      77             : 
      78             : //__________________________________________________________________________
      79             : AliAODVZERO::AliAODVZERO(const AliVVZERO &source)
      80           0 :   :AliVVZERO(source),
      81           0 :    fBBtriggerV0A(0),
      82           0 :    fBGtriggerV0A(0),
      83           0 :    fBBtriggerV0C(0),
      84           0 :    fBGtriggerV0C(0),
      85           0 :    fV0ATime(source.GetV0ATime()),
      86           0 :    fV0CTime(source.GetV0CTime()),
      87           0 :    fV0ADecision(source.GetV0ADecision()),
      88           0 :    fV0CDecision(source.GetV0CDecision()),
      89           0 :    fTriggerChargeA(source.GetTriggerChargeA()),
      90           0 :    fTriggerChargeC(source.GetTriggerChargeC()),
      91           0 :    fTriggerBits(source.GetTriggerBits())
      92           0 : {   
      93             :    // Default constructor 
      94           0 :    for(Int_t j=0; j<64; j++) {
      95           0 :      fMultiplicity[j] = source.GetMultiplicity(j);
      96           0 :      fBBFlag[j] = source.GetBBFlag(j);
      97           0 :      fBGFlag[j] = source.GetBGFlag(j);
      98           0 :      for(Int_t k = 0; k < 21; ++k) {
      99           0 :        fIsBB[j][k] = source.GetPFBBFlag(j,k);
     100           0 :        fIsBG[j][k] = source.GetPFBGFlag(j,k);
     101             :      }
     102             :    }
     103             : 
     104           0 :    for(Int_t j=0; j<32; j++) {
     105           0 :      if (source.BBTriggerV0A(j)) fBBtriggerV0A |= (1 << j);
     106           0 :      if (source.BGTriggerV0A(j)) fBGtriggerV0A |= (1 << j);
     107           0 :      if (source.BBTriggerV0C(j)) fBBtriggerV0C |= (1 << j);
     108           0 :      if (source.BGTriggerV0C(j)) fBGtriggerV0C |= (1 << j);
     109             :    }
     110           0 : }
     111             : 
     112             : //__________________________________________________________________________
     113             : AliAODVZERO& AliAODVZERO::operator=(const AliAODVZERO& source)
     114             : {
     115             :   // Assignment operator
     116             :   //
     117           0 :   if(this==&source) return *this;
     118           0 :   AliVVZERO::operator=(source);
     119             :   // Assignment operator
     120           0 :   fBBtriggerV0A=source.fBBtriggerV0A;
     121           0 :   fBGtriggerV0A=source.fBGtriggerV0A;
     122           0 :   fBBtriggerV0C=source.fBBtriggerV0C;
     123           0 :   fBGtriggerV0C=source.fBGtriggerV0C;
     124             : 
     125           0 :   fV0ATime = source.fV0ATime;
     126           0 :   fV0CTime = source.fV0CTime;
     127           0 :   fV0ADecision = source.fV0ADecision;
     128           0 :   fV0CDecision = source.fV0CDecision;
     129           0 :   fTriggerChargeA = source.fTriggerChargeA;
     130           0 :   fTriggerChargeC = source.fTriggerChargeC;
     131           0 :   fTriggerBits = source.fTriggerBits;
     132             : 
     133           0 :    for(Int_t j=0; j<64; j++) {
     134           0 :        fMultiplicity[j] = source.fMultiplicity[j];
     135           0 :        fBBFlag[j] = source.fBBFlag[j];
     136           0 :        fBGFlag[j] = source.fBGFlag[j];
     137           0 :        for(Int_t k = 0; k < 21; ++k) {
     138           0 :          fIsBB[j][k] = source.fIsBB[j][k];
     139           0 :          fIsBG[j][k] = source.fIsBG[j][k];
     140             :        }
     141             :    }
     142           0 :   return *this;
     143           0 : }
     144             : 
     145             : //__________________________________________________________________________
     146             : AliAODVZERO& AliAODVZERO::operator=(const AliVVZERO& source)
     147             : {
     148             :   // Assignment operator
     149             :   // used in esd->aod filter
     150          16 :   if(this==&source) return *this;
     151           8 :   AliVVZERO::operator=(source);
     152             : 
     153           8 :   fV0ATime = source.GetV0ATime();
     154           8 :   fV0CTime = source.GetV0CTime();
     155           8 :   fV0ADecision = source.GetV0ADecision();
     156           8 :   fV0CDecision = source.GetV0CDecision();
     157           8 :   fTriggerChargeA = source.GetTriggerChargeA();
     158           8 :   fTriggerChargeC = source.GetTriggerChargeC();
     159           8 :   fTriggerBits = source.GetTriggerBits();
     160             : 
     161        1040 :   for(Int_t j=0; j<64; j++) {
     162         512 :     fMultiplicity[j] = source.GetMultiplicity(j);
     163         512 :     fBBFlag[j] = source.GetBBFlag(j);
     164         512 :     fBGFlag[j] = source.GetBGFlag(j);
     165       22528 :     for(Int_t k = 0; k < 21; ++k) {
     166       10752 :       fIsBB[j][k] = source.GetPFBBFlag(j,k);
     167       10752 :       fIsBG[j][k] = source.GetPFBGFlag(j,k);
     168             :     }
     169             :   }
     170             : 
     171           8 :   fBBtriggerV0A = fBGtriggerV0A = fBBtriggerV0C = fBGtriggerV0C = 0;
     172         528 :   for(Int_t j=0; j<32; j++) {
     173         304 :     if (source.BBTriggerV0A(j)) fBBtriggerV0A |= (1 << j);
     174         256 :     if (source.BGTriggerV0A(j)) fBGtriggerV0A |= (1 << j);
     175         290 :     if (source.BBTriggerV0C(j)) fBBtriggerV0C |= (1 << j);
     176         256 :     if (source.BGTriggerV0C(j)) fBGtriggerV0C |= (1 << j);
     177             :   }
     178             : 
     179           8 :   return *this;
     180             : 
     181           8 : }
     182             : 
     183             : //__________________________________________________________________________
     184             : Short_t AliAODVZERO::GetNbPMV0A() const
     185             : {
     186             :   // Returns the number of
     187             :   // fired PM in V0A
     188             :   Short_t n=0;
     189           0 :   for(Int_t i=32;i<64;i++) 
     190           0 :     if (fMultiplicity[i]>0) n++;
     191           0 :   return n;
     192             : }
     193             : 
     194             : //__________________________________________________________________________
     195             : Short_t AliAODVZERO::GetNbPMV0C() const
     196             : {
     197             :   // Returns the number of
     198             :   // fired PM in V0C
     199             :   Short_t n=0;
     200           0 :   for(Int_t i=0;i<32;i++) 
     201           0 :     if (fMultiplicity[i]>0) n++;
     202           0 :   return n;
     203             : }
     204             : 
     205             : //__________________________________________________________________________
     206             : Float_t AliAODVZERO::GetMTotV0A() const
     207             : {
     208             :   // returns total multiplicity
     209             :   // in V0A
     210             :   Float_t mul=0.0;
     211           0 :   for(Int_t i=32;i<64;i++) 
     212           0 :     mul+=  fMultiplicity[i];
     213           0 :   return mul;
     214             : }
     215             : 
     216             : //__________________________________________________________________________
     217             : Float_t AliAODVZERO::GetMTotV0C() const
     218             : {
     219             :   // returns total multiplicity
     220             :   // in V0C
     221             :   Float_t mul=0.0;
     222           0 :   for(Int_t i=0;i<32;i++) 
     223           0 :     mul+=  fMultiplicity[i];
     224           0 :   return mul;
     225             : }
     226             : 
     227             : //__________________________________________________________________________
     228             : Float_t AliAODVZERO::GetMRingV0A(Int_t ring) const
     229             : { 
     230             :   // returns multiplicity in a
     231             :   // given ring of V0A
     232           0 :   if (OutOfRange(ring, "AliAODVZERO:::GetMRingV0A",4)) return -1;
     233             :   Float_t mul =0.0;
     234             : 
     235           0 :   if (ring == 0) for(Int_t i=32;i<40;i++) mul +=  fMultiplicity[i];
     236           0 :   if (ring == 1) for(Int_t i=40;i<48;i++) mul +=  fMultiplicity[i];
     237           0 :   if (ring == 2) for(Int_t i=48;i<56;i++) mul +=  fMultiplicity[i];
     238           0 :   if (ring == 3) for(Int_t i=56;i<64;i++) mul +=  fMultiplicity[i];
     239             :   return mul ;
     240           0 : }
     241             : 
     242             : //__________________________________________________________________________
     243             : Float_t AliAODVZERO::GetMRingV0C(Int_t ring) const
     244             : { 
     245             :   // returns multiplicity in a
     246             :   // given ring of V0C
     247           0 :   if (OutOfRange(ring, "AliAODVZERO:::GetMRingV0C",4)) return -1;
     248             :   Float_t mul =0.0;
     249             : 
     250           0 :   if (ring == 0) for(Int_t i=0;i<8;i++)   mul +=  fMultiplicity[i];
     251           0 :   if (ring == 1) for(Int_t i=8;i<16;i++)  mul +=  fMultiplicity[i];
     252           0 :   if (ring == 2) for(Int_t i=16;i<24;i++) mul +=  fMultiplicity[i];
     253           0 :   if (ring == 3) for(Int_t i=24;i<32;i++) mul +=  fMultiplicity[i];
     254             :   return mul ;
     255           0 : }
     256             : 
     257             : //__________________________________________________________________________
     258             : Float_t AliAODVZERO::GetMultiplicity(Int_t i) const
     259             : 
     260             : {
     261             :   // returns multiplicity in a
     262             :   // given cell of V0
     263           0 :   if (OutOfRange(i, "AliAODVZERO::GetMultiplicity:",64)) return -1;
     264           0 :   return fMultiplicity[i];
     265           0 : }
     266             : 
     267             : //__________________________________________________________________________
     268             : Float_t AliAODVZERO::GetMultiplicityV0A(Int_t i) const
     269             : 
     270             : {
     271             :   // returns multiplicity in a
     272             :   // given cell of V0A
     273           0 :   if (OutOfRange(i, "AliAODVZERO::GetMultiplicityV0A:",32)) return -1;
     274           0 :   return fMultiplicity[32+i];
     275           0 : }
     276             : 
     277             : //__________________________________________________________________________
     278             : Float_t AliAODVZERO::GetMultiplicityV0C(Int_t i) const
     279             : 
     280             : {
     281             :   // returns multiplicity in a
     282             :   // given cell of V0C
     283           0 :   if (OutOfRange(i, "AliAODVZERO::GetMultiplicityV0C:",32)) return -1;
     284           0 :   return fMultiplicity[i];
     285           0 : }
     286             : 
     287             : //__________________________________________________________________________
     288             : Bool_t AliAODVZERO::BBTriggerV0A(Int_t i) const
     289             : {
     290             :   // returns offline beam-beam flags in V0A
     291             :   // one bit per cell
     292           0 :   if (OutOfRange(i, "AliAODVZERO:::BBTriggerV0A",32)) return kFALSE;
     293             :   UInt_t test = 1;
     294           0 :   return ( fBBtriggerV0A & (test << i) ? kTRUE : kFALSE );
     295           0 : }
     296             : 
     297             : //__________________________________________________________________________
     298             : Bool_t AliAODVZERO::BGTriggerV0A(Int_t i) const
     299             : {
     300             :   // returns offline beam-gas flags in V0A
     301             :   // one bit per cell
     302           0 :   if (OutOfRange(i, "AliAODVZERO:::BGTriggerV0A",32)) return kFALSE;
     303             :   UInt_t test = 1;
     304           0 :   return ( fBGtriggerV0A & (test << i) ? kTRUE : kFALSE );
     305           0 : }
     306             : 
     307             : //__________________________________________________________________________
     308             : Bool_t AliAODVZERO::BBTriggerV0C(Int_t i) const
     309             : {
     310             :   // returns offline beam-beam flags in V0C
     311             :   // one bit per cell
     312           0 :   if (OutOfRange(i, "AliAODVZERO:::BBTriggerV0C",32)) return kFALSE;
     313             :   UInt_t test = 1;
     314           0 :   return ( fBBtriggerV0C & (test << i) ? kTRUE : kFALSE );
     315           0 : }
     316             : 
     317             : //__________________________________________________________________________
     318             : Bool_t AliAODVZERO::BGTriggerV0C(Int_t i) const
     319             : {
     320             :   // returns offline beam-gasflags in V0C
     321             :   // one bit per cell
     322           0 :   if (OutOfRange(i, "AliAODVZERO:::BGTriggerV0C",32)) return kFALSE;
     323             :   UInt_t test = 1;
     324           0 :   return ( fBGtriggerV0C & (test << i) ? kTRUE : kFALSE );
     325           0 : }
     326             : 
     327             : //__________________________________________________________________________
     328             : Bool_t AliAODVZERO::GetBBFlag(Int_t i) const
     329             : 
     330             : {
     331             :   // returns online beam-beam flag in V0
     332             :   // one boolean per cell
     333           0 :   if (OutOfRange(i, "AliAODVZERO::GetBBFlag:",64)) return kFALSE;
     334           0 :   return fBBFlag[i];
     335           0 : }
     336             : 
     337             : //__________________________________________________________________________
     338             : Bool_t AliAODVZERO::GetBGFlag(Int_t i) const
     339             : 
     340             : {
     341             :   // returns online beam-gas flag in V0
     342             :   // one boolean per cell
     343           0 :   if (OutOfRange(i, "AliAODVZERO::GetBGFlag:",64)) return kFALSE;
     344           0 :   return fBGFlag[i];
     345           0 : }

Generated by: LCOV version 1.11