AliRoot Core  3dc7879 (3dc7879)
AliMultSelectionBase.cxx
Go to the documentation of this file.
1 /**********************************************
2  *
3  * Class designed to provide a basic published
4  * interface for AliRoot classes to be able
5  * to reference centrality information
6  *
7  * For completeness, the actual methods that
8  * will typically be invoked at runtime are the
9  * ones in the class:
10  *
11  * OADB/COMMON/MULTIPLICITY/AliMultSelection.cxx
12  *
13  * First implementation includes:
14  * --- GetMultiplicityPercentile
15  * --- GetEvSelCode
16  *
17  * Bugs? Problems? Suggestions? Please contact:
18  * --- david.dobrigkeit.chinellato@cern.ch
19  *
20  **********************************************/
21 
22 #include <iostream>
23 #include <TROOT.h>
24 #include "AliVEvent.h"
25 #include "AliCentrality.h"
26 #include "AliMultSelectionBase.h"
27 using namespace std;
28 
29 ClassImp(AliMultSelectionBase);
30 //________________________________________________________________
32  TNamed()
33 {
34  // Constructor
35 }
36 //________________________________________________________________
37 AliMultSelectionBase::AliMultSelectionBase(const char * name, const char * title):
38 TNamed(name,title)
39 {
40  // Constructor
41 }
42 //________________________________________________________________
44  // destructor: clean stuff up
45  //Nothing to destroy
46 }
47 
48 //________________________________________________________________
50 
51  Float_t lReturnValue = -1000;
52 
53  //Step 1: Acquire run number
54  Int_t lRunNumber = lEvent->GetRunNumber();
55 
56  //Use AliCentrality if Run 1
57  if( lRunNumber < 200000){
58  AliCentrality* centrality;
59  centrality = lEvent->GetCentrality();
60  if ( centrality ) {
61  lReturnValue = centrality->GetCentralityPercentile( lName.Data() );
62  }
63  }
64 
65  //Use AliMultSelectionBase virtual function if Run 1
66  if( lRunNumber > 200000){
67  AliMultSelectionBase *MultSelection = (AliMultSelectionBase*) lEvent -> FindListObject("MultSelection");
68  if(MultSelection){
69  lReturnValue = MultSelection->GetMultiplicityPercentile( lName.Data() );
70  }
71  }
72  return lReturnValue;
73 }
virtual AliCentrality * GetCentrality()=0
virtual Float_t GetMultiplicityPercentile(TString lName, Bool_t lEmbedEvSel=kFALSE)
virtual Int_t GetRunNumber() const =0
static Float_t GetMultiplicityPercentileWithFallback(AliVEvent *lEvent, TString lName)
Float_t GetCentralityPercentile(const char *method) const
get centrality result