ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, 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.                  *
 **************************************************************************/
//
//
//
//  Xianguo Lu 
//  lu@physi.uni-heidelberg.de
//  Xianguo.Lu@cern.ch
//
/*
grep " AliTRDdEdxReconUtils::" AliTRDdEdxReconUtils.cxx | grep "=" -v  | grep -v "[6]" | grep -v printf  |wc
grep "(" AliTRDdEdxReconUtils.h | grep ";" | grep -v grep | grep -v ClassDef | grep -v "{" | grep -v typedef | wc
*/


#ifndef ALITRDDEDXRECONUTILS_H
#define ALITRDDEDXRECONUTILS_H

#ifndef TVECTORD_H
#include "TVectorD.h"
#endif

#ifndef THNSPARSE_H
#include "THnBase.h"
#endif

#ifndef TTREESTREAM_H
#include "TTreeStream.h"
#endif 

class TH1D;
class TH2D;
class TObjArray;

class AliESDEvent;
class AliESDtrack;
class AliTRDcluster;
class AliTRDtrackV1;
class AliTRDseedV1;

class AliTRDdEdxReconUtils
{
 public:


  static Int_t ApplyCalib(const Int_t nc0, TVectorD *arrayQ, TVectorD *arrayX, const TObjArray *cobj);
  static Double_t ToyCook(const Bool_t kinvq, Int_t &ncluster, TVectorD *arrayQ, TVectorD *arrayX, const TObjArray *cobj=0x0);
  static Double_t CombineddEdx(const Bool_t kinvq, Int_t &concls, TVectorD *coarrayQ, TVectorD *coarrayX, const Int_t tpcncls, const TVectorD *tpcarrayQ, const TVectorD *tpcarrayX, const Int_t trdncls, const TVectorD *trdarrayQ, const TVectorD *trdarrayX);
  static Int_t GetArrayClusterQ(const Bool_t kinvq, TVectorD *arrayQ, TVectorD *arrayX, const AliTRDtrackV1 *trdtrack, Int_t timeBin0=-1, Int_t timeBin1=1000, Int_t tstep=1);
  static Int_t UpdateArrayX(const Int_t ncls, TVectorD* arrayX);

 private:
  static Double_t GetPadGain(const Int_t det, const Int_t icol, const Int_t irow);
  static Double_t GetRNDClusterQ(AliTRDcluster *cl, const Double_t baseline);
  static Double_t GetClusterQ(const Bool_t kinvq, const AliTRDseedV1 * seed, const Int_t itb);

};

#endif
 AliTRDdEdxReconUtils.h:1
 AliTRDdEdxReconUtils.h:2
 AliTRDdEdxReconUtils.h:3
 AliTRDdEdxReconUtils.h:4
 AliTRDdEdxReconUtils.h:5
 AliTRDdEdxReconUtils.h:6
 AliTRDdEdxReconUtils.h:7
 AliTRDdEdxReconUtils.h:8
 AliTRDdEdxReconUtils.h:9
 AliTRDdEdxReconUtils.h:10
 AliTRDdEdxReconUtils.h:11
 AliTRDdEdxReconUtils.h:12
 AliTRDdEdxReconUtils.h:13
 AliTRDdEdxReconUtils.h:14
 AliTRDdEdxReconUtils.h:15
 AliTRDdEdxReconUtils.h:16
 AliTRDdEdxReconUtils.h:17
 AliTRDdEdxReconUtils.h:18
 AliTRDdEdxReconUtils.h:19
 AliTRDdEdxReconUtils.h:20
 AliTRDdEdxReconUtils.h:21
 AliTRDdEdxReconUtils.h:22
 AliTRDdEdxReconUtils.h:23
 AliTRDdEdxReconUtils.h:24
 AliTRDdEdxReconUtils.h:25
 AliTRDdEdxReconUtils.h:26
 AliTRDdEdxReconUtils.h:27
 AliTRDdEdxReconUtils.h:28
 AliTRDdEdxReconUtils.h:29
 AliTRDdEdxReconUtils.h:30
 AliTRDdEdxReconUtils.h:31
 AliTRDdEdxReconUtils.h:32
 AliTRDdEdxReconUtils.h:33
 AliTRDdEdxReconUtils.h:34
 AliTRDdEdxReconUtils.h:35
 AliTRDdEdxReconUtils.h:36
 AliTRDdEdxReconUtils.h:37
 AliTRDdEdxReconUtils.h:38
 AliTRDdEdxReconUtils.h:39
 AliTRDdEdxReconUtils.h:40
 AliTRDdEdxReconUtils.h:41
 AliTRDdEdxReconUtils.h:42
 AliTRDdEdxReconUtils.h:43
 AliTRDdEdxReconUtils.h:44
 AliTRDdEdxReconUtils.h:45
 AliTRDdEdxReconUtils.h:46
 AliTRDdEdxReconUtils.h:47
 AliTRDdEdxReconUtils.h:48
 AliTRDdEdxReconUtils.h:49
 AliTRDdEdxReconUtils.h:50
 AliTRDdEdxReconUtils.h:51
 AliTRDdEdxReconUtils.h:52
 AliTRDdEdxReconUtils.h:53
 AliTRDdEdxReconUtils.h:54
 AliTRDdEdxReconUtils.h:55
 AliTRDdEdxReconUtils.h:56
 AliTRDdEdxReconUtils.h:57
 AliTRDdEdxReconUtils.h:58
 AliTRDdEdxReconUtils.h:59
 AliTRDdEdxReconUtils.h:60
 AliTRDdEdxReconUtils.h:61
 AliTRDdEdxReconUtils.h:62
 AliTRDdEdxReconUtils.h:63
 AliTRDdEdxReconUtils.h:64
 AliTRDdEdxReconUtils.h:65
 AliTRDdEdxReconUtils.h:66
 AliTRDdEdxReconUtils.h:67
 AliTRDdEdxReconUtils.h:68
 AliTRDdEdxReconUtils.h:69
 AliTRDdEdxReconUtils.h:70
 AliTRDdEdxReconUtils.h:71