// Calculates the distance between the EMC RecPoint and the CPV RecPoint
// Clusters are sorted in "rows" and "columns" of width 1 cm
- Float_t delta = 1 ; // Width of the rows in sorting of RecPoints (in cm)
+ //Float_t delta = 1 ; // Width of the rows in sorting of RecPoints (in cm)
// if you change this value, change it as well in xxxRecPoint::Compare()
Float_t distance2Cpv = fRcpv ;
- Float_t distance2Track = fRcpv ;
+ Float_t distance2Track = fRtpc ;
trackindex = -1 ; // closest track within fRCpv
Int_t iClosestTrack = -1;
Double_t minDistance = 1e6;
Double_t pxyz[3], xyz[3];
+ Double_t rPHOS=460.;
AliESDtrack *track;
for (Int_t iTrack=0; iTrack<nTracks; iTrack++) {
track = fESD->GetTrack(iTrack);
if (track->IsPHOS())
continue ;
- track->GetOuterXYZ(xyz); // track coord on the cylinder of PHOS radius
+ if (!track->GetXYZAt(rPHOS,xyz))
+ continue; //track coord on the cylinder of PHOS radius
if ((TMath::Abs(xyz[0])+TMath::Abs(xyz[1])+TMath::Abs(xyz[2]))<=0)
- continue;
- track->GetOuterPxPyPz(pxyz); // track momentum ibid.
+ continue;
+ if (!track->GetPxPyPzAt(rPHOS,pxyz))
+ continue; // track momentum ibid.
vecDist = PropagateToPlane(xyz,pxyz,"CPV",cpvClu->GetPHOSMod());
// Info("GetDistanceInPHOSPlane","Track %d propagation to CPV = (%f,%f,%f)",
// iTrack,vecDist.X(),vecDist.Y(),vecDist.Z());
if (iClosestTrack != -1) {
track = fESD->GetTrack(iClosestTrack);
- track->GetOuterPxPyPz(pxyz); // track momentum ibid.
+ if (track->GetPxPyPzAt(rPHOS,pxyz)) { // track momentum ibid.
TVector3 vecCpvGlobal; // Global position of the CPV recpoint
AliPHOSGetter * gime = AliPHOSGetter::Instance() ;
const AliPHOSGeometry * geom = gime->PHOSGeometry() ;
// iClosestTrack,vecDist.X(),vecDist.Y(),vecDist.Z());
vecDist -= vecEmc;
distance2Track = TMath::Sqrt(vecDist.X()*vecDist.X() + vecDist.Z()*vecDist.Z());
+ }
}
// } else {
// // If no ESD exists, than simply find EMC-CPV distance
// distance = (vecCpv - vecEmc).Mag() ;
- if(distance2Track < fRcpv + 2*delta )
+ //if(distance2Track < fRcpv + 2*delta )
+ if(distance2Track < fRtpc )
trackindex = iClosestTrack ;
// toofar = kFALSE ;
}
{
// Make all memory allocations that are not possible in default constructor
- AliPHOSGetter* gime = AliPHOSGetter::Instance(GetTitle(), fEventFolderName.Data());
+ AliPHOSGetter* gime = AliPHOSGetter::Instance();
+ if(!gime)
+ gime = AliPHOSGetter::Instance(GetTitle(), fEventFolderName.Data());
fLinkUpArray = new TClonesArray("AliPHOSLink", 1000);
if ( !gime->TrackSegmentMaker() ) {
void AliPHOSTrackSegmentMakerv1::InitParameters()
{
//Initializes parameters
- fRcpv = 10. ;
+ fRcpv = 10. ;
+ fRtpc = 4. ;
fEmcFirst = 0 ;
fEmcLast = 0 ;
fCpvFirst = 0 ;
fCpvLast = 0 ;
fLinkUpArray = 0 ;
+ fWrite = kTRUE ;
fTrackSegmentsInRun = 0 ;
SetEventRange(0,-1) ;
}
return ;
}
- AliPHOSGetter * gime = AliPHOSGetter::Instance(GetTitle()) ;
+ AliPHOSGetter * gime = AliPHOSGetter::Instance() ;
const AliPHOSGeometry * geom = gime->PHOSGeometry() ;
gBenchmark->GetCpuTime("PHOSTSMaker"),
gBenchmark->GetCpuTime("PHOSTSMaker")/nEvents) ;
}
- Unload();
+ if(fWrite) //do not unload in "on flight" mode
+ Unload();
}
//____________________________________________________________________________
TClonesArray * trackSegments = gime->TrackSegments() ;
trackSegments->Expand(trackSegments->GetEntriesFast()) ;
- TTree * treeT = gime->TreeT();
-
- //First TS
- Int_t bufferSize = 32000 ;
- TBranch * tsBranch = treeT->Branch("PHOSTS",&trackSegments,bufferSize);
- tsBranch->Fill() ;
-
- gime->WriteTracks("OVERWRITE");
- gime->WriteTrackSegmentMaker("OVERWRITE");
+ if(fWrite){ //We write TreeT
+ TTree * treeT = gime->TreeT();
+
+ //First TS
+ Int_t bufferSize = 32000 ;
+ TBranch * tsBranch = treeT->Branch("PHOSTS",&trackSegments,bufferSize);
+ tsBranch->Fill() ;
+
+ gime->WriteTracks("OVERWRITE");
+ gime->WriteTrackSegmentMaker("OVERWRITE");
+ }
}