ROOT logo
AliRoot » PWGCF » FEMTOSCOPY » ALIFEMTO » AliFemtoSimpleAnalysis

class AliFemtoSimpleAnalysis: public AliFemtoAnalysis


AliFemtoSimpleAnalysis - the most basic analysis there is. All other
inherit from this one. Provides basic functionality for the analysis.
To properly set up the analysis the following steps should be taken:

- create particle cuts and add them via SetFirstParticleCut and
SetSecondParticleCut. If one analyzes identical particle
correlations, the first particle cut must be also the second
particle cut.

- create pair cuts and add them via SetPairCut

- create one or many correlation functions and add them via
AddCorrFctn method.

- specify how many events are to be strored in the mixing buffer for
background construction

Then, when the analysis is run, for each event, the EventBegin is
called before any processing is done, then the ProcessEvent is called
which takes care of creating real and mixed pairs and sending them
 to all the registered correlation functions. At the end of each event,
after all pairs are processed, EventEnd is called. After the whole
analysis finishes (there is no more events to process) Finish() is
called.


Function Members (Methods)

public:
AliFemtoSimpleAnalysis()
AliFemtoSimpleAnalysis(const AliFemtoSimpleAnalysis& OriginalAnalysis)
virtual~AliFemtoSimpleAnalysis()
voidAddCorrFctn(AliFemtoCorrFctn* cf)
boolAnalyzeIdenticalParticles() const
virtual AliFemtoCorrFctn*CorrFctn(int n)
AliFemtoCorrFctnCollection*CorrFctnCollection()
AliFemtoPicoEvent*CurrentPicoEvent()
virtual voidEventBegin(const AliFemtoEvent* TheEventToBegin)
virtual AliFemtoEventCut*EventCut()
virtual voidEventEnd(const AliFemtoEvent* TheEventToWrapUp)
virtual voidFinish()
virtual AliFemtoParticleCut*FirstParticleCut()
intGetNeventsProcessed() const
virtual TList*GetOutputList()
virtual TList*ListSettings()
list<AliFemtoPicoEvent*,allocator<AliFemtoPicoEvent*> >*MixingBuffer()
boolMixingBufferFull()
unsigned intNumEventsToMix() const
AliFemtoSimpleAnalysis&operator=(const AliFemtoSimpleAnalysis& aAna)
virtual AliFemtoPairCut*PairCut()
virtual voidProcessEvent(const AliFemtoEvent* EventToProcess)
virtual AliFemtoStringReport()
virtual AliFemtoParticleCut*SecondParticleCut()
voidSetEventCut(AliFemtoEventCut* x)
voidSetFirstParticleCut(AliFemtoParticleCut* x)
voidSetMinSizePartCollection(unsigned int minSize)
voidSetNumEventsToMix(const unsigned int& nmix)
voidSetPairCut(AliFemtoPairCut* x)
voidSetSecondParticleCut(AliFemtoParticleCut* x)
voidSetV0SharedDaughterCut(Bool_t aPerform)
voidSetVerboseMode(Bool_t aVerbose)
boolV0SharedDaughterCut()
protected:
voidAddEventProcessed()
voidMakePairs(const char* type, AliFemtoParticleCollection* ParticlesPassingCut1, AliFemtoParticleCollection* ParticlesPssingCut2 = 0)

Data Members

protected:
AliFemtoCorrFctnCollection*fCorrFctnCollectioncorrelation functions of this analysis
AliFemtoEventCut*fEventCutcut to select events
AliFemtoParticleCut*fFirstParticleCutselect particles of type #1
unsigned intfMinSizePartCollectionDon't use event if it has fewer than this many particles passing ParticleCuts default 0
list<AliFemtoPicoEvent*,allocator<AliFemtoPicoEvent*> >*fMixingBuffermixing buffer used in this simplest analysis
unsigned intfNeventsProcessedHow many events processed so far
unsigned intfNumEventsToMixHow many "previous" events get mixed with this one, to make background
AliFemtoPairCut*fPairCutcut applied to pairs
Bool_tfPerformSharedDaughterCut
AliFemtoPicoEvent*fPicoEvent! The current event, in the small (pico) form
AliFemtoPicoEventCollectionVectorHideAway*fPicoEventCollectionVectorHideAway! Mixing Buffer used for Analyses which wrap this one
AliFemtoParticleCut*fSecondParticleCutselect particles of type #2
Bool_tfVerbose

Class Charts

Inheritance Chart:
AliFemtoAnalysis
AliFemtoSimpleAnalysis
AliFemtoAnalysisAzimuthal
AliFemtoAnalysisAzimuthalPbPb
AliFemtoAnalysisReactionPlane
AliFemtoLikeSignAnalysis
AliFemtoVertexAnalysis
AliFemtoVertexMultAnalysis

Function documentation

AliFemtoSimpleAnalysis()
 Default constructor
  mControlSwitch     = 0;
AliFemtoSimpleAnalysis(const AliFemtoSimpleAnalysis& OriginalAnalysis)
 Copy constructor
AliFemtoSimpleAnalysis();
~AliFemtoSimpleAnalysis()
 destructor
AliFemtoSimpleAnalysis& operator=(const AliFemtoSimpleAnalysis& aAna)
 Assignment operator
AliFemtoCorrFctn* CorrFctn(int n)
 return pointer to n-th correlation function
AliFemtoString Report()
 Create a simple report from the analysis execution
void ProcessEvent(const AliFemtoEvent* EventToProcess)
 Add event to processed events
void MakePairs(const char* type, AliFemtoParticleCollection* ParticlesPassingCut1, AliFemtoParticleCollection* ParticlesPssingCut2 = 0)
 Build pairs, check pair cuts, and call CFs' AddRealPair() or
 AddMixedPair() methods. If no second particle collection is
 specfied, make pairs within first particle collection.
void EventBegin(const AliFemtoEvent* TheEventToBegin)
 Perform initialization operations at the beginning of the event processing
cout << " AliFemtoSimpleAnalysis::EventBegin(const AliFemtoEvent* ev) " << endl;
void EventEnd(const AliFemtoEvent* TheEventToWrapUp)
 Fiinsh operations at the end of event processing
void Finish()
 Perform finishing operations after all events are processed
void AddEventProcessed()
 Increase count of processed events
TList* ListSettings()
 Collect settings list
TList* GetOutputList()
 Collect the list of output objects
 to be written
AliFemtoPairCut* PairCut()
 Get's
{return fPairCut;}
AliFemtoEventCut* EventCut()
{return fEventCut;}
AliFemtoParticleCut* FirstParticleCut()
AliFemtoParticleCut* SecondParticleCut()
AliFemtoCorrFctnCollection* CorrFctnCollection()
unsigned int NumEventsToMix() const
{return fNumEventsToMix;}
AliFemtoPicoEvent* CurrentPicoEvent()
{return fPicoEvent;}
AliFemtoPicoEventCollection* MixingBuffer()
{return fMixingBuffer;}
bool AnalyzeIdenticalParticles() const
bool V0SharedDaughterCut()
void SetPairCut(AliFemtoPairCut* x)
 Set's
{ fPairCut = x; x->SetAnalysis((AliFemtoAnalysis*)this);}
void AddCorrFctn(AliFemtoCorrFctn* cf)
{fCorrFctnCollection->push_back(cf); cf->SetAnalysis((AliFemtoAnalysis*)this);}
void SetEventCut(AliFemtoEventCut* x)
{fEventCut = x; x->SetAnalysis((AliFemtoAnalysis*)this);}
void SetFirstParticleCut(AliFemtoParticleCut* x)
{fFirstParticleCut = x; x->SetAnalysis((AliFemtoAnalysis*)this);}
void SetSecondParticleCut(AliFemtoParticleCut* x)
{fSecondParticleCut = x; x->SetAnalysis((AliFemtoAnalysis*)this);}
void SetNumEventsToMix(const unsigned int& nmix)
{ fNumEventsToMix = nmix;}
bool MixingBufferFull()
{return (fMixingBuffer->size() >= fNumEventsToMix);}
int GetNeventsProcessed() const
void SetMinSizePartCollection(unsigned int minSize)
void SetVerboseMode(Bool_t aVerbose)
{fVerbose = aVerbose;}
void SetV0SharedDaughterCut(Bool_t aPerform)