#include "AliAODVertex.h"
#include "AliAODTrack.h"
#include "AliAODCluster.h"
+#include "AliAODTracklets.h"
-#include "AliESD.h"
+#include "AliESDEvent.h"
#include "AliESDtrack.h"
#include "AliESDMuonTrack.h"
#include "AliESDVertex.h"
TFile *outFile = TFile::Open(outFileName, "RECREATE");
// create the tree
- TTree *aodTree = new TTree("AOD", "AliAOD tree");
+ TTree *aodTree = new TTree("aodTree", "AliAOD tree");
aodTree->Branch(aod->GetList());
// connect to ESD
TFile *inFile = TFile::Open(inFileName, "READ");
TTree *t = (TTree*) inFile->Get("esdTree");
- TBranch *b = t->GetBranch("ESD");
- AliESD *esd = 0;
- b->SetAddress(&esd);
+ AliESDEvent *esd = new AliESDEvent();
+ esd->ReadFromTree(t);
- Int_t nEvents = b->GetEntries();
+ Int_t nEvents = t->GetEntries();
// set arrays and pointers
Float_t posF[3];
// loop over events and fill them
for (Int_t iEvent = 0; iEvent < nEvents; ++iEvent) {
- b->GetEntry(iEvent);
+ t->GetEntry(iEvent);
// Multiplicity information needed by the header (to be revised!)
Int_t nTracks = esd->GetNumberOfTracks();
Int_t nPosTracks = 0;
for (Int_t iTrack=0; iTrack<nTracks; ++iTrack)
- if (esd->GetTrack(iTrack)->GetSign()> 0) nPosTracks++;
+ if (esd->GetTrack(iTrack)->Charge()> 0) nPosTracks++;
// Access to the header
AliAODHeader *header = aod->GetHeader();
pos,
kFALSE,
covTr,
- (Short_t)esdTrack->GetSign(),
+ (Short_t)esdTrack->Charge(),
esdTrack->GetITSClusterMap(),
pid,
vV0FromCascade,
pos,
kFALSE,
covTr,
- (Short_t)esdTrack->GetSign(),
+ (Short_t)esdTrack->Charge(),
esdTrack->GetITSClusterMap(),
pid,
vV0FromCascade,
pos,
kFALSE,
covTr,
- (Short_t)esdTrack->GetSign(),
+ (Short_t)esdTrack->Charge(),
esdTrack->GetITSClusterMap(),
pid,
vcascade,
pos,
kFALSE,
covTr,
- (Short_t)esdTrack->GetSign(),
+ (Short_t)esdTrack->Charge(),
esdTrack->GetITSClusterMap(),
pid,
vV0,
pos,
kFALSE,
covTr,
- (Short_t)esdTrack->GetSign(),
+ (Short_t)esdTrack->Charge(),
esdTrack->GetITSClusterMap(),
pid,
vV0,
pos,
kFALSE,
covTr,
- (Short_t)esdTrack->GetSign(),
+ (Short_t)esdTrack->Charge(),
esdTrack->GetITSClusterMap(),
pid,
primary,
pos,
kFALSE,
covTr,
- (Short_t)esdTrack->GetSign(),
+ (Short_t)esdTrack->Charge(),
esdTrack->GetITSClusterMap(),
pid,
vkink,
pos,
kFALSE,
covTr,
- (Short_t)esdTrack->GetSign(),
+ (Short_t)esdTrack->Charge(),
esdTrack->GetITSClusterMap(),
pid,
primary,
pos,
kFALSE,
covTr,
- (Short_t)esdTrack->GetSign(),
+ (Short_t)esdTrack->Charge(),
esdTrack->GetITSClusterMap(),
pid,
NULL,
// has to be changed once the muon pid is provided by the ESD
for (Int_t i = 0; i < 10; pid[i++] = 0.); pid[AliAODTrack::kMuon]=1.;
- primary->AddDaughter(
+ primary->AddDaughter( aodTrack =
new(tracks[jTracks++]) AliAODTrack(0, // no ID provided
0, // no label provided
p,
pos,
kFALSE,
NULL, // no covariance matrix provided
- (Short_t)-99, // no charge provided
- 0, // no ITSClusterMap
+ esdMuTrack->Charge(),
+ 0, // ITSClusterMap is set below
pid,
primary,
- kTRUE, // check if this is right
- kTRUE, // not used for vertex fit
+ kFALSE, // muon tracks are not used to fit the primary vtx
+ kFALSE, // not used for vertex fit
AliAODTrack::kPrimary)
);
+ aodTrack->SetHitsPatternInTrigCh(esdMuTrack->GetHitsPatternInTrigCh());
+ Int_t track2Trigger = esdMuTrack->GetMatchTrigger();
+ aodTrack->SetMatchTrigger(track2Trigger);
+ if (track2Trigger)
+ aodTrack->SetChi2MatchTrigger(esdMuTrack->GetChi2MatchTrigger());
+ else
+ aodTrack->SetChi2MatchTrigger(0.);
}
// Access to the AOD container of clusters
Int_t id = cluster->GetID();
Int_t label = -1;
- Float_t energy = cluster->GetClusterEnergy();
- cluster->GetGlobalPosition(posF);
+ Float_t energy = cluster->E();
+ cluster->GetPosition(posF);
AliAODVertex *prodVertex = primary;
AliAODTrack *primTrack = NULL;
Char_t ttype=AliAODCluster::kUndef;
} // end of loop on calo clusters
+ // tracklets
+ const AliMultiplicity *mult = esd->GetMultiplicity();
+ if (mult) {
+ if (mult->GetNumberOfTracklets()>0) {
+ aod->GetTracklets()->CreateContainer(mult->GetNumberOfTracklets());
+
+ for (Int_t n=0; n<mult->GetNumberOfTracklets(); n++) {
+ aod->GetTracklets()->SetTracklet(n, mult->GetTheta(n), mult->GetPhi(n), mult->GetDeltaPhi(n), mult->GetLabel(n));
+ }
+ }
+ } else {
+ Printf("ERROR: AliMultiplicity could not be retrieved from ESD");
+ }
+
delete [] usedTrack;
delete [] usedV0;
delete [] usedKink;