ClassImp(AliAODCluster)
//______________________________________________________________________________
-AliAODCluster::AliAODCluster() :
+AliAODCluster::AliAODCluster() :
+ AliVCluster(),
fEnergy(0),
fChi2(-999.),
fID(-999),
{
// default constructor
- SetPosition((Float_t*)NULL);
- SetPID((Float_t*)NULL);
+ SetPosition(NULL);
+ SetPID(NULL);
}
//______________________________________________________________________________
Double_t pid[13],
Char_t ttype,
UInt_t selectInfo) :
+ AliVCluster(),
fEnergy(energy),
fChi2(-999.),
fID(id),
{
// constructor
- SetPosition(x);
- SetPID(pid);
+ if(x) {for (Int_t i = 0; i < 3 ; i++) SetPositionAt(x[i] ,i);}
+ if(pid) {for (Int_t i = 0; i < 13 ; i++) SetPIDAt (pid[i],i);}
SetLabel(label, nLabel);
}
Float_t pid[13],
Char_t ttype,
UInt_t selectInfo) :
+ AliVCluster(),
fEnergy(energy),
fChi2(-999.),
fID(id),
fType(ttype)
{
// constructor
-
- SetPosition(x);
- SetPID(pid);
+ if(x) {for (Int_t i = 0; i < 3 ; i++) SetPositionAt(x[i] ,i);}
+ if(pid) {for (Int_t i = 0; i < 13 ; i++) SetPIDAt (pid[i],i);}
SetLabel(label, nLabel);
}
RemoveLabel();
}
+//______________________________________________________________________________
+void AliAODCluster::Clear(const Option_t*)
+{
+ // Clear
+
+ RemoveLabel();
+}
+
//______________________________________________________________________________
AliAODCluster::AliAODCluster(const AliAODCluster& clus) :
- TObject(clus),
+ AliVCluster(clus),
fEnergy(clus.fEnergy),
fChi2(clus.fChi2),
fID(clus.fID),
{
// Copy constructor
- clus.GetPosition(fPosition);
- SetPID(clus.fPID);
+ if(fPosition) {for(Int_t i = 0; i < 3 ; i++) fPosition[i] = clus.fPosition[i];}
+ if(fPID) {for(Int_t i = 0; i < 13 ; i++) fPID[i] = clus.fPID[i];}
+
SetLabel(clus.fLabel, clus.fNLabel);
}
{
// Assignment operator
if(this!=&clus) {
-
- clus.GetPosition(fPosition);
- clus.GetPID(fPID);
-
+
+ if(fPosition) {for(Int_t i = 0; i < 3 ; i++) fPosition[i] = clus.fPosition[i];}
+ if(fPID) {for(Int_t i = 0; i < 13 ; i++) fPID[i] = clus.fPID[i];}
+
fEnergy = clus.fEnergy;
fChi2 = clus.fChi2;
}
//______________________________________________________________________________
-template <class T> void AliAODCluster::SetPosition(const T *x)
+void AliAODCluster::SetPosition(Float_t *x)
{
// set the position
-
+
if (x) {
- fPosition[0] = x[0];
- fPosition[1] = x[1];
- fPosition[2] = x[2];
+ fPosition[0] = x[0];
+ fPosition[1] = x[1];
+ fPosition[2] = x[2];
} else {
-
fPosition[0] = -999.;
fPosition[1] = -999.;
fPosition[2] = -999.;
}
//______________________________________________________________________________
-AliAODCluster::AODCluPID_t AliAODCluster::GetMostProbablePID() const
+UShort_t AliAODCluster::GetMostProbablePID() const
{
// Returns the most probable PID array element.
Int_t nPID = 13;
+ UShort_t unknown = AliVCluster::kUnknown;
+
if (fPID) {
- AODCluPID_t loc = kUnknown;
+ UShort_t loc = unknown;
Double_t max = 0.;
Bool_t allTheSame = kTRUE;
for (Int_t iPID = 0; iPID < nPID; iPID++) {
if (fPID[iPID] >= max) {
- if (fPID[iPID] > max) {
- allTheSame = kFALSE;
- max = fPID[iPID];
- loc = (AODCluPID_t)iPID;
- } else {
- allTheSame = kTRUE;
- }
+ if (fPID[iPID] > max) {
+ allTheSame = kFALSE;
+ max = fPID[iPID];
+ loc = (UShort_t)iPID;
+ } else {
+ allTheSame = kTRUE;
+ }
}
}
- return allTheSame ? kUnknown : loc;
+ return allTheSame ? unknown : loc;
} else {
- return kUnknown;
+ return unknown;
}
}
}
//______________________________________________________________________________
-Int_t AliAODCluster::GetLabel(UInt_t i) const
+Int_t AliAODCluster::GetLabelAt(UInt_t i) const
{
if (fLabel && i < (UInt_t)fNLabel) {
return fLabel[i];
printf("Cluster type: %d\n", GetType());
printf(" energy = %f\n", E());
printf(" chi2 = %f\n", Chi2());
- printf(" PID object: %p\n", PID());
+ const Double_t *pid = GetPID();
+ printf("PID weights: photon %0.2f, pi0 %0.2f, electron %0.2f, conversion electron %0.2f\n, hadrons: pion %0.2f, kaon %0.2f, proton %0.2f , neutron %0.2f, kaon %0.2f \n",
+ pid[AliVCluster::kPhoton], pid[AliVCluster::kPi0],
+ pid[AliVCluster::kElectron], pid[AliVCluster::kEleCon],
+ pid[AliVCluster::kPion], pid[AliVCluster::kKaon], pid[AliVCluster::kProton],
+ pid[AliVCluster::kNeutron], pid[AliVCluster::kKaon0]);
}