// //
//////////////////////////////////////////////////////////////////////
+#include <Riostream.h>
+
#include <TPDGCode.h>
#include <TString.h>
#include <TObjString.h>
#include <AliRunLoader.h>
#include <AliStack.h>
#include <AliESDtrack.h>
+#include <AliKalmanTrack.h>
#include <AliESD.h>
#include "AliHBTRun.h"
fNTrackPoints(0),
fdR(0.0),
fClusterMap(kFALSE),
+ fITSTrackPoints(kFALSE),
fMustTPC(kFALSE),
fNTPCClustMin(0),
fNTPCClustMax(150),
fNTrackPoints(0),
fdR(0.0),
fClusterMap(kFALSE),
+ fITSTrackPoints(kFALSE),
fMustTPC(kFALSE),
fNTPCClustMin(0),
fNTPCClustMax(150),
Float_t mf = esd->GetMagneticField();
- if ( (mf == 0.0) && (fNTrackPoints > 0) )
+ if ( (mf == 0.0) && ((fNTrackPoints > 0) || fITSTrackPoints) )
{
Error("ReadESD","Magnetic Field is 0 and Track Points Demended. Skipping to next event.");
return 1;
}
-
+ if (fITSTrackPoints)
+ {
+ Info("ReadESD","Magnetic Field is %f",mf/10.);
+ AliKalmanTrack::SetMagneticField(mf/10.);
+ }
+
AliStack* stack = 0x0;
if (fReadParticles && fRunLoader)
{
{
tpts = new AliHBTTrackPoints(fNTrackPoints,esdtrack,mf,fdR);
}
+
+ AliHBTTrackPoints* itstpts = 0x0;
+ if (fITSTrackPoints)
+ {
+ itstpts = new AliHBTTrackPoints(AliHBTTrackPoints::kITS,esdtrack);
+ }
+
AliHBTClusterMap* cmap = 0x0;
if ( fClusterMap )
track->SetTrackPoints(tpts);
}
+ if (itstpts)
+ {
+ track->SetITSTrackPoints(itstpts);
+ }
+
if (cmap)
{
track->SetClusterMap(cmap);
{
delete particle;//particle was not stored in event
delete tpts;
+ delete itstpts;
delete cmap;
}
+ else
+ {
+ if (particle->P() < 0.00001)
+ {
+ Info("ReadNext","###################################");
+ Info("ReadNext","###################################");
+ Info("ReadNext","Track Label %d",esdtrack->GetLabel());
+ TParticle *p = stack->Particle(esdtrack->GetLabel());
+ Info("ReadNext","");
+ p->Print();
+ Info("ReadNext","");
+ particle->Print();
+ TString command("touch BadInput");
+ ofstream sfile("BadEvent",ios::out);
+ sfile<<fCurrentDir<<endl;
+ }
+ }
}//for (Int_t i = 0;i<ntr; i++) -- loop over tracks