Bug correction: files closed to early
authorskowron <skowron@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 10 Jan 2002 18:37:33 +0000 (18:37 +0000)
committerskowron <skowron@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 10 Jan 2002 18:37:33 +0000 (18:37 +0000)
HBTAN/.rootrc
HBTAN/AliHBTAnalysis.cxx
HBTAN/AliHBTFunction.cxx
HBTAN/AliHBTFunction.h
HBTAN/AliHBTPair.cxx
HBTAN/AliHBTPair.h
HBTAN/AliHBTReaderITSv2.cxx
HBTAN/HBTAnalysisLinkDef.h
HBTAN/Makefile
HBTAN/libHBTAN.pkg

index 413ae4c2a459dabb8a2a3f0e05496dbd9e77387f..c85cc3332c87f54e55e7136b2554590ff4b0e5e3 100644 (file)
@@ -1,7 +1,7 @@
 
 Unix.*.Root.MacroPath:      .:$(ALICE_ROOT)/macros:$(ALICE_ROOT)
 
-Root.Html.OutputDir: $(ALICE_ROOT)/html/roothtml/HBTANALYSIS
+Root.Html.OutputDir: $(ALICE_ROOT)/html/roothtml/HBTAN
 Root.Html.SourceDir: ./
 Root.Html.Author:  Piotr Krzysztof Skowronski
 Root.Html.Root:  http://root.cern.ch/root/html
index eba0546685c5e55ef3b235b675e341db7edeb844..56e4bc76c903321803ebcd2529a3708272abc989 100644 (file)
@@ -113,12 +113,22 @@ void AliHBTAnalysis::Process(Option_t* option)
 
  if(oT)
   {
+    if (fReader->GetNumberOfTrackEvents() <1)
+     {
+       Error("Process","There is no data to analyze.");
+       return;
+     }
     ProcessTracks();
     return;
   }
  
  if(oP)
   {
+    if (fReader->GetNumberOfPartEvents() <1)
+     {
+       Error("Process","There is no data to analyze.");
+       return;
+     }
     ProcessParticles();
     return;
   }
index 1107ab561749672291f5b70d2e5f66c862b0314c..04e2806a84ca24d59d09db0fbd87c43948dcbc6f 100644 (file)
@@ -32,8 +32,13 @@ ClassImp( AliHBTFunction )
 
 AliHBTFunction::AliHBTFunction()
 {
- fPairCut = new AliHBTEmptyPairCut(); //dummy cut
+  fPairCut = new AliHBTEmptyPairCut(); //dummy cut
+}
+/******************************************************************/
+AliHBTFunction::AliHBTFunction(const char* name,const char* title)
+{
+  fPairCut = new AliHBTEmptyPairCut(); //dummy cut
+  Rename(name,title);
 }
 /******************************************************************/
 
@@ -350,15 +355,71 @@ AliHBTOnePairFctn3D(Int_t nXbins, Double_t maxXval, Double_t minXval,
    fDenominator->Sumw2();
 
 }        
-
+/******************************************************************/
 
 AliHBTOnePairFctn3D::~AliHBTOnePairFctn3D()
 {
   delete fNumerator;
   delete fDenominator;
 }
+/******************************************************************/
 
 
+/******************************************************************/
+/******************************************************************/
+/******************************************************************/
+ClassImp( AliHBTTwoPairFctn1D)
+
+AliHBTTwoPairFctn1D::
+AliHBTTwoPairFctn1D(Int_t nbins, Double_t maxval, Double_t minval)
+ {
+   TString numstr = fName + " Numerator";  //title and name of the 
+                                           //numerator histogram
+   TString denstr = fName + " Denominator";//title and name of the 
+                                           //denominator histogram
+         
+   fNumerator   = new TH1D(numstr.Data(),numstr.Data(),
+                           nbins,minval,maxval);
+              
+   fDenominator = new TH1D(denstr.Data(),denstr.Data(),
+                           nbins,minval,maxval);
+   
+   fNumerator->Sumw2();
+   fDenominator->Sumw2();
+ }
+
+/******************************************************************/
+AliHBTTwoPairFctn1D::~AliHBTTwoPairFctn1D()
+{
+  delete fNumerator;
+  delete fDenominator;
+}
+void AliHBTTwoPairFctn1D::
+ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
+{
+  partpair  = CheckPair(partpair);
+  trackpair = CheckPair(trackpair);
+  if( partpair && trackpair) 
+   { 
+     Double_t x = GetValue(trackpair,partpair);
+     fNumerator->Fill(x);
+   }
+}
+/******************************************************************/
+
+void AliHBTTwoPairFctn1D::
+ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
+{
+  partpair  = CheckPair(partpair);
+  trackpair = CheckPair(trackpair);
+  if( partpair && trackpair)
+   { 
+     Double_t x = GetValue(trackpair,partpair);
+     fDenominator->Fill(x);
+   }
+
+}
+
 /******************************************************************/
 /******************************************************************/
 /******************************************************************/
@@ -419,3 +480,7 @@ ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
 
 }
 
+/******************************************************************/
+/******************************************************************/
+/******************************************************************/
+ClassImp(AliHBTTwoPairFctn3D)
index 9fc75fd8231314a5a9faeca906c13278abe84836..44140565d455c74fd60c29fced4f0aa3847ba6e0 100644 (file)
@@ -18,6 +18,7 @@ class AliHBTFunction: public TNamed
 {
   public:
     AliHBTFunction();
+    AliHBTFunction(const char* name,const char* title);
     virtual ~AliHBTFunction();
     
     virtual TH1* GetNumerator() =0;
@@ -179,6 +180,29 @@ class AliHBTOnePairFctn3D: public AliHBTOnePairFctn
 /******************************************************************/
 /******************************************************************/
 
+class AliHBTTwoPairFctn1D: public AliHBTTwoPairFctn
+{
+ public:
+  AliHBTTwoPairFctn1D(Int_t nbins = 200, Double_t maxval = 1.5, Double_t minval = 0.0);
+  AliHBTTwoPairFctn1D(const char*,const char*,
+                      Int_t nbins = 200, Double_t maxval = 1.5, Double_t minval = 0.0);
+  ~AliHBTTwoPairFctn1D();
+  
+  TH1* GetNumerator(){return fNumerator;}
+  TH1* GetDenominator(){return fDenominator;}
+  
+  void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
+  void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
+ protected:
+  virtual Double_t GetValue(AliHBTPair* trackpair, AliHBTPair* partpair) = 0;
+
+  TH1D* fNumerator;
+  TH1D* fDenominator;
+  
+ public:
+  ClassDef(AliHBTTwoPairFctn1D,1)
+};
 
 
 /******************************************************************/
@@ -189,7 +213,7 @@ class AliHBTTwoPairFctn2D: public AliHBTTwoPairFctn
  public:
   AliHBTTwoPairFctn2D(Int_t nXbins = 200, Double_t maxXval = 1.5, Double_t minXval = 0.0, 
                        Int_t nYbins = 200, Double_t maxYval = .15, Double_t minYval =-0.15);
-  ~AliHBTTwoPairFctn2D();
+  virtual ~AliHBTTwoPairFctn2D();
   
   TH1* GetNumerator(){return fNumerator;}
   TH1* GetDenominator(){return fDenominator;}
@@ -212,6 +236,30 @@ class AliHBTTwoPairFctn2D: public AliHBTTwoPairFctn
 /******************************************************************/
 /******************************************************************/
 /******************************************************************/
+class AliHBTTwoPairFctn3D: public AliHBTTwoPairFctn
+{
+ public:
+  AliHBTTwoPairFctn3D(Int_t nXbins = 200, Double_t maxXval = 1.5, Double_t minXval = 0.0, 
+                       Int_t nYbins = 200, Double_t maxYval = .15, Double_t minYval =-0.15, 
+                       Int_t nZbins = 200, Double_t maxZval = .15, Double_t minZval =-0.15){}
+  virtual ~AliHBTTwoPairFctn3D(){}
+  
+  TH1* GetNumerator(){return fNumerator;}
+  TH1* GetDenominator(){return fDenominator;}
+  
+  void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair){}
+  void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair){}
+  
+ protected:
+  virtual void GetValues(AliHBTPair*,AliHBTPair*, Double_t&, Double_t&,Double_t&) = 0;
+
+  TH3D* fNumerator;
+  TH3D* fDenominator;
+  
+ public:
+  ClassDef(AliHBTTwoPairFctn3D,1)
+};
 
 /******************************************************************/
 /******************************************************************/
index 732f004692be5947b9942a710195f941db86b561..6d05d09fe67e19da5ef0aec38711c0204dc526b2 100644 (file)
@@ -98,7 +98,7 @@ Double_t AliHBTPair::GetKStar()
     CalculateQInvL();
     
     Q = TMath::Sqrt( Q*Q - fQInvL);
-    fKStar = Q/2;
+    fKStar = Q/2.;
     fKStarNotCalc = kFALSE;
    }
   return fKStar;
@@ -120,19 +120,19 @@ Double_t AliHBTPair::GetQInv()
 Double_t  AliHBTPair::GetQSide()
 {
  //returns Q side
-  return -1;
+  return fPart1->Py() - fPart1->Py();
 }
 
 Double_t  AliHBTPair::GetQLong()
 {
  //returns Q long
-  return -1;
+  return fPart1->Pz() - fPart1->Pz();
 }
 
 Double_t  AliHBTPair::GetQOut()
 {
  //returns Q out
-  return -1;
+  return fPart1->Px() - fPart1->Px();
 }
 /************************************************************************/
 
index 9195f2fcadcf47a6c46e90e24417db529522914b..10bedc6d7c00794eeeeb1796836ecdf2106d85c7 100644 (file)
@@ -37,6 +37,10 @@ class AliHBTPair: public TObject
    Double_t GetQLong(); //returns Q long 
    Double_t GetQOut(); //returns Q out
    
+   Double_t GetDeltaP(); //return difference of momenta
+   Double_t GetDeltaPx();
+   Double_t GetDeltaPy();
+   Double_t GetDeltaPz();
    
  protected:
    AliHBTParticle* fPart1;  //pointer to first particle
@@ -157,6 +161,7 @@ void AliHBTPair::CalculateInvMassSqr()
 inline 
 void AliHBTPair::CalculateQInvL()
  {
+ //Calculates square root of Qinv
   if (fQInvLNotCalc)
   {
    CalculateDiffs();
@@ -191,4 +196,35 @@ void AliHBTPair::CalculateDiffs()
     }
  }
 
+/****************************************************************/
+inline 
+Double_t AliHBTPair::GetDeltaP() //return difference of momenta
+{
+ CalculateDiffs();
+ return TMath::Sqrt(fPxDiff*fPxDiff + fPyDiff*fPyDiff + fPzDiff*fPzDiff);
+}
+/****************************************************************/
+inline 
+Double_t AliHBTPair::GetDeltaPx()
+ {
+   CalculateDiffs();
+   return fPxDiff;
+ }
+/****************************************************************/
+inline 
+Double_t AliHBTPair::GetDeltaPy()
+ {
+   CalculateDiffs();
+   return fPyDiff;
+ }
+
+/****************************************************************/
+inline 
+Double_t AliHBTPair::GetDeltaPz()
+ {
+   CalculateDiffs();
+   return fPzDiff;
+ }
+
+
 #endif
index 7867873a5ae5acaa60063436cf5e866d0f82abf2..92687b3003af43e3da9ca4c603fbfcbf06f05834 100644 (file)
@@ -295,11 +295,11 @@ Int_t AliHBTReaderITSv2::Read(AliHBTRun* particles, AliHBTRun *tracks)
 //       delete tracker;
        
        totalNevents++;
-       CloseFiles(aTracksFile,aClustersFile,aGAliceFile);     
        cout<<"all: "<<i<<"   accepted: "<<accepted<<"   tpc faults: "<<tpcfault<<"   its faults: "<<itsfault<<endl;
      
      }//end of loop over events in current directory
-     currentdir++;
+    CloseFiles(aTracksFile,aClustersFile,aGAliceFile);     
+    currentdir++;
    }while(currentdir < Ndirs);//end of loop over directories specified in fDirs Obj Array
 
  delete iotrack;
index 856e763c473f6a6e61b41cd158f11363ceb87f85..687101a817968ff65d3591ae9af4104ef910b4a8 100644 (file)
@@ -9,12 +9,14 @@
 #pragma link C++ class AliHBTEvent+;
 #pragma link C++ class AliHBTRun+;
 #pragma link C++ class AliHBTFunction+;
+
 #pragma link C++ class AliHBTOnePairFctn+;
 #pragma link C++ class AliHBTTwoPairFctn+;
 #pragma link C++ class AliHBTOnePairFctn1D+;
 #pragma link C++ class AliHBTOnePairFctn2D+;
 #pragma link C++ class AliHBTOnePairFctn3D+;
 
+#pragma link C++ class AliHBTTwoPairFctn1D+;
 #pragma link C++ class AliHBTTwoPairFctn2D+;
 
 #pragma link C++ class AliHBTPair+;
@@ -68,6 +70,9 @@
 #pragma link C++ class AliHBTQSideResolVSQSideFctn+;
 #pragma link C++ class AliHBTQLongResolVSQLongFctn+;
 
+#pragma link C++ class AliTwoTrackEff+;
+#pragma link C++ class AliTwoTrackEff3D+;
+
 //#pragma link C++ class Xqinv+;
 //#pragma link C++ class Xqout+;
 //#pragma link C++ class Xqside+;
index 9e8cfe2a4dba03f88151a8cbac2331bc29f3ef5d..ae5a436a3c3a9253919d8a8c44ab7b8fea06ef02 100644 (file)
@@ -19,7 +19,8 @@ SRCS          = AliHBTAnalysis.cxx AliHBTFunction.cxx \
                 AliHBTReader.cxx AliHBTReaderTPC.cxx\
                 AliHBTQResolutionFctns.cxx AliHBTReaderPPprod.cxx\
                AliHBTReaderITSv1.cxx AliHBTReaderITSv2.cxx\
-               AliHBTReaderKineTree.cxx
+               AliHBTReaderKineTree.cxx\
+               AliTwoTrackEff.cxx
 
 # Fortran sources
 
index 672d081f09076a10d8bea7c2e86fc0f51ba8240c..b04f55ef818e065c31db4334fb8c31cba331b176 100644 (file)
@@ -3,7 +3,8 @@ AliHBTAnalysis.cxx    AliHBTPair.cxx         AliHBTQResolutionFctns.cxx  AliHBTR
 AliHBTCorrelFctn.cxx  AliHBTPairCut.cxx      AliHBTReader.cxx            AliHBTReaderTPC.cxx\
 AliHBTEvent.cxx       AliHBTParticle.cxx     AliHBTRun.cxx\
 AliHBTFunction.cxx    AliHBTParticleCut.cxx  \
-AliHBTReaderITSv1.cxx AliHBTReaderITSv2.cxx AliHBTReaderKineTree.cxx
+AliHBTReaderITSv1.cxx AliHBTReaderITSv2.cxx AliHBTReaderKineTree.cxx\
+AliTwoTrackEff.cxx
 
 
 HDRS:= $(SRCS:.cxx=.h)