Float_t fpad=(Float_t)r[j].pad/(Float_t)r[j].charge;
Float_t ftime=(Float_t)r[j].t/(Float_t)r[j].charge;
- if(fCurrentRow > 54) {thisrow = fCurrentRow-55; thissector = fCurrentSlice+36;}
- else {thisrow = fCurrentRow; thissector = fCurrentSlice;}
+ fTransform->Slice2Sector(fCurrentSlice,fCurrentRow,thissector,thisrow);
+ //if(fCurrentRow > 54) {thisrow = fCurrentRow-55; thissector = fCurrentSlice+36;}
+ //else {thisrow = fCurrentRow; thissector = fCurrentSlice;}
fTransform->Raw2Local(xyz,thissector,thisrow,fpad,ftime);
if(xyz[0]==0) LOG(AliL3Log::kError,"AliL3ClustFinder","Cluster Finder")
<<AliL3Log::kDec<<"Zero cluster"<<ENDLOG;
fSpacePointData[counter].fZErr = fZErr;
fSpacePointData[counter].fID = counter
+((fCurrentSlice&0x7f)<<25)+((fCurrentPatch&0x7)<<22);//uli
-
+ if(fCurrentRow > 170)
+ printf("padrow %d X %f Y %f Z %f\n",fCurrentRow,xyz[0],xyz[1],xyz[2]);
fNClusters++;
counter++;
else //complete sector
{
fRowMin = 0;
- fRowMax = 173;
+ fRowMax = 175;
}
if(etarange)
{
{
//Data organization.
//Allocate volumes, set conformal coordinates and pointers.
- fNumRowSegmentPlusOne = 174;//fNumRowSegment+1;
+ fNumRowSegmentPlusOne = 176;//fNumRowSegment+1;
fNumPhiSegmentPlusOne = fNumPhiSegment+1;
fNumEtaSegmentPlusOne = fNumEtaSegment+1;
fNumPhiEtaSegmentPlusOne = fNumPhiSegmentPlusOne*fNumEtaSegmentPlusOne;
#include "AliL3RootTypes.h"
-const Int_t NRows[5][2] = {{ 0, 45},{46,77},{78,109},{110,141},{142,173}};
+const Int_t NRows[5][2] = {{ 0, 45},{46,77},{78,109},{110,141},{142,175}};
const Double_t Pi = 3.14159265358979323846;
const Double_t ToRad = Pi/180.;
{
//Ctor. Specify which slices you want to look at.
- TFile *file = new TFile("/nfs/david/subatom/alice/data/GEO/alice.geom");
+ TFile *file = new TFile("alice.geom");
if(!file) printf("NO FILE\n");
if(file->IsOpen())
LOG(AliL3Log::kError,"AliL3Display::AliL3Display","File Open")
Int_t ntracks = fTracks->GetNTracks();
TPolyLine3D *line = new TPolyLine3D[ntracks];
- Float_t xcl[174];
- Float_t ycl[174];
- Float_t zcl[174];
+ Float_t xcl[176];
+ Float_t ycl[176];
+ Float_t zcl[176];
for(Int_t j=0; j<ntracks; j++)
{
Int_t ntracks = fTracks->GetNTracks();
TPolyLine3D *line = new TPolyLine3D[ntracks];
- Float_t xcl[174];
- Float_t ycl[174];
- Float_t zcl[174];
+ Float_t xcl[176];
+ Float_t ycl[176];
+ Float_t zcl[176];
for(Int_t j=0; j<ntracks; j++)
{
//Make efficiency plots for tracking on patch level (before any merging).
- Int_t row[5][2] = {{ 0, 45},{46,77},{78,109},{110,141},{142,173}};
+ Int_t row[5][2] = {{ 0, 45},{46,77},{78,109},{110,141},{142,175}};
Int_t *particle_id = new Int_t[fParticles->GetEntriesFast()];
TObjArray *good_particles = DefineGoodTracks(slice,row[patch],good_number,particle_id);
SetMinPoints(min_points);
//min_points = minimum points on track to be considered for evaluation
//good_number = minimum hits (padrows) produced by simulated track for consideration.
- Int_t row[2] = {0,173};
+ Int_t row[2] = {0,175};
Int_t *particle_id = new Int_t[fParticles->GetEntriesFast()];
TObjArray *good_particles = DefineGoodTracks(slice,row,good_number,particle_id);
{
//Make efficiency plots for tracking on several slices.
- Int_t row[2] = {0,173};
+ Int_t row[2] = {0,175};
Int_t *particle_id = new Int_t[fParticles->GetEntriesFast()];
SetMinPoints(min_points);
AssignIDs();
TNtuple *ntuppel = new TNtuple("ntuppel","residuals","resy:ptgen:padrow:zHit:slice");
- Int_t good_number=173;
- Int_t row[2] = {0,173};
+ Int_t good_number=175;
+ Int_t row[2] = {0,175};
UInt_t id;
//Float_t yres_local;
for(Int_t slice=fMinSlice; slice<=fMaxSlice; slice++)
{
TNtuple *ntuppel = new TNtuple("ntuppel","residuals","resy:ptgen:padrow:zHit:slice");
- Int_t good_number=173;
- Int_t row[2] = {0,173};
+ Int_t good_number=175;
+ Int_t row[2] = {0,175};
Float_t xyz_cross[3];
Float_t xyz_cl[3];
Int_t fMinSlice;
Int_t fMaxSlice;
UInt_t fNcl[36][5];
- Int_t fRowid[36][174];
+ Int_t fRowid[36][176];
Int_t fMinPointsOnTrack; //Minimum points on track to be considered.
Bool_t fIsSlow;
Bool_t fNoOverlap;
fNUsed = 0;
fNDigits = 0;
- Int_t row[2] = {0,173};
+ Int_t row[2] = {0,175};
Init(0,0,row);
ResetROI();
}
Int_t fSlice;
Int_t fPatch;
- Int_t fEtaMinTimeBin[174];
- Int_t fEtaMaxTimeBin[174];
+ Int_t fEtaMinTimeBin[176];
+ Int_t fEtaMaxTimeBin[176];
public:
for(Int_t i=0;i<ntrack;i++){
nps+=tracks[i]->GetNHits();
}
- if(nps>174){
+ if(nps>176){
LOG(AliL3Log::kWarning,"AliL3Merger::MultiMerge","Adding Points")
<<AliL3Log::kDec<<"Too many Points: "<<nps<<ENDLOG;
return 0;
//create new track
AliL3Track *newtrack = mergedtracks->NextTrack();
//copy points
- UInt_t nn[174];
+ UInt_t nn[176];
nps = 0;
// for(Int_t i=0;i<ntrack;i++){
if(innertrack->GetCharge()!=outertrack->GetCharge()) return kFALSE;
if( (!innertrack->IsPoint()) || (!outertrack->IsPoint()) ) return kFALSE;
- if(innertrack->GetNHits()+outertrack->GetNHits()>174) return kFALSE;
+ if(innertrack->GetNHits()+outertrack->GetNHits()>176) return kFALSE;
if(fabs(innertrack->GetPointY()-outertrack->GetPointY()) >fMaxY) return kFALSE;
if(fabs(innertrack->GetPointZ()-outertrack->GetPointZ()) >fMaxZ) return kFALSE;
fIsLocal=true;
fRowRange[0]=0;
fRowRange[1]=0;
- memset(fHitNumbers,0,174*sizeof(UInt_t));
+ memset(fHitNumbers,0,176*sizeof(UInt_t));
}
void AliL3Track::Set(AliL3Track *tpt){
Bool_t fIsLocal; //Track given in local coordinates.
- UInt_t fHitNumbers[174]; //Array of hit numbers for this track
+ UInt_t fHitNumbers[176]; //Array of hit numbers for this track
protected:
// analyze sector
//
- const Int_t seedRow = 173;
+ const Int_t seedRow = 175;
const Int_t firstRow = seedRow-32;
for(Int_t n=0;n<ncluster;n++){
if(hits[n].fPadRow==seedRow)