ROOT logo
AliRoot » PWG » MUONDEP » AliAnalysisMuMuFnorm

class AliAnalysisMuMuFnorm: public TObject

Function Members (Methods)

public:
AliAnalysisMuMuFnorm(AliCounterCollection& cc, AliAnalysisMuMuFnorm::ETriggerType triggerType = AliAnalysisMuMuFnorm::kMUL, const char* ocdbpath = "raw://", Bool_t compactGraphs = kFALSE)
virtual~AliAnalysisMuMuFnorm()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
voidComputeCorrectionFactors(Int_t eventSelectionCorrected)
voidComputeEventSelectionGraph(AliAnalysisMuMuFnorm::ETriggerType tt, Int_t eventSelectionCorrected)
voidComputeFnorm()
voidComputeFnormOffline(Int_t nstep, Bool_t pileUpCorrected, Int_t eventSelectionCorrected)
voidComputeFnormScalers(Bool_t pileUpCorrected, Int_t eventSelectionCorrected)
voidComputeGraphRelDif(const char* a, const char* b) const
voidComputeNofEvents(AliAnalysisMuMuFnorm::ETriggerType triggerType, Bool_t pileUpCorrected, Int_t eventSelectionCorrected)
voidComputePileUpGraph(AliAnalysisMuMuFnorm::ETriggerType tt, Int_t eventSelectionCorrected = 0)
voidComputeResultsFromGraphs()
voidComputeTriggerFractions(AliAnalysisMuMuFnorm::ETriggerType triggerType, Bool_t physicsSelectionCorrected)
voidComputeTriggerL0B(AliAnalysisMuMuFnorm::ETriggerType tt)
voidComputeTSGraph(AliAnalysisMuMuFnorm::ETriggerType tt)
virtual voidTObject::Copy(TObject& object) const
virtual voidTObject::Delete(Option_t* option = "")MENU
AliMergeableCollection*DetachMC()
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
voidDrawWith2Scales(const char* graphName1, const char* graphName2)
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
TStringGetEventSelectionName(Int_t eventSelectionCorrected) const
voidGetFnorm(Int_t runNumber, const char* eventSelection, Double_t& value, Double_t& error) const
TGraphErrors*GetGraph(const char* name) const
virtual const char*TObject::GetIconName() const
virtual const char*TObject::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
voidGetPurity(const char* triggerClassName, Int_t runNumber, Double_t& value, Double_t& error, Int_t eventSelectionCorrected) const
AliAnalysisMuMuResult*GetResult(const char* name) const
AliAnalysisMuMuResult*GetRunIntegratedResult(const TGraphErrors& g, const char* basename = "Fnorm")
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
voidGetValueAndErrorFromGraph(TGraphErrors* graph, Int_t runNumber, Double_t& value, Double_t& error) const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
AliMergeableCollection*MC() const
voidMultiplyGraphs(const char* g1, const char* g2, const char* name = "")
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
TStringOCDBPath() const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidPrint(Option_t* opt = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidScalerFnorm(Double_t& value, Double_t& error, Double_t L0bCMUL7, Double_t purityCMUL7, Double_t purityCMUL7error, Double_t L0bCINT7, Double_t purityCINT7, Double_t purityCINT7error, Double_t pileUpFactor, Double_t pileUpFactorError)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTObject::SetUniqueID(UInt_t uid)
voidShowFnorm(const TObjArray& a) const
virtual voidShowMembers(TMemberInspector&)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
Bool_tTriggerClassnameTest(const char* triggerClassName, Int_t runNumber) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
voidWeightedMeanGraphs(const char* pattern, const char* name = "")
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
private:
AliAnalysisMuMuFnorm(const AliAnalysisMuMuFnorm& rhs)
TGraphErrors*CreateAndAddGraph(const TString& name, const TString& title, const vector<double>& vx, const vector<double>& vxerr, const vector<double>& vy, const vector<double>& vyerr) const
Double_tGetSum(const char* triggerClassName, Int_t runNumber, Int_t eventSelectionCorrected) const
TStringGetTriggerClassName(AliAnalysisMuMuFnorm::ETriggerType tt, Int_t runNumber) const
TStringGetTriggerTypeName(AliAnalysisMuMuFnorm::ETriggerType tt) const
TStringMBTriggerClassName(Int_t runNumber) const
TStringMSHTriggerClassName(Int_t runNumber) const
TStringMSLTriggerClassName(Int_t runNumber) const
TStringMULTriggerClassName(Int_t runNumber) const
AliAnalysisMuMuFnorm&operator=(const AliAnalysisMuMuFnorm& rhs)
set<int>RunNumbers() const

Data Members

public:
enum ETriggerType { kMB
kMUL
kMSL
kMSH
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
private:
AliCounterCollection&fCounterCollectioncollection of trigger counters (not owner)
Bool_tfIsCompactGraphswhether the graph produced should be compact
Bool_tfIsOwnerwhether we are the owner of the mergeable collection
AliMergeableCollection*fMergeableCollectioncollection of results, histograms, graphs (ownership is in fIsOwner)
TStringfOCDBPathOCDB to be used (raw:// by default)
AliAnalysisMuMuFnorm::ETriggerTypefReferenceTriggerTypereference trigger to get the weighting factors
AliAnalysisMuMuResult*fResultcombined result of the various computations

Class Charts

Inheritance Chart:
TObject
AliAnalysisMuMuFnorm

Function documentation

AliAnalysisMuMuFnorm(AliCounterCollection& cc, AliAnalysisMuMuFnorm::ETriggerType triggerType = AliAnalysisMuMuFnorm::kMUL, const char* ocdbpath = "raw://", Bool_t compactGraphs = kFALSE)
 ctor
~AliAnalysisMuMuFnorm()
 dtor
void ComputeFnorm()
 Compute the REF to CINT ratio(s)

 Using offline method
   - in one go CINT/REF
   - in two steps CINT/CMSL and CMSL/REF

 Using scaler method
   - bare scaler values
   - scaler values corrected for pile-up
   - scaler values corrected for pile-up and physics selection
void ComputeCorrectionFactors(Int_t eventSelectionCorrected)
 Compute individual graphs for the correction factors (PS_REF, PS_CINT,
 F_pile-up,PS_CINT/PS_REF) used in the computation of (some) Fnorm factors

void ComputeFnormOffline(Int_t nstep, Bool_t pileUpCorrected, Int_t eventSelectionCorrected)
 Compute MB to REF ratio using offline method, either in 1 or 2 steps
void ComputeFnormScalers(Bool_t pileUpCorrected, Int_t eventSelectionCorrected)
 Compute the MB to REF ratio using the scalers method (from OCDB)

 i.e. Fnorm = L0B(MB) x PS(MB) x Fpile-up / ( L0B(REF) x PS(REF) )

 where MB is the minbias trigger
 REF is the fReferenceTrigger
 and PS is the fraction of events selected by the physics selection

 The correction factor (the two PS and one Fpile-up) are
 taken from graphs computed in other methods

void ComputeGraphRelDif(const char* a, const char* b) const
 compute dispersion of b versus a

 computed differences graphs are put into the GRAPHS/ directory
 computed differences results are put into the HISTOS/ directory
void ComputePileUpGraph(AliAnalysisMuMuFnorm::ETriggerType tt, Int_t eventSelectionCorrected = 0)
 Compute the per-run graph of pile-up factor
void ComputeEventSelectionGraph(AliAnalysisMuMuFnorm::ETriggerType tt, Int_t eventSelectionCorrected)
 Compute the per-run graph of physics selection accept fraction
 for the given trigger
void ComputeResultsFromGraphs()
 Compute one single value for each graph, by weighting by the fraction
 of events in each run
 do this for certain groups of graphs
void ComputeNofEvents(AliAnalysisMuMuFnorm::ETriggerType triggerType, Bool_t pileUpCorrected, Int_t eventSelectionCorrected)
 Compute trigger fractions
void ComputeTriggerFractions(AliAnalysisMuMuFnorm::ETriggerType triggerType, Bool_t physicsSelectionCorrected)
 Compute trigger fractions
void ComputeTriggerL0B(AliAnalysisMuMuFnorm::ETriggerType tt)
 Compute trigger L0B
TGraphErrors* CreateAndAddGraph(const TString& name, const TString& title, const vector<double>& vx, const vector<double>& vxerr, const vector<double>& vy, const vector<double>& vyerr) const
 Creates a graph and adds it to our mergeable collection
AliMergeableCollection* DetachMC()
 let go the ownership of our mergeable collection
void DrawWith2Scales(const char* graphName1, const char* graphName2)
TString GetEventSelectionName(Int_t eventSelectionCorrected) const
TGraphErrors* GetGraph(const char* name) const
 shortcut method to give access to one graph
void GetPurity(const char* triggerClassName, Int_t runNumber, Double_t& value, Double_t& error, Int_t eventSelectionCorrected) const
 Get the physics selection accept fraction for a given trigger
AliAnalysisMuMuResult* GetResult(const char* name) const
 shortcut method to give access to one result
AliAnalysisMuMuResult* GetRunIntegratedResult(const TGraphErrors& g, const char* basename = "Fnorm")
 get one value +- error for this graph (weighting the run-by-run values
 by the fraction of the number of triggers in that run)
 also the rms is computed.
Double_t GetSum(const char* triggerClassName, Int_t runNumber, Int_t eventSelectionCorrected) const
TString GetTriggerClassName(AliAnalysisMuMuFnorm::ETriggerType tt, Int_t runNumber) const
 get the triggerclass to for a given trigger type and run number
TString GetTriggerTypeName(AliAnalysisMuMuFnorm::ETriggerType tt) const
 get the name of the trigger type
void GetValueAndErrorFromGraph(TGraphErrors* graph, Int_t runNumber, Double_t& value, Double_t& error) const
 get (value,error) corresponding to run=runNumber.
 Works both for compact and non-compact graphs
AliMergeableCollection* MC() const
 get our mergeable collection
TString MBTriggerClassName(Int_t runNumber) const
 FIXME : find a better way ?
TString MSHTriggerClassName(Int_t runNumber) const
 FIXME : find a better way ?
TString MSLTriggerClassName(Int_t runNumber) const
 FIXME : find a better way ?
void MultiplyGraphs(const char* g1, const char* g2, const char* name = "")
 Make a new graph = g1*g2
TString MULTriggerClassName(Int_t runNumber) const
 FIXME : find a better way ?
void Print(Option_t* opt = "") const
std::set<int> RunNumbers() const
 Extract the run numbers from our counter collection
void ScalerFnorm(Double_t& value, Double_t& error, Double_t L0bCMUL7, Double_t purityCMUL7, Double_t purityCMUL7error, Double_t L0bCINT7, Double_t purityCINT7, Double_t purityCINT7error, Double_t pileUpFactor, Double_t pileUpFactorError)
 Compute the MB to REF ratio and its associated error
void ShowFnorm(const TObjArray& a) const
 Print and plot Fnorm values
Bool_t TriggerClassnameTest(const char* triggerClassName, Int_t runNumber) const
 Check if we have counts for that trigger,run combination
WeightedMeanGraphs(const char* pattern, const char* name = "")
 Sum the graphs which name matches pattern
 Sum is made using a weighted mean (each element is weighted by the inverse
 of its error squared)
AliAnalysisMuMuFnorm(AliCounterCollection& cc, AliAnalysisMuMuFnorm::ETriggerType triggerType = AliAnalysisMuMuFnorm::kMUL, const char* ocdbpath = "raw://", Bool_t compactGraphs = kFALSE)
void ComputeTSGraph(AliAnalysisMuMuFnorm::ETriggerType tt)
void GetFnorm(Int_t runNumber, const char* eventSelection, Double_t& value, Double_t& error) const
TString OCDBPath() const
{ return fOCDBPath; }
AliAnalysisMuMuFnorm& operator=(const AliAnalysisMuMuFnorm& rhs)