Commit 310658ab authored by Jochen Meyer's avatar Jochen Meyer Committed by Graeme Stewart
Browse files

Updating MuonboyAth-07-85-00 (MuonboyAth-07-85-00)

parent d26ec663
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/
#ifndef MboyChecks_H
#define MboyChecks_H
#include "AthenaBaseComps/AthAlgorithm.h"
#include "GaudiKernel/ToolHandle.h"
#include "GaudiKernel/ServiceHandle.h"
/////////////////////////////////////////////////////////////////////////////
#include "MuonboyAth/MuonboyAthMisc.h"
class IMboyDumpMboyStoreTool;
/**
@class MboyChecks
This class is performing dumps of the collections of MboyCoreEvt objects
@author samusog@cern.ch
*/
class MboyChecks:public AthAlgorithm {
public:
MboyChecks(const std::string& name, ISvcLocator* pSvcLocator);
~MboyChecks();
public:
///////////////////////////////////
StatusCode initialize();
StatusCode execute();
StatusCode finalize();
private:
///////////////////////////////////
std::string m_TrackStoreLocation ;//!< Location of the MB_TrackStoreTDS
std::string m_SegmentStoreLocation ;//!< Location of the MB_SegmentStoreTDS
std::string m_NameOfMuonboySegmentStoreOutputFile ;//!< file to dump the Segment Store
std::ofstream m_OutMuonboySegmentStore ;//!< file to dump the Segment Store
std::ofstream m_OutMuonboySegmentStoreChecks ;//!< file to dump the Segment Store
std::string m_NameOfMuonboyTrackStoreOutputFile ;//!< file to dump the tracks store
std::ofstream m_OutMuonboyTrackStore ;//!< file to dump the tracks store
std::ofstream m_OutMuonboyTrackStoreChecks ;//!< file to dump the tracks store
ToolHandle< IMboyDumpMboyStoreTool > p_IMboyDumpMboyStoreTool ; //!< Pointer On IMboyDumpMboyStoreTool
};
#endif
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/
#ifndef MboyDigiEmptyLoop_H
#define MboyDigiEmptyLoop_H
#include "AthenaBaseComps/AthAlgorithm.h"
#include "GaudiKernel/ToolHandle.h"
/////////////////////////////////////////////////////////////////////////////
#include "MuonboyAth/MuonboyAthMisc.h"
class IMboyGetPrepDataFromEventTool;
/**
@class MboyDigiEmptyLoop
This class is a top algo the only function of which is
to loop on PrepRawaData containers before the reconstruction
it self,in order to not count the corresponding time in the
reconstruction time
@author samusog@cern.ch
*/
class MboyDigiEmptyLoop:public AthAlgorithm {
public:
MboyDigiEmptyLoop(const std::string& name, ISvcLocator* pSvcLocator);
public:
///////////////////////////////////
StatusCode initialize();
StatusCode execute();
StatusCode finalize();
private:
///////////////////////////////////
int m_SwitchOff ;//!< Switch Off option
ToolHandle< IMboyGetPrepDataFromEventTool > p_IMboyGetPrepDataFromEventTool ;//!< Pointer On IMboyGetPrepDataFromEventTool
};
#endif
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/
#ifndef MboyMuonChamberT0s_H
#define MboyMuonChamberT0s_H
#include "AthenaBaseComps/AthAlgorithm.h"
#include "GaudiKernel/ToolHandle.h"
#include "Identifier/Identifier.h"
/////////////////////////////////////////////////////////////////////////////
#include "MuonboyAth/MuonboyAthMisc.h"
namespace Muon {
class ChamberT0s;
}
namespace AdjT0 {
class IAdjustableT0Tool;
}
class MdtIdHelper ;
/**
@class MboyMuonChamberT0s
Save T0s found by Mboy
@author samusog@cern.ch
*/
class MboyMuonChamberT0s:public AthAlgorithm {
public:
MboyMuonChamberT0s(const std::string& name, ISvcLocator* pSvcLocator);
~MboyMuonChamberT0s();
public:
///////////////////////////////////
StatusCode initialize();
StatusCode execute();
StatusCode finalize();
private:
///////////////////////////////////
//Data
std::vector<Identifier> m_VectorOfIdentifiers ;
void DumpIt(const Muon::ChamberT0s* pChamberT0s);
void DumpItAfterStorage() ;
std::string m_MuonChamberT0sLocation ; //!< Location of the MuonChamberT0s
int m_DoDbg ; //!< Control debug
const MdtIdHelper* p_MdtIdHelper ; //!< IdHelper
ToolHandle< AdjT0::IAdjustableT0Tool > p_IAdjustableT0Tool ; //!< Pointer On IAdjustableT0Tool
};
#endif
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/
#ifndef MboyRec_H
#define MboyRec_H
#include "AthenaBaseComps/AthAlgorithm.h"
#include "GaudiKernel/ToolHandle.h"
#include "GaudiKernel/ServiceHandle.h"
/////////////////////////////////////////////////////////////////////////////
#include "MuonboyAth/MuonboyAthMisc.h"
class IMboyGetPrepDataFromEventTool;
class IMboyAthToolHelper;
class IMboyFullRecTool ;
/**
@class MboyRec
This class is the top algorithm performing the Muon reconstruction
in Muon Spectrometer
@author samusog@cern.ch
*/
class MboyRec:public AthAlgorithm {
public:
MboyRec(const std::string& name, ISvcLocator* pSvcLocator);
~MboyRec();
public:
///////////////////////////////////
StatusCode initialize();
StatusCode execute();
StatusCode finalize();
private:
///////////////////////////////////
//Data
std::string m_DigiStoreLocation ; //!< Location of the MuonRecDigiStoreTDS
int m_PrintDigitsSummary ; //!< Print short summary
std::string m_TrackStoreLocation ; //!< Location of the MB_TrackStoreTDS
int m_ShortSummaryTrack ; //!< Print short summary
std::string m_SegmentStoreLocation ; //!< Location of the MB_SegmentStoreTDS
int m_ShortSummarySegment ; //!< Print short summary
std::string m_SegmentCollectionLocation ; //!< Location of the SegmentCollection
std::string m_TrackCollectionLocation ; //!< Location of the TrackCollection
std::string m_TrackParticleContainerLocation ; //!< Location of the TrackParticleContainer
std::string m_TrackCollection_MSonlyLocation ; //!< Location of the TrackCollection
std::string m_TrackParticleContainer_MSonlyLocation ; //!< Location of the TrackParticleContainer
int m_DoDbg ; //!< Print some debug
int m_ProcessingStage ; //!< Control processing stage
int m_SwitchOff ; //!< Switch Off Option
int m_AthPosOff ; //!< use Amdc or Athena positions option
/**Evt count */
int m_EvtTot ;
StatusCode KountThem() ;
StatusCode PrintKountThem() ;
/**MB_SegmentStoreTDS count */
std::vector<int> m_KounterMB_SegmentStoreTDS ;
StatusCode PrintKountMB_SegmentStoreTDS() ;
/**SegmentCollection count */
std::vector<int> m_KounterMB_TrackStoreTDS ;
StatusCode PrintKountMB_TrackStoreTDS() ;
/**SegmentCollection count */
std::vector<int> m_KounterSegmentCollection ;
StatusCode PrintKountSegmentCollection() ;
/**TrackCollection count */
std::vector<int> m_KounterTrackCollection ;
StatusCode PrintKountTrackCollection() ;
/**Dump Containers */
int m_DoDump ;
StatusCode DumpContainers() ;
std::string m_MboyDumpSegmentCollectionOutputFile ; //!< Dump SegmentCollection
std::ofstream m_OutFile_MboyDumpSegmentCollectionOutputFile ; //!< Dump SegmentCollection
std::string m_MboyDumpTrackCollectionOutputFile ; //!< Dump TrackCollection
std::ofstream m_OutFile_MboyDumpTrackCollectionOutputFile ; //!< Dump TrackCollection
std::ofstream m_OutFile_MboyDumpTrackCollectionOutputFile_MSonly ; //!< Dump TrackCollection
std::string m_MboyDumpTrackParticleContainerOutputFile ; //!< Dump TrackParticleContainer
std::ofstream m_OutFile_MboyDumpTrackParticleContainerOutputFile ; //!< Dump TrackParticleContainer
std::ofstream m_OutFile_MboyDumpTrackParticleContainerOutputFile_MSonly ; //!< Dump TrackParticleContainer
ToolHandle< IMboyGetPrepDataFromEventTool > p_IMboyGetPrepDataFromEventTool ; //!< Pointer On IMboyGetPrepDataFromEventTool
ToolHandle< IMboyAthToolHelper > p_OwnEDMHelper ; //!< Pointer On IMboyAthToolHelper
ToolHandle< IMboyFullRecTool > p_IMboyFullRecTool ; //!< Pointer On IMboyFullRecTool
};
#endif
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/
#ifndef MboySegmentCheck_H
#define MboySegmentCheck_H
#include "AthenaBaseComps/AthAlgorithm.h"
#include "GaudiKernel/ToolHandle.h"
#include "GaudiKernel/ServiceHandle.h"
/////////////////////////////////////////////////////////////////////////////
#include "MuonboyAth/MuonboyAthMisc.h"
class IMboyDumpNativeSegmentTool;
/**
@class MboySegmentCheck
This class is performing dumps of the collections of
MboyCoreEvt object for segments
@author samusog@cern.ch
*/
class MboySegmentCheck:public AthAlgorithm {
public:
MboySegmentCheck(const std::string& name, ISvcLocator* pSvcLocator);
~MboySegmentCheck();
public:
///////////////////////////////////
StatusCode initialize();
StatusCode execute();
StatusCode finalize();
private:
///////////////////////////////////
std::string m_SegmentStoreLocation ;//!< Location of the MB_SegmentStoreTDS
std::string m_NameOfMboySegmentCheckOutputFile ;//!< file to dump the tracks store
std::ofstream m_OutMboySegmentCheck ;//!< file to dump the tracks store
int m_LetCSCGo ; //!< Control production of CSC segment
int m_ApplyQualityFactorCut ; //!< Control cut of quality factor
float m_QualityFactorCut ; //!< Value of cut of quality factor
int m_ApplyNberofDigitsCut ; //!< Control cut of nber of digits
int m_NberofDigitsCut ; //!< Value of cut of nber of digits
int m_ApplyNberofPrecisonDigitsCut ; //!< Control cut of nber of digits
int m_NberofPrecisonDigitsCut ; //!< Value of cut of nber of digits
ToolHandle< IMboyDumpNativeSegmentTool > p_IMboyDumpNativeSegmentTool ; //!< Pointer On IMboyDumpNativeSegmentTool
};
#endif
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/
#ifndef MuonboyAthMisc_H
#define MuonboyAthMisc_H
#ifdef HAVE_NEW_IOSTREAMS
//gcc3.2
#include <sstream>
#include <iostream>
#include <iomanip>
#include <fstream>
#else
//gcc 295
#include <iostream.h>
#include <iomanip.h>
#include <fstream.h>
#endif
#if HAVE_CXX_STDC_HEADERS
# include <cstdio>
# include <cmath>
#else
# include <stdio.h>
# include <math.h>
#endif
#include <algorithm>
#include <iterator>
#include <list>
#include <vector>
#include <map>
#include <string>
#include <utility>
#endif
package MuonboyAth
author Marc Virchaux <virchaux@hep.saclay.cea.fr>
use AtlasPolicy AtlasPolicy-*
use GaudiInterface GaudiInterface-* External
use AthenaBaseComps AthenaBaseComps-* Control
use Identifier Identifier-* DetectorDescription
private
use MboyEDMToolInterfaces MboyEDMToolInterfaces-* MuonSpectrometer/Muonboy
use MboyAthToolInterfaces MboyAthToolInterfaces-* MuonSpectrometer/Muonboy
use MuonRecToolInterfaces MuonRecToolInterfaces-* MuonSpectrometer/MuonReconstruction/MuonRecTools
use MuonIdHelpers MuonIdHelpers-* MuonSpectrometer
use MuonChamberT0s MuonChamberT0s-* MuonSpectrometer/MuonReconstruction/MuonRecEvent
public
apply_pattern dual_use_library files="*.FF90 *.cxx"
apply_pattern declare_joboptions files="*.txt *.py"
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/
/**
@mainpage MuonboyAth Package
@author samusog@cern.ch
@section IntroductionMuonboyAth Introduction
MuonboyAth is a package of the Muonboy suite.
It forms a user interface to the MboySvc service which performs
the Muon reconstruction in the Muon Spectrometer.
@section OverviewMuonboyAth Class Overview
The MuonboyAth package contains:
- MboyDigiEmptyLoop is a top algo the only function of which is
to loop on PrepRawaData containers before the reconstruction
it self,in order to not count the corresponding time in the
reconstruction time
- MboyRec is the top algorithm performing the Muon reconstruction
in Muon Spectrometer
- MboyChecks is performing dumps of the collections of
MboyCoreEvt objects
- MboySegmentCheck is performing dumps of the collections of
MboyCoreEvt object for segments
@section ExtrasMuonboyAth Extra Pages
- @ref used_MuonboyAth
- @ref requirements_MuonboyAth
*/
/**
@page used_MuonboyAth Used Packages
@htmlinclude used_packages.html
*/
/**
@page requirements_MuonboyAth Requirements
@include requirements
*/
print "Obsolete file MuonboyAth/CBNT_Muon_jobOptions.py"
print "Reconstruction of G3 is no more supported "
include.block ( "MuonboyAth/MuonboyG4_jobOptions.py" )
#--------------------------------------------------------------
# MuonboyAth for G4
#--------------------------------------------------------------
#load MboySvc
include( "MboySvc/MboySvcG4_jobOptions.py" )
#--------------------------------------------------------------
#load MuonboyAth
include( "MuonboyAth/Muonboy_jobOptions.py" )
#-----------------------------------------------------------------
if not 'doPersint' in dir():
include( "MboyView/MboyView_jobOptions.py" )
include.block ( "MuonboyAth/MuonboyTB_jobOptions.py" )
#--------------------------------------------------------------
# MuonboyAth for TB
#--------------------------------------------------------------
# To load Alignement
include( "MuonAlignmentCnv/MuonAlignmentCnvAF_jobOptions.py" )
#--------------------------------------------------------------
# AMDB database is needed by muonboy
include( "AmdcAth/AmdcAthTB_jobOptions.py" )
AmdcsimrecAthenaSvc.NameOfTheAmdbFile = "amdb_simrec.H8_2004_CTB_BIR_SURVEY.a.05.data"
#--------------------------------------------------------------
#load MboySvc
include( "MboySvc/MboySvcTB_jobOptions.py" )
#--------------------------------------------------------------
#load MuonboyAth
include( "MuonboyAth/Muonboy_jobOptions.py" )
#-----------------------------------------------------------------
#MboyRec: digits transfert
# AthPosOff = 0 Use Athena positions
# 1 Use Amdb position
MboyRec = Algorithm( "MboyRec" )
MboyRec.AthPosOff = 1
#-----------------------------------------------------------------
# ProcessingStage = 1 produce TrkSegment
# = 2 produce TrkTrack in addition
# = 3 produce TrkParticle in addition
# = 4 produce MuonCombined in addition
MboyRec = Algorithm( "MboyRec" )
MboyRec.ProcessingStage = 2
#-----------------------------------------------------------------
if not 'doPersint' in dir():
include( "MboyView/MboyView_jobOptions.py" )
include.block ( "MuonboyAth/Muonboy_jobOptions.py" )
#--------------------------------------------------------------
# MuonboyAth
#-----------------------------------------------------------------
#Control Flags
if not 'doMuonboyBarrelOnly' in dir():
doMuonboyBarrelOnly=False
if not 'doMuonboyAllChecks' in dir():
doMuonboyAllChecks=False
if not 'doMuonboyDumpOnly' in dir():
doMuonboyDumpOnly=False
if doMuonboyDumpOnly:
doMuonboyAllChecks=False
from MboyEDMTool.MboyEDMToolConf import MboyGetPrepDataFromEventTool
MboyDigiEmptyLoopMboyGetPrepDataFromEventTool = MboyGetPrepDataFromEventTool(
name = "MboyDigiEmptyLoopMboyGetPrepDataFromEventTool",
CollectMDT = 1 ,
CollectRPC = 1 ,
CollectTGC = 1 ,
CollectCSC = 0 ,
CollectCscCluster = 1 ,
MdtPrepDataContainerName = "MDT_DriftCircles" ,
RpcPrepDataContainerName = "RPC_Measurements" ,
TgcPrepDataContainerName = "TGC_Measurements" ,
CscPrepDataContainerName = "CSC_Measurements" ,
CscClustersPrepDataContainerName = "CSC_Clusters" ,
ContainerAccessMethodMDT = 0 ,
ContainerAccessMethodRPC = 0 ,
ContainerAccessMethodTGC = 0 ,
ContainerAccessMethodCSC = 0 )
ToolSvc += MboyDigiEmptyLoopMboyGetPrepDataFromEventTool
print MboyDigiEmptyLoopMboyGetPrepDataFromEventTool
from MboyEDMTool.MboyEDMToolConf import MboyGetPrepDataFromEventTool
MboyRecMboyGetPrepDataFromEventTool = MboyGetPrepDataFromEventTool(
name = "MboyRecMboyGetPrepDataFromEventTool",
CollectMDT = 1 ,
CollectRPC = 1 ,
CollectTGC = 1 ,
CollectCSC = 0 ,
CollectCscCluster = 1 ,
MdtPrepDataContainerName = "MDT_DriftCircles" ,
RpcPrepDataContainerName = "RPC_Measurements" ,
TgcPrepDataContainerName = "TGC_Measurements" ,
CscPrepDataContainerName = "CSC_Measurements" ,
CscClustersPrepDataContainerName = "CSC_Clusters" ,
ContainerAccessMethodMDT = 0 ,
ContainerAccessMethodRPC = 0 ,
ContainerAccessMethodTGC = 0 ,
ContainerAccessMethodCSC = 0 )
ToolSvc += MboyRecMboyGetPrepDataFromEventTool
print MboyRecMboyGetPrepDataFromEventTool
#--------------------------------------------------------------
#load relevant libraries
theApp.Dlls += [ "MuonboyAth"]