// "trackingV2".
///////////////////////////////////////////////////////////////////////////////
-
+#include <TGeoMatrix.h>
#include "AliITSRecPoint.h"
-#include "AliITSgeom.h"
+#include "AliAlignObj.h"
+
ClassImp(AliITSRecPoint)
//_____________________________________________________________
fNy(0),
fChargeRatio(0),
fType(0),
-fDeltaProb(0),
-fGeom(0){
- // default creator
-}
-
-//_____________________________________________________________
-AliITSRecPoint::AliITSRecPoint(AliITSgeom* geom): AliCluster(),
-fXloc(0),
-fZloc(0),
-fdEdX(0),
-fIndex(0),
-fQ(0),
-fLayer(0),
-fNz(0),
-fNy(0),
-fChargeRatio(0),
-fType(0),
-fDeltaProb(0),
-fGeom(geom) {
- // default creator
-
+fDeltaProb(0)
+{
+ // default constructor
}
//________________________________________________________________________
-AliITSRecPoint::AliITSRecPoint(Int_t module,AliITSgeom* geom,Int_t *lab,Float_t *hit, Int_t *info):AliCluster(lab,hit),
+AliITSRecPoint::AliITSRecPoint(Int_t *lab,Float_t *hit, Int_t *info, Bool_t local):
+AliCluster(AliGeomManager::LayerToVolUID((info[2]+AliGeomManager::kSPD1),lab[3]&0x3FF),hit,0,0,lab),
fXloc(0),
fZloc(0),
fdEdX(0),
fNy(info[0]),
fChargeRatio(0),
fType(0),
-fDeltaProb(0),
-fGeom(geom)
+fDeltaProb(0)
{
//standard constructor used in AliITSClusterFinderV2
+ if (!local) { // Cluster V2
+ Double_t txyz[3] = {GetX(), GetY(), GetZ()};
+ Double_t lxyz[3] = {0, 0, 0};
+ GetTracking2LocalMatrix()->LocalToMaster(txyz,lxyz);
+ fXloc = lxyz[0]; fZloc = lxyz[2];
+ }
+ else {
+ switch (fLayer) {
+ case 0:
+ case 1:
+ fdEdX = 0;
+ break;
+ case 2:
+ case 3:
+ fdEdX=fQ*1e-6;
+ break;
+ case 4:
+ case 5:
+ fdEdX=fQ*2.16;
+ break;
+ default:
+ AliError(Form("Wrong ITS layer %d (0 -> 5)",fLayer));
+ break;
+ }
+ fXloc = hit[0];
+ fZloc = hit[1];
+ Double_t lxyz[3] = {fXloc, 0, fZloc};
+ Double_t txyz[3] = {0, 0, 0};
+ GetTracking2LocalMatrix()->MasterToLocal(lxyz,txyz);
+
+ SetX(0.); SetY(txyz[1]); SetZ(txyz[2]);
- fType=0;
- fDeltaProb=0.;
-
- fGeom = geom;
- fGeom->TrackingV2ToDetL(module,fY,fZ,fXloc,fZloc);
- if(module<fGeom->GetStartSDD()) fdEdX=0.;
- if(module>=fGeom->GetStartSDD() && module<fGeom->GetStartSSD()){
- fdEdX=fQ*1e-6;
}
- if(module>=fGeom->GetStartSSD()) fdEdX=fQ*2.16;
-
-
+
}
+
//_______________________________________________________________________
AliITSRecPoint::AliITSRecPoint(const AliITSRecPoint& pt):AliCluster(pt),
fXloc(pt.fXloc),
fNy(pt.fNy),
fChargeRatio(pt.fChargeRatio),
fType(pt.fType),
-fDeltaProb(pt.fDeltaProb),
-fGeom(pt.fGeom){
+fDeltaProb(pt.fDeltaProb)
+{
//Copy constructor
}
}
-//________________________________________________________________________
-AliITSRecPoint::AliITSRecPoint(Int_t *lab,Float_t *hit, Int_t *info):AliCluster(lab,hit),
-fXloc(0),
-fZloc(0),
-fdEdX(0),
-fIndex(lab[3]),
-fQ(hit[4]),
-fLayer(info[2]),
-fNz(info[1]),
-fNy(info[0]),
-fChargeRatio(0),
-fType(0),
-fDeltaProb(0),
-fGeom(0){
- //standard constructor used in AliITSClusterFinderV2
-}
-
//----------------------------------------------------------------------
void AliITSRecPoint::Print(ostream *os){
////////////////////////////////////////////////////////////////////////
#endif
fmt = os->setf(ios::fixed); // set fixed floating point output
- *os << fTracks[0]<< " " << fTracks[1] << " " << fTracks[2] << " ";
- *os << fXloc << " " << fZloc << " " << fQ << " ";
+ *os << GetLabel(0) << " " << GetLabel(1) << " " << GetLabel(2) << " ";
fmt = os->setf(ios::scientific); // set scientific for dEdX.
- *os << fdEdX << " ";
+ *os << GetX() <<" " << GetY() << " " << GetZ() << " " ;
+ *os << GetSigmaY2() << " " << GetSigmaZ2() << " " << GetSigmaYZ() << " ";
+ fmt = os->setf(ios::fixed);
+ *os << GetVolumeId() << " "<< Misalign() /*fIsMisaligned*/ << " ";
+ fmt = os->setf(ios::scientific); // set scientific for dEdX.
+ *os << fXloc << " " << fZloc << " " << fdEdX << " ";
fmt = os->setf(ios::fixed); // every fixed
- *os << fSigmaY2 << " " << fSigmaZ2;
+ *os << fIndex <<" " << fQ << " "<<fLayer <<" "<<fNz<<" "<<fNy<<" ";
+ *os << fChargeRatio<<" " << fType << " " << fDeltaProb;
os->flags(fmt); // reset back to old formating.
return;
}
////////////////////////////////////////////////////////////////////////
// Standard input format for this class.
////////////////////////////////////////////////////////////////////////
-
+ Bool_t mis;
+ Int_t lab[4];
+ Float_t hit[6];
+ lab[3] = 0; // ??
+ *is >> lab[0] >> lab[1] >> lab[2];
+ SetLabel(lab[0],0); SetLabel(lab[1],1); SetLabel(lab[2],2);
+ *is >> hit[0] >> hit[1] >> hit[2] >> hit[3] >> hit[4] >> hit[5];
+ SetX(hit[0]);SetY(hit[1]);SetZ(hit[2]);SetSigmaY2(hit[3]);
+ SetSigmaZ2(hit[4]);//fSigmaYZ=hit[5];
+ *is >> lab[0] >> mis;
+ SetVolumeId(lab[0]);// fIsMisalinged = mis;
+ *is >> fXloc >> fZloc >> fdEdX;
+ *is >> fIndex >> fQ >> fLayer >> fNz >> fNy >> fChargeRatio >> fType;
+ *is >> fDeltaProb;
- *is >> fTracks[0] >> fTracks[1] >> fTracks[2] >> fXloc >> fZloc >> fQ;
- *is >> fdEdX >> fSigmaY2 >> fSigmaZ2;
return;
}
//----------------------------------------------------------------------