#ifndef ALICOLLISIONNORMALIZATION_H
#define ALICOLLISIONNORMALIZATION_H
#include "TH2F.h"
class TH1F;
class TH1I;
class AliMCEvent;
class AliCollisionNormalization : public TObject
{
public:
enum { kNevBin0, kNevCollisions, kNevNbin };
typedef enum { kProcSD, kProcDD, kProcND, kProcUnknown, kNProcs } ProcType_t;
AliCollisionNormalization();
AliCollisionNormalization(Int_t nbinz, Float_t minz, Float_t maxz);
AliCollisionNormalization(const char * dataFile, const char * dataListName,
const char * mcFile, const char * mcListName,
const char * eventStatFile);
~AliCollisionNormalization();
void SetMC(Bool_t flag = kTRUE) { fIsMC = flag;}
void BookAllHistos();
TH1 * BookVzHisto(const char * name , const char * title, Bool_t vzOnly=kFALSE);
void FillVzMCGen(Float_t vz, Int_t ntrk, AliMCEvent * mcEvt);
void FillVzMCRec(Float_t vz, Int_t ntrk, AliMCEvent * mcEvt);
void FillVzMCTrg(Float_t vz, Int_t ntrk, AliMCEvent * mcEvt);
void FillVzData (Float_t vz, Int_t ntrk) {fHistVzData ->Fill(vz,ntrk);}
TH2F * GetVzMCGen (Int_t procType) ;
TH2F * GetVzMCRec (Int_t procType) ;
TH2F * GetVzMCTrg (Int_t procType) ;
TH2F * GetVzData () { return fHistVzData ; }
TH1F * GetStatBin0 () { return fHistStatBin0 ; }
TH1F * GetStat () { return fHistStat ; }
TH1F * GetHistProcTypes () { return fHistProcTypes ; }
Int_t GetProcessType(const AliMCEvent * mcEvt) ;
Double_t GetProcessWeight(Int_t proctype);
void SetReferencsXS(Int_t ref) { fReferenceXS = ref;}
Double_t ComputeNint();
void SetZRange(Float_t zrange) { fZRange = zrange ;}
void SetReferenceXS(Int_t ref) { fReferenceXS = ref ;}
void GetRelativeFractions(Int_t origin, Float_t& ref_SD, Float_t& ref_DD, Float_t& ref_ND, Float_t& error_SD, Float_t& error_DD, Float_t& error_ND);
void SetVerbose(Int_t lev) { fVerbose = lev ;}
void SetEnergy(Float_t en) { fEnergy = en; }
Long64_t Merge(TCollection* list);
Double_t GetInputEvents() const {return fInputEvents;}
Double_t GetPhysSelEvents() const {return fPhysSelEvents;}
Double_t GetBgEvents() const {return fBgEvents;}
Double_t GetAllEvents() const {return fAllEvents;}
Double_t GetAllEventsZRange() const {return fAllEventsZRange;}
Double_t GetAllEventsZRangeMult1() const{return fAllEventsZRangeMult1;}
Double_t GetAllEventsInBin0ZRange() const {return fAllEventsInBin0ZRange;}
Double_t GetTrigEffBin0() const {return fTrigEffBin0;}
protected:
Int_t fNbinsVz;
Float_t fMinVz ;
Float_t fMaxVz ;
Float_t fZRange;
Bool_t fIsMC;
Int_t fReferenceXS;
Int_t fVerbose;
Float_t fEnergy;
TH2F * fHistVzMCGen[kNProcs] ;
TH2F * fHistVzMCRec[kNProcs] ;
TH2F * fHistVzMCTrg[kNProcs] ;
TH2F * fHistVzData ;
TH1F * fHistProcTypes ;
TH1F * fHistStatBin0 ;
TH1F * fHistStat ;
Double_t fInputEvents;
Double_t fPhysSelEvents;
Double_t fBgEvents;
Double_t fAllEvents;
Double_t fAllEventsZRange;
Double_t fAllEventsZRangeMult1;
Double_t fAllEventsInBin0ZRange;
Double_t fTrigEffBin0;
static const char * fgkProcLabel[] ;
ClassDef(AliCollisionNormalization, 4);
private:
AliCollisionNormalization(const AliCollisionNormalization&);
AliCollisionNormalization& operator=(const AliCollisionNormalization&);
};
#endif
AliCollisionNormalization.h:1 AliCollisionNormalization.h:2 AliCollisionNormalization.h:3 AliCollisionNormalization.h:4 AliCollisionNormalization.h:5 AliCollisionNormalization.h:6 AliCollisionNormalization.h:7 AliCollisionNormalization.h:8 AliCollisionNormalization.h:9 AliCollisionNormalization.h:10 AliCollisionNormalization.h:11 AliCollisionNormalization.h:12 AliCollisionNormalization.h:13 AliCollisionNormalization.h:14 AliCollisionNormalization.h:15 AliCollisionNormalization.h:16 AliCollisionNormalization.h:17 AliCollisionNormalization.h:18 AliCollisionNormalization.h:19 AliCollisionNormalization.h:20 AliCollisionNormalization.h:21 AliCollisionNormalization.h:22 AliCollisionNormalization.h:23 AliCollisionNormalization.h:24 AliCollisionNormalization.h:25 AliCollisionNormalization.h:26 AliCollisionNormalization.h:27 AliCollisionNormalization.h:28 AliCollisionNormalization.h:29 AliCollisionNormalization.h:30 AliCollisionNormalization.h:31 AliCollisionNormalization.h:32 AliCollisionNormalization.h:33 AliCollisionNormalization.h:34 AliCollisionNormalization.h:35 AliCollisionNormalization.h:36 AliCollisionNormalization.h:37 AliCollisionNormalization.h:38 AliCollisionNormalization.h:39 AliCollisionNormalization.h:40 AliCollisionNormalization.h:41 AliCollisionNormalization.h:42 AliCollisionNormalization.h:43 AliCollisionNormalization.h:44 AliCollisionNormalization.h:45 AliCollisionNormalization.h:46 AliCollisionNormalization.h:47 AliCollisionNormalization.h:48 AliCollisionNormalization.h:49 AliCollisionNormalization.h:50 AliCollisionNormalization.h:51 AliCollisionNormalization.h:52 AliCollisionNormalization.h:53 AliCollisionNormalization.h:54 AliCollisionNormalization.h:55 AliCollisionNormalization.h:56 AliCollisionNormalization.h:57 AliCollisionNormalization.h:58 AliCollisionNormalization.h:59 AliCollisionNormalization.h:60 AliCollisionNormalization.h:61 AliCollisionNormalization.h:62 AliCollisionNormalization.h:63 AliCollisionNormalization.h:64 AliCollisionNormalization.h:65 AliCollisionNormalization.h:66 AliCollisionNormalization.h:67 AliCollisionNormalization.h:68 AliCollisionNormalization.h:69 AliCollisionNormalization.h:70 AliCollisionNormalization.h:71 AliCollisionNormalization.h:72 AliCollisionNormalization.h:73 AliCollisionNormalization.h:74 AliCollisionNormalization.h:75 AliCollisionNormalization.h:76 AliCollisionNormalization.h:77 AliCollisionNormalization.h:78 AliCollisionNormalization.h:79 AliCollisionNormalization.h:80 AliCollisionNormalization.h:81 AliCollisionNormalization.h:82 AliCollisionNormalization.h:83 AliCollisionNormalization.h:84 AliCollisionNormalization.h:85 AliCollisionNormalization.h:86 AliCollisionNormalization.h:87 AliCollisionNormalization.h:88 AliCollisionNormalization.h:89 AliCollisionNormalization.h:90 AliCollisionNormalization.h:91 AliCollisionNormalization.h:92 AliCollisionNormalization.h:93 AliCollisionNormalization.h:94 AliCollisionNormalization.h:95 AliCollisionNormalization.h:96 AliCollisionNormalization.h:97 AliCollisionNormalization.h:98 AliCollisionNormalization.h:99 AliCollisionNormalization.h:100 AliCollisionNormalization.h:101 AliCollisionNormalization.h:102 AliCollisionNormalization.h:103 AliCollisionNormalization.h:104 AliCollisionNormalization.h:105 AliCollisionNormalization.h:106 AliCollisionNormalization.h:107 AliCollisionNormalization.h:108 AliCollisionNormalization.h:109 AliCollisionNormalization.h:110 AliCollisionNormalization.h:111 AliCollisionNormalization.h:112 AliCollisionNormalization.h:113 AliCollisionNormalization.h:114 AliCollisionNormalization.h:115 AliCollisionNormalization.h:116 AliCollisionNormalization.h:117 AliCollisionNormalization.h:118 AliCollisionNormalization.h:119 AliCollisionNormalization.h:120 AliCollisionNormalization.h:121 AliCollisionNormalization.h:122 AliCollisionNormalization.h:123 AliCollisionNormalization.h:124 AliCollisionNormalization.h:125 AliCollisionNormalization.h:126 AliCollisionNormalization.h:127 AliCollisionNormalization.h:128 AliCollisionNormalization.h:129 AliCollisionNormalization.h:130 AliCollisionNormalization.h:131 AliCollisionNormalization.h:132