HighLAND
ECalEMEnergyResolSystematics.hxx
1 #ifndef ECalEMEnergyResolSystematics_h
2 #define ECalEMEnergyResolSystematics_h
3 
4 #include "ECalEMEnergySystematicsBase.hxx"
5 
6 class TRandom;
7 
8 class SystBoxECalEMResol : public SystBoxB{
9 public:
11  virtual ~SystBoxECalEMResol();
12  AnaDetCrossingB** RelevantCrossings;
13 
14 };
15 
16 /// This systematic smears the ECal EM energy by a
17 /// random amount from a Gaussian distribution.
18 
20 public:
21 
22  /// Instantiate the momentum resolution systematic. nbins is the number of
23  /// bins in the PDF. addResol and addResolError describe
24  /// the Gaussian distribution from which the resolution of each virtual
25  /// analysis is selected from.
26  ECalEMEnergyResolSystematics():ECalEMEnergySystematicsBase(1, "ECalEMEnergyResol", k1D_SYMMETRIC_NOMEAN){
27  _RandomGenerator = NULL;
28  InitializeRandomGenerator();
29  }
30 
32 
33  /// Initialize the SystBox for this event
34  void InitializeEvent(const AnaEventC& event, const SelectionBase& sel);
35  void InitializeEvent(const AnaEventC& event);
36 
37  /// Apply the systematic
38  virtual void Apply(const ToyExperiment& toy, AnaEventC& event);
39 
40  /// The only thing we allow for the generator is to get the seed
41  UInt_t GetRandomSeed() const;
42 
43  /// And change the seed
44  void SetRandomSeed(UInt_t seed);
45 
46  /// Initialze random generator
47  void InitializeRandomGenerator();
48 
49 
50 protected:
51 
52  /// A random generator that can be used to generate throws.
53  TRandom* _RandomGenerator;
54 
55 
56 };
57 
58 #endif
Representation of a detector crossing info for a true particle (G4 trajectory).
TRandom * _RandomGenerator
A random generator that can be used to generate throws.