LCOV - code coverage report
Current view: top level - STEER/AOD - AliAODPid.cxx (source / functions) Hit Total Coverage
Test: coverage.info Lines: 38 97 39.2 %
Date: 2016-06-14 17:26:59 Functions: 10 16 62.5 %

          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             : /* $Id$ */
      17             : 
      18             : //-------------------------------------------------------------------------
      19             : //     AOD Pid class to store additional pid information
      20             : //     Author: Annalisa Mastroserio
      21             : //-------------------------------------------------------------------------
      22             : 
      23             : #include "AliAODPid.h"
      24             : #include "AliESDtrack.h"
      25             : #include "AliLog.h"
      26             : #include "AliTPCdEdxInfo.h"
      27             : 
      28         170 : ClassImp(AliAODPid)
      29             : 
      30             : 
      31             : //______________________________________________________________________________
      32         122 : AliAODPid::AliAODPid():
      33         122 :     fITSsignal(0), 
      34         122 :     fTPCsignal(0),
      35         122 :     fTPCsignalN(0),
      36         122 :     fTPCmomentum(0),
      37         122 :     fTPCTgl(0),
      38         122 :     fTRDnSlices(0),
      39         122 :     fTRDntls(0),
      40         122 :     fTRDslices(0x0),
      41         122 :     fTRDsignal(0),
      42         122 :     fTRDChi2(0x0),
      43         122 :     fTOFesdsignal(0),
      44         122 :     fTPCdEdxInfo(0)
      45         610 : {
      46             :   // default constructor
      47        1464 :     for(Int_t i=0; i<AliPID::kSPECIES; i++) fIntTime[i]   = 0; 
      48        1464 :     for(Int_t i=0; i<5; i++) fTOFpidResolution[i] = 0.;
      49        1708 :     for(Int_t i=0; i<6; i++) {
      50         732 :       fTRDmomentum[i]      = 0.;
      51         732 :       fTRDncls[i]          = 0;
      52             :     }
      53        1220 :     for(Int_t i=0; i<4; i++) fITSdEdxSamples[i]   = 0.;
      54         244 : }
      55             : 
      56             : //______________________________________________________________________________
      57             : AliAODPid::~AliAODPid() 
      58         732 : {
      59         242 :   delete [] fTRDslices;
      60         122 :   fTRDslices = 0;
      61         226 :   delete fTPCdEdxInfo;
      62             :   // destructor
      63         366 : }
      64             : 
      65             : 
      66             : //______________________________________________________________________________
      67             : AliAODPid::AliAODPid(const AliAODPid& pid) : 
      68           0 :   TObject(pid),
      69           0 :   fITSsignal(pid.fITSsignal), 
      70           0 :   fTPCsignal(pid.fTPCsignal),
      71           0 :   fTPCsignalN(pid.fTPCsignalN),
      72           0 :   fTPCmomentum(pid.fTPCmomentum),
      73           0 :   fTPCTgl(pid.fTPCTgl),
      74           0 :   fTRDnSlices(pid.fTRDnSlices),
      75           0 :   fTRDntls(pid.fTRDntls),
      76           0 :   fTRDslices(0x0),
      77           0 :   fTRDsignal(pid.fTRDsignal),
      78           0 :   fTRDChi2(pid.fTRDChi2),
      79           0 :   fTOFesdsignal(pid.fTOFesdsignal),
      80           0 :   fTPCdEdxInfo(0x0)
      81           0 : {
      82             :   // Copy constructor
      83           0 :   SetTRDslices(fTRDnSlices, pid.fTRDslices);
      84           0 :     for(Int_t i=0; i<AliPID::kSPECIES; i++) fIntTime[i]=pid.fIntTime[i];
      85             : 
      86           0 :     for(Int_t i=0; i<6; i++){ 
      87           0 :       fTRDmomentum[i]=pid.fTRDmomentum[i];
      88           0 :       fTRDncls[i] = 0;
      89             :     }
      90             : 
      91           0 :     for(Int_t i=0; i<5; i++) fTOFpidResolution[i]=pid.fTOFpidResolution[i];
      92             : 
      93           0 :     for(Int_t i=0; i<4; i++) fITSdEdxSamples[i]=pid.fITSdEdxSamples[i];
      94             : 
      95           0 :     if (pid.fTPCdEdxInfo) fTPCdEdxInfo=new AliTPCdEdxInfo(*pid.fTPCdEdxInfo);
      96           0 : }
      97             : 
      98             : //______________________________________________________________________________
      99             : AliAODPid& AliAODPid::operator=(const AliAODPid& pid)
     100             : {
     101             :   // Assignment operator
     102           0 :   if(this!=&pid) {
     103             :     // copy stuff
     104           0 :     TObject::operator=(pid);
     105             : 
     106           0 :     fITSsignal   = pid.fITSsignal; 
     107           0 :     for (Int_t i = 0; i < 4; i++) fITSdEdxSamples[i]=pid.fITSdEdxSamples[i];
     108           0 :     fTPCsignal   = pid.fTPCsignal;
     109           0 :     fTPCsignalN  = pid.fTPCsignalN;
     110           0 :     fTPCmomentum = pid.fTPCmomentum;
     111           0 :     fTPCTgl      = pid.fTPCTgl;
     112             : 
     113           0 :     fTRDsignal = pid.fTRDsignal;
     114           0 :     if(fTRDnSlices != pid.fTRDnSlices) {
     115             :       // only delete if number changed or is 0
     116           0 :       delete [] fTRDslices;
     117           0 :       fTRDslices = 0;
     118           0 :       fTRDnSlices = pid.fTRDnSlices;
     119           0 :       if(pid.fTRDnSlices > 0) fTRDslices = new Double32_t[fTRDnSlices];
     120             :     }
     121             : 
     122           0 :     if (fTRDslices && pid.fTRDslices)
     123           0 :       memcpy(fTRDslices, pid.fTRDslices, fTRDnSlices*sizeof(Double32_t));
     124             : 
     125           0 :     fTRDntls = pid.fTRDntls;
     126           0 :     for(Int_t i = 0; i < 6; i++){ 
     127           0 :         fTRDmomentum[i] = pid.fTRDmomentum[i];
     128           0 :         fTRDncls[i]     = pid.fTRDncls[i];
     129             :     }
     130             : 
     131           0 :     fTRDChi2 = pid.fTRDChi2;
     132             : 
     133           0 :     fTOFesdsignal=pid.fTOFesdsignal;
     134           0 :     for (Int_t i = 0; i < 5; i++) fTOFpidResolution[i]=pid.fTOFpidResolution[i];
     135           0 :     for (Int_t i = 0; i < 5; i++) fIntTime[i]=pid.fIntTime[i];
     136             :     
     137           0 :      SetTPCdEdxInfo(pid.fTPCdEdxInfo);
     138           0 :   }
     139             : 
     140           0 :   return *this;
     141             : }
     142             : //_______________________________________________________________________________
     143             : void AliAODPid::GetIntegratedTimes(Double_t *timeint, Int_t nspec) const
     144             : {
     145             :   // Returns the array with integrated times for each particle hypothesis
     146             :   //
     147           0 :   for(Int_t i=0; i<AliPID::kSPECIES; i++) timeint[i]=fIntTime[i];
     148             :   //Note: at the moment only kSPECIES entries are available
     149           0 :   if (nspec>AliPID::kSPECIES) for (int i=AliPID::kSPECIES;i<AliPID::kSPECIESC;i++) timeint[i]=0;
     150             :   //
     151           0 : }
     152             : //_______________________________________________________________________________
     153             : void AliAODPid::SetIntegratedTimes(Double_t timeint[AliPID::kSPECIES])
     154             : {
     155             :  // Returns the array with integrated times for each particle hypothesis
     156        1560 :  for(Int_t i=0; i<AliPID::kSPECIES; i++) fIntTime[i]=timeint[i];
     157         120 : }
     158             : //______________________________________________________________________________
     159             : void AliAODPid::SetTOFpidResolution(Double_t tofPIDres[5])
     160             : {
     161        1560 :   for (Int_t i=0; i<5; i++) fTOFpidResolution[i]=tofPIDres[i];
     162             : 
     163         120 : }
     164             : //______________________________________________________________________________
     165             : void AliAODPid::GetTOFpidResolution(Double_t tofRes[5]) const
     166             : {
     167           0 :   for (Int_t i=0; i<5; i++) tofRes[i]=fTOFpidResolution[i];
     168           0 : }
     169             : 
     170             : //______________________________________________________________________________
     171             : void AliAODPid::SetITSdEdxSamples(const Double_t s[4])
     172             : {
     173             :   //
     174             :   // Set the 4 values of dE/dx from individual ITS layers that are read from ESD
     175             :   //  
     176        1320 :   for (Int_t i=0; i<4; i++) fITSdEdxSamples[i]=s[i];
     177         120 : }
     178             : //______________________________________________________________________________
     179             : void AliAODPid::GetITSdEdxSamples(Double_t s[4]) const
     180             : {
     181             :   //
     182             :   // Get the 4 values of dE/dx from individual ITS layers that are read from ESD
     183             :   //  
     184           0 :   for (Int_t i=0; i<4; i++) s[i]=fITSdEdxSamples[i];
     185           0 : }
     186             : //______________________________________________________________________________
     187             : void AliAODPid::SetTPCdEdxInfo(AliTPCdEdxInfo * dEdxInfo)
     188             : {
     189             :   //
     190             :   // Set TPC dEdx info
     191             :   //
     192         312 :   if (dEdxInfo==0x0){
     193         104 :     delete fTPCdEdxInfo;
     194           0 :     fTPCdEdxInfo=0x0;
     195           0 :     return;
     196             :   }
     197         312 :   if (!fTPCdEdxInfo) fTPCdEdxInfo=new AliTPCdEdxInfo;
     198         104 :   (*fTPCdEdxInfo)=(*dEdxInfo);
     199         208 : }
     200             : 

Generated by: LCOV version 1.11