<commit_before>// $Id: AOpticsManager.h 3 2010-11-26 17:17:31Z oxon $
// Author: <NAME> 2007/09/24

/******************************************************************************
 * Copyright (C) 2006-, <NAME>                                         *
 * All rights reserved.                                                       *
 *****************************************************************************/

#ifndef A_OPTICS_MANAGER_H
#define A_OPTICS_MANAGER_H

///////////////////////////////////////////////////////////////////////////////
//
// AOpticsManager
//
// Manager of optics
//
///////////////////////////////////////////////////////////////////////////////

#ifndef ROOT_TGeoManager
#include "TGeoManager.h"
#endif
#ifndef ROOT_TMath
#include "TMath.h"
#endif
#ifndef ROOT_TThread
#include "TThread.h"
#endif

#ifndef A_RAY_ARRAY_H
#include "ARayArray.h"
#endif
#ifndef A_FOCAL_SURFACE_H
#include "AFocalSurface.h"
#endif
#ifndef A_LENS_H
#include "ALens.h"
#endif
#ifndef A_MIRROR_H
#include "AMirror.h"
#endif
#ifndef A_OPTICAL_COMPONENT_H
#include "AOpticalComponent.h"
#endif
#ifndef A_OBSCURATION_H
#include "AObscuration.h"
#endif

class AOpticsManager : public TGeoManager {
 private:
  Int_t  fLimit; // Maximum number of crossing calculations
  Bool_t fDisableFresnelReflection; // disable Fresnel reflection
  TGeoNode* fStoredCurrentNode; // current node
  TGeoNode* fStoredNextNode; // next node
  std::map<long, TGeoNode*> fStoredCurrentNodes; // for multi threading
  std::map<long, TGeoNode*> fStoredNextNodes; // for multi threading
  TClass* fClassList[5];

  static void* Thread(void* args);

  void     DoFresnel(Double_t n1, Double_t n2, ARay& ray, TGeoNavigator* nav, TGeoNode* startNode, TGeoNode* endNode);
  void     DoReflection(Double_t n1, ARay& ray, TGeoNavigator* nav, TGeoNode* startNode, TGeoNode* endNode);
  TVector3 GetFacetNormal(TGeoNavigator* nav, TGeoNode* startNode, TGeoNode* endNode);

 public:
  enum {kLens = 0, kObs = 1, kMirror = 2, kFocus = 3, kOpt = 4, kOther = 5, kNull = 6};

  AOpticsManager();<commit_msg>Remove (TGeoNavigator* nav, TGeoNode* startNode, TGeoNode* endNode) from some methods' arguments.<commit_after>// $Id: AOpticsManager.h 3 2010-11-26 17:17:31Z oxon $
// Author: <NAME> 2007/09/24

/******************************************************************************
 * Copyright (C) 2006-, <NAME>                                         *
 * All rights reserved.                                                       *
 *****************************************************************************/

#ifndef A_OPTICS_MANAGER_H
#define A_OPTICS_MANAGER_H

///////////////////////////////////////////////////////////////////////////////
//
// AOpticsManager
//
// Manager of optics
//
///////////////////////////////////////////////////////////////////////////////

#ifndef ROOT_TGeoManager
#include "TGeoManager.h"
#endif
#ifndef ROOT_TMath
#include "TMath.h"
#endif
#ifndef ROOT_TThread
#include "TThread.h"
#endif

#ifndef A_RAY_ARRAY_H
#include "ARayArray.h"
#endif
#ifndef A_FOCAL_SURFACE_H
#include "AFocalSurface.h"
#endif
#ifndef A_LENS_H
#include "ALens.h"
#endif
#ifndef A_MIRROR_H
#include "AMirror.h"
#endif
#ifndef A_OPTICAL_COMPONENT_H
#include "AOpticalComponent.h"
#endif
#ifndef A_OBSCURATION_H
#include "AObscuration.h"
#endif

class AOpticsManager : public TGeoManager {
 private:
  Int_t  fLimit; // Maximum number of crossing calculations
  Bool_t fDisableFresnelReflection; // disable Fresnel reflection
  TGeoNode* fStoredCurrentNode; // current node
  TGeoNode* fStoredNextNode; // next node
  std::map<long, TGeoNode*> fStoredCurrentNodes; // for multi threading
  std::map<long, TGeoNode*> fStoredNextNodes; // for multi threading
  TClass* fClassList[5];

  static void* Thread(void* args);

  void     DoFresnel(Double_t n1, Double_t n2, ARay& ray);
  void     DoReflection(Double_t n1, ARay& ray);
  TVector3 GetFacetNormal();

 public:
  enum {kLens = 0, kObs = 1, kMirror = 2, kFocus = 3, kOpt = 4, kOther = 5, kNull = 6};

  AOpticsManager();
{'fraction_non_alphanumeric': 0.24790537210448496, 'fraction_numerical': 0.019221291276490884, 'mean_word_length': 2.804123711340206, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 11, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 6, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1647610', 'n_tokens_mistral': 1371, 'n_tokens_neox': 1282, 'n_words': 314}