#ifndef ALIHBTFUNCTION_H
#define ALIHBTFUNCTION_H
-
+
/* Id: $ */
///////////////////////////////////////////////////////
// Abstract Base Calss for all the function classes //
// //
// Piotr.Skowronski@cern.ch //
-// http://alisoft.cern.ch/people/skowron/analyzer //
+// http://aliweb.cern.ch/people/skowron/analyzer //
// //
///////////////////////////////////////////////////////
virtual TH1* GetDenominator() const = 0;
virtual TH1* GetResult() = 0;
- virtual void WriteFunction();
+ virtual Int_t WriteFunction();
virtual void InitFunction();
TH1* GetRatio(Double_t normfactor = 1.0);
void Rename(const Char_t * name, const Char_t * title); //renames and retitle the function and histograms
void SetPairCut(AliAODPairCut* cut);
+ void UseAbsoluteValues(Bool_t flag){fAbs = flag;}
virtual AliHBTPair* CheckPair(AliHBTPair* pair);
void SetWriteNumAndDen(Bool_t flag = kFALSE){fWriteNumAndDen = flag;}
virtual void BuildHistos() = 0;//builds default histograms
AliAODPairCut* fPairCut; //pair cut
Bool_t fWriteNumAndDen; //flag indicating whether numerator and denominator should be writted together with a result
+ Bool_t fAbs;//flag indicating if absolute values of qout, qside and qlong should be histogrammed
+
ClassDef(AliHBTFunction,3)
};
/******************************************************************/
inline AliHBTPair* AliHBTFunction::CheckPair(AliHBTPair* pair)
{
//check if pair and both particles meets the cut criteria
- if(fPairCut->Pass(pair)) return 0x0; //if the pair is BAD
+ if(fPairCut->Rejected(pair)) return 0x0; //if the pair is BAD
-// It is notallowed to change the order here beacause analysis enforce the order
+// It is not allowed to change the order here beacause analysis enforce the order
// {//it is BAD
// pair = pair->GetSwappedPair();
// if(pair)
-// if(fPairCut->Pass(pair)) //so try reverse combination
+// if(fPairCut->Rejected(pair)) //so try reverse combination
// {
// return 0x0;//it is BAD as well - so return
// }
// one pair to fill function //
// //
// Piotr.Skowronski@cern.ch //
-// http://alisoft.cern.ch/people/skowron/analyzer //
+// http://aliweb.cern.ch/people/skowron/analyzer //
// //
///////////////////////////////////////////////////////
virtual void ProcessDiffEventParticles(AliHBTPair* pair) = 0;
virtual void Init() = 0;
- virtual void Write() = 0;
+ virtual Int_t Write(const char* /*x1*/ = 0,Int_t /*x2*/ = 0, Int_t /*x3*/ = 0) = 0;
virtual const char* Name() = 0;
ClassDef(AliHBTOnePairFctn,2)
// Lednicky's algorithm uses that as well //
// //
// Piotr.Skowronski@cern.ch //
-// http://alisoft.cern.ch/people/skowron/analyzer //
+// http://aliweb.cern.ch/people/skowron/analyzer //
// //
///////////////////////////////////////////////////////
ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair) = 0;
virtual void Init() = 0;
- virtual void Write() = 0;
+ virtual Int_t Write(const char* /*x1*/ = 0,Int_t /*x2*/ = 0, Int_t /*x3*/ = 0) = 0;
virtual const char* Name() = 0;
ClassDef(AliHBTTwoPairFctn,2)
// Base Calss for 1-dimensinal Functions //
// //
// Piotr.Skowronski@cern.ch //
-// http://alisoft.cern.ch/people/skowron/analyzer //
+// http://aliweb.cern.ch/people/skowron/analyzer //
// //
///////////////////////////////////////////////////////
// Base Calss for 2-dimensinal Functions //
// //
// Piotr.Skowronski@cern.ch //
-// http://alisoft.cern.ch/people/skowron/analyzer //
+// http://aliweb.cern.ch/people/skowron/analyzer //
// //
///////////////////////////////////////////////////////
// one pair to fill function //
// //
// Piotr.Skowronski@cern.ch //
-// http://alisoft.cern.ch/people/skowron/analyzer //
+// http://aliweb.cern.ch/people/skowron/analyzer //
// //
///////////////////////////////////////////////////////
// one pair to fill function //
// //
// Piotr.Skowronski@cern.ch //
-// http://alisoft.cern.ch/people/skowron/analyzer //
+// http://aliweb.cern.ch/people/skowron/analyzer //
// //
///////////////////////////////////////////////////////
void ProcessSameEventParticles(AliHBTPair* pair);
void ProcessDiffEventParticles(AliHBTPair* pair);
- void Write(){WriteFunction();}
+ Int_t Write(const char* /*x1*/ = 0,Int_t /*x2*/ = 0, Int_t /*x3*/ = 0){return WriteFunction();}
+ Int_t Write(const char* x1 = "",Int_t x2 = 0, Int_t x3 = 0) const {return TObject::Write(x1,x2,x3);}
void Init(){InitFunction();}
const char* Name(){return GetName();}
// one pair to fill function //
// //
// Piotr.Skowronski@cern.ch //
-// http://alisoft.cern.ch/people/skowron/analyzer //
+// http://aliweb.cern.ch/people/skowron/analyzer //
// //
///////////////////////////////////////////////////////
void ProcessSameEventParticles(AliHBTPair* pair);
void ProcessDiffEventParticles(AliHBTPair* pair);
- void Write(){WriteFunction();}
+ Int_t Write(const char* /*x1*/ = 0,Int_t /*x2*/ = 0, Int_t /*x3*/ = 0){return WriteFunction();}
+ Int_t Write(const char* x1 = "",Int_t x2 = 0, Int_t x3 = 0) const {return TObject::Write(x1,x2,x3);}
void Init(){InitFunction();}
const char* Name(){return GetName();}
protected:
// one pair to fill function //
// //
// Piotr.Skowronski@cern.ch //
-// http://alisoft.cern.ch/people/skowron/analyzer //
+// http://aliweb.cern.ch/people/skowron/analyzer //
// //
///////////////////////////////////////////////////////
void ProcessSameEventParticles(AliHBTPair* pair);
void ProcessDiffEventParticles(AliHBTPair* pair);
- void Write(){WriteFunction();}
+ Int_t Write(const char* /*x1*/ = 0,Int_t /*x2*/ = 0, Int_t /*x3*/ = 0){return WriteFunction();}
+ Int_t Write(const char* x1 = "",Int_t x2 = 0, Int_t x3 = 0) const {return TObject::Write(x1,x2,x3);}
void Init(){InitFunction();}
const char* Name(){return GetName();}
protected:
// to fill function //
// //
// Piotr.Skowronski@cern.ch //
-// http://alisoft.cern.ch/people/skowron/analyzer //
+// http://aliweb.cern.ch/people/skowron/analyzer //
// //
///////////////////////////////////////////////////////
void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
- void Write(){WriteFunction();}
+ Int_t Write(const char* /*x1*/ = 0,Int_t /*x2*/ = 0, Int_t /*x3*/ = 0){return WriteFunction();}
+ Int_t Write(const char* x1 = "",Int_t x2 = 0, Int_t x3 = 0) const {return TObject::Write(x1,x2,x3);}
void Init(){InitFunction();}
const char* Name(){return GetName();}
// to fill function //
// //
// Piotr.Skowronski@cern.ch //
-// http://alisoft.cern.ch/people/skowron/analyzer //
+// http://aliweb.cern.ch/people/skowron/analyzer //
// //
///////////////////////////////////////////////////////
void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
- void Write(){WriteFunction();}
+ Int_t Write(const char* /*x1*/ = 0,Int_t /*x2*/ = 0, Int_t /*x3*/ = 0){return WriteFunction();}
+ Int_t Write(const char* x1 = "",Int_t x2 = 0, Int_t x3 = 0) const {return TObject::Write(x1,x2,x3);}
void Init(){InitFunction();}
const char* Name(){return GetName();}
// to fill function //
// //
// Piotr.Skowronski@cern.ch //
-// http://alisoft.cern.ch/people/skowron/analyzer //
+// http://aliweb.cern.ch/people/skowron/analyzer //
// //
///////////////////////////////////////////////////////
void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
- void Write(){WriteFunction();}
+ Int_t Write(const char* /*x1*/ = 0,Int_t /*x2*/ = 0, Int_t /*x3*/ = 0){return WriteFunction();}
+ Int_t Write(const char* x1 = "",Int_t x2 = 0, Int_t x3 = 0) const {return TObject::Write(x1,x2,x3);}
void Init(){InitFunction();}
const char* Name(){return GetName();}