// @(#) $Id$
+//_____________________________________________________________
+//
+// AliL3OfflineDataCompression
+//
+// Class to compress data with offline tracks
+// as seeds.
+//
// Author: Anders Vestbo <mailto:vestbo@fi.uib.no>
//*-- Copyright © ALICE HLT Group
#include "AliL3Compress.h"
#include "AliL3TrackArray.h"
#include "bitio.h"
-
#include "AliL3OfflineDataCompressor.h"
#if __GNUC__ == 3
using namespace std;
#endif
-//_____________________________________________________________
-//
-// AliL3OfflineDataCompression
-//
-
-
ClassImp(AliL3OfflineDataCompressor)
AliL3OfflineDataCompressor::AliL3OfflineDataCompressor()
-{
+{ //constructor
fMarian = kFALSE;
fTracker=0;
}
AliL3OfflineDataCompressor::AliL3OfflineDataCompressor(Char_t *path,Bool_t keep,Bool_t writeshape,Bool_t MI)
: AliL3DataCompressor(path,keep,writeshape)
-{
+{ //constructor
fMarian = MI;
fTracker=0;
}
AliL3OfflineDataCompressor::~AliL3OfflineDataCompressor()
-{
+{ //deconstructor
if(fTracker)
{
fTracker->UnloadClusters();
#endif
}
- const Int_t MAX=20000;
- Int_t nentr=0,i=0; TObjArray tarray(MAX);
+ const Int_t kMAX=20000;
+ Int_t nentr=0,i=0; TObjArray tarray(kMAX);
if(fMarian==kFALSE)
sprintf(filename,"%s/offline/AliTPCtracks.root",fPath);
else
Double_t psi = TMath::ASin(par[2]) + track->GetAlpha();
if (psi<-TMath::Pi()) psi+=2*TMath::Pi();
if (psi>=TMath::Pi()) psi-=2*TMath::Pi();
- Float_t pt_1=TMath::Abs(par[4]);
+ Float_t pt1=TMath::Abs(par[4]);
Int_t charge = 1;
if(par[4] > 0)
charge=-1;
AliL3ModelTrack *outtrack = (AliL3ModelTrack*)comptracks->NextTrack();
outtrack->SetNHits(nhits);
outtrack->SetFirstPoint(first[0],first[1],first[2]);
- outtrack->SetPt(1/pt_1);
+ outtrack->SetPt(1./pt1);
outtrack->SetPsi(psi);
outtrack->SetTgl(par[3]);
outtrack->SetCharge(charge);
exit(5);
}
- Float_t xyz_cross[3] = {outtrack->GetPointX(),outtrack->GetPointY(),outtrack->GetPointZ()};
- AliL3Transform::Global2Raw(xyz_cross,sec,row);
+ Float_t xyzcross[3] = {outtrack->GetPointX(),outtrack->GetPointY(),outtrack->GetPointZ()};
+ AliL3Transform::Global2Raw(xyzcross,sec,row);
/*
- if(fabs(xyz_cross[1] - xyz[1]) > 10 ||
- fabs(xyz_cross[2] - xyz[2]) > 10)
+ if(fabs(xyzcross[1] - xyz[1]) > 10 ||
+ fabs(xyzcross[2] - xyz[2]) > 10)
{
cout<<"AliL3DataCompressor::FillOfflineData : Wrong crossing slice "<<slice<<" padrow "
- <<padrow<<" pad "<<xyz[1]<<" padhit "<<xyz_cross[1]<<" time "<<xyz[2]<<" timehit "<<xyz_cross[2]<<endl;
+ <<padrow<<" pad "<<xyz[1]<<" padhit "<<xyzcross[1]<<" time "<<xyz[2]<<" timehit "<<xyzcross[2]<<endl;
outtrack->Print();
exit(5);
}
*/
- //cout<<" crossing "<<xyz_cross[0]<<" "<<xyz_cross[1]<<" "<<xyz_cross[2]<<endl;
- outtrack->SetPadHit(padrow,xyz_cross[1]);
- outtrack->SetTimeHit(padrow,xyz_cross[2]);
+ //cout<<" crossing "<<xyzcross[0]<<" "<<xyzcross[1]<<" "<<xyzcross[2]<<endl;
+ outtrack->SetPadHit(padrow,xyzcross[1]);
+ outtrack->SetTimeHit(padrow,xyzcross[2]);
if(fWriteClusterShape)
{
comp->WriteFile(comptracks);
delete comp;
delete comptracks;
-
}
void AliL3OfflineDataCompressor::WriteRemaining(Bool_t select)
void AliL3OfflineDataCompressor::SelectRemainingClusters()
{
-
+ //select the remaining clusters
+ //which were not compressed
cout<<"Cleaning up clusters"<<endl;
Int_t nrows = AliL3Transform::GetNRows();
Int_t gap=(Int_t)(0.125*nrows), shift=(Int_t)(0.5*gap);
// @(#) $Id$
-#ifndef AliL3_OfflineDataCompressor
-#define AliL3_OfflineDataCompressor
+#ifndef ALIL3OFFLINEDATACOMPRESSOR_H
+#define ALIL3OFFLINEDATACOMPRESSOR_H
#include "AliL3RootTypes.h"
#include "AliL3DataCompressor.h"
class AliL3OfflineDataCompressor : public AliL3DataCompressor {
- private:
- Bool_t fMarian;
- AliTracker *fTracker; //!
-
- void SelectRemainingClusters();
-
public:
AliL3OfflineDataCompressor();
AliL3OfflineDataCompressor(Char_t *path,Bool_t keep,Bool_t writeshape,Bool_t MI=kFALSE);
void FillData(Int_t /*minhits*/,Bool_t /*expand*/) {return;};
void WriteRemaining(Bool_t select);
+ private:
+ AliL3OfflineDataCompressor(const AliL3OfflineDataCompressor& /*ac*/) : AliL3DataCompressor() {;}
+ AliL3OfflineDataCompressor& operator=(const AliL3OfflineDataCompressor& /*ac*/){return *this;}
+
+ Bool_t fMarian; // is Marian TPC tracking used
+ AliTracker *fTracker; //!
+
+ void SelectRemainingClusters();
+
ClassDef(AliL3OfflineDataCompressor,1)
};
// @(#) $Id$
+/** \class AliL3Display
+<pre>
+//_____________________________________________________________
+// AliL3Display
+//
+// Simple display class for the HLT tracks.
+</pre>
+*/
// Author: Anders Vestbo <mailto:vestbo@fi.uib.no>
//*-- Copyright © ALICE HLT Group
using namespace std;
#endif
-/** \class AliL3Display
-<pre>
-//_____________________________________________________________
-// AliL3Display
-//
-// Simple display class for the HLT tracks.
-</pre>
-*/
ClassImp(AliL3Display)
AliL3Display::AliL3Display(Int_t *slice,Char_t *gfile)
{
- //Ctor. Specify which slices you want to look at.
-
+ //ctor. Specify which slices you want to look at.
TFile *file = TFile::Open(gfile);
if(!file)
{
}
-void AliL3Display::DisplayTracks(Int_t min_hits,Bool_t x3don,Float_t thr)
+void AliL3Display::DisplayTracks(Int_t minhits,Bool_t x3don,Float_t thr)
{
//Display the found tracks.
if((thr>=0)&&(gtrack->GetPt()<thr)) continue;
Int_t nHits = gtrack->GetNHits();
UInt_t *hitnum = gtrack->GetHitNumbers();
- if(nHits < min_hits) continue;
+ if(nHits < minhits) continue;
TPolyMarker3D *pm = new TPolyMarker3D(nHits);
Int_t hitcount=0;
for(Int_t h=0; h<nHits; h++)
continue;
}
- Float_t xyz_tmp[3];
- xyz_tmp[0] = points[pos].fX;
- xyz_tmp[1] = points[pos].fY;
- xyz_tmp[2] = points[pos].fZ;
+ Float_t xyztmp[3];
+ xyztmp[0] = points[pos].fX;
+ xyztmp[1] = points[pos].fY;
+ xyztmp[2] = points[pos].fZ;
- xcl[h] = xyz_tmp[0];
- ycl[h] = xyz_tmp[1];
- zcl[h] = xyz_tmp[2];
+ xcl[h] = xyztmp[0];
+ ycl[h] = xyztmp[1];
+ zcl[h] = xyztmp[2];
pm->SetPoint(h,xcl[h],ycl[h],zcl[h]);
hitcount++;
if(hitcount==0) continue;
pm->SetMarkerColor(2);
pm->Draw();
- TPolyLine3D *current_line = &(line[j]);
- current_line = new TPolyLine3D(nHits,xcl,ycl,zcl,"");
+ TPolyLine3D *currentline = &(line[j]);
+ currentline = new TPolyLine3D(nHits,xcl,ycl,zcl,"");
- current_line->SetLineColor(4);
- current_line->Draw("same");
+ currentline->SetLineColor(4);
+ currentline->Draw("same");
}
}
-void AliL3Display::DisplayAll(Int_t min_hits,Bool_t x3don)
+void AliL3Display::DisplayAll(Int_t minhits,Bool_t x3don)
{
//Display tracks & all hits.
if(!gtrack) continue;
Int_t nHits = gtrack->GetNHits();
UInt_t *hitnum = gtrack->GetHitNumbers();
- if(nHits < min_hits) continue;
+ if(nHits < minhits) continue;
TPolyMarker3D *pm = new TPolyMarker3D(nHits);
Int_t hitcount=0;
for(Int_t h=0; h<nHits; h++)
if(hitcount==0) continue;
pm->SetMarkerColor(3);
pm->Draw();
- TPolyLine3D *current_line = &(line[j]);
- current_line = new TPolyLine3D(nHits,xcl,ycl,zcl,"");
- current_line->SetLineColor(4);
- current_line->SetLineWidth(2);
- current_line->Draw("same");
+ TPolyLine3D *currentline = &(line[j]);
+ currentline = new TPolyLine3D(nHits,xcl,ycl,zcl,"");
+ currentline->SetLineColor(4);
+ currentline->SetLineWidth(2);
+ currentline->Draw("same");
}
Char_t fname[256];
Char_t dname[100];
sprintf(dname,"TreeD_%s_0",AliL3Transform::GetParamName());
- TTree *TD=(TTree*)file->Get(dname);
+ TTree *td=(TTree*)file->Get(dname);
AliSimDigits da, *digits=&da;
- TD->GetBranch("Segment")->SetAddress(&digits); //Return pointer to branch segment.
+ td->GetBranch("Segment")->SetAddress(&digits); //Return pointer to branch segment.
Int_t sector,row;
AliL3Transform::Slice2Sector(slice,padrow,sector,row);
TH2F *histpart = new TH2F("histpart","",npads,0,npads-1,ntimes,0,ntimes-1);
- Int_t sectors_by_rows=(Int_t)TD->GetEntries();
+ Int_t sectorsbyrows=(Int_t)td->GetEntries();
Int_t i;
- for (i=0; i<sectors_by_rows; i++) {
- if (!TD->GetEvent(i)) continue;
+ for (i=0; i<sectorsbyrows; i++) {
+ if (!td->GetEvent(i)) continue;
Int_t sec,ro;
param->AdjustSectorRow(digits->GetID(),sec,ro);
TClonesArray *fParticles=gAlice->Particles();
TParticle *part = (TParticle*)fParticles->UncheckedAt(0);
AliL3Evaluate *eval = new AliL3Evaluate();
- Float_t xyz_cross[3];
+ Float_t xyzcross[3];
*/
for(Int_t p=0;p<6;p++)
#endif
return;
}
-
// @(#) $Id$
-#ifndef ALIL3_Display
-#define ALIL3_Display
+#ifndef ALIL3DISPLAY_H
+#define ALIL3DISPLAY_H
+
+/** \class AliL3Display
+<pre>
+//_____________________________________________________________
+// AliL3Display
+//
+// Simple display class for the HLT tracks.
+</pre>
+*/
+// Author: Anders Vestbo <mailto:vestbo@fi.uib.no>
+//*-- Copyright © ALICE HLT Group
#include <TObject.h>
-#include <TGeometry.h>
-
-#include "AliL3RootTypes.h"
-
+class TGeometry;
class AliL3SpacePointData;
class AliL3TrackArray;
class AliL3Display : public TObject {
- private:
- TGeometry *fGeom; //!
- AliL3SpacePointData *fClusters[36][6]; //!
- AliL3TrackArray *fTracks; //!
- UInt_t fNcl[36][6]; //number of cluster
- Int_t fMinSlice; //min slice
- Int_t fMaxSlice; //max slice
-
public:
AliL3Display();
AliL3Display(Int_t *slice, Char_t *gfile="$(ALIHLT_BASEDIR)/geo/alice.geom");
void DisplayClusterRow(Int_t slice,Int_t padrow,Char_t *digitsFile,Char_t *type="hist");
void SetTracks(AliL3TrackArray *tracks) {fTracks=tracks;}
+
+ private:
+ AliL3Display(const AliL3Display &/*d*/):TObject(){;}
+ AliL3Display& operator=(const AliL3Display &/*d*/){return *this;}
+
+ TGeometry *fGeom; //!
+ AliL3SpacePointData *fClusters[36][6]; //!
+ AliL3TrackArray *fTracks; //!
+ UInt_t fNcl[36][6]; //number of cluster
+ Int_t fMinSlice; //min slice
+ Int_t fMaxSlice; //max slice
ClassDef(AliL3Display,1) //Display class
};