Classes | |
struct | CompositeTrigger |
struct | Period |
struct | Run |
Public Member Functions | |
TPileupReweighting (const char *name="TPileupReweighting") | |
~TPileupReweighting () | |
Int_t | UsePeriodConfig (const TString &configName) |
Int_t | SetBinning (Int_t nbinsx, Double_t *xbins, Int_t nbinsy=0, Double_t *ybins=0) |
Int_t | SetUniformBinning (Int_t nbinsx, Double_t xlow, Double_t xup, Int_t nbinsy=0, Double_t ylow=0, Double_t yup=0) |
Int_t | SetBinning (TH1 *hist) |
void | SetDefaultChannel (Int_t channel, Int_t mcRunNumber=-1) |
Int_t | GetDefaultChannel (Int_t mcRunNumber=-1) |
Double_t | GetIntegratedLumi (const TString &trigger="") |
Double_t | GetNumberOfEvents (Int_t channel) |
Double_t | GetSumOfEventWeights (Int_t channel) |
void | RemapPeriod (Int_t periodNumber1, Int_t periodNumber2) |
Double_t | GetIntegratedLumiFraction (Int_t periodNumber, UInt_t start, UInt_t end) |
Double_t | GetIntegratedLumiFraction (Int_t periodNumber, Double_t mu, UInt_t start, UInt_t end) |
Double_t | GetIntegratedLumi (UInt_t start, UInt_t end) |
Double_t | GetIntegratedLumi (Int_t periodNumber, UInt_t start, UInt_t end) |
Double_t | GetLumiBlockIntegratedLumi (Int_t runNumber, UInt_t lb) |
Float_t | GetLumiBlockMu (Int_t runNumber, UInt_t lb) |
void | DisableWarnings (Bool_t in) |
void | EnableDebugging (Bool_t in) |
void | SetUnrepresentedDataAction (Int_t action, Double_t tolerance=0.05) |
Double_t | GetUnrepresentedDataFraction (Int_t periodNumber, Int_t channel) |
Float_t | GetUnrepresentedDataWeight (Int_t periodNumber, Int_t channel) |
Bool_t | IsUnrepresentedData (Int_t runNumber, Float_t x, Float_t y=0.) |
void | IgnoreConfigFilePeriods (Bool_t in) |
Int_t | AddPeriod (Int_t periodNumber, UInt_t start, UInt_t end) |
returns a PeriodID. These count up from 1 | |
Int_t | GetFirstFoundPeriodNumber (UInt_t runNumber) |
void | SetDataScaleFactors (Float_t x, Float_t y=1.) |
void | SetMCScaleFactors (Float_t x, Float_t y=1.) |
Int_t | AddConfigFile (const TString &fileName) |
Int_t | AddLumiCalcFile (const TString &fileName, const TString &trigger="None") |
Int_t | AddMetaDataFile (const TString &fileName, const TString &channelBranchName="mc_channel_number") |
Bool_t | RemoveChannel (int chanNum) |
Int_t | Initialize () |
Float_t | GetCombinedWeight (Int_t periodNumber, Int_t channelNumber, Float_t x, Float_t y=0.) |
Float_t | GetPeriodWeight (Int_t periodNumber, Int_t channelNumber) |
Float_t | GetPrimaryWeight (Int_t periodNumber, Int_t channelNumber, Float_t x) |
Float_t | GetSecondaryWeight (Int_t periodNumber, Int_t channelNumber, Float_t x, Float_t y) |
Double_t | GetMetaData (const TString &metadataName, Int_t channelNumber) |
TTree * | GetMetaDataTree () |
Int_t | GenerateMetaDataFile (const TString &fileName, const TString &channelBranchName="mc_channel_number") |
Int_t | Fill (Int_t runNumber, Int_t channelNumber, Float_t w, Float_t x, Float_t y=0.) |
Int_t | WriteToFile (const TString &filename="") |
Int_t | WriteToFile (TFile *outFile) |
ULong64_t | GetPRWHash (Int_t periodNumber, Int_t channelNumber, Float_t x, Float_t y=0.) |
Bool_t | MakeWeightTree (TString channelNumbers, TString outFile, TString hashBranch="PRWHash", TString weightBranch="PileupWeight") |
void | SetRandomSeed (int seed) |
int | GetRandomSeed () |
UInt_t | GetRandomRunNumber (Int_t mcRunNumber) |
UInt_t | GetRandomRunNumber (Int_t mcRunNumber, Double_t mu) |
Int_t | GetRandomPeriodNumber (Int_t mcRunNumber) |
UInt_t | GetRandomLumiBlockNumber (UInt_t runNumber) |
Int_t | Merge (TCollection *coll) |
TH1 * | GetInputHistogram (Int_t channelNumber, Int_t periodNumber) |
TH1D * | GetPrimaryDistribution (Int_t channelNumber, Int_t periodNumber) |
TH1D * | GetPrimaryTriggerDistribution (const TString &trigger, Int_t periodNumber, long triggerBits) |
Double_t | GetDataWeight (Int_t runNumber, TString trigger, Double_t x) |
Double_t | GetDataWeight (Int_t runNumber, TString trigger) |
Bool_t | IsInitialized () |
Int_t | AddDistribution (TH1 *hist, Int_t runNumber, Int_t channelNumber) |
void | ResetCountingMode () |
void | SetParentTool (TPileupReweighting *tool) |
Float_t | GetDataScaleFactor () const |
void | SetTriggerBit (const TString &trigger, bool in=true) |
void | ResetTriggerBits () |
double | GetRunAverageMu (int run) |
void | PrintPeriods () |
void | CopyProperties (const TPileupReweighting *in) |
Protected Member Functions | |
virtual bool | runLbnOK (Int_t, Int_t) |
virtual bool | passTriggerBeforePrescale (const TString &trigger) const |
Int_t | GetNearestGoodBin (Int_t thisMCRunNumber, Int_t bin) |
Int_t | IsBadBin (Int_t thisMCRunNumber, Int_t bin) |
TH1 * | CloneEmptyHistogram (Int_t runNumber, Int_t channelNumber) |
void | normalizeHistogram (TH1 *histo) |
void | AddDistributionTree (TTree *tree, TFile *file) |
void | CalculatePrescaledLuminosityHistograms (const TString &trigger) |
CompositeTrigger * | makeTrigger (const TString &s) |
void | calculateHistograms (CompositeTrigger *trigger) |
Protected Attributes | |
std::map< TString, bool > | m_triggerPassBits |
TPileupReweighting * | m_parentTool |
Bool_t | m_SetWarnings |
Bool_t | m_debugging |
Bool_t | m_countingMode |
Int_t | m_unrepresentedDataAction |
Bool_t | m_isInitialized |
Bool_t | m_lumiVectorIsLoaded |
Float_t | m_dataScaleFactorX |
Float_t | m_dataScaleFactorY |
Float_t | m_mcScaleFactorX |
Float_t | m_mcScaleFactorY |
Int_t | m_nextPeriodNumber |
Bool_t | m_ignoreFilePeriods |
TTree * | m_metadatatree |
Double_t | m_unrepDataTolerance |
Bool_t | m_doGlobalDataWeight |
Int_t | m_lumicalcRunNumberOffset |
std::map< TString, std::vector < TString > > | m_lumicalcFiles |
TH1 * | m_emptyHistogram |
std::map< TString, std::map < Int_t, Double_t > > | m_metadata |
std::map< TString, CompositeTrigger * > | m_triggerObjs |
std::map< Int_t, Period * > | m_periods |
std::map< UInt_t, Run > | m_runs |
std::map< Int_t, Double_t > | unrepDataByChannel |
std::string | m_prwFilesPathPrefix |
TRandom3 * | m_random3 |
Bool_t | m_ignoreBadChannels |
Bool_t | m_useMultiPeriods = true |
CP::TPileupReweighting::TPileupReweighting | ( | const char * | name = "TPileupReweighting" |
) |
Standard constructor
TPileupReweighting::~TPileupReweighting | ( | ) |
Standard destructor
Int_t TPileupReweighting::AddPeriod | ( | Int_t | periodNumber, | |
UInt_t | start, | |||
UInt_t | end | |||
) |
returns a PeriodID. These count up from 1
Assign an mc RunNumber to a data period
Reimplemented in CP::PileupReweightingTool.
void CP::TPileupReweighting::DisableWarnings | ( | Bool_t | in | ) | [inline] |
Indicate if warnings should be suppressed
void CP::TPileupReweighting::EnableDebugging | ( | Bool_t | in | ) | [inline] |
Indicate if additional debugging information should be output
Double_t TPileupReweighting::GetDataWeight | ( | Int_t | runNumber, | |
TString | trigger, | |||
Double_t | x | |||
) |
Method for weighting data to account for prescales and mu bias. Use by giving the tool multiple lumicalc files, one for each trigger
Int_t TPileupReweighting::GetFirstFoundPeriodNumber | ( | UInt_t | runNumber | ) |
Get the first period number with the data run number contained - assume all periods are disconnected for this to be useful
Double_t TPileupReweighting::GetIntegratedLumi | ( | Int_t | periodNumber, | |
UInt_t | start, | |||
UInt_t | end | |||
) |
similar to above, but for only the given mcRunNumber/periodNumber
Reimplemented in CP::PileupReweightingTool.
Double_t CP::TPileupReweighting::GetIntegratedLumi | ( | UInt_t | start, | |
UInt_t | end | |||
) | [inline] |
get the amount of integrated lumi between the two given runs
Reimplemented in CP::PileupReweightingTool.
Double_t TPileupReweighting::GetIntegratedLumi | ( | const TString & | trigger = "" |
) |
total luminosity loaded and accepted by the tool (in inverse pb)
Reimplemented in CP::PileupReweightingTool.
Double_t TPileupReweighting::GetIntegratedLumiFraction | ( | Int_t | periodNumber, | |
Double_t | mu, | |||
UInt_t | start, | |||
UInt_t | end | |||
) |
return fraction of lumi assigned to periodNumber (or mcRunNumber) with given mu, that is between start and end data run numbers
Reimplemented in CP::PileupReweightingTool.
Double_t TPileupReweighting::GetIntegratedLumiFraction | ( | Int_t | periodNumber, | |
UInt_t | start, | |||
UInt_t | end | |||
) |
return fraction of lumi assigned to periodNumber (or mcRunNumber) that is between start and end data run numbers
Reimplemented in CP::PileupReweightingTool.
Double_t TPileupReweighting::GetLumiBlockIntegratedLumi | ( | Int_t | runNumber, | |
UInt_t | lb | |||
) |
get integrated lumi for specific run and lumiblock number .. comes from the 'unprescaled lumi', and is in pb
Float_t TPileupReweighting::GetLumiBlockMu | ( | Int_t | runNumber, | |
UInt_t | lb | |||
) |
get the lumiblock mu, useful for 'updating' the mu coming from data to account for new lumitags
TTree * TPileupReweighting::GetMetaDataTree | ( | ) |
combines loaded metadata with channel sumsofweights and entry counts
Double_t CP::TPileupReweighting::GetNumberOfEvents | ( | Int_t | channel | ) | [inline] |
totalMC maps should also hold the total number of entries for each channel
UInt_t TPileupReweighting::GetRandomLumiBlockNumber | ( | UInt_t | runNumber | ) |
Get a random lumi block from the run number given. Use GetRandomRunNumber to choose the run number
Reimplemented in CP::PileupReweightingTool.
Int_t TPileupReweighting::GetRandomPeriodNumber | ( | Int_t | mcRunNumber | ) |
Get random period number from the sub-periods assigned to this run number
UInt_t TPileupReweighting::GetRandomRunNumber | ( | Int_t | mcRunNumber, | |
Double_t | mu | |||
) |
Get random run number according to integrated lumi distribution for the given mu value (uses the binning of the mu histogram)
UInt_t TPileupReweighting::GetRandomRunNumber | ( | Int_t | mcRunNumber | ) |
Gets a random data run number according to the integrated lumi distribution associated to this mcRunNumber allows use of custom reweighting config files
Double_t TPileupReweighting::GetUnrepresentedDataFraction | ( | Int_t | periodNumber, | |
Int_t | channel | |||
) |
return the unrepresented data fraction in a given channel .. when using action=2, you will want to scale up all MC events by 1/(1-unrepFraction) to account for missed data
void CP::TPileupReweighting::IgnoreConfigFilePeriods | ( | Bool_t | in | ) | [inline] |
Should the tool ignore period assignments encoded in config file
Int_t TPileupReweighting::Initialize | ( | ) |
Initialize this class once before the event loop starts If distribution information is provided, it is assumed to be for the standard pileup reweighting
void TPileupReweighting::normalizeHistogram | ( | TH1 * | histo | ) | [protected] |
Normalize histograms
void TPileupReweighting::RemapPeriod | ( | Int_t | periodNumber1, | |
Int_t | periodNumber2 | |||
) |
Combine two period numbers. Histos are merged and the first number will be redirected to the second (the second is created if it doesn't exist)
Bool_t TPileupReweighting::RemoveChannel | ( | int | chanNum | ) |
Removes a channel from the inputs ... this is for experts only
void CP::TPileupReweighting::ResetCountingMode | ( | ) | [inline] |
This method is DEFINITELY EXPERT USE ONLY. Used in the checkPRWConfigFile utitlity
Int_t TPileupReweighting::SetBinning | ( | Int_t | nbinsx, | |
Double_t * | xbins, | |||
Int_t | nbinsy = 0 , |
|||
Double_t * | ybins = 0 | |||
) |
Add a histogram binning config. To modify the pileup histo binning, use "pileup" as name
void CP::TPileupReweighting::SetDataScaleFactors | ( | Float_t | x, | |
Float_t | y = 1. | |||
) | [inline] |
Scale the LumiMetaData mu values by this factor
void TPileupReweighting::SetDefaultChannel | ( | Int_t | channel, | |
Int_t | mcRunNumber = -1 | |||
) |
Set which channel should be used as a default when specific mc channel distributions cannot be found default channels can now be assigned for each mc run number .. mcRunNumber=-1 is the global default
void CP::TPileupReweighting::SetUnrepresentedDataAction | ( | Int_t | action, | |
Double_t | tolerance = 0.05 | |||
) | [inline] |
Set how to handle configurations where some of your data has no corresponding mc to describe it 0=Default (Throw exception), 1=Subtract lumi from normalizations (i.e. discard data), 2=keep lumi and continue
Int_t TPileupReweighting::UsePeriodConfig | ( | const TString & | configName | ) |
use a hardcoded period configuration
TH1* CP::TPileupReweighting::m_emptyHistogram [protected] |
the empty histogram used for this weight... effectively holds the configuration of the binning
std::map<TString,std::vector<TString> > CP::TPileupReweighting::m_lumicalcFiles [protected] |
map storing the lumicalc file locations - used when building DataPileupWeights
std::map<TString, std::map<Int_t, Double_t> > CP::TPileupReweighting::m_metadata [protected] |
channel metadata map