]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HBTAN/AliHBTPair.h
minor correction in documentation
[u/mrichter/AliRoot.git] / HBTAN / AliHBTPair.h
index 9ca6f0b4c1f5b2c274ba1267c87309ed64726c46..5961da77c0da523de87d820ee358e2f78174d635 100644 (file)
 //
 // class implements pair of particles and taking care of caluclation (almost)
 // all of pair properties (Qinv, InvMass,...)
-// more info: http://alisoft.cern.ch/people/skowron/analyzer/index.html
+// more info: http://aliweb.cern.ch/people/skowron/analyzer/index.html
 //
 ////////////////////////////////////////////////////////////////////////////
 
-#include <TObject.h>
-#include "AliHBTParticle.h"
+#include <AliAODPair.h>
 
+class AliVAODParticle;
 
-class AliHBTPair: public TObject
+class AliHBTPair: public AliAODPair
 {
  public:
    AliHBTPair(Bool_t rev = kFALSE); //contructor
-   AliHBTPair(AliHBTParticle* part1, AliHBTParticle* part2, Bool_t rev = kFALSE); //contructor
+   AliHBTPair(AliVAODParticle* part1, AliVAODParticle* part2, Bool_t rev = kFALSE); //contructor
    AliHBTPair(const AliHBTPair& in);
    
    virtual ~AliHBTPair(){}
    
-   const AliHBTPair& operator=(const AliHBTPair& in);
-   
-   void SetParticles(AliHBTParticle* p1,AliHBTParticle* p2); //sets particles in the pair
-   AliHBTPair* GetSwapedPair() {return fSwapedPair;} //returns pair with swapped particles
-   
-   AliHBTParticle* Particle1() const {return fPart1;} //returns pointer to first particle
-   AliHBTParticle* Particle2() const {return fPart2;} //returns pointer to decond particle
-   
-   void Changed();
-   //Center Mass System - Longitudinally Comoving
-   
-   virtual Double_t GetInvMass(); //returns invariant mass of the pair
-   virtual Double_t GetMt();
-   virtual Double_t GetQInv(); //returns Q invariant
-   virtual Double_t GetQSideCMSLC(); //returns Q Side CMS longitudionally co-moving
-   virtual Double_t GetQOutCMSLC(); //returns Q out CMS longitudionally co-moving
-   virtual Double_t GetQLongCMSLC(); //returns Q Long CMS longitudionally co-moving
-   
-   
-   virtual Double_t GetKt();  //returns K transverse
-   virtual Double_t GetKStar();
-   
-   virtual Double_t GetDeltaP(); //return difference of momenta
-   virtual Double_t GetDeltaPx();
-   virtual Double_t GetDeltaPy();
-   virtual Double_t GetDeltaPz();
-   
-   virtual Double_t GetGammaToCMSLC();
-   Double_t GetWeight();
- protected:
-   AliHBTParticle* fPart1;  //pointer to first particle
-   AliHBTParticle* fPart2;  //pointer to second particle
-  
-   AliHBTPair* fSwapedPair; //pointer to swapped pair
-   
-/************************************************************/
-/************CMS (LC) Q's   *********************************/
-/************************************************************/
-   //Center Mass System - Longitudinally Comoving
-   
-   Double_t fQSideCMSLC;  //value of Q side CMS longitudially co-moving
-   Bool_t   fQSideCMSLCNotCalc; //flag indicating if fQSideCMSLC is already calculated for this pair
-   
-   Double_t fQOutCMSLC; //value of Q out CMS longitudially co-moving
-   Bool_t   fQOutCMSLCNotCalc;//flag indicating if fQOutCMSLC is already calculated for this pair
-   
-   Double_t fQLongCMSLC; //value of Q long CMS longitudially co-moving
-   Bool_t   fQLongCMSLCNotCalc;//flag indicating if fQLongCMSLC is already calculated for this pair
-/************************************************************/
-/************************************************************/
-   Double_t fQInv;  //half of differnece of 4-momenta
-   Bool_t   fQInvNotCalc;//flag indicating if fQInv is already calculated for this pair
-   
-   Double_t fInvMass;  //invariant mass
-   Bool_t   fInvMassNotCalc;//flag indicating if fInvMass is already calculated for this pair
-   
-   Double_t fKt; //K == sum vector of particle's momenta. Kt transverse component
-   Bool_t   fKtNotCalc;//flag indicating if fKt is already calculated for this pair
-   
-   Double_t fKStar; // KStar
-   Bool_t   fKStarNotCalc;// flag indicating if fKStar is calculated
-   
-   Double_t fPInv;  //invariant momentum
-   
-   Double_t fQSide; //Q Side
-   Double_t fOut;//Q Out
-   Double_t fQLong;//Q Long
+   AliHBTPair& operator=(const AliHBTPair& in);
 
-   Double_t fMt;//Transverse coordinate of Inv. Mass
-   Bool_t   fMtNotCalc;//flag indicating if Mt is calculated for current pair
-      
-   Double_t fInvMassSqr;//squre of invariant mass
-   Bool_t   fMassSqrNotCalc; //flag indicating if fInvMassSqr for this pair
-   void     CalculateInvMassSqr();
+   void     Changed();
+   Double_t GetWeight();
    
-   Double_t fQInvL; //Qinv in longitudional direction
-   Bool_t   fQInvLNotCalc;//flag indicating if fQInvL is calculated for current pair
-   void     CalculateQInvL();
+ protected:
 
    Double_t fWeight;//Value of the weight
    Bool_t   fWeightNotCalc;//flag indicating if fWeight is calculated for current pair
    
-   Double_t fPxSum;// Sum of Px momenta
-   Double_t fPySum;// Sum of Py momenta
-   Double_t fPzSum;// Sum of Pz momenta
-   Double_t fESum;// Sum of energies
-   Bool_t   fSumsNotCalc;//flag indicating if fPxSum,fPxSum,fPxSum and fESum is calculated for current pair
-   void     CalculateSums();
-   
-   Double_t fPxDiff;// Difference of Px momenta
-   Double_t fPyDiff;// Difference of Px momenta
-   Double_t fPzDiff;// Difference of Px momenta
-   Double_t fEDiff;// Difference of Px momenta
-   Bool_t   fDiffsNotCalc;//flag indicating if fPxDiff,fPxDiff,fPxDiff and fEDiff is calculated for current pair
-   void     CalculateDiffs();
-   
-   Double_t fGammaCMSLC;//gamma of boost in CMSLC
-   Bool_t   fGammaCMSLCNotCalc;//flag indicating if fGammaCMSLC is calculated for current pair
-   /***************************************************/
-   void CalculateBase();
-   Bool_t fChanged;//flag indicating if object has been changed
-   
-   
  private:
-  ClassDef(AliHBTPair,1)
+  ClassDef(AliHBTPair,2)
 };
-/****************************************************************/
-inline
-void AliHBTPair::SetParticles(AliHBTParticle* p1,AliHBTParticle* p2)
-{
- //sets the particle to the pair
- fPart1 = p1;
- fPart2 = p2;
- if (fSwapedPair) //if we have Swaped (so we are not)
-   fSwapedPair->SetParticles(p2,p1); //set particles for him too
- Changed();
- //and do nothing until will be asked for
-} 
-/****************************************************************/
 
 inline
 void AliHBTPair::Changed()
 {
  // Resel all calculations (flags)
- fChanged           = kTRUE;
- fSumsNotCalc       = kTRUE;
- fDiffsNotCalc      = kTRUE;
- fMassSqrNotCalc    = kTRUE;
- fInvMassNotCalc    = kTRUE;
- fQInvNotCalc       = kTRUE;
- fMtNotCalc         = kTRUE;
- fQSideCMSLCNotCalc = kTRUE;
- fQOutCMSLCNotCalc  = kTRUE;
- fQLongCMSLCNotCalc = kTRUE;
- fKtNotCalc         = kTRUE;
- fKStarNotCalc      = kTRUE;
- fQInvLNotCalc      = kTRUE;
- fGammaCMSLCNotCalc = kTRUE;
- fWeightNotCalc = kTRUE;
-}
-/****************************************************************/
-inline 
-void AliHBTPair::CalculateInvMassSqr()
- {
-  //calculates square of qinv
-  if (fMassSqrNotCalc)
-   {
-     CalculateSums();
-     Double_t fPart12s= (fPxSum*fPxSum) + (fPySum*fPySum) + (fPzSum*fPzSum);
  
-     fInvMassSqr=fESum*fESum-fPart12s;
-
-     fMassSqrNotCalc = kFALSE;
-   }
- }
-/****************************************************************/
-inline 
-void AliHBTPair::CalculateQInvL()
- {
- //Calculates square root of Qinv
-  if (fQInvLNotCalc)
-  {
-   CalculateDiffs();
-   fQInvL = fEDiff*fEDiff - ( fPxDiff*fPxDiff + fPyDiff*fPyDiff + fPzDiff*fPzDiff );
-   fQInvLNotCalc = kFALSE;
-  }
- }
-/****************************************************************/ 
-inline 
-void AliHBTPair::CalculateSums()
- {
-   //calculates momenta and energy sums
-   if(fSumsNotCalc)
-    {
-     fPxSum = fPart1->Px()+fPart2->Px();
-     fPySum = fPart1->Py()+fPart2->Py();
-     fPzSum = fPart1->Pz()+fPart2->Pz();
-     fESum  = fPart1->Energy() + fPart2->Energy();
-     fSumsNotCalc = kFALSE;
-    }
- }
-/****************************************************************/
-inline 
-void AliHBTPair::CalculateDiffs()
- {
-   //calculates momenta and energy differences 
-   if(fDiffsNotCalc)
-    {
-     fPxDiff = fPart1->Px()-fPart2->Px();
-     fPyDiff = fPart1->Py()-fPart2->Py();
-     fPzDiff = fPart1->Pz()-fPart2->Pz();
-     fEDiff  = fPart1->Energy() - fPart2->Energy();
-     fDiffsNotCalc = kFALSE;
-    }
- }
-
-/****************************************************************/
-inline 
-Double_t AliHBTPair::GetDeltaP() //return difference of momenta
-{
- //returns difference of momenta
- CalculateDiffs();
- return TMath::Sqrt(fPxDiff*fPxDiff + fPyDiff*fPyDiff + fPzDiff*fPzDiff);
+ AliAODPair::Changed();
+ fWeightNotCalc = kTRUE;
 }
-/****************************************************************/
-inline 
-Double_t AliHBTPair::GetDeltaPx()
- {
-   //returns difference of Pz
-   CalculateDiffs();
-   return fPxDiff;
- }
-/****************************************************************/
-inline 
-Double_t AliHBTPair::GetDeltaPy()
- {
-   //returns difference of Py
-   CalculateDiffs();
-   return fPyDiff;
- }
-
-/****************************************************************/
-inline 
-Double_t AliHBTPair::GetDeltaPz()
- {
-   //returns difference of Pz
-   CalculateDiffs();
-   return fPzDiff;
- }
-
-
 #endif