]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/PHOSTasks/UserTasks/AliCaloClusterInfo.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGGA / PHOSTasks / UserTasks / AliCaloClusterInfo.h
CommitLineData
a01cd2c9 1#ifndef ALICALOCLUSTERINFO_H
2#define ALICALOCLUSTERINFO_H
3
4/* Copyright(c) 1998-2006, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
7//***********************************************************
8// Class AliCaloClusterInfo
9// class used to extract and store reco info of calo cluster
10// Author: H-S. Zhu, hongsheng.zhu@cern.ch
11// hszhu@iopp.ccnu.edu.cn
12//***********************************************************
13
14#include <TObject.h>
15#include <TString.h>
bf6afad1 16#include <TArrayI.h>
a01cd2c9 17#include <TLorentzVector.h>
d96d58a7 18#include <TParticle.h>
a01cd2c9 19
bf6afad1 20class AliStack;
a01cd2c9 21class AliESDEvent;
22class AliVCluster;
a01cd2c9 23
24class AliCaloClusterInfo : public TObject{
25 public:
0f8c33c1 26
a01cd2c9 27 AliCaloClusterInfo();
bf6afad1 28 AliCaloClusterInfo(AliVCluster* const clust, Int_t relID[4]);
a01cd2c9 29 AliCaloClusterInfo(const AliCaloClusterInfo &src);
30 AliCaloClusterInfo& operator=(const AliCaloClusterInfo &src);
31 virtual ~AliCaloClusterInfo();
32
e824e25b 33 TLorentzVector LorentzVector() const { return fLorentzVector; }
a01cd2c9 34
bf6afad1
YK
35 Int_t GetModule() const { return fModule; }
36 Int_t GetTRUNumber() const { return fTRUNumber; }
37 Int_t GetNCells() const { return fNCells; }
38 TArrayI* GetLabelsArray() const { return fLabels; }
d96d58a7 39 Int_t GetLabel() const { if (fLabels && fLabels->GetSize() >0) return fLabels->At(0); else return -1; }
40 Int_t GetLabelAt(UInt_t i) const { if (fLabels && i<(UInt_t)fLabels->GetSize()) return fLabels->At(i); else return -999; }
41 UInt_t GetNLabels() const { if (fLabels) return fLabels->GetSize(); else return (0); }
bf6afad1
YK
42
43 UInt_t GetPIDBit() const { return fPIDBit; }
44 Double_t GetDistToBad() const { return fDistToBad; }
45 Double_t GetM02() const { return fM02; }
46 Double_t GetM20() const { return fM20; }
47 Double_t GetTOF() const { return fTOF; }
a01cd2c9 48
e824e25b 49 void SetLorentzVector(TLorentzVector momentum) { fLorentzVector = momentum; }
d96d58a7 50 void SetLabels(UInt_t size, Int_t* labels) { if (fLabels) delete fLabels; fLabels = new TArrayI(size, labels); }
a01cd2c9 51
bf6afad1 52 Bool_t IsInFiducialRegion(Int_t cellX, Int_t cellZ);
d96d58a7 53 Bool_t IsMergedClusterFromPi0(AliStack* const stack, Int_t &pi0Indx);
54 Bool_t IsClusterFromCvtedPi0(AliStack* const stack, Bool_t &isConverted, Int_t &pi0Indx);
a01cd2c9 55
56 private:
57
bf6afad1
YK
58 void FillCaloClusterInfo(AliVCluster* const clust, Int_t relID[4]);
59 void SetPIDBit(UInt_t bit) { fPIDBit |= bit; }
60 Double_t TestDisp();
a01cd2c9 61
d96d58a7 62 Bool_t IsClusterFromPi0(AliStack* const stack, Int_t label, Int_t &pi0Indx);
63 Bool_t IsClusterFromPi0Pure(AliStack* const stack, Int_t label, Int_t &pi0Indx);
64 Bool_t IsClusterFromPi0Converted(AliStack* const stack, Int_t label, Int_t &pi0Indx);
bf6afad1 65 Int_t GetTRUNumber(Int_t cellX, Int_t cellZ);
a01cd2c9 66
67 TLorentzVector fLorentzVector;
68
69 Int_t fModule;
e824e25b 70 Int_t fTRUNumber; // TRU Number
71 Int_t fNCells; // Number of cells in cluster
72 UInt_t fPIDBit; // PID Bit
bf6afad1
YK
73 TArrayI* fLabels; // list of primaries that generated the cluster, ordered in deposited energy
74 Double_t fDistToBad; // Distance to nearest bad channel
e824e25b 75 Double_t fM02; // lambda0
76 Double_t fM20; // lambda1
a01cd2c9 77 Double_t fTOF;
a01cd2c9 78
d96d58a7 79 ClassDef(AliCaloClusterInfo, 3);
a01cd2c9 80};
81
82#endif // #ifdef ALICALOCLUSTERINFO_H