]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSAlignMille2.h
Extended pileup search tomore than 1 pileup vertex
[u/mrichter/AliRoot.git] / ITS / AliITSAlignMille2.h
index 226265834f6d5431679154f60734f3ecb748ce03..fc0c7934492c6493128ae58dbf707505e733104f 100644 (file)
@@ -93,8 +93,8 @@ class AliITSAlignMille2: public TObject
   AliAlignObjParams*        GetPrealignedObject(const Char_t* symname) const;
   AliAlignObjParams*        GetConstrRefObject(const Char_t* symname) const;
   //
-  void          ConvertParamsToGlobal();
-  void          ConvertParamsToLocal();
+  void          ConvertParamsToGlobal() const;
+  void          ConvertParamsToLocal()  const;
   //
   const Char_t* GetGeometryPath()                                   {return fGeometryPath.Data();}
   const Char_t* GetPreAlignmentPath()                               {return fPreDeltaPath.Data();}
@@ -132,6 +132,8 @@ class AliITSAlignMille2: public TObject
   Int_t     ProcessTrack(const AliTrackPointArray *track, Double_t wgh=1.0);
   Int_t     FitTrack();
   Int_t     CheckCurrentTrack();
+  Bool_t    GetFixCurvIfConstraned()        const                       {return fFixCurvIfConstraned;}
+  void      SetFixCurvIfConstraned(Bool_t v=kTRUE)                      {fFixCurvIfConstraned = v;}
   //
   // methods for point unbiasing (via scaling its inverted cov.matrix)
   Bool_t    IsCovIScaleTouched()                     const {return TestBit(kCovIScaleBit);}
@@ -142,7 +144,7 @@ class AliITSAlignMille2: public TObject
   void      SetCovIScale(Float_t *v, Int_t np)             {for (int i=TMath::Min(np,kMaxPoints);i--;) fCovIScale[i]=v[i]; TouchCovIScale();}
   void      ResetCovIScale()                               {for (int i=kMaxPoints;i--;) fCovIScale[i]=-1; TouchCovIScale(kFALSE);}
   //
-  Int_t     CalcIntersectionPoint(Double_t *lpar, Double_t *gpar);
+  Int_t     CalcIntersectionPoint(const Double_t *lpar, const Double_t *gpar);
   Int_t     CalcDerivatives(Int_t paridx, Bool_t islpar);
   void      JacobianPosGloLoc(int locid,double* jacobian);
   Double_t* GetLocalIntersectionPoint()                           const {return (Double_t*)fPintLoc;}
@@ -164,7 +166,9 @@ class AliITSAlignMille2: public TObject
   void      ConstrainHelixFitCurv(Int_t q=0,Double_t crv=-1,Double_t crverr=-1);
   void      RemoveHelixFitConstraint();
   void      SetVertexConstraint(const AliESDVertex* vtx);
+  Bool_t    IsVertexSet()                                         const {return fVertexSet;}
   void      RemoveVertexConstraint()                                    {fVertexSet = kFALSE;}
+  void      SetVertexSet(Bool_t v)                                      {fVertexSet = v;}
   Double_t  GetHelixContraintCharge()                             const {return fConstrCharge;}
   Double_t  GetHelixContraintPT()                                 const {return fConstrPT;}
   Double_t  GetHelixContraintPTErr()                              const {return fConstrPTErr;}
@@ -284,7 +288,7 @@ class AliITSAlignMille2: public TObject
   Int_t     CacheMatricesOrig();
   Int_t     CacheMatricesCurr();
   Int_t     ProcessUserInfo(TList *userInfo=0);
-  Int_t     GetPathFromUserInfo(TList* cdbList,const char* calib,TString& path, Int_t useBit);
+  Int_t     GetPathFromUserInfo(const TList* cdbList,const char* calib,TString& path, Int_t useBit);
   Int_t     LoadConfig(const Char_t *cfile="AliITSAlignMille.conf");
   TObjArray* GetConfigRecord(FILE* stream, TString& recTitle, TString& recOpt, Bool_t rew);
   Int_t     CheckConfigRecords(FILE* stream);
@@ -510,6 +514,9 @@ class AliITSAlignMille2: public TObject
   Int_t         fCheckDiamondPoint;                // kDiamondIgnore: ignore in this event, kDiamondCheckIfPrompt: verify if track is prompt, kDiamondUse: use w/o verification
   Float_t       fCovIScale[kMaxPoints];            //optional scaling for inv.cov matrix (debiasing). MANAGED BY THE USER EXTERNALLY
   //
+  Bool_t        fFixCurvIfConstraned;              //when fit curv. was constrained, don't pass it as a free param to MP2
+  Bool_t        fCurvFitWasConstrained;            //flag that the last fit had constrained curvature
+  //
   TObjArray     fConvAlgMatOld;                    //array to keep matrices of alignables for deltas conversion
   //
   static AliITSAlignMille2* fgInstance;         // global pointer on itself