//§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§//*
//             LOW ENERGY MUON SPIN RELAXATION, ROTATION, RADIATION   Geant4 SIMULATION
//  ID    : LEMuSRStackingAction.hh , v 1.0
//  AUTHOR: Taofiq PARAISO
//  DATE  : 2004-07-07 11:15
//                   
//§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§//
//
//  &           &&&&&&&&&&                            &&&&&&&         &&&&&&&&
//  &           &                                   &&      &&       &       &&
//  &           &                   &      &       &                &       &&
//  &           &&&&&&&            &      &         &&&&&&         &&&&&&&&  
//  &           &                 &      &&                &      &      &&
//  &           &                &&     &  &     &&      &&      &        &
//  &&&&&&&&&&  &&&&&&&&&&      &  &&&&&    &&    &&&&&&&       &        &&   
//                             &
//                            &
//                           &
//                         &  
//                          STACKING ACTION.HH
//§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§//

#ifndef LEMuSRStackingAction_H
#define LEMuSRStackingAction_H 1

#include "globals.hh"
#include "G4UserStackingAction.hh"
#include "G4ThreeVector.hh"

class G4Track;

#include "LEMuSRScintHit.hh"
class LEMuSRStackingActionMessenger;

class LEMuSRStackingAction : public G4UserStackingAction
{
public:
  LEMuSRStackingAction();
  virtual ~LEMuSRStackingAction();
  
public:
  virtual G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track* aTrack);
  virtual void NewStage();
  virtual void PrepareNewEvent();
  
private:
  //  G4bool InsideRoI(const G4Track * aTrack,G4double ang);
  G4VHitsCollection* GetCollection(G4String colName);
  
  LEMuSRScintHitsCollection* ScintHits;
   LEMuSRStackingActionMessenger* theMessenger;
  
  G4int stage;

  /*    G4int reqMuon;
	G4int reqIsoMuon;
	G4int reqIso;
	G4double angRoI;
  */

  
public:
  /*    inline void SetNRequestMuon(G4int val) { reqMuon = val; }
	inline G4int GetNRequestMuon() const { return reqMuon; }
	inline void SetNRequestIsoMuon(G4int val) { reqIsoMuon = val; }
	inline G4int GetNRequestIsoMuon() const { return reqIsoMuon; }
	inline void SetNIsolation(G4int val) { reqIso = val; }
	inline G4int GetNIsolation() const { return reqIso; }
	inline void SetRoIAngle(G4double val) { angRoI = val; }
	inline G4double GetRoIAngle() const { return angRoI; }
  */
};

#endif

