]>
Commit | Line | Data |
---|---|---|
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 | 20 | class AliStack; |
a01cd2c9 | 21 | class AliESDEvent; |
22 | class AliVCluster; | |
a01cd2c9 | 23 | |
24 | class 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 |