// or other particle identification and correlations
// Separates generated particles into charged (CTS)
// and neutral (PHOS or EMCAL acceptance)
+// Now, it only works with data stored in Kinematics.root and
+// not in filtered Kinematics branch in AODs
//
//*-- Author: Gustavo Conesa (LNF-INFN)
//////////////////////////////////////////////////////////////////////////////
#include "AliCaloTrackMCReader.h"
#include "AliGenEventHeader.h"
#include "AliStack.h"
-#include "AliAODCaloCluster.h"
+#include "AliVCluster.h"
#include "AliAODTrack.h"
#include "AliAODEvent.h"
#include "AliFiducialCut.h"
AliCaloTrackReader(), fDecayPi0(0),
fNeutralParticlesArray(0x0), fChargedParticlesArray(0x0),
fStatusArray(0x0), fKeepAllStatus(0), fCheckOverlap(0),
- fEMCALOverlapAngle(0),fPHOSOverlapAngle(0), fIndex2ndPhoton(0)
+ fEMCALOverlapAngle(0),fPHOSOverlapAngle(0), fIndex2ndPhoton(0),
+ fOnlyGeneratorParticles(kTRUE)
{
//Ctor
//Initialize parameters
InitParameters();
- fDataType = kMC;
- fReadStack = kTRUE;
- fReadAODMCParticles = kFALSE;
-
-}
-/*
-//____________________________________________________________________________
-AliCaloTrackMCReader::AliCaloTrackMCReader(const AliCaloTrackMCReader & g) :
- AliCaloTrackReader(g), fDecayPi0(g.fDecayPi0),
- fNeutralParticlesArray(g.fNeutralParticlesArray?new TArrayI(*g.fNeutralParticlesArray):0x0),
- fChargedParticlesArray(g.fChargedParticlesArray?new TArrayI(*g.fChargedParticlesArray):0x0),
- fStatusArray(g.fStatusArray?new TArrayI(*g.fStatusArray):0x0),
- fKeepAllStatus(g.fKeepAllStatus), fCheckOverlap(g.fCheckOverlap),
- fEMCALOverlapAngle( g.fEMCALOverlapAngle), fPHOSOverlapAngle(g.fPHOSOverlapAngle),
- fIndex2ndPhoton(g.fIndex2ndPhoton)
-{
- // cpy ctor
}
-*/
-//_________________________________________________________________________
-//AliCaloTrackMCReader & AliCaloTrackMCReader::operator = (const AliCaloTrackMCReader & source)
-//{
-// // assignment operator
-//
-// if(&source == this) return *this;
-//
-// fDecayPi0 = source.fDecayPi0;
-//
-// delete fChargedParticlesArray;
-// fChargedParticlesArray = source.fChargedParticlesArray?new TArrayI(*source.fChargedParticlesArray):0x0;
-//
-// delete fNeutralParticlesArray;
-// fNeutralParticlesArray = source.fNeutralParticlesArray?new TArrayI(*source.fNeutralParticlesArray):0x0;
-//
-// delete fStatusArray;
-// fStatusArray = source.fStatusArray?new TArrayI(*source.fStatusArray):0x0;
-//
-// fKeepAllStatus = source.fKeepAllStatus ;
-//
-// return *this;
-//
-//}
-//
//_________________________________
AliCaloTrackMCReader::~AliCaloTrackMCReader() {
//Dtor
if(fChargedParticlesArray) delete fChargedParticlesArray ;
if(fNeutralParticlesArray) delete fNeutralParticlesArray ;
- if(fStatusArray) delete fStatusArray ;
+ if(fStatusArray) delete fStatusArray ;
}
}
-
//_______________________________________________________________
void AliCaloTrackMCReader::InitParameters()
{
fNeutralParticlesArray->SetAt(12,0); fNeutralParticlesArray->SetAt(14,1); fNeutralParticlesArray->SetAt(16,2);
fStatusArray = new TArrayI(1);
fStatusArray->SetAt(1,0);
-
- fKeepAllStatus = kTRUE;
+
+ fOnlyGeneratorParticles = kTRUE;
+ fKeepAllStatus = kTRUE;
- fCheckOverlap = kFALSE;
- fEMCALOverlapAngle = 2.5 * TMath::DegToRad();
- fPHOSOverlapAngle = 0.5 * TMath::DegToRad();
- fIndex2ndPhoton = -1;
+ fCheckOverlap = kFALSE;
+ fEMCALOverlapAngle = 2.5 * TMath::DegToRad();
+ fPHOSOverlapAngle = 0.5 * TMath::DegToRad();
+ fIndex2ndPhoton = -1;
+
+ fDataType = kMC;
+ fReadStack = kTRUE;
+ fReadAODMCParticles = kFALSE; //This class only works with Kinematics.root input.
+
+ //For this reader we own the objects of the arrays
+ fCTSTracks ->SetOwner(kTRUE);
+ fEMCALClusters->SetOwner(kTRUE);
+ fPHOSClusters ->SetOwner(kTRUE);
+
}
+
//____________________________________________________________________________
void AliCaloTrackMCReader::CheckOverlap(const Float_t anglethres, const Int_t imom, Int_t & iPrimary, Int_t & index, TLorentzVector & mom, Int_t & pdg) {
//Check overlap of decay photons
}
//____________________________________________________________________________
-void AliCaloTrackMCReader::FillCalorimeters(Int_t & iParticle, TParticle* particle, TLorentzVector momentum,
- Int_t &ncalo) {
+void AliCaloTrackMCReader::FillCalorimeters(Int_t & iParticle, TParticle* particle, TLorentzVector &momentum) {
//Fill AODCaloClusters or TParticles lists of PHOS or EMCAL
//In PHOS
if(fFillPHOS && momentum.Pt() > fPHOSPtMin){
- if(!fFiducialCut->IsInFiducialCut(momentum,"PHOS")) return;
+ if(fCheckFidCut && !fFiducialCut->IsInFiducialCut(momentum,"PHOS")) return;
Int_t index = iParticle ;
Int_t pdg = TMath::Abs(particle->GetPdgCode());
if(fCheckOverlap)
CheckOverlap(fPHOSOverlapAngle,particle->GetFirstMother(),index, iParticle, momentum, pdg);
- Char_t ttype= AliAODCluster::kPHOSNeutral;
+ Char_t ttype= AliVCluster::kPHOSNeutral;
Int_t labels[] = {index};
Float_t x[] = {momentum.X(), momentum.Y(), momentum.Z()};
//Create object and write it to file
- AliAODCaloCluster *calo = new((*(fOutputEvent->GetCaloClusters()))[ncalo++])
- AliAODCaloCluster(index,1,labels,momentum.E(), x, NULL, ttype, 0);
+ AliAODCaloCluster *calo = new AliAODCaloCluster(index,1,labels,momentum.E(), x, NULL, ttype, 0);
SetCaloClusterPID(pdg,calo) ;
if(fDebug > 3 && momentum.Pt() > 0.2)
printf("AliCaloTrackMCReader::FillCalorimeters() - PHOS : Selected cluster %s E %3.2f, pt %3.2f, phi %3.2f, eta %3.2f\n",
particle->GetName(),momentum.E(),momentum.Pt(),momentum.Phi()*TMath::RadToDeg(),momentum.Eta());
- fAODPHOS->Add(calo);//reference the selected object to the list
+ fPHOSClusters->Add(calo);//reference the selected object to the list
}
//In EMCAL
if(fFillEMCAL && momentum.Pt() > fEMCALPtMin){
- if(!fFiducialCut->IsInFiducialCut(momentum,"EMCAL")) return;
+ if(fCheckFidCut && !fFiducialCut->IsInFiducialCut(momentum,"EMCAL")) return;
Int_t index = iParticle ;
Int_t pdg = TMath::Abs(particle->GetPdgCode());
if(fCheckOverlap)
CheckOverlap(fEMCALOverlapAngle,particle->GetFirstMother(),iParticle, index, momentum, pdg);
- Char_t ttype= AliAODCluster::kEMCALClusterv1;
+ Char_t ttype= AliVCluster::kEMCALClusterv1;
Int_t labels[] = {index};
Float_t x[] = {momentum.X(), momentum.Y(), momentum.Z()};
//Create object and write it to file
- AliAODCaloCluster *calo = new((*(fOutputEvent->GetCaloClusters()))[ncalo++])
- AliAODCaloCluster(iParticle,1,labels,momentum.E(), x, NULL, ttype, 0);
+ AliAODCaloCluster *calo = new AliAODCaloCluster(iParticle,1,labels,momentum.E(), x, NULL, ttype, 0);
SetCaloClusterPID(pdg,calo) ;
if(fDebug > 3 && momentum.Pt() > 0.2)
printf("AliCaloTrackMCReader::FillCalorimeters() - EMCAL : Selected cluster %s E %3.2f, pt %3.2f, phi %3.2f, eta %3.2f\n",
particle->GetName(),momentum.E(),momentum.Pt(),momentum.Phi()*TMath::RadToDeg(),momentum.Eta());
- fAODEMCAL->Add(calo);//reference the selected object to the list
+ fEMCALClusters->Add(calo);//reference the selected object to the list
}
}
//____________________________________________________________________________
-Bool_t AliCaloTrackMCReader::FillInputEvent(const Int_t iEntry, const char * currentFileName){
+Bool_t AliCaloTrackMCReader::FillInputEvent(const Int_t iEntry, const char * /*currentFileName*/){
//Fill the event counter and input lists that are needed, called by the analysis maker.
- fEventNumber = iEntry;
- fCurrentFileName = TString(currentFileName);
-
+ fEventNumber = iEntry;
+ //fCurrentFileName = TString(currentFileName);
+ fTrackMult = 0;
//In case of analysis of events with jets, skip those with jet pt > 5 pt hard
if(fComparePtHardAndJetPt && GetStack()) {
- if(!ComparePtHardAndJetPt()) return kFALSE ;
+ if(!ComparePtHardAndJetPt()) return kFALSE ;
}
- Int_t iParticle = 0 ;
- Double_t charge = 0.;
- Int_t ncalo = (fOutputEvent->GetCaloClusters())->GetEntriesFast();
- Int_t ntrack = (fOutputEvent->GetTracks())->GetEntriesFast();
-
- for (iParticle = 0 ; iParticle < GetStack()->GetNtrack() ; iParticle++) {
+ //Fill Vertex array
+ FillVertexArray();
+
+ Int_t iParticle = 0 ;
+ Double_t charge = 0.;
+ Int_t nparticles = GetStack()->GetNtrack() ;
+ if(fOnlyGeneratorParticles) nparticles=GetStack()->GetNprimary();
+ for (iParticle = 0 ; iParticle < nparticles ; iParticle++) {
TParticle * particle = GetStack()->Particle(iParticle);
TLorentzVector momentum;
Float_t p[3];
particle->Momentum(momentum);
//---------- Charged particles ----------------------
if(charge != 0){
- if(fFillCTS && (momentum.Pt() > fCTSPtMin)){
- //Particles in CTS acceptance
-
- if(!fFiducialCut->IsInFiducialCut(momentum,"CTS")) continue;
-
- if(fDebug > 3 && momentum.Pt() > 0.2)
- printf("AliCaloTrackMCReader::FillInputEvent() - CTS : Selected tracks E %3.2f, pt %3.2f, phi %3.2f, eta %3.2f\n",
- momentum.E(),momentum.Pt(),momentum.Phi()*TMath::RadToDeg(),momentum.Eta());
-
- x[0] = particle->Vx(); x[1] = particle->Vy(); x[2] = particle->Vz();
- p[0] = particle->Px(); p[1] = particle->Py(); p[2] = particle->Pz();
- //Create object and write it to file
- AliAODTrack *aodTrack = new((*(fOutputEvent->GetTracks()))[ntrack++])
- AliAODTrack(0, iParticle, p, kTRUE, x, kFALSE,NULL, 0, 0,
- NULL,
- 0x0,//primary,
- kFALSE, // No fit performed
- kFALSE, // No fit performed
- AliAODTrack::kPrimary,
- 0);
- SetTrackChargeAndPID(pdg, aodTrack);
- fAODCTS->Add(aodTrack);//reference the selected object to the list
- }
- //Keep some charged particles in calorimeters lists
- if((fFillPHOS || fFillEMCAL) && KeepChargedParticles(pdg)) FillCalorimeters(iParticle, particle, momentum, ncalo);
-
+
+ if(TMath::Abs(momentum.Eta())< fTrackMultEtaCut) fTrackMult++;
+
+ if(fFillCTS && (momentum.Pt() > fCTSPtMin)){
+ //Particles in CTS acceptance
+
+ if(fCheckFidCut && !fFiducialCut->IsInFiducialCut(momentum,"CTS")) continue;
+
+ if(TMath::Abs(pdg) == 11 && GetStack()->Particle(particle->GetFirstMother())->GetPdgCode()==22) continue ;
+
+ if(fDebug > 3 && momentum.Pt() > 0.2)
+ printf("AliCaloTrackMCReader::FillInputEvent() - CTS : Selected tracks E %3.2f, pt %3.2f, phi %3.2f, eta %3.2f\n",
+ momentum.E(),momentum.Pt(),momentum.Phi()*TMath::RadToDeg(),momentum.Eta());
+
+ x[0] = particle->Vx(); x[1] = particle->Vy(); x[2] = particle->Vz();
+ p[0] = particle->Px(); p[1] = particle->Py(); p[2] = particle->Pz();
+ //Create object and write it to file
+ AliAODTrack *aodTrack = new AliAODTrack(0, iParticle, p, kTRUE, x, kFALSE,NULL, 0, 0,
+ NULL,
+ 0x0,//primary,
+ kFALSE, // No fit performed
+ kFALSE, // No fit performed
+ AliAODTrack::kPrimary,
+ 0);
+ SetTrackChargeAndPID(pdg, aodTrack);
+ fCTSTracks->Add(aodTrack);//reference the selected object to the list
+ }
+ //Keep some charged particles in calorimeters lists
+ if((fFillPHOS || fFillEMCAL) && KeepChargedParticles(pdg)) FillCalorimeters(iParticle, particle, momentum);
+
}//Charged
//-------------Neutral particles ----------------------
else if(charge == 0 && (fFillPHOS || fFillEMCAL)){
- //Skip neutrinos or other neutral particles
- //if(SkipNeutralParticles(pdg) || particle->IsPrimary()) continue ; // protection added (MG)
- if(SkipNeutralParticles(pdg)) continue ;
- //Fill particle/calocluster arrays
- if(!fDecayPi0) {
- FillCalorimeters(iParticle, particle, momentum, ncalo);
- }
- else {
- //Sometimes pi0 are stable for the generator, if needed decay it by hand
- if(pdg == 111 ){
- if(momentum.Pt() > fPHOSPtMin || momentum.Pt() > fEMCALPtMin){
- TLorentzVector lvGamma1, lvGamma2 ;
- //Double_t angle = 0;
-
- //Decay
- MakePi0Decay(momentum,lvGamma1,lvGamma2);//,angle);
-
- //Check if Pi0 is in the acceptance of the calorimeters, if aperture angle is small, keep it
- TParticle * pPhoton1 = new TParticle(22,1,iParticle,0,0,0,lvGamma1.Px(),lvGamma1.Py(),
- lvGamma1.Pz(),lvGamma1.E(),0,0,0,0);
- TParticle * pPhoton2 = new TParticle(22,1,iParticle,0,0,0,lvGamma2.Px(),lvGamma2.Py(),
- lvGamma2.Pz(),lvGamma2.E(),0,0,0,0);
- //Fill particle/calocluster arrays
- FillCalorimeters(iParticle,pPhoton1,lvGamma1, ncalo);
- FillCalorimeters(iParticle,pPhoton2,lvGamma2, ncalo);
- }//pt cut
- }//pi0
- else FillCalorimeters(iParticle,particle, momentum, ncalo); //Add the rest
- }
+ //Skip neutrinos or other neutral particles
+ //if(SkipNeutralParticles(pdg) || particle->IsPrimary()) continue ; // protection added (MG)
+ if(SkipNeutralParticles(pdg)) continue ;
+ //Fill particle/calocluster arrays
+ if(!fDecayPi0) {
+ FillCalorimeters(iParticle, particle, momentum);
+ }
+ else {
+ //Sometimes pi0 are stable for the generator, if needed decay it by hand
+ if(pdg == 111 ){
+ if(momentum.Pt() > fPHOSPtMin || momentum.Pt() > fEMCALPtMin){
+ TLorentzVector lvGamma1, lvGamma2 ;
+ //Double_t angle = 0;
+
+ //Decay
+ MakePi0Decay(momentum,lvGamma1,lvGamma2);//,angle);
+
+ //Check if Pi0 is in the acceptance of the calorimeters, if aperture angle is small, keep it
+ TParticle * pPhoton1 = new TParticle(22,1,iParticle,0,0,0,lvGamma1.Px(),lvGamma1.Py(),
+ lvGamma1.Pz(),lvGamma1.E(),0,0,0,0);
+ TParticle * pPhoton2 = new TParticle(22,1,iParticle,0,0,0,lvGamma2.Px(),lvGamma2.Py(),
+ lvGamma2.Pz(),lvGamma2.E(),0,0,0,0);
+ //Fill particle/calocluster arrays
+ FillCalorimeters(iParticle,pPhoton1,lvGamma1);
+ FillCalorimeters(iParticle,pPhoton2,lvGamma2);
+ }//pt cut
+ }//pi0
+ else FillCalorimeters(iParticle,particle, momentum); //Add the rest
+ }
}//neutral particles
} //particle with correct status
}//particle loop
fIndex2ndPhoton = -1; //In case of overlapping studies, reset for each event
return kTRUE;
-
+
}
//________________________________________________________________
if(! opt)
return;
+ AliCaloTrackReader::Print(opt);
+
printf("**** Print **** %s %s ****\n", GetName(), GetTitle() ) ;
printf("Decay Pi0? : %d\n", fDecayPi0) ;
}
//____________________________________________________________________
-void AliCaloTrackMCReader::SetCaloClusterPID(const Int_t pdgCode, AliAODCaloCluster *calo) const {
+void AliCaloTrackMCReader::SetCaloClusterPID(const Int_t pdgCode, AliVCluster *calo) const {
//Give a PID weight for CaloClusters equal to 1 depending on the particle type
Float_t pid[13] = {0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.};
switch (pdgCode) {
case 22: // gamma
- pid[AliAODCaloCluster::kPhoton] = 1.;
+ pid[AliVCluster::kPhoton] = 1.;
calo->SetPID(pid);
break;
case 11: // e-
- pid[AliAODCaloCluster::kElectron] = 1.;
+ pid[AliVCluster::kElectron] = 1.;
calo->SetPID(pid);
break;
case -11: // e+
- pid[AliAODCaloCluster::kElectron] = 1.;
+ pid[AliVCluster::kElectron] = 1.;
calo->SetPID(pid);
break;
case 13: // mu-
- pid[AliAODCaloCluster::kCharged] = 1.;
+ pid[AliVCluster::kCharged] = 1.;
calo->SetPID(pid);
break;
case -13: // mu+
- pid[AliAODCaloCluster::kCharged] = 1.;
+ pid[AliVCluster::kCharged] = 1.;
calo->SetPID(pid);
break;
case 111: // pi0
- pid[AliAODCaloCluster::kPi0] = 1.;
+ pid[AliVCluster::kPi0] = 1.;
calo->SetPID(pid);
break;
case 211: // pi+
- pid[AliAODCaloCluster::kCharged] = 1.;
+ pid[AliVCluster::kCharged] = 1.;
calo->SetPID(pid);
break;
case -211: // pi-
- pid[AliAODCaloCluster::kCharged] = 1.;
+ pid[AliVCluster::kCharged] = 1.;
calo->SetPID(pid);
break;
case 130: // K0L
- pid[AliAODCaloCluster::kKaon0] = 1.;
- pid[AliAODCaloCluster::kNeutral] = 1;
+ pid[AliVCluster::kKaon0] = 1.;
+ pid[AliVCluster::kNeutral] = 1;
calo->SetPID(pid);
break;
case 321: // K+
- pid[AliAODCaloCluster::kCharged] = 1.;
+ pid[AliVCluster::kCharged] = 1.;
calo->SetPID(pid);
break;
case -321: // K-
- pid[AliAODCaloCluster::kCharged] = 1.;
+ pid[AliVCluster::kCharged] = 1.;
calo->SetPID(pid);
break;
case 2112: // n
- pid[AliAODCaloCluster::kNeutron] = 1.;
- pid[AliAODCaloCluster::kNeutral] = 1.;
+ pid[AliVCluster::kNeutron] = 1.;
+ pid[AliVCluster::kNeutral] = 1.;
calo->SetPID(pid);
break;
case 2212: // p
- pid[AliAODCaloCluster::kCharged] = 1.;
+ pid[AliVCluster::kCharged] = 1.;
calo->SetPID(pid);
break;
case -2212: // anti-p
- pid[AliAODCaloCluster::kCharged] = 1.;
+ pid[AliVCluster::kCharged] = 1.;
calo->SetPID(pid);
break;
case 310: // K0S
- pid[AliAODCaloCluster::kKaon0] = 1.;
- pid[AliAODCaloCluster::kNeutral] = 1.;
+ pid[AliVCluster::kKaon0] = 1.;
+ pid[AliVCluster::kNeutral] = 1.;
calo->SetPID(pid);
break;
case 311: // K0
- pid[AliAODCaloCluster::kKaon0] = 1.;
- pid[AliAODCaloCluster::kNeutral] = 1.;
+ pid[AliVCluster::kKaon0] = 1.;
+ pid[AliVCluster::kNeutral] = 1.;
calo->SetPID(pid);
break;
case -311: // anti-K0
- pid[AliAODCaloCluster::kKaon0] = 1.;
- pid[AliAODCaloCluster::kNeutral] = 1.;
+ pid[AliVCluster::kKaon0] = 1.;
+ pid[AliVCluster::kNeutral] = 1.;
calo->SetPID(pid);
break;
case 221: // eta
- pid[AliAODCaloCluster::kNeutral] = 1.;
+ pid[AliVCluster::kNeutral] = 1.;
calo->SetPID(pid);
break;
case 3122: // lambda
- pid[AliAODCaloCluster::kUnknown] = 1.;
+ pid[AliVCluster::kUnknown] = 1.;
calo->SetPID(pid);
break;
case 3222: // Sigma+
- pid[AliAODCaloCluster::kUnknown] = 1.;
+ pid[AliVCluster::kUnknown] = 1.;
calo->SetPID(pid);
break;
case 3212: // Sigma0
- pid[AliAODCaloCluster::kUnknown] = 1.;
+ pid[AliVCluster::kUnknown] = 1.;
calo->SetPID(pid);
break;
case 3112: // Sigma-
- pid[AliAODCaloCluster::kUnknown] = 1.;
+ pid[AliVCluster::kUnknown] = 1.;
calo->SetPID(pid);
break;
case 3322: // Xi0
- pid[AliAODCaloCluster::kUnknown] = 1.;
+ pid[AliVCluster::kUnknown] = 1.;
calo->SetPID(pid);
break;
case 3312: // Xi-
- pid[AliAODCaloCluster::kUnknown] = 1.;
+ pid[AliVCluster::kUnknown] = 1.;
calo->SetPID(pid);
break;
case 3334: // Omega-
- pid[AliAODCaloCluster::kUnknown] = 1.;
+ pid[AliVCluster::kUnknown] = 1.;
calo->SetPID(pid);
break;
case -2112: // n-bar
- pid[AliAODCaloCluster::kNeutron] = 1.;
- pid[AliAODCaloCluster::kNeutral] = 1.;
+ pid[AliVCluster::kNeutron] = 1.;
+ pid[AliVCluster::kNeutral] = 1.;
calo->SetPID(pid);
break;
case -3122: // anti-Lambda
- pid[AliAODCaloCluster::kUnknown] = 1.;
+ pid[AliVCluster::kUnknown] = 1.;
calo->SetPID(pid);
break;
case -3222: // anti-Sigma-
- pid[AliAODCaloCluster::kUnknown] = 1.;
+ pid[AliVCluster::kUnknown] = 1.;
calo->SetPID(pid);
break;
case -3212: // anti-Sigma0
- pid[AliAODCaloCluster::kUnknown] = 1.;
+ pid[AliVCluster::kUnknown] = 1.;
calo->SetPID(pid);
break;
case -3112: // anti-Sigma+
- pid[AliAODCaloCluster::kUnknown] = 1.;
+ pid[AliVCluster::kUnknown] = 1.;
calo->SetPID(pid);
break;
case -3322: // anti-Xi0
- pid[AliAODCaloCluster::kUnknown] = 1.;
+ pid[AliVCluster::kUnknown] = 1.;
calo->SetPID(pid);
break;
case -3312: // anti-Xi+
- pid[AliAODCaloCluster::kUnknown] = 1.;
+ pid[AliVCluster::kUnknown] = 1.;
calo->SetPID(pid);
break;
case -3334: // anti-Omega+
- pid[AliAODCaloCluster::kUnknown] = 1.;
+ pid[AliVCluster::kUnknown] = 1.;
calo->SetPID(pid);
break;
case 411: // D+
- pid[AliAODCaloCluster::kUnknown] = 1.;
+ pid[AliVCluster::kUnknown] = 1.;
calo->SetPID(pid);
break;
case -411: // D-
- pid[AliAODCaloCluster::kUnknown] = 1.;
+ pid[AliVCluster::kUnknown] = 1.;
calo->SetPID(pid);
break;
case 421: // D0
- pid[AliAODCaloCluster::kUnknown] = 1.;
+ pid[AliVCluster::kUnknown] = 1.;
calo->SetPID(pid);
break;
case -421: // anti-D0
- pid[AliAODCaloCluster::kUnknown] = 1.;
+ pid[AliVCluster::kUnknown] = 1.;
calo->SetPID(pid);
break;
default : // unknown
- pid[AliAODCaloCluster::kUnknown] = 1.;
+ pid[AliVCluster::kUnknown] = 1.;
calo->SetPID(pid);
}