AliRoot Core  3dc7879 (3dc7879)
AliAODCluster.h
Go to the documentation of this file.
1 #ifndef AliAODCluster_H
2 #define AliAODCluster_H
3 /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice */
5 
6 //-------------------------------------------------------------------------
15 //-------------------------------------------------------------------------
16 
17 #include <AliVCluster.h>
18 
19 class AliAODCluster : public AliVCluster {
20 
21  public:
22 
23  AliAODCluster();
24  AliAODCluster(Int_t id,
25  UInt_t nLabel,
26  Int_t *label,
27  Double_t energy,
28  Double_t x[3],
29  Double_t pid[13],
30  Char_t ttype=kUndef,
31  UInt_t selectInfo=0);
32 
33  AliAODCluster(Int_t id,
34  UInt_t nLabel,
35  Int_t *label,
36  Float_t energy,
37  Float_t x[3],
38  Float_t pid[13],
39  Char_t ttype=kUndef,
40  UInt_t selectInfo=0);
41 
42  virtual ~AliAODCluster();
43  AliAODCluster(const AliAODCluster& clus);
45  void Clear(const Option_t*);
46 
47  Double_t Chi2() const { return fChi2; }
48 
49  Double_t E() const { return fEnergy; }
50 
51  //
52  // PID
53  //
54  UShort_t GetMostProbablePID() const;
55  const Double_t *GetPID() const { return fPID; }//{ for(Int_t i=0; i<13; ++i) pid[i]=fPID[i]; }
56  Int_t GetID() const { return fID; }
57 
58  //
59  // MC
60  //
62  Int_t GetLabel() const {
63  if( fLabel && fNLabel > 0) return fLabel[0];
64  else return -1;}
65  Int_t GetLabelAt(UInt_t i) const;
66  Int_t * GetLabels() const {return fLabel ; }
67  UInt_t GetNLabels() const { return (UInt_t)fNLabel; }
68 
69  Bool_t TestFilterBit(UInt_t filterBit) const { return (Bool_t) ((filterBit & fFilterMap) != 0); }
70 
71  Char_t GetType() const { return fType; }
72 
73  void GetPosition(Float_t *x) const {
74  x[0]=fPosition[0]; x[1]=fPosition[1]; x[2]=fPosition[2];}
75 
76  Bool_t IsEMCAL() const {if(fType == kEMCALClusterv1) return kTRUE;
77  else return kFALSE;}
78 
79  Bool_t IsPHOS() const {if(fType == kPHOSCharged || fType == kPHOSNeutral) return kTRUE;
80  else return kFALSE;}
81 
82  void Print(const Option_t *opt = "") const;
83 
84  //
85  // Setters
86  //
87  void SetE(Double32_t energy) {fEnergy = energy ; }
88  void SetID(Int_t id) { fID = id; }
89  void SetType(Char_t ttype) { fType=ttype; }
90  void SetLabel(Int_t *label, UInt_t size);
91  void SetChi2(Double_t chi2) { fChi2 = chi2; }
92 
93  void SetPosition(Float_t *x);
94  void SetPositionAt(Float_t x,Int_t i) { if(i>=0 && i<3) fPosition[i] = x ;
95  else printf("Bad index for position array, i = %d\n",i);}
96 
97  void SetPIDAt(Float_t x,Int_t i) { if(i>=0 && i<13) fPID[i] = x ;
98  else printf("Bad index for PID array, i = %d\n",i);}
99  void SetPID(const Float_t *pid) {
100  if(pid) for(Int_t i=0; i<13; ++i) fPID[i]=pid[i];
101  else {for(Int_t i=0; i<13; fPID[i++]=0) ;} fPID[AliAODCluster::kUnknown]=1.;}
102  template <class T> void SetPIDFromESD(const T *pid) {
103  if(pid) {for(Int_t i=0; i<11; ++i) fPID[i]=pid[i]; fPID[11]=0; fPID[12]=0;}
104  else {for(Int_t i=0; i<13; fPID[i++]=0) ;} fPID[AliAODCluster::kUnknown]=1.;}
105 
106  void RemoveLabel();
107 
108  Double_t GetMCEnergyFraction() const { return fMCEnergyFraction ; }
109  void SetMCEnergyFraction(Double_t e) { fMCEnergyFraction = e ; }
110 
112  void SetClusterMCEdepFraction(UShort_t *array) ;
113  UShort_t * GetClusterMCEdepFraction() const { return fClusterMCEdepFraction ; }
114  Float_t GetClusterMCEdepFraction(Int_t mcIndex) const ;
115 
116  private :
117 
118  Double32_t fEnergy;
119 
120  Double32_t fPosition[3];
121 
122  Double32_t fChi2;
123 
125  Double32_t fPID[13]; //[0.,1.,8]
126 
127  Int_t fID;
128 
129  Int_t fNLabel;
130 
132  Int_t *fLabel; //[fNLabel]
133 
134  UInt_t fFilterMap;
135 
136  Char_t fType;
137 
138  Double_t fMCEnergyFraction;
139 
141  UShort_t *fClusterMCEdepFraction;//[fNLabel]
142 
144  ClassDef(AliAODCluster,7) ;
146 
147 };
148 
149 #endif
Double_t Chi2() const
Definition: AliAODCluster.h:47
printf("Chi2/npoints = %f\n", TMath::Sqrt(chi2/npoints))
Int_t GetID() const
Definition: AliAODCluster.h:56
Double32_t fPID[13]
Pointer to PID object, array with bayesian probability weights.
Int_t fID
Unique cluster ID, points back to the ESD cluster.
const Double_t * GetPID() const
Definition: AliAODCluster.h:55
AliTPCcalibPID * pid
Definition: CalibPID.C:69
AliAODCluster & operator=(const AliAODCluster &clus)
void SetMCEnergyFraction(Double_t e)
UInt_t GetNLabels() const
Definition: AliAODCluster.h:67
Bool_t IsEMCAL() const
Definition: AliAODCluster.h:76
Int_t fNLabel
Number of original MC particles generating this cluster.
UShort_t * GetClusterMCEdepFraction() const
void GetPosition(Float_t *x) const
Definition: AliAODCluster.h:73
Int_t GetLabelAt(UInt_t i) const
void SetClusterMCEdepFraction(UShort_t *array)
Virtual class for calorimeter cluster data handling.
Definition: AliVCluster.h:20
void SetPID(const Float_t *pid)
Definition: AliAODCluster.h:99
void SetID(Int_t id)
Definition: AliAODCluster.h:88
virtual ~AliAODCluster()
void SetPosition(Float_t *x)
Bool_t TestFilterBit(UInt_t filterBit) const
Definition: AliAODCluster.h:69
void SetPIDFromESD(const T *pid)
TObjArray * array
Definition: AnalyzeLaser.C:12
Double32_t fPosition[3]
Position of the cluster.
Double_t chi2
Definition: AnalyzeLaser.C:7
void Clear(const Option_t *)
UShort_t * fClusterMCEdepFraction
Array with fraction of deposited energy per MC particle contributing to the cluster.
void SetPIDAt(Float_t x, Int_t i)
Definition: AliAODCluster.h:97
Bool_t IsPHOS() const
Definition: AliAODCluster.h:79
Int_t * fLabel
Particle label array, points back to MC particles that generated the cluster.
void SetType(Char_t ttype)
Definition: AliAODCluster.h:89
void SetLabel(Int_t *label, UInt_t size)
Double32_t fChi2
Chi2 of unfolding fit (probably not necessary for PMD).
Int_t * GetLabels() const
Definition: AliAODCluster.h:66
void SetChi2(Double_t chi2)
Definition: AliAODCluster.h:91
void SetPositionAt(Float_t x, Int_t i)
Definition: AliAODCluster.h:94
Int_t GetLabel() const
Definition: AliAODCluster.h:62
void Print(const Option_t *opt="") const
Double_t fMCEnergyFraction
! MC energy (embedding)
Double_t GetMCEnergyFraction() const
Char_t fType
cluster type
void SetE(Double32_t energy)
Definition: AliAODCluster.h:87
void SetClusterMCEdepFractionFromEdepArray(Float_t *array)
Double32_t fEnergy
Cluster energy.
Char_t GetType() const
Definition: AliAODCluster.h:71
Base class for calorimeter cluster data handling.
Definition: AliAODCluster.h:19
UShort_t GetMostProbablePID() const
Double_t E() const
Definition: AliAODCluster.h:49
UInt_t fFilterMap
Filter information, one bit per set of cuts.