X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PHOS%2FAliPHOSTrackSegmentMakerv1.cxx;h=c382bb5dcc27ac28c067c45b63db5748cdf605ac;hb=23904d1648087ce6461f62c17d38caf6534f9847;hp=dd17d23add91aa01e5778532ae88c2662a5968f5;hpb=0588c89603dfee43c82fb76e6ba24dfba630d22c;p=u%2Fmrichter%2FAliRoot.git diff --git a/PHOS/AliPHOSTrackSegmentMakerv1.cxx b/PHOS/AliPHOSTrackSegmentMakerv1.cxx index dd17d23add9..c382bb5dcc2 100644 --- a/PHOS/AliPHOSTrackSegmentMakerv1.cxx +++ b/PHOS/AliPHOSTrackSegmentMakerv1.cxx @@ -130,10 +130,10 @@ Float_t AliPHOSTrackSegmentMakerv1::GetDistanceInPHOSPlane(AliPHOSEmcRecPoint * // 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 @@ -156,15 +156,18 @@ Float_t AliPHOSTrackSegmentMakerv1::GetDistanceInPHOSPlane(AliPHOSEmcRecPoint * 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; iTrackGetTrack(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()); @@ -179,7 +182,7 @@ Float_t AliPHOSTrackSegmentMakerv1::GetDistanceInPHOSPlane(AliPHOSEmcRecPoint * 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() ; @@ -191,12 +194,14 @@ Float_t AliPHOSTrackSegmentMakerv1::GetDistanceInPHOSPlane(AliPHOSEmcRecPoint * // 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 ; } @@ -235,7 +240,9 @@ void AliPHOSTrackSegmentMakerv1::Init() { // 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() ) { @@ -247,12 +254,14 @@ void AliPHOSTrackSegmentMakerv1::Init() 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) ; } @@ -387,7 +396,7 @@ void AliPHOSTrackSegmentMakerv1::Exec(Option_t *option) return ; } - AliPHOSGetter * gime = AliPHOSGetter::Instance(GetTitle()) ; + AliPHOSGetter * gime = AliPHOSGetter::Instance() ; const AliPHOSGeometry * geom = gime->PHOSGeometry() ; @@ -432,7 +441,8 @@ void AliPHOSTrackSegmentMakerv1::Exec(Option_t *option) gBenchmark->GetCpuTime("PHOSTSMaker"), gBenchmark->GetCpuTime("PHOSTSMaker")/nEvents) ; } - Unload(); + if(fWrite) //do not unload in "on flight" mode + Unload(); } //____________________________________________________________________________ @@ -478,15 +488,17 @@ void AliPHOSTrackSegmentMakerv1::WriteTrackSegments() 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"); + } }