//______________________________________________________________________________
AliAODCluster::AliAODCluster() :
- AliVirtualParticle(),
+ AliVParticle(),
fEnergy(0),
fChi2(-999.),
fID(-999),
fLabel(-999),
+ fType(kUndef),
fCovMatrix(NULL),
fProdVertex(0x0),
- fPrimTrack(NULL),
- fType(kUndef)
+ fPrimTrack(NULL)
{
// default constructor
Double_t energy,
Double_t x[3],
Double_t covMatrix[10],
- Double_t pid[10],
+ Double_t pid[9],
AliAODVertex *prodVertex,
AliAODTrack *primTrack,
Char_t ttype) :
- AliVirtualParticle(),
+ AliVParticle(),
fEnergy(energy),
fChi2(-999.),
fID(id),
fLabel(label),
+ fType(ttype),
fCovMatrix(NULL),
fProdVertex(prodVertex),
- fPrimTrack(primTrack),
- fType(ttype)
+ fPrimTrack(primTrack)
{
// constructor
Float_t energy,
Float_t x[3],
Float_t covMatrix[10],
- Float_t pid[10],
+ Float_t pid[9],
AliAODVertex *prodVertex,
AliAODTrack *primTrack,
Char_t ttype) :
- AliVirtualParticle(),
+ AliVParticle(),
fEnergy(energy),
fChi2(-999.),
fID(id),
fLabel(label),
+ fType(ttype),
fCovMatrix(NULL),
fProdVertex(prodVertex),
- fPrimTrack(primTrack),
- fType(ttype)
+ fPrimTrack(primTrack)
{
// constructor
//______________________________________________________________________________
-AliAODCluster::AliAODCluster(const AliAODCluster& trk) :
- AliVirtualParticle(trk),
- fEnergy(trk.fEnergy),
- fChi2(trk.fChi2),
- fID(trk.fID),
- fLabel(trk.fLabel),
+AliAODCluster::AliAODCluster(const AliAODCluster& clus) :
+ AliVParticle(clus),
+ fEnergy(clus.fEnergy),
+ fChi2(clus.fChi2),
+ fID(clus.fID),
+ fLabel(clus.fLabel),
+ fType(clus.fType),
fCovMatrix(NULL),
- fProdVertex(trk.fProdVertex),
- fPrimTrack(trk.fPrimTrack),
- fType(trk.fType)
+ fProdVertex(clus.fProdVertex),
+ fPrimTrack(clus.fPrimTrack)
{
// Copy constructor
- trk.GetPosition(fPosition);
- if(trk.fCovMatrix) fCovMatrix=new AliAODRedCov<4>(*trk.fCovMatrix);
- SetPID(trk.fPID);
+ clus.GetPosition(fPosition);
+ if(clus.fCovMatrix) fCovMatrix=new AliAODRedCov<4>(*clus.fCovMatrix);
+ SetPID(clus.fPID);
}
//______________________________________________________________________________
-AliAODCluster& AliAODCluster::operator=(const AliAODCluster& trk)
+AliAODCluster& AliAODCluster::operator=(const AliAODCluster& clus)
{
// Assignment operator
- if(this!=&trk) {
+ if(this!=&clus) {
- AliVirtualParticle::operator=(trk);
+ AliVParticle::operator=(clus);
- trk.GetPosition(fPosition);
- trk.GetPID(fPID);
+ clus.GetPosition(fPosition);
+ clus.GetPID(fPID);
- fChi2 = trk.fEnergy;
- fChi2 = trk.fChi2;
+ fEnergy = clus.fEnergy;
+ fChi2 = clus.fChi2;
- fID = trk.fID;
- fLabel = trk.fLabel;
+ fID = clus.fID;
+ fLabel = clus.fLabel;
+
+ fType = clus.fType;
delete fCovMatrix;
- if(trk.fCovMatrix) fCovMatrix=new AliAODRedCov<4>(*trk.fCovMatrix);
+ if(clus.fCovMatrix) fCovMatrix=new AliAODRedCov<4>(*clus.fCovMatrix);
else fCovMatrix=NULL;
- fProdVertex = trk.fProdVertex;
- fPrimTrack = trk.fPrimTrack;
- fType = trk.fType;
+ fProdVertex = clus.fProdVertex;
+ fPrimTrack = clus.fPrimTrack;
}
return *this;
}
}
+//______________________________________________________________________________
+AliAODCluster::AODCluPID_t AliAODCluster::GetMostProbablePID() const
+{
+ // Returns the most probable PID array element.
+
+ Int_t nPID = 9;
+ if (fPID) {
+ AODCluPID_t loc = kUnknown;
+ 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;
+ }
+ }
+ }
+
+ return allTheSame ? kUnknown : loc;
+ } else {
+ return kUnknown;
+ }
+}
+
//______________________________________________________________________________
void AliAODCluster::Print(Option_t* /* option */) const
{