/*
$Log$
+Revision 1.7.6.2 2002/07/24 10:09:31 alibrary
+Updating VirtualMC
+
+Revision 1.7.6.1 2002/06/10 15:28:58 hristov
+Merged with v3-08-02
+
+Revision 1.8 2002/03/28 14:59:07 cblume
+Coding conventions
+
+Revision 1.9 2002/06/12 09:54:35 cblume
+Update of tracking code provided by Sergei
+
+Revision 1.8 2002/03/28 14:59:07 cblume
+Coding conventions
+
+Revision 1.7 2001/12/05 15:04:34 hristov
+Changes related to the corrections of AliRecPoint
+
+Revision 1.6 2001/02/14 18:22:26 cblume
+Change in the geometry of the padplane
+
+Revision 1.5 2000/11/14 14:40:27 cblume
+Correction for the Sun compiler (kTRUE and kFALSE)
+
+Revision 1.4 2000/11/01 14:53:21 cblume
+Merge with TRD-develop
+
Revision 1.1.4.2 2000/10/04 16:34:58 cblume
Replace include files by forward declarations
}
+//_____________________________________________________________________________
+AliTRDrecPoint::AliTRDrecPoint(const char * opt):AliRecPoint(opt)
+{
+ //
+ // Standard constructor
+ //
+
+ fDetector = 0;
+
+ AliTRD *trd;
+ if ((gAlice) &&
+ (trd = ((AliTRD*) gAlice->GetDetector("TRD")))) {
+ fGeom = trd->GetGeometry();
+ }
+ else {
+ fGeom = NULL;
+ }
+
+}
+
//_____________________________________________________________________________
AliTRDrecPoint::~AliTRDrecPoint()
{
// system.
//
- const Float_t kSq12 = 3.464101615;
+ //const Float_t kSq12 = 3.464101615;
// Set the position
- fLocPos = pos;
+ //fLocPos = pos;
// Set the error matrix
// row: pad-size / sqrt(12)
// col: not defined yet
// time: bin-size / sqrt(12)
- fLocPosM->operator()(0,0) = ((AliTRDgeometry *) fGeom)->GetRowPadSize()
- / kSq12;
- fLocPosM->operator()(1,1) = 0.0;
- fLocPosM->operator()(2,2) = ((AliTRDgeometry *) fGeom)->GetTimeBinSize()
- / kSq12;
+ //Int_t plane = ((AliTRDgeometry *) fGeom)->GetPlane(fDetector);
+ //Int_t chamber = ((AliTRDgeometry *) fGeom)->GetChamber(fDetector);
+ //Int_t sector = ((AliTRDgeometry *) fGeom)->GetSector(fDetector);
+ //fLocPosM->operator()(0,0) = ((AliTRDgeometry *) fGeom)->GetRowPadSize(plane
+ // ,chamber
+ // ,sector)
+ // / kSq12;
+ //fLocPosM->operator()(1,1) = 0.0;
+ //fLocPosM->operator()(2,2) = ((AliTRDgeometry *) fGeom)->GetTimeBinSize()
+ // / kSq12;
// printf("rec. point: row = %f, col = %f, time = %f \n",
// fLocPos[0],fLocPos[1],fLocPos[2]);
// of tracking sector
//
- Int_t plane = ((AliTRDgeometry *) fGeom)->GetPlane(fDetector);
- Int_t chamber = ((AliTRDgeometry *) fGeom)->GetChamber(fDetector);
- Int_t sector = ((AliTRDgeometry *) fGeom)->GetSector(fDetector);
+ //Int_t plane = ((AliTRDgeometry *) fGeom)->GetPlane(fDetector);
+ //Int_t chamber = ((AliTRDgeometry *) fGeom)->GetChamber(fDetector);
+ //Int_t sector = ((AliTRDgeometry *) fGeom)->GetSector(fDetector);
// Set the position
- Float_t padRow = fLocPos[0]; // Pad Row position
- Float_t padCol = fLocPos[1]; // Pad Column position
+ //Float_t padRow = fLocPos[0]; // Pad Row position
+ //Float_t padCol = fLocPos[1]; // Pad Column position
- Float_t col0 = ((AliTRDgeometry *) fGeom)->GetCol0(plane);
- Float_t row0 = ((AliTRDgeometry *) fGeom)->GetRow0(plane,chamber,sector);
+ //Float_t col0 = ((AliTRDgeometry *) fGeom)->GetCol0(plane);
+ //Float_t row0 = ((AliTRDgeometry *) fGeom)->GetRow0(plane,chamber,sector);
// Float_t offset = 0.5 * ((AliTRDgeometry *) fGeom)->GetChamberWidth(plane);
- fY = - (col0 + padCol * ((AliTRDgeometry *) fGeom)->GetColPadSize());
-
- fZ = row0 + padRow * ((AliTRDgeometry *) fGeom)->GetRowPadSize();
+ //fY = - (col0 + padCol * ((AliTRDgeometry *) fGeom)->GetColPadSize(plane));
+ //fZ = row0 + padRow * ((AliTRDgeometry *) fGeom)->GetRowPadSize(plane
+ // ,chamber
+ // ,sector);
// fSigmaY = sigmaY * sigmaY;
// fSigmaZ = sigmaZ * sigmaZ;
- fSigmaY2 = 0.05 * 0.05;
+//fSigmaY2 = 0.05 * 0.05;
+
+//fSigmaZ2 = ((AliTRDgeometry *) fGeom)->GetRowPadSize(plane,chamber,sector)
+// * ((AliTRDgeometry *) fGeom)->GetRowPadSize(plane,chamber,sector)
+// / 12.;
- fSigmaZ2 = ((AliTRDgeometry *) fGeom)->GetRowPadSize() *
- ((AliTRDgeometry *) fGeom)->GetRowPadSize() / 12.;
}
//_____________________________________________________________________________
// 2) if two or more indexes appear equal number of times, the lowest
// ones are stored first;
- const Int_t size = 9;
+ const Int_t kSize = 9;
- Int_t entries[size][2], i, j, index;
+ Int_t entries[kSize][2], i, j, index;
- Bool_t index_added;
+ Bool_t indexAdded;
- for (i=0; i<size; i++) {
+ for (i=0; i<kSize; i++) {
entries[i][0]=-1;
entries[i][1]=0;
}
- for (Int_t k=0; k<size; k++) {
+ for (Int_t k=0; k<kSize; k++) {
index=track[k];
- index_added=false; j=0;
+ indexAdded=kFALSE; j=0;
if (index >= 0) {
- while ( (!index_added) && ( j < size ) ) {
+ while ( (!indexAdded) && ( j < kSize ) ) {
if ((entries[j][0]==index) || (entries[j][1]==0)) {
entries[j][0]=index;
entries[j][1]=entries[j][1]+1;
- index_added=true;
+ indexAdded=kTRUE;
}
j++;
}
Int_t swap=1, tmp0, tmp1;
while ( swap > 0) {
swap=0;
- for(i=0; i<(size-1); i++) {
+ for(i=0; i<(kSize-1); i++) {
if ((entries[i][0] >= 0) && (entries[i+1][0] >= 0)) {
if ((entries[i][1] < entries[i+1][1]) ||
((entries[i][1] == entries[i+1][1]) &&
return;
}
+
+
+
+
+
+
+