12 cerr<<
"Comparing tracks...\n";
15 if (!file->IsOpen()) {cerr<<
"Can't open galice.root !\n";
return 1;}
17 TFile *ftracks=
TFile::Open(
"AliTPCtracks.root",
"update");
18 if (!ftracks->IsOpen()){cerr<<
"Can't open AliTPCtracks.root !\n";
return 3;}
21 if (!param) {cerr<<
"TPC parameters have not been found !\n";
return 2;}
24 if (!fout->IsOpen()) fout=
TFile::Open(
"AliTPCClustersDif.root",
"recreate");
28 AliTPCClustersArray *ce=
new AliTPCClustersArray;
30 ce->SetClusterType(
"AliComplexCluster");
32 sprintf(cname,
"TreeCExact_%d",eventn);
33 ce->ConnectTree(cname);
37 sprintf(cname,
"Seeds");
38 TTree * treetracks = (TTree*)ftracks->Get(cname);
39 TBranch * branchtracks = treetracks->GetBranch(
"seeds");
42 Int_t trackmap[500000][4];
43 memset(trackmap,0,
sizeof(Int_t)*4*500000);
44 Int_t ntracks = treetracks->GetEntries();
46 Int_t nproces = TMath::Min(ntracks,4000);
49 for (Int_t itrack =0; itrack<nproces; itrack++){
50 AliTPCseed * seed =
new AliTPCseed;
52 seed->fPoints =
new TClonesArray(
"AliTPCTrackPoint",200);
53 branchtracks->SetAddress(&seed);
54 branchtracks->GetEntry(itrack);
57 trackarr->AddLast(seed);
60 seed->fEPoints =
new TClonesArray(
"AliTPCTrackPointRef",1);
61 seed->fEPoints->ExpandCreateFast(200);
63 Int_t label = TMath::Abs(seed->GetLabel());
69 if ( trackmap[label][i]==0)
72 if(i<4) trackmap[label][i]=itrack;
77 Int_t nrows=Int_t(ce->GetTree()->GetEntries());
79 for (Int_t n=0; n<nrows; n++) {
86 Int_t ncl=clrowe->
GetArray()->GetEntriesFast();
91 sign = (sec < kNIS/2) ? 1 : -1;
94 sign = ((sec-kNIS) < kNOS/2) ? 1 : -1;
109 for (Int_t i=0;i<3;i++){
111 AliTPCseed * seed = (AliTPCseed*)trackarr->At(trackmap[cl->
fTracks[0]][i]);
112 TClonesArray * clarr = seed->fPoints;
118 AliTPCTrackPointRef * ecluster = (AliTPCTrackPointRef*)(seed->fEPoints->At(trrow));
121 ecluster->GetTPoint() = trcluster->
GetTPoint();
142 ce->ClearRow(sec,row);
147 TTree * treenew =
new TTree(
"Seedref",
"Seedref");
148 AliTPCseed * ioseed = (AliTPCseed*)trackarr->At(0);
149 TBranch * br = treenew->Branch(
"seeds",
"AliTPCseed",&ioseed,32000,99);
151 for (Int_t itrack =0; itrack<ntracks; itrack++){
152 ioseed = (AliTPCseed*) trackarr->At(itrack);
153 br->SetAddress(&ioseed);
Float_t GetPadPitchLength(Int_t isector=0, Int_t padrow=0) const
printf("Chi2/npoints = %f\n", TMath::Sqrt(chi2/npoints))
TFile * Open(const char *filename, Long64_t &nevents)
Int_t fTracks[3]
labels of overlapped tracks
Int_t AliTPCCompareTracks(Int_t eventn, Bool_t all=kFALSE)
Float_t fEY
current "exact" position according simulation
Manager and of geomety classes for set: TPC.
Float_t fMax
amplitude at maximum
Float_t fEAmp
total charge deposited in row
Float_t GetPadPitchWidth(Int_t isector=0) const
Float_t fSigmaY2
Sigma Z square of cluster.
Int_t GetNPadsLow(Int_t irow) const
Float_t fEZ
current "exact" position according simulation
Float_t GetZWidth() const
Time Projection Chamber AliTPCClusterRow objects.
Float_t fQ
Q of cluster (in ADC counts)
TClonesArray * GetArray()
Bool_t AdjustSectorRow(Int_t index, Int_t §or, Int_t &row) const
AliTPCTrackerPoint & GetTPoint()
void AdjustCosSin(Int_t isec, Float_t &cos, Float_t &sin) const
Int_t GetNPadsUp(Int_t irow) const
Int_t GetNOuterSector() const
Float_t GetZLength(Int_t sector=0) const
Float_t fSigmaX2
Sigma Y square of cluster.
Float_t GetPadRowRadii(Int_t isec, Int_t irow) const
Float_t fEPrim
primary charge deposited in row
Int_t GetNInnerSector() const
AliTPCclusterMI & GetCPoint()