#include "AliTPCtracker.h"
#include "AliITSgeom.h"
#include "AliITStrackerV2.h"
+ #include "AliTRDtracker.h"
+ #include "AliTRDPartID.h"
#include "AliITSpidESD.h"
#endif
-Int_t AliESDtest(Int_t nev=1) {
+Int_t AliESDtest(Int_t nev=1,
+ const char* fileNameITSClusters = "its.clusters.root",
+ const char* fileNameTPCClusters = "tpc.clusters.root",
+ const char* fileNameTRDClusters = "trd.clusters.root") {
+
//File with the TPC clusters
- TFile *tpccf=TFile::Open("AliTPCclusters.root");
+ TFile *tpccf=TFile::Open(fileNameTPCClusters);
if (!tpccf->IsOpen()) {
- cerr<<"Can't open AliTPCclusters.root !\n";
+ cerr<<"Can't open "<<fileNameTPCClusters<<" !\n";
return 2;
}
AliTPCParam *par=(AliTPCParam*)tpccf->Get("75x40_100x60_150x60");
AliTPCpidESD tpcPID(parTPC);
//File with the ITS clusters
- TFile *itscf=TFile::Open("AliITSclustersV2.root");
+ TFile *itscf=TFile::Open(fileNameITSClusters);
if (!itscf->IsOpen()) {
- cerr<<"Can't open AliITSclustersV2.root !\n";
+ cerr<<"Can't open "<<fileNameITSClusters<<".root !\n";
return 4;
}
AliITSgeom *geom=(AliITSgeom*)itscf->Get("AliITSgeom");
//An instance of the ITS PID maker
Double_t parITS[]={34.,0.12,3.};
AliITSpidESD itsPID(parITS);
-
- TFile *ef=TFile::Open("AliESDs.root","new");
+
+ //File with the TRD clusters
+ TFile *trdcf=TFile::Open(fileNameTRDClusters);
+ if (!trdcf->IsOpen()) {
+ cerr<<"Can't open "<<fileNameTRDClusters<<".root !\n";
+ return 6;
+ }
+
+ //An instance of the TRD tracker
+ AliTRDtracker trdTracker(trdcf);
+
+ //An instance of the TRD PID maker
+ AliTRDPartID* trdPID = AliTRDPartID::GetFromFile();
+ if (!trdPID) return 7;
+
+ TFile *ef=TFile::Open("AliESDs.root","RECREATE");
if (!ef->IsOpen()) {cerr<<"Can't AliESDs.root !\n"; return 1;}
TStopwatch timer;
rc+=itsTracker.PropagateBack(event);
itsTracker.UnloadClusters();
+
itsPID.MakePID(event);
rc+=tpcTracker.PropagateBack(event);
tpcTracker.UnloadClusters();
+
tpcPID.MakePID(event);
+ trdTracker.SetEventNumber(i);
+ trdcf->cd();
+ trdTracker.LoadClusters();
+
+ rc+=trdTracker.PropagateBack(event);
+ trdTracker.UnloadClusters();
+
+ for (Int_t iTrack = 0; iTrack < event->GetNumberOfTracks(); iTrack++) {
+ AliESDtrack* track = event->GetTrack(iTrack);
+ trdPID->MakePID(track);
+ }
+
//Here is the combined PID
AliESDpid::MakePID(event);
if (rc==0) {
Char_t ename[100];
sprintf(ename,"%d",i);
+ ef->cd();
if (!event->Write(ename)) rc++;
}
if (rc) {
}
timer.Stop(); timer.Print();
+ trdcf->Close();
delete geom;
itscf->Close();
delete par;