X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=ITS%2FUPGRADE%2FAliITSUSeed.h;h=be8aeb80dd669cb2e4891a392ad730d47feee694;hb=62816fea630a3413323c004cf99aa15e9aa9ce6e;hp=b9a1fd177690b8f4b0d73cc4da5957ec5445c25f;hpb=6cd8011661900a729ccd3b07c28156810adb3728;p=u%2Fmrichter%2FAliRoot.git diff --git a/ITS/UPGRADE/AliITSUSeed.h b/ITS/UPGRADE/AliITSUSeed.h index b9a1fd17769..be8aeb80dd6 100644 --- a/ITS/UPGRADE/AliITSUSeed.h +++ b/ITS/UPGRADE/AliITSUSeed.h @@ -11,7 +11,7 @@ using namespace AliITSUAux; class AliITSUSeed: public AliExternalTrackParam { public: - enum {kKilled=BIT(14),kSave=BIT(15),kFake=BIT(16)}; + enum {kKilled=BIT(14),kSave=BIT(15),kMark=BIT(16),kFake=BIT(17)}; enum {kF02,kF04,kF12,kF13,kF14,kF24, kF44,kNFElem}; // non-trivial elems of propagation matrix enum {kK00,kK01,kK10,kK11,kK20,kK21,kK30,kK31,kK40,kK41, kNKElem}; // non-trivial elems of gain matrix enum {kS00,kS10,kS11,kS20,kS21,kS22,kS30,kS31,kS32,kS33,kS40,kS41,kS42,kS43,kS44,kNSElem}; // elements of 5x5 sym matrix @@ -31,7 +31,10 @@ class AliITSUSeed: public AliExternalTrackParam void Kill(Bool_t v=kTRUE) {SetBit(kKilled, v);} void SetFake(Bool_t v=kTRUE) {SetBit(kFake, v);} void Save(Bool_t v=kTRUE) {SetBit(kSave,v);} + void SetMark(Bool_t v=kTRUE) {SetBit(kMark,v);} void FlagTree(UInt_t bits, Bool_t v=kTRUE); + void SetChi2ITSTPC(Float_t v) {fChi2Match = v;} + void SetChi2ITSSA(Float_t v) {fChi2ITSSA = v;} // UInt_t GetLrClusterID() const {return fClID;} Int_t GetLrCluster(Int_t &lr) const {return UnpackCluster(fClID,lr);} @@ -47,10 +50,15 @@ class AliITSUSeed: public AliExternalTrackParam Float_t GetChi2Glo() const {return fChi2Glo;} Float_t GetChi2Penalty() const {return fChi2Penalty;} Float_t GetChi2GloNrm() const; + Float_t GetChi2ITSTPC() const {return fChi2Match;} + Float_t GetChi2ITSSA() const {return fChi2ITSSA;} + Float_t GetQualityVar() const; Bool_t IsKilled() const {return TestBit(kKilled);} Bool_t IsFake() const {return TestBit(kFake);} Bool_t IsSaved() const {return TestBit(kSave);} + Bool_t IsMarked() const {return TestBit(kMark);} Bool_t ContainsFake() const; + Int_t FetchClusterInfo(Int_t *clIDarr) const; // Int_t GetPoolID() const {return int(GetUniqueID())-1;} void SetPoolID(Int_t id) {SetUniqueID(id+1);} @@ -63,7 +71,7 @@ class AliITSUSeed: public AliExternalTrackParam virtual Int_t Compare(const TObject* obj) const; // // test - void InitFromESDTrack(const AliESDtrack* esdTr); + void InitFromSeed(const AliExternalTrackParam* seed); void ResetFMatrix(); void ApplyELoss2FMatrix(Double_t frac, Bool_t beforeProp); Bool_t ApplyMaterialCorrection(Double_t xOverX0, Double_t xTimesRho, Double_t mass, Bool_t beforeProp); @@ -78,6 +86,17 @@ class AliITSUSeed: public AliExternalTrackParam UInt_t GetNChildren() const {return fNChildren;} Int_t IncChildren() {return ++fNChildren;} Int_t DecChildren() {return --fNChildren;} + Double_t GetResidY() const {return fResid[0];} + Double_t GetResidZ() const {return fResid[1];} + // +#ifdef _ITSU_TUNING_MODE_ // this is used only for tuning histo filling + void SetOrdBranch(UShort_t v) {fOrdBranch=v;} + void SetOrdCand(UShort_t v) {fOrdCand=v;} + Int_t GetOrdBranch() const {return fOrdBranch;} + Int_t GetOrdCand() const {return fOrdCand;} + Double_t GetPullY() const {return fResid[0]*Sqrt(fCovIYZ[0]);} + Double_t GetPullZ() const {return fResid[1]*Sqrt(fCovIYZ[2]);} +#endif // protected: // @@ -87,13 +106,20 @@ class AliITSUSeed: public AliExternalTrackParam Float_t fChi2Glo; // current chi2 global (sum of track-cluster chi2's on layers with hit) Float_t fChi2Cl; // track-cluster chi2 (if >0) or penalty for missing cluster (if < 0) Float_t fChi2Penalty; // total penalty (e.g. for missing clusters) + Float_t fChi2Match; // ITS/TPC matching chi2 (per NDF) // RS: to move to separate object of final seed + Float_t fChi2ITSSA; // ITSSA backward fit chi2 (per NDF) // RS: to move to separate object of final seed Double_t fFMatrix[kNFElem]; // matrix of propagation from prev layer (non-trivial elements) Double_t fKMatrix[kNKElem]; // Gain matrix non-trivial elements (note: standard MBF formula uses I-K*H) Double_t fRMatrix[kNRElem]; // rotation matrix non-trivial elements Double_t fCovIYZ[3]; // inverted matrix of propagation + meas errors = [Hi * Pi|i-1 * Hi^T + Ri]^-1 Double_t fResid[2]; // residuals vector TObject* fParent; // parent track (in higher tree hierarchy) - + // +#ifdef _ITSU_TUNING_MODE_ // this is used only for tuning histo filling + UShort_t fOrdBranch; //! order in the seed branching + UShort_t fOrdCand; //! order in candidates tree +#endif + // ClassDef(AliITSUSeed,1) }; @@ -175,5 +201,13 @@ inline void AliITSUSeed::FlagTree(UInt_t bits, Bool_t v) // } +//__________________________________________________________________ +inline Float_t AliITSUSeed::GetQualityVar() const +{ + // return variable for quality check (the smaller - the better) + // return GetChi2ITSSA()/Pt(); // this may change! RS + return GetChi2GloNrm()/Pt(); +} + #endif