DAS
3.0
Das Analysis System
|
This functor implements the selection and normalisation of the events in the dataset. The public attributes are the following:
pair<trigger, TriggerLumi>
of the highest pt trigger that have firedThe operator() implements the selection and normalisation itself. A private funtion pointer is used to allow to point to different private methods corresponding to different strategies. This behaviour is switched via 'strategy' argument in the constructor. It also iterate Functor::ibit
down to the highest trigger for which the leading jet pt is above the trigger turnon. This functor returns the leading jet according to the strategy that has been chosen AND multiplies the rec-level event weight to normalise the triggers together and to normalise the full dataset to the correct luminosity, according to the method that has been used. The weights are multiplied by: $\frac{ prescale * \mathcurl{L}_{total}^{-1} }{ \epsilon_{trigger} }$ in method 'presc' and by $ \frac{ \mathcurl{L}_{effective, trigger}^{-1} }{ \epsilon_{trigger} }$ in method 'lumi'. (NOTE: The lumi, trigger thresholds and trigger efficiency curves should be provided)
Two strategies are implemented.
Functor::NormalisationStd()
)Functor::NormalisationFwd()
) (NOTE: Other strategies could be implemented in the future. They should be implemented in this class.)Two methods are implemented:
Functor::NormalisationCommonPresc()
)DataNormalsiation::NormalisationCommonLumi()
) (NOTE: Other methods could be implemented in the future. They should be implemented in this class.)Technical remark: the switch wrt the different strategies and is done through private methods and private pointer function.
#include <applyDataNormalisation.h>
Public Member Functions | |
Functor (fs::path lumi_file, fs::path turnon_file, fs::path trigger_curves, const std::string &strategy, const std::string &method, const int year) | |
const RecJet & | operator() (RecEvent &evnt, std::vector< RecJet > &recJets, std::vector< FourVector > &hltJets, Trigger &trigger) |
Public Attributes | |
const std::map< int, TriggerLumi > | triggers_lumi |
TriggerEff | eff |
const size_t | ntriggers |
const double | inv_total_lumi |
const float | minpt |
size_t | ibit |
std::map< int, TriggerLumi >::const_reverse_iterator | it |
Private Member Functions | |
const RecJet & | NormalisationCommonPresc (RecEvent &evnt, const RecJet &leadingJet, const Trigger &trigger) |
const RecJet & | NormalisationCommonLumi (RecEvent &evnt, const RecJet &leadingJet, const Trigger &trigger) |
const RecJet & | NormalisationStd (RecEvent &evnt, std::vector< RecJet > &recJets, std::vector< FourVector > &hltJets, Trigger &trigger) |
const RecJet & | NormalisationFwd (RecEvent &evnt, std::vector< RecJet > &recJets, std::vector< FourVector > &hltJets, Trigger &trigger) |
Private Attributes | |
const RecJet &(Functor::* | NormalisationPtr )(RecEvent &, std::vector< RecJet > &, std::vector< FourVector > &, Trigger &) |
const RecJet &(Functor::* | NormalisationCommonPtr )(RecEvent &, const RecJet &, const Trigger &) |
|
inline |
|
inlineprivate |
Implements the common part to all the strategies in the 'lumi' method:
|
inlineprivate |
Implements the part that is common to all the strategies in the 'presc' method.
|
inlineprivate |
Implements the normalisation and selection used for Mueller-Navelet jets studies. Return the leadingJet. Calculates the luminosity, efficiency, and prescale and set the wieghts accordingly The selection rules for event are the following: -> Must be the most forward or most backward jet -> Must match an hltJet -> The hltJet and recJet matching together must be above the hlt threshold and turnon of the trigger respectivelly. -> If both the most bwd and most fwd jets satisfies the above conditions, the jets with highest absolute rapidity is defined as the leading jet. If the event do not macth these criteria, the event weights are set to zero and the leadingJet is the most forward jet. The event must be discarted when filling a tree.
|
inlineprivate |
Implements the "standard" normalisation. The jets are ordered in pt. The jets with highest pt within ($|\eta| < 2.5$) is the "leading jet". Find the trigger bit corresponding to: $ max \left( \left{ TriggerThresods | TriggerThresholds < p_{T}^{leading} \right} \right) $ Calculates the efficiency and prescales and reweight the events. (NOTE: this done regardless to the fact that the leadingJet
has matched to an hltJet
)
|
inline |
Implements the selection and normalisation. It sets the RecEvent::weights
so that the different triggers are normalised and that the dataset in normalised to the total luminosity. In this respect it is assumed that the highest pt trigger has prescale 1. And that its lumi is the total luminosity.
Apply some preliminary cuts depending depending on triggers. (For more details see the strategies)
TriggerEff eff |
size_t ibit |
const double inv_total_lumi |
std::map<int, TriggerLumi>::const_reverse_iterator it |
const float minpt |
|
private |
|
private |
Pointer functions. NormalisationPtr
is set by the constructor to one of private method implementing a specific normalisation strategy (i.e. normalisation,selection of the leading jet, trigger considered as triggering the event). The NormaloisationCommonPtr
pointer implements the part common to all the strategies but implementing different method to normalise, depending on the argument method
in the constructor. It is used by the private methods pointed by NormalisationPtr
.
const size_t ntriggers |
const std::map<int, TriggerLumi> triggers_lumi |