Skip to content
Snippets Groups Projects
Forked from atlas / athena
137496 commits behind, 9387 commits ahead of the upstream repository.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
TFCSParametrizationFloatSelectChain.h 1.55 KiB
/*
  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
*/

#ifndef ISF_FASTCALOSIMEVENT_TFCSParametrizationFloatSelectChain_h
#define ISF_FASTCALOSIMEVENT_TFCSParametrizationFloatSelectChain_h

#include "ISF_FastCaloSimEvent/TFCSParametrizationBinnedChain.h"

class TFCSParametrizationFloatSelectChain:public TFCSParametrizationBinnedChain {
public:
  TFCSParametrizationFloatSelectChain(const char* name=nullptr, const char* title=nullptr):TFCSParametrizationBinnedChain(name,title),m_bin_low_edge(1,0) {};
  TFCSParametrizationFloatSelectChain(const TFCSParametrizationFloatSelectChain& ref):TFCSParametrizationBinnedChain(ref),m_bin_low_edge(1,0) {};

  virtual int push_back_in_bin(TFCSParametrizationBase* param, float low, float up);
  ///Should not be used unless the bin boundaries are already defined!
  virtual void push_back_in_bin(TFCSParametrizationBase* param, unsigned int bin);

  //return -1 if outside range
  int val_to_bin(float val) const;

  virtual double get_bin_low_edge(int bin) const {return m_bin_low_edge[bin];};
  virtual double get_bin_up_edge(int bin) const {return m_bin_low_edge[bin+1];};

  static void unit_test(TFCSSimulationState* simulstate=nullptr,TFCSTruthState* truth=nullptr, const TFCSExtrapolationState* extrapol=nullptr);

protected:
  std::vector< float > m_bin_low_edge;

private:

  ClassDef(TFCSParametrizationFloatSelectChain,1)  //TFCSParametrizationFloatSelectChain
};

#if defined(__ROOTCLING__) && defined(__FastCaloSimStandAlone__)
#pragma link C++ class TFCSParametrizationFloatSelectChain+;
#endif

#endif