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
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;
}
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);
}
/******************************************************************/
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);
+ }
+
+}
+
/******************************************************************/
/******************************************************************/
/******************************************************************/
}
+/******************************************************************/
+/******************************************************************/
+/******************************************************************/
+ClassImp(AliHBTTwoPairFctn3D)
{
public:
AliHBTFunction();
+ AliHBTFunction(const char* name,const char* title);
virtual ~AliHBTFunction();
virtual TH1* GetNumerator() =0;
/******************************************************************/
/******************************************************************/
+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)
+};
/******************************************************************/
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;}
/******************************************************************/
/******************************************************************/
/******************************************************************/
+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)
+};
/******************************************************************/
/******************************************************************/
CalculateQInvL();
Q = TMath::Sqrt( Q*Q - fQInvL);
- fKStar = Q/2;
+ fKStar = Q/2.;
fKStarNotCalc = kFALSE;
}
return fKStar;
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();
}
/************************************************************************/
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
inline
void AliHBTPair::CalculateQInvL()
{
+ //Calculates square root of Qinv
if (fQInvLNotCalc)
{
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
// 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;
#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+;
#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+;
AliHBTReader.cxx AliHBTReaderTPC.cxx\
AliHBTQResolutionFctns.cxx AliHBTReaderPPprod.cxx\
AliHBTReaderITSv1.cxx AliHBTReaderITSv2.cxx\
- AliHBTReaderKineTree.cxx
+ AliHBTReaderKineTree.cxx\
+ AliTwoTrackEff.cxx
# Fortran sources
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)