Using AliITSgeomTGeo in the constructors of V2 and MI trackers (Jouri)
authorcvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 26 Feb 2007 10:57:27 +0000 (10:57 +0000)
committercvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 26 Feb 2007 10:57:27 +0000 (10:57 +0000)
12 files changed:
HLT/ITS/AliHLTITStracker.h
HLT/src/AliHLTReconstructor.cxx
HLT/src/AliHLTReconstructor.h
ITS/AliITSReconstructor.cxx
ITS/AliITStrackerANN.cxx
ITS/AliITStrackerMI.cxx
ITS/AliITStrackerMI.h
ITS/AliITStrackerSA.cxx
ITS/AliITStrackerV2.cxx
ITS/AliITStrackerV2.h
MONITOR/AliMonitorProcess.cxx
RAW/AliHoughFilter.cxx

index 581ea41..ba6a728 100644 (file)
 #include "AliITStrackerV2.h"
 
 class AliESD;
-class AliITSgeom;
+class AliITSgeomTGeo;
 class AliHLTITStrack;
 
 //-------------------------------------------------------------------------
 class AliHLTITStracker : public AliITStrackerV2 {
 public:
   AliHLTITStracker():AliITStrackerV2(){ fConstraint[0]=1; fConstraint[1]=0; }
-  AliHLTITStracker(const AliITSgeom *geom) : AliITStrackerV2(geom){ fConstraint[0]=1; fConstraint[1]=0; }
+  AliHLTITStracker(const AliITSgeomTGeo *geom) : AliITStrackerV2(geom){ fConstraint[0]=1; fConstraint[1]=0; }
 
   Int_t Clusters2Tracks(AliESD *event);
   Int_t PropagateBack(AliESD *event);
index 45c30cd..53816f4 100644 (file)
@@ -34,7 +34,6 @@
 
 #include "AliRun.h"
 #include "AliITS.h"
-#include "AliITSgeom.h"
 #include "AliHLTITStracker.h"
 #include "AliHLTTPCtracker.h"
 #include "MUON/src/AliRoot/AliHLTMUONTracker.h"
@@ -326,9 +325,7 @@ AliTracker* AliHLTReconstructor::CreateTracker(AliRunLoader* runLoader) const
   }
   if(!opt.CompareTo("ITS")) {
     // Create ITS tracker
-    AliITSgeom* geom = GetITSgeom(runLoader);
-    if (!geom) return NULL;
-    return new AliHLTITStracker(geom);
+    return new AliHLTITStracker(0);
   }
   if(!opt.CompareTo("MUON")) {
     return new AliHLTMUONTracker(runLoader);
@@ -337,28 +334,6 @@ AliTracker* AliHLTReconstructor::CreateTracker(AliRunLoader* runLoader) const
   return NULL;
 }
 
-//_____________________________________________________________________________
-AliITSgeom* AliHLTReconstructor::GetITSgeom(AliRunLoader* runLoader) const
-{
-// get the ITS geometry
-
-  if (!runLoader->GetAliRun()) runLoader->LoadgAlice();
-  if (!runLoader->GetAliRun()) {
-    Error("GetITSgeom", "couldn't get AliRun object");
-    return NULL;
-  }
-  AliITS* its = (AliITS*) runLoader->GetAliRun()->GetDetector("ITS");
-  if (!its) {
-    Error("GetITSgeom", "couldn't get ITS detector");
-    return NULL;
-  }
-  if (!its->GetITSgeom()) {
-    Error("GetITSgeom", "no ITS geometry available");
-    return NULL;
-  }
-  return its->GetITSgeom();
-}
-
 void AliHLTReconstructor::FillDHLTRecPoint(AliRawReader* rawReader, Int_t nofEvent, Int_t dcCut = 0) const
 {
   // Hit recontruction for dimuon-HLT
index 4d31111..45d502a 100644 (file)
@@ -8,8 +8,6 @@
 #ifdef use_reconstruction
 #include "AliReconstructor.h"
 
-class AliITSgeom;
-
 class AliHLTReconstructor: public AliReconstructor {
 public:
   AliHLTReconstructor();
@@ -50,8 +48,6 @@ private:
   void FillESDforConformalMapping(AliESD* esd,Int_t iEvent) const;
   void FillESDforHoughTransform(AliESD* esd,Int_t iEvent) const;
 
-  AliITSgeom*          GetITSgeom(AliRunLoader* runLoader) const;
-
   Bool_t fDoHough;   //do the hough transform
   Bool_t fDoTracker; //do the standard conformal tracker
   Bool_t fDoBench;   //store the benchmark results
index 6c4ff31..15cafe2 100644 (file)
@@ -169,7 +169,7 @@ AliTracker* AliITSReconstructor::CreateTracker(AliRunLoader* runLoader)const
   TString selectedTracker = GetOption();
   AliTracker* tracker;    
   if (selectedTracker.Contains("MI")) {
-    tracker = new AliITStrackerMI(geom);
+    tracker = new AliITStrackerMI(0);
   }
   else {
     tracker =  new AliITStrackerSA(geom);  // inherits from AliITStrackerMI
index db565a5..e9c4e9e 100644 (file)
@@ -72,7 +72,7 @@ fGeom(0){
 }
 //__________________________________________________________________________________
 AliITStrackerANN::AliITStrackerANN(const AliITSgeom *geom, Int_t msglev) 
-: AliITStrackerV2(geom), 
+: AliITStrackerV2(0), 
 fVertexX(0.0),
 fVertexY(0.0),
 fVertexZ(0.0),
index ed71611..3ec35bf 100644 (file)
@@ -33,7 +33,7 @@
 #include "AliV0.h"
 #include "AliHelix.h"
 #include "AliITSRecPoint.h"
-#include "AliITSgeom.h"
+#include "AliITSgeomTGeo.h"
 #include "AliITStrackerMI.h"
 #include "AliTrackPointArray.h"
 #include "AliAlignObj.h"
@@ -61,7 +61,7 @@ fDebugStreamer(0){
 }
 
 
-AliITStrackerMI::AliITStrackerMI(const AliITSgeom *geom) : AliTracker(),
+AliITStrackerMI::AliITStrackerMI(const AliITSgeomTGeo *geom) : AliTracker(),
 fI(kMaxLayer),
 fBestTrack(),
 fTrackToFollow(),
@@ -78,25 +78,28 @@ fDebugStreamer(0){
   //--------------------------------------------------------------------
   //This is the AliITStrackerMI constructor
   //--------------------------------------------------------------------
+  if (geom) {
+    AliWarning("\"geom\" is actually a dummy argument !");
+  }
+
   fCoeficients = 0;
   fAfterV0     = kFALSE;
-  AliITSgeom *g=(AliITSgeom*)geom;
-  Float_t x,y,z;
-  Int_t i;
-  for (i=1; i<kMaxLayer+1; i++) {
-    Int_t nlad=g->GetNladders(i);
-    Int_t ndet=g->GetNdetectors(i);
-
-    g->GetTrans(i,1,1,x,y,z); 
-    Double_t r=TMath::Sqrt(x*x + y*y);
+
+  for (Int_t i=1; i<kMaxLayer+1; i++) {
+    Int_t nlad=AliITSgeomTGeo::GetNLadders(i);
+    Int_t ndet=AliITSgeomTGeo::GetNDetectors(i);
+
+    Double_t xyz[3], &x=xyz[0], &y=xyz[1], &z=xyz[2];
+    AliITSgeomTGeo::GetOrigTranslation(i,1,1,xyz); 
     Double_t poff=TMath::ATan2(y,x);
     Double_t zoff=z;
+    Double_t r=TMath::Sqrt(x*x + y*y);
 
-    g->GetTrans(i,1,2,x,y,z);
+    AliITSgeomTGeo::GetOrigTranslation(i,1,2,xyz);
     r += TMath::Sqrt(x*x + y*y);
-    g->GetTrans(i,2,1,x,y,z);
+    AliITSgeomTGeo::GetOrigTranslation(i,2,1,xyz);
     r += TMath::Sqrt(x*x + y*y);
-    g->GetTrans(i,2,2,x,y,z);
+    AliITSgeomTGeo::GetOrigTranslation(i,2,2,xyz);
     r += TMath::Sqrt(x*x + y*y);
     r*=0.25;
 
@@ -104,12 +107,17 @@ fDebugStreamer(0){
 
     for (Int_t j=1; j<nlad+1; j++) {
       for (Int_t k=1; k<ndet+1; k++) { //Fill this layer with detectors
-        Float_t x,y,zshift; g->GetTrans(i,j,k,x,y,zshift); 
-        Double_t rot[9]; g->GetRotMatrix(i,j,k,rot);
+        TGeoHMatrix m; AliITSgeomTGeo::GetOrigMatrix(i,j,k,m);
+        Double_t *xyz=m.GetTranslation(), x=xyz[0], y=xyz[1];
+        Double_t *rot=m.GetRotationMatrix(); 
 
         Double_t phi=TMath::ATan2(rot[1],rot[0])+TMath::Pi();
         phi+=TMath::Pi()/2;
         if (i==1) phi+=TMath::Pi();
+
+        if (phi<0) phi+=TMath::TwoPi();
+        else if (phi>=TMath::TwoPi()) phi-=TMath::TwoPi();
+
         Double_t cp=TMath::Cos(phi), sp=TMath::Sin(phi);
         Double_t r=x*cp+y*sp;
 
@@ -210,9 +218,11 @@ Int_t AliITStrackerMI::LoadClusters(TTree *cTree) {
        detector = c->GetDetectorIndex();
         AliITSdetector &det=fgLayers[i].GetDetector(detector);
    
-        //Shift the cluster to the misaligned position
-        Double_t x=det.GetR(); //y=...;      z=...;
-        c->SetX(x);            //c->SetY(y); c->SetZ(z); 
+        //Shift the cluster to the misaligned position (temporary solution)
+        Double_t x=det.GetR();
+        if      (i==0) x-=0.0075; 
+        else if (i==1) x+=0.0075;
+        c->SetX(x);           
 
         fgLayers[i].InsertCluster(new AliITSRecPoint(*c));
       }
index 1d443e7..d364327 100644 (file)
@@ -15,7 +15,7 @@ class TTree;
 class TTreeSRedirector;
 class AliESD;
 class AliHelix;
-class AliITSgeom;
+class AliITSgeomTGeo;
 
 #include <TObjArray.h>
 #include "AliITSRecPoint.h"
@@ -26,7 +26,7 @@ class AliITSgeom;
 class AliITStrackerMI : public AliTracker {
 public:
   AliITStrackerMI();
-  AliITStrackerMI(const AliITSgeom *geom);
+  AliITStrackerMI(const AliITSgeomTGeo *geom);
   virtual ~AliITStrackerMI();
   AliCluster *GetCluster(Int_t index) const;
   virtual Bool_t GetTrackPoint(Int_t index, AliTrackPoint& p) const;
index 5bf4bae..b3d789f 100644 (file)
@@ -66,7 +66,7 @@ fCluCoord(0){
  
 }
 //____________________________________________________________________________
-AliITStrackerSA::AliITStrackerSA(AliITSgeom *geom):AliITStrackerMI(geom),
+AliITStrackerSA::AliITStrackerSA(AliITSgeom *geom):AliITStrackerMI(0),
 fPhiEstimate(0),
 fLambdac(0),
 fPhic(0),
@@ -93,7 +93,7 @@ fCluCoord(0)
 }
 
 //____________________________________________________________________________
-AliITStrackerSA::AliITStrackerSA(AliITSgeom *geom, AliESDVertex *vert):AliITStrackerMI(geom),
+AliITStrackerSA::AliITStrackerSA(AliITSgeom *geom, AliESDVertex *vert):AliITStrackerMI(0),
 fPhiEstimate(0),
 fLambdac(0),
 fPhic(0),
@@ -119,7 +119,7 @@ fCluCoord(0)
 }
 
 //____________________________________________________________________________
-AliITStrackerSA::AliITStrackerSA(AliITSgeom *geom, AliITSVertexer *vertexer):AliITStrackerMI(geom),
+AliITStrackerSA::AliITStrackerSA(AliITSgeom *geom, AliITSVertexer *vertexer):AliITStrackerMI(0),
 fPhiEstimate(0),
 fLambdac(0),
 fPhic(0),
index a15edab..915d3f8 100644 (file)
@@ -28,7 +28,7 @@
 #include <TRandom.h>
 #include <TGeoMatrix.h>
 
-#include "AliITSgeom.h"
+#include "AliITSgeomTGeo.h"
 #include "AliAlignObj.h"
 #include "AliITSRecPoint.h"
 #include "AliESD.h"
@@ -87,7 +87,7 @@ AliITStrackerV2::AliITStrackerV2(const AliITStrackerV2 &t):
 
 }
 
-AliITStrackerV2::AliITStrackerV2(const AliITSgeom *geom) : 
+AliITStrackerV2::AliITStrackerV2(const AliITSgeomTGeo *geom) : 
   AliTracker(), 
   fI(kMaxLayer),
   fBestTrack(),
@@ -98,23 +98,25 @@ AliITStrackerV2::AliITStrackerV2(const AliITSgeom *geom) :
   //--------------------------------------------------------------------
   //This is the AliITStrackerV2 constructor
   //--------------------------------------------------------------------
-  AliITSgeom *g=(AliITSgeom*)geom;
+  if (geom) {
+    AliWarning("\"geom\" is actually a dummy argument !");
+  }
 
-  Float_t x,y,z;  Int_t i;
-  for (i=1; i<kMaxLayer+1; i++) {
-    Int_t nlad=g->GetNladders(i);
-    Int_t ndet=g->GetNdetectors(i);
+  for (Int_t i=1; i<kMaxLayer+1; i++) {
+    Int_t nlad=AliITSgeomTGeo::GetNLadders(i);
+    Int_t ndet=AliITSgeomTGeo::GetNDetectors(i);
 
-    g->GetTrans(i,1,1,x,y,z); 
+    Double_t xyz[3], &x=xyz[0], &y=xyz[1], &z=xyz[2];
+    AliITSgeomTGeo::GetOrigTranslation(i,1,1,xyz); 
     Double_t poff=TMath::ATan2(y,x);
     Double_t zoff=z;
     Double_t r=TMath::Sqrt(x*x + y*y);
 
-    g->GetTrans(i,1,2,x,y,z);
+    AliITSgeomTGeo::GetOrigTranslation(i,1,2,xyz);
     r += TMath::Sqrt(x*x + y*y);
-    g->GetTrans(i,2,1,x,y,z);
+    AliITSgeomTGeo::GetOrigTranslation(i,2,1,xyz);
     r += TMath::Sqrt(x*x + y*y);
-    g->GetTrans(i,2,2,x,y,z);
+    AliITSgeomTGeo::GetOrigTranslation(i,2,2,xyz);
     r += TMath::Sqrt(x*x + y*y);
     r*=0.25;
 
@@ -122,8 +124,9 @@ AliITStrackerV2::AliITStrackerV2(const AliITSgeom *geom) :
 
     for (Int_t j=1; j<nlad+1; j++) {
       for (Int_t k=1; k<ndet+1; k++) { //Fill this layer with detectors
-        Float_t x,y,zshift; g->GetTrans(i,j,k,x,y,zshift); 
-        Double_t rot[9]; g->GetRotMatrix(i,j,k,rot);
+        TGeoHMatrix m; AliITSgeomTGeo::GetOrigMatrix(i,j,k,m);
+        Double_t *xyz=m.GetTranslation(), x=xyz[0], y=xyz[1];
+        Double_t *rot=m.GetRotationMatrix(); 
 
         Double_t phi=TMath::ATan2(rot[1],rot[0])+TMath::Pi();
         phi+=TMath::Pi()/2;
@@ -188,9 +191,11 @@ Int_t AliITStrackerV2::LoadClusters(TTree *cTree) {
         Int_t idx=c->GetDetectorIndex();
         AliITSdetector &det=fgLayers[i].GetDetector(idx);
    
-        //Shift the cluster to the misaligned position
-        Double_t x=det.GetR(); //y=...;      z=...;
-        c->SetX(x);            //c->SetY(y); c->SetZ(z); 
+        //Shift the cluster to the misaligned position (temporary solution)
+        Double_t x=det.GetR();
+        if      (i==0) x-=0.0075; 
+        else if (i==1) x+=0.0075;
+        c->SetX(x);           
 
         Double_t y=r*det.GetPhi()+c->GetY();
         if (y>circ) y-=circ; else if (y<0) y+=circ;
index 23689f7..dd514a7 100644 (file)
@@ -14,7 +14,7 @@
 
 class AliITSRecPoint;
 class AliESD;
-class AliITSgeom;
+class AliITSgeomTGeo;
 class TTree;
 
 
@@ -22,7 +22,7 @@ class TTree;
 class AliITStrackerV2 : public AliTracker {
 public:
   AliITStrackerV2();
-  AliITStrackerV2(const AliITSgeom *geom);
+  AliITStrackerV2(const AliITSgeomTGeo *geom);
   ~AliITStrackerV2(){}
   AliCluster *GetCluster(Int_t index) const;
   AliITSRecPoint *GetCluster(Int_t l, Int_t c) const {
index 0eae474..18121b8 100644 (file)
@@ -653,7 +653,7 @@ Bool_t AliMonitorProcess::ReconstructITS(AliRawReader* rawReader, AliESD* esd)
 
   // track finder
   AliDebug(1, "reconstructing tracks...");
-  AliITStrackerV2 tracker(fITSgeom);
+  AliITStrackerV2 tracker(0);
   tracker.LoadClusters(itsLoader->TreeR());
   tracker.Clusters2Tracks(esd);
   tracker.UnloadClusters();
index ca9410d..78c640e 100644 (file)
@@ -228,7 +228,7 @@ void AliHoughFilter::RunITStracking(AliESD* esd, TTree *treeClusters)
   const AliESDVertex *vertex = esd->GetVertex();
   vertex->GetXYZ(vtxPos);
 
-  AliHLTITStracker itsTracker(fITSgeom);
+  AliHLTITStracker itsTracker(0);
   itsTracker.SetVertex(vtxPos,vtxErr);
 
   itsTracker.LoadClusters(treeClusters);