]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONTrackLight.h
Fixes in reconstruction:
[u/mrichter/AliRoot.git] / MUON / AliMUONTrackLight.h
index fd4f0c655403c1bbf1dc2e6d707c622d643fe6b8..73c982cb018425d3be0fc96ef7f510bfe4a85807 100644 (file)
 
 class AliMUONTrack;
 class AliESDMuonTrack;
-class AliRunLoader;
-
+class AliStack;
 class TParticle;
+class AliMUONVTrackStore;
 
-class AliMUONTrackLight : public TObject { 
+class AliMUONTrackLight : public TObject {
  public: 
   AliMUONTrackLight(); 
   AliMUONTrackLight(AliESDMuonTrack* muonTrack); 
   AliMUONTrackLight(const AliMUONTrackLight &muonCopy);
-  virtual ~AliMUONTrackLight(){;} 
+  virtual ~AliMUONTrackLight(); 
   
+  /// Set 4-momentum of the generated particle
   void SetPGen(TLorentzVector pgen) {fPgen = pgen;}
+  /// Return 4-momentum of the generated particle  
   TLorentzVector GetPGen() const {return fPgen;}
+  /// Set reconstructed 4-momentum
   void SetPRec(TLorentzVector prec) {fPrec = prec;}
+  /// Return reconstructed 4-momentum 
   TLorentzVector GetPRec() const {return fPrec;}
+  /// Set primary vertex position from the ITS
   void SetVertex(Double_t *xyz) {for (Int_t i=0; i<3; i++) fXYZ[i]=xyz[i];}
+  /// Return primary vertex x position from the ITS 
+  Double_t GetX() { return fXYZ[0]; } 
+  /// Return primary vertex y position from the ITS 
+  Double_t GetY() { return fXYZ[1]; } 
+  /// Return primary vertex z position from the ITS 
+  Double_t GetZ() { return fXYZ[2]; } 
+  /// Return  primary vertex position from the ITS
   Double_t* GetVertex() { return fXYZ; } 
+  /// Set chi2 / ndf in the MUON track fit
+  void SetChi2(Double_t chi2) {fChi2=chi2;}
+  /// Return chi2 / ndf in the MUON track fit 
+  Double_t GetChi2() { return fChi2; } 
+  /// Set weight assigned to the muon
+  void SetWeight(Double_t w) {fWeight=w;}
+  /// Return weight assigned to the muon 
+  Double_t GetWeight() { return fWeight; } 
+  
+  /// Set muon charge 
   void SetCharge(Int_t charge) {fCharge = charge;}
+  /// Return muon charge 
   Int_t GetCharge() const {return fCharge;}
+  /// Return hadronised parents and grandparents 
   Int_t GetParentPDGCode(Int_t index = 0) const { return fParentPDGCode[index]; } 
+  /// Return line of Pythia output for hadronised parents & grandparents 
   Int_t GetParentPythiaLine(Int_t index = 0) const { return fParentPythiaLine[index]; } 
+  /// Return pdg of the string [0], quarks/gluons [1,2], sometimes proton [3] 
   Int_t GetQuarkPDGCode(Int_t index = 0) const { return fQuarkPDGCode[index]; } 
+  /// Return line of Pythia output for string [0] and quarks [1,2], sometimes proton [3] 
   Int_t GetQuarkPythiaLine(Int_t index = 0) const { return fQuarkPythiaLine[index]; } 
+  /// Return line of Pythia output for string [0] and quarks [1,2], sometimes proton [3] 
   Int_t GetTrackPythiaLine() const {return fTrackPythiaLine;}
+  /// Return pdg code of the rec. track (in general will be a muon) 
   Int_t GetTrackPDGCode() const {return fTrackPDGCode;}
+  /// Set line of kin. stack where rec. track (in general, the muon) is stored
   void SetTrackPythiaLine(Int_t trackLine) {fTrackPythiaLine = trackLine;}
+  /// Set pdg code of the rec. track (in general will be a muon)
   void SetTrackPDGCode(Int_t trackPdg) {fTrackPDGCode = trackPdg;}
-  void ComputePRecAndChargeFromESD(AliESDMuonTrack* muonTrack);
+  void FillFromESD(AliESDMuonTrack* muonTrack, Double_t zvert=-9999);
+  void FillFromAliMUONTrack(AliMUONTrack *trackReco,Double_t zvert=-9999);
+  /// Return info if is a muon 
   Bool_t IsAMuon() const { return (TMath::Abs(fTrackPDGCode)==13); }
+  Bool_t IsParentPionOrKaon(Int_t idParent = 0);
   void SetPxPyPz(Double_t px, Double_t py, Double_t pz); 
+  /// Set flag for trigger 
   void SetTriggered(Bool_t isTriggered) { fIsTriggered = isTriggered; } 
+  /// Return flag for trigger  
   Bool_t IsTriggered() const { return fIsTriggered; } 
-  TParticle* FindRefTrack(AliMUONTrack* trackReco, TClonesArray* trackRefArray, AliRunLoader *runLoader); 
-  Int_t TrackCheck(Bool_t *compTrack);
+  /// Return acually filled no. of *fragmented* parents 
   Int_t GetNParents() const {return fNParents;}
-  void FillMuonHistory(AliRunLoader *runLoader, TParticle *part);
+  void FillMuonHistory(AliStack *stack, TParticle *part);
   Bool_t IsB0(Int_t intTest) const;//checks if the provided PDG code corresponds to a neutral B meson
   Bool_t IsMotherAResonance(Int_t index=0) const;
+  /// Return flag for oscillation 
   Bool_t GetOscillation() const {return fOscillation;}
   virtual void PrintInfo(Option_t* opt); //"H" muon's decay history
   //"K" muon kinematics
   //"A" all variables
   Int_t GetParentFlavour(Int_t idParent=0) const;
+  Bool_t IsDiquark(Int_t pdg);
 protected:
-  static const Int_t fgkNParentsMax = 5;   /// maximum number of parents
-  TLorentzVector fPrec; /// reconstructed 4-momentum
-  Double_t fXYZ[3];     /// primary vertex position from the ITS 
-  Bool_t fIsTriggered;  /// flag for trigger 
-  Int_t fCharge;        /// muon charge 
-  Float_t fCentr;       /// centrality 
-  TLorentzVector fPgen;   /// 4-momentum of the generated particle
-  Int_t fTrackPythiaLine; ///line of kin. stack where rec. track (in general, the muon) is stored
-  Int_t fTrackPDGCode; ///pdg code of the rec. track (in general will be a muon)
-  Int_t fParentPDGCode[fgkNParentsMax]; /// hadronised parents and grandparents 
-  Int_t fParentPythiaLine[fgkNParentsMax];///line of Pythia output for hadronised parents & grandparents
-  Int_t fQuarkPDGCode[4]; /// pdg of the string [0], quarks/gluons [1,2], sometimes proton [3] 
-  Int_t fQuarkPythiaLine[4]; ///line of Pythia output for string [0] and quarks [1,2], sometimes proton [3]
-  Bool_t fOscillation; /// flag for oscillation
-  Int_t fNParents; ///acually filled no. of *fragmented* parents
+  static const Int_t fgkNParentsMax = 5;   ///< maximum number of parents
+  TLorentzVector fPrec; ///< reconstructed 4-momentum
+  Double_t fXYZ[3];     ///< primary vertex position from the ITS 
+  Bool_t fIsTriggered;  ///< flag for trigger 
+  Int_t fCharge;        ///< muon charge 
+  Double_t fChi2;       ///< chi2 / ndf in the MUON track fit 
+  Float_t fCentr;       ///< centrality 
+  TLorentzVector fPgen;   ///< 4-momentum of the generated particle
+  Int_t fTrackPythiaLine; ///< line of kin. stack where rec. track (in general, the muon) is stored
+  Int_t fTrackPDGCode; ///< pdg code of the rec. track (in general will be a muon)
+  Int_t fParentPDGCode[fgkNParentsMax]; ///< hadronised parents and grandparents 
+  Int_t fParentPythiaLine[fgkNParentsMax];///< line of Pythia output for hadronised parents & grandparents
+  Int_t fQuarkPDGCode[4]; ///< pdg of the string [0], quarks/gluons [1,2], sometimes proton [3] 
+  Int_t fQuarkPythiaLine[4]; ///< line of Pythia output for string [0] and quarks [1,2], sometimes proton [3]
+  Bool_t fOscillation; ///< flag for oscillation
+  Int_t fNParents; ///< acually filled no. of *fragmented* parents
+  Double_t fWeight; ///< weight assigned to the muon
+  /// Set flag for oscillation
   void SetOscillation(Bool_t oscillation) { fOscillation = oscillation; }
+  /// Set hadronised parents and grandparents 
   void SetParentPDGCode(Int_t index, Int_t pdg) { fParentPDGCode[index] = pdg; } 
+  /// Set line of Pythia output for hadronised parents & grandparents
   void SetParentPythiaLine(Int_t index, Int_t line) { fParentPythiaLine[index] = line; } 
+  /// Set pdg of the string [0], quarks/gluons [1,2], sometimes proton [3] 
   void SetQuarkPDGCode(Int_t index, Int_t pdg){ fQuarkPDGCode[index] = pdg; }
+  /// Set line of Pythia output for string [0] and quarks [1,2], sometimes proton [3]
   void SetQuarkPythiaLine(Int_t index, Int_t line){ fQuarkPythiaLine[index] = line; }
   void ResetQuarkInfo();