Possiblity to store the space-points with the covariance matrix obtained during the...
authorcvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 27 Sep 2007 11:26:58 +0000 (11:26 +0000)
committercvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 27 Sep 2007 11:26:58 +0000 (11:26 +0000)
STEER/AliReconstruction.cxx
STEER/AliReconstruction.h
STEER/AliTracker.h

index 1e60b0c..92306fc 100644 (file)
@@ -199,6 +199,7 @@ AliReconstruction::AliReconstruction(const char* gAliceFilename, const char* cdb
   fRunLocalReconstruction("ALL"),
   fRunTracking("ALL"),
   fFillESD("ALL"),
+  fUseTrackingErrorsForAlignment(""),
   fGAliceFileName(gAliceFilename),
   fInput(""),
   fEquipIdMap(""),
@@ -253,6 +254,7 @@ AliReconstruction::AliReconstruction(const AliReconstruction& rec) :
   fRunLocalReconstruction(rec.fRunLocalReconstruction),
   fRunTracking(rec.fRunTracking),
   fFillESD(rec.fFillESD),
+  fUseTrackingErrorsForAlignment(rec.fUseTrackingErrorsForAlignment),
   fGAliceFileName(rec.fGAliceFileName),
   fInput(rec.fInput),
   fEquipIdMap(rec.fEquipIdMap),
@@ -2579,7 +2581,13 @@ void AliReconstruction::WriteAlignmentData(AliESDEvent* esd)
          Int_t isp = 0;
          Int_t isp2 = 0;
          while (isp < nspdet) {
-           Bool_t isvalid = tracker->GetTrackPoint(idx[isp2],p); isp2++;
+           Bool_t isvalid;
+           if(IsSelected(fgkDetectorName[iDet],fUseTrackingErrorsForAlignment)) {
+             isvalid = tracker->GetTrackPointTrackingError(idx[isp2],p,track);
+           } else {
+             isvalid = tracker->GetTrackPoint(idx[isp2],p); 
+           } 
+           isp2++;
            const Int_t kNTPCmax = 159;
            if (iDet==1 && isp2>kNTPCmax) break;   // to be fixed
            if (!isvalid) continue;
index fa1a703..c57d492 100644 (file)
@@ -61,6 +61,8 @@ public:
     SetRunLocalReconstruction(detectors); 
     SetRunTracking(detectors);
     SetFillESD(detectors);};
+  void           SetUseTrackingErrorsForAlignment(const char* detectors) 
+    {fUseTrackingErrorsForAlignment = detectors;};
   void           SetLoadAlignFromCDB(Bool_t load)  {fLoadAlignFromCDB = load;};
   void           SetLoadAlignData(const char* detectors) 
     {fLoadAlignData = detectors;};
@@ -152,6 +154,7 @@ private:
   TString        fRunLocalReconstruction; // run the local reconstruction for these detectors
   TString        fRunTracking;        // run the tracking for these detectors
   TString        fFillESD;            // fill ESD for these detectors
+  TString        fUseTrackingErrorsForAlignment; // for these detectors
   TString        fGAliceFileName;     // name of the galice file
   TString        fInput;              // name of input file or directory
   TString        fEquipIdMap;         // name of file with equipment id map
index 3704fb6..2ec2675 100644 (file)
@@ -17,6 +17,7 @@ class AliCluster;
 class TTree;
 class AliKalmanTrack;
 class AliESDEvent;
+class AliESDtrack;
 class AliExternalTrackParam;
 class AliTrackPoint;
 
@@ -37,6 +38,8 @@ public:
   virtual void UnloadClusters()=0;
   virtual AliCluster *GetCluster(Int_t index) const=0;
   virtual Bool_t GetTrackPoint(Int_t /* index */ , AliTrackPoint& /* p */) const { return kFALSE;}
+  virtual Bool_t GetTrackPointTrackingError(Int_t /* index */, 
+          AliTrackPoint& /* p */, const AliESDtrack* /* t */) { return kFALSE;}
   virtual void  UseClusters(const AliKalmanTrack *t, Int_t from=0) const;
   virtual void  CookLabel(AliKalmanTrack *t,Float_t wrong) const; 
   Double_t GetX() const {return fX;}