Commit 6e7e0ab0 authored by Jochen Meyer's avatar Jochen Meyer Committed by Graeme Stewart
Browse files

Updating MboyAthToolInterfaces-07-85-00 (MboyAthToolInterfaces-07-85-00)

parent f7c720e0
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/
#ifndef IFindMonitor_H
#define IFindMonitor_H
#include <vector>
#include "GaudiKernel/IAlgTool.h"
static const InterfaceID IID_IIFindMonitor("Muon::IFindMonitor", 1, 0);
namespace Muon {
class MuPatCandidateBase;
class MuPatSegment;
class MuPatTrack;
/**
@class IFindMonitor
@author samusog@cern.ch
*/
class IFindMonitor:virtual public IAlgTool {
public:
static const InterfaceID& interfaceID();
virtual void Reset() = 0 ;
virtual void PrintSegConfig ( Muon::MuPatCandidateBase& candidate, const std::vector<Muon::MuPatSegment*>& MuPatSegmentFree ) = 0 ;
virtual bool AlreadySuccessfullyTried ( Muon::MuPatCandidateBase& candidate, const std::vector<Muon::MuPatSegment*>& MuPatSegmentFree) = 0 ;
virtual void RegisterIfSuccessful ( Muon::MuPatCandidateBase& candidate, const std::vector<Muon::MuPatSegment*>& MuPatSegmentFree, const std::vector<Muon::MuPatTrack*>* pVectorpMuPatTrack ) = 0 ;
};
inline const InterfaceID& IFindMonitor::interfaceID() { return IID_IIFindMonitor; }
}
#endif
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/
#ifndef IMboyAthToolHelper_H
#define IMboyAthToolHelper_H
#include "AthenaBaseComps/AthAlgTool.h"
#include "GaudiKernel/ToolHandle.h"
#include "GaudiKernel/ServiceHandle.h"
namespace Rec {
class TrackParticleContainer;
}
namespace Trk {
class PrepRawData;
class RIO_OnTrack;
class MeasuredPerigee;
}
namespace Muon {
class MdtDriftCircleOnTrack;
class MuonClusterOnTrack;
}
//Can not be forwarded due to typedef
#include "TrkTrack/Track.h"
#include "TrkTrack/TrackCollection.h"
//Can not be forwarded due to typedef
#include "TrkSegment/Segment.h"
#include "TrkSegment/SegmentCollection.h"
//Can not be forwarded due to typedef
#include "TrkParameters/TrackParameters.h"
namespace Muon {
class MuPatCandidateBase;
class MuPatSegment;
class MuPatTrack;
class MuonSegment;
}
#include "MuonPrepRawData/CscPrepDataCollection.h"
#include "MuonPrepRawData/MdtPrepDataCollection.h"
#include "MuonPrepRawData/RpcPrepDataCollection.h"
#include "MuonPrepRawData/TgcPrepDataCollection.h"
class MboyPosDigiChoice;
class MboyVarByName;
class MuonRecDigiStoreAth;
class MB_TrackStoreAth;
class MB_SegmentStoreAth;
class MB_TrackAth;
class MB_Track;
class MbDRAT;
class MbProtoTrack;
class MbMuSc;
class MboyROAStoreAth ;
/////////////////////////////////////////////////////////////////////////////
#include "MboyAthToolInterfaces/IMboyAthToolMisc.h"
/**
@class IMboyAthToolHelper
@author samusog@cern.ch
*/
static const InterfaceID IID_IIMboyAthToolHelper("IMboyAthToolHelper", 1, 0);
class IMboyAthToolHelper:virtual public IAlgTool {
public:
///////////////////////////////////
static const InterfaceID& interfaceID();
public:
///////////////////////////////////
/**BackTrack */
virtual MB_Track* MboyMuonBackTrack(MboyVarByName* pMboyVarByName, MB_Track* pMB_Track ) = 0 ;
/**Collect Matter the Field connection is provided by the service) */
virtual StatusCode DoCollectMatter(
int AtCosmMatter,
const Trk::TrackParameters* pTrackParameters,
std::vector<MbMuSc*>* pVectorOfMbMuSc
) = 0 ;
/** Convertors VectorOfPrepRawDataColl->PrepRawData */
virtual void CvMdtPrepDataCollection( std::vector<const Trk::PrepRawData*>& VectorOfpPrepData , const std::vector<const Muon::MdtPrepDataCollection*>& PrepCols) = 0 ;
virtual void CvCscPrepDataCollection( std::vector<const Trk::PrepRawData*>& VectorOfpPrepData , const std::vector<const Muon::CscPrepDataCollection*>& PrepCols) = 0 ;
virtual void CvTgcPrepDataCollection( std::vector<const Trk::PrepRawData*>& VectorOfpPrepData , const std::vector<const Muon::TgcPrepDataCollection*>& PrepCols) = 0 ;
virtual void CvRpcPrepDataCollection( std::vector<const Trk::PrepRawData*>& VectorOfpPrepData , const std::vector<const Muon::RpcPrepDataCollection*>& PrepCols) = 0 ;
/** Convertors PrepRawDataColl->PrepRawData */
virtual void CvMdtPrepDataCollection( std::vector<const Trk::PrepRawData*>& VectorOfpPrepData , const Muon::MdtPrepDataCollection* PrepCol) = 0 ;
virtual void CvCscPrepDataCollection( std::vector<const Trk::PrepRawData*>& VectorOfpPrepData , const Muon::CscPrepDataCollection* PrepCol) = 0 ;
virtual void CvTgcPrepDataCollection( std::vector<const Trk::PrepRawData*>& VectorOfpPrepData , const Muon::TgcPrepDataCollection* PrepCol) = 0 ;
virtual void CvRpcPrepDataCollection( std::vector<const Trk::PrepRawData*>& VectorOfpPrepData , const Muon::RpcPrepDataCollection* PrepCol) = 0 ;
/** Convertors RIO_OnTrack->PrepRawData */
virtual void CvMdtDriftCircleOnTrack( std::vector<const Trk::PrepRawData*>& VectorOfpPrepData , const std::vector< const Muon::MdtDriftCircleOnTrack* >& mdts) = 0 ;
virtual void CvMdtDriftCircleOnTrack( std::vector<const Trk::PrepRawData*>& VectorOfpPrepData , const std::vector< std::vector< const Muon::MdtDriftCircleOnTrack* > >& mdts) = 0 ;
virtual void CvMuonClusterOnTrack ( std::vector<const Trk::PrepRawData*>& VectorOfpPrepData , const std::vector< const Muon::MuonClusterOnTrack* >& clusters ) = 0 ;
virtual void CvMuonClusterOnTrack ( std::vector<const Trk::PrepRawData*>& VectorOfpPrepData , const std::vector< std::vector< const Muon::MuonClusterOnTrack* > >& clusters) = 0 ;
virtual void CvRIO_OnTrack ( std::vector<const Trk::PrepRawData*>& VectorOfpPrepData , const std::vector<const Trk::RIO_OnTrack*>& rios ) = 0 ;
/** Convertors MuonSegment->PrepRawData */
virtual void CvMuonSegment( std::vector<const Trk::PrepRawData*>& VectorOfpPrepData , const std::vector<const Muon::MuonSegment*>& VectorOfMuonSegment ) = 0 ;
virtual void CvMuonSegment( std::vector<const Trk::PrepRawData*>& VectorOfpPrepData , const Muon::MuonSegment* pMuonSegment ) = 0 ;
/**Dumpers */
virtual StatusCode MboyDumpSegmentCollectionToolDoDump ( std::string SegmentCollectionLocation , std::string TrackCollectionLocation, std::ofstream* pOutFile ) = 0 ;
virtual StatusCode MboyDumpSegmentCollectionToolDoDump ( std::string SegmentCollectionLocation , std::ofstream* pOutFile ) = 0 ;
virtual StatusCode MboyDumpTrackCollectionToolDoDump ( std::string TrackCollectionLocation , std::ofstream* pOutFile ) = 0 ;
virtual StatusCode MboyDumpTrackParticleContainerToolDoDump( std::string TrackParticleContainerLocation , std::ofstream* pOutFile ) = 0 ;
/**Converters in EDM objects*/
virtual StatusCode GetSegmentCollection ( const MB_SegmentStoreAth* pMB_SegmentStoreAth, Trk::SegmentCollection* pSegmentCollection , int Clean = 1 ) = 0 ;
virtual std::vector<const Muon::MuonSegment*>* GetSegmentCollection ( const MB_SegmentStoreAth* pMB_SegmentStoreAth , int Clean = 1 ) = 0 ;
virtual StatusCode GetTrackCollection ( const MB_TrackStoreAth* pMB_TrackStoreAth , TrackCollection* pTrackCollection, TrackCollection* pTrackCollection_MSonly ) = 0 ;
virtual StatusCode GetTrackIP ( const MB_TrackAth* pMB_TrackAth , Trk::Track*& pTrack ) = 0 ;
virtual StatusCode GetTrackMS ( const MB_TrackAth* pMB_TrackAth , Trk::Track*& pTrack ) = 0 ;
virtual StatusCode GetParticleCollection( const TrackCollection* pTrackCollection , Rec::TrackParticleContainer* pTrackParticleContainer ) = 0 ;
/**Fill a MuonRecDigiStoreAth with PrepRawData set */
virtual StatusCode FillMuonRecDigiStoreWithVectorOfPrepData_Base( const std::vector<const Trk::PrepRawData*>& VectorOfpPrepData, MuonRecDigiStoreAth* pMuonRecDigiStoreAth ) = 0 ;
/**Do reconstruction of Track/Segment */
virtual StatusCode DoRec( const MboyPosDigiChoice* pMboyPosDigiChoice, MuonRecDigiStoreAth* pMuonRecDigiStoreAth, MB_TrackStoreAth* pMB_TrackStoreAth, MB_SegmentStoreAth* pMB_SegmentStoreAth ) = 0 ;
/** Define configuration variables to call the Svc */
virtual MboyVarByName* SetSettingsForCall(
std::string& ToolName ,
int NberOfCtrlPpty ,
std::vector<std::string>& NameOfCtrlPpty ,
double* ValueOfCtrlPpty ,
std::vector<std::string>& CommentOfCtrlPpty
) = 0 ;
/** Dump MboyVarByName */
virtual void PrintOutVariables(MboyVarByName* pMboyVarByName) = 0 ;
/** Get Segments from PrepRawData */
virtual std::vector<const Muon::MuonSegment*>* findFromPrep( MboyVarByName* pMboyVarByName, const std::vector<const Trk::PrepRawData*>& VectorOfpPrepData,MboyROAStoreAth* pMboyROAExternalStoreAth , int Clean ) = 0;
/** find track in the muon system */
virtual MbProtoTrack* find(
MboyVarByName* pMboyVarByName,
MbProtoTrack* pMbProtoTrack ,
MbProtoTrack* pTargetSegmentsProtoTrack
) = 0 ;
/** refine */
virtual MbProtoTrack* refine(
MboyVarByName* pMboyVarByName,
MbProtoTrack* pMbProtoTrack,
Trk::Track*& pTrackRefined ,
MuonRecDigiStoreAth* pMuonRecDigiStoreAth
) = 0 ;
/** Convert MuPatSegment to MbDRAT */
virtual MbDRAT* convertMuPatSegmentToMbDRAT (
MuonRecDigiStoreAth* pMuonRecDigiStoreAth ,
const Muon::MuPatSegment* pMuPatSegment
) = 0 ;
/** Set a MbDRAT */
virtual void SetAMbDRAT (
MboyVarByName* pMboyVarByName,
MbDRAT* pMbDRAT
) = 0 ;
/** Load the Event */
virtual void LoadEvent(
MboyVarByName* pMboyVarByName,
MuonRecDigiStoreAth* pMuonRecDigiStoreAth
) = 0 ;
virtual MbDRAT* GiveMuPatSegmentToMbDRAT ( const Muon::MuPatSegment* pMuPatSegment, int& kounter ) = 0 ;
virtual void CopyMbDRATToMuPatSegment ( const MbDRAT* pMbDRAT , Muon::MuPatSegment* pMuPatSegment ) = 0 ;
virtual void CopyMuPatSegmentToMbProtoTrack (
int& Iok,
const Muon::MuPatSegment* pMuPatSegment ,
MbProtoTrack* pMbProtoTrack
) = 0 ;
virtual void CopyMuPatTrackToMbProtoTrack (
int& Iok,
MboyVarByName* pMboyVarByName,
MuonRecDigiStoreAth* pMuonRecDigiStoreAth ,
Muon::MuPatTrack* pMuPatTrack ,
MbProtoTrack* pMbProtoTrack
) = 0 ;
virtual void UpdateMuPatTrackFromMbProtoTrack ( const MbProtoTrack* pMbProtoTrack, Muon::MuPatTrack* pMuPatTrack ) = 0 ;
virtual Trk::Track* MbProtoTrack2Track(
MbProtoTrack* pMbProtoTrack ,
std::vector<Muon::MuPatSegment*>& MuPatSegmentS_for_New_pMuPatTrack
) = 0 ;
/** Wrapped from MboyEDMHelper */
virtual std::string SegmentAssociatedStationName(const Trk::Segment* pSegment) = 0 ;
virtual void SegmentAssociatedStationNames(const Trk::Segment* pSegment, std::vector<std::string >& VectorOfStationNames ) = 0 ;
};
inline const InterfaceID& IMboyAthToolHelper::interfaceID() { return IID_IIMboyAthToolHelper; }
#endif
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/
#ifndef IMboyAthToolMisc_H
#define IMboyAthToolMisc_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
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/
#ifndef IMboyDumpMboyStoreTool_H
#define IMboyDumpMboyStoreTool_H
#include "GaudiKernel/IAlgTool.h"
/////////////////////////////////////////////////////////////////////////////
#include "MboyAthToolInterfaces/IMboyAthToolMisc.h"
/**
@class IMboyDumpMboyStoreTool
@author samusog@cern.ch
*/
static const InterfaceID IID_IIMboyDumpMboyStoreTool("IMboyDumpMboyStoreTool", 1, 0);
class IMboyDumpMboyStoreTool:virtual public IAlgTool {
public:
///////////////////////////////////
static const InterfaceID& interfaceID();
/**Dump Mboy Store */
virtual StatusCode dumpMboyStore(
std::string SegmentStoreLocation ,
std::string TrackStoreLocation ,
std::ofstream* pOutMuonboySegmentStore ,
std::ofstream* pOutMuonboySegmentStoreChecks ,
std::ofstream* pOutMuonboyTrackStore ,
std::ofstream* pOutMuonboyTrackStoreChecks
) = 0 ;
};
inline const InterfaceID& IMboyDumpMboyStoreTool::interfaceID() { return IID_IIMboyDumpMboyStoreTool; }
#endif
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/
#ifndef IMboyDumpNativeSegmentTool_H
#define IMboyDumpNativeSegmentTool_H
#include "GaudiKernel/IAlgTool.h"
/////////////////////////////////////////////////////////////////////////////
#include "MboyAthToolInterfaces/IMboyAthToolMisc.h"
/**
@class IMboyDumpNativeSegmentTool
@author samusog@cern.ch
*/
static const InterfaceID IID_IIMboyDumpNativeSegmentTool("IMboyDumpNativeSegmentTool", 1, 0);
class IMboyDumpNativeSegmentTool:virtual public IAlgTool {
public:
///////////////////////////////////
static const InterfaceID& interfaceID();
/**Dump Native Segments */
virtual StatusCode dumpNativeSegments(
int LetCSCGo ,
int ApplyQualityFactorCut ,
float QualityFactorCut ,
int ApplyNberofDigitsCut ,
int NberofDigitsCut ,
int ApplyNberofPrecisonDigitsCut ,
int NberofPrecisonDigitsCut ,
std::string SegmentStoreLocation ,
std::ofstream* pOutFile
) = 0 ;
};
inline const InterfaceID& IMboyDumpNativeSegmentTool::interfaceID() { return IID_IIMboyDumpNativeSegmentTool; }
#endif
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/
#ifndef IMboyFullRecTool_H
#define IMboyFullRecTool_H
#include "GaudiKernel/IAlgTool.h"
namespace Trk {
class PrepRawData;
}
/////////////////////////////////////////////////////////////////////////////
#include "MboyAthToolInterfaces/IMboyAthToolMisc.h"
/**
@class IMboyFullRecTool
@author samusog@cern.ch
*/
static const InterfaceID IID_IIMboyFullRecTool("IMboyFullRecTool", 1, 0);
class IMboyFullRecTool:virtual public IAlgTool {
public:
///////////////////////////////////
static const InterfaceID& interfaceID();
/** Get all stuff */
virtual StatusCode DoRec(
const std::vector<const Trk::PrepRawData*>& VectorOfpPrepData,
int PrintDigitsSummary , int AthPosOff , int SwitchOff , int ShortSummarySegment , int ShortSummaryTrack,
std::string DigiStoreLocation , std::string TrackStoreLocation , std::string SegmentStoreLocation ,
int ProcessingStage ,
std::string SegmentCollectionLocation,
std::string m_TrackCollectionLocation , std::string TrackCollection_MSonlyLocation ,
std::string TrackParticleContainerLocation , std::string TrackParticleContainer_MSonlyLocation
) = 0 ;
virtual StatusCode KountMB_SegmentStoreTDS( std::vector<int>& KounterMB_TrackStoreTDS , std::string& SegmentStoreLocation ) = 0 ;
virtual StatusCode KountMB_TrackStoreTDS ( std::vector<int>& KounterMB_SegmentStoreTDS , std::string& TrackStoreLocation ) = 0 ;
virtual StatusCode KountSegmentCollection ( std::vector<int>& KounterSegmentCollection , std::string& SegmentCollectionLocation ) = 0 ;
virtual StatusCode KountTrackCollection ( std::vector<int>& KounterTrackCollection , std::string& TrackCollectionLocation ) = 0 ;
};
inline const InterfaceID& IMboyFullRecTool::interfaceID() { return IID_IIMboyFullRecTool; }
#endif
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/
#ifndef IMboyMooSegmentCombinationFinder_H
#define IMboyMooSegmentCombinationFinder_H
#include "MuonSegmentCombinerToolInterfaces/IMooSegmentCombinationFinder.h"
namespace Trk {
class PrepRawData;
}
class MboyROAStoreAth ;
namespace Muon {
/**
@class IMboyMooSegmentCombinationFinder
@author samusog@cern.ch
*/
class IMboyMooSegmentCombinationFinder: public Muon::IMooSegmentCombinationFinder {
public:
/** Get Segments from PrepRawData */
virtual std::vector<const Muon::MuonSegment*>* findFromPrep( const std::vector<const Trk::PrepRawData*>& VectorOfpPrepData, MboyROAStoreAth* pMboyROAExternalStoreAth ) = 0 ;
virtual std::vector<const Muon::MuonSegment*>* findFromPrep( const std::vector<const Trk::PrepRawData*>& VectorOfpPrepData) = 0 ;
};
}
#endif
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/
#ifndef IMboyMuonSegmentMaker_H
#define IMboyMuonSegmentMaker_H
#include "MuonRecToolInterfaces/IMuonSegmentMaker.h"
namespace Trk {
class PrepRawData;
}
class MboyROAStoreAth ;
namespace Muon {
/**
@class IMboyMuonSegmentMaker
@author samusog@cern.ch
*/
class IMboyMuonSegmentMaker: public Muon::IMuonSegmentMaker {
public:
/** Get Segments from PrepRawData */
virtual std::vector<const Muon::MuonSegment*>* findFromPrep( const std::vector<const Trk::PrepRawData*>& VectorOfpPrepData, MboyROAStoreAth* pMboyROAExternalStoreAth ) = 0 ;
virtual std::vector<const Muon::MuonSegment*>* findFromPrep( const std::vector<const Trk::PrepRawData*>& VectorOfpPrepData ) = 0 ;
};
}
#endif
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/
#ifndef IMuonBackTracker_H
#define IMuonBackTracker_H
#include "GaudiKernel/IAlgTool.h"
//Can not be forwarded due to typedef
#include "TrkTrack/Track.h"
/////////////////////////////////////////////////////////////////////////////
#include "MboyAthToolInterfaces/IMboyAthToolMisc.h"
static const InterfaceID IID_IMuonBackTracker("Muon::IMuonBackTracker", 1, 0);
namespace Muon {
/**
@class IMuonBackTracker
@author samusog@cern.ch
*/
class IMuonBackTracker:virtual public IAlgTool {
public:
///////////////////////////////////
static const InterfaceID& interfaceID();
virtual Trk::Track* MuonBackTrack(const Trk::Track* pTrack ) = 0 ;
};
inline const InterfaceID& Muon::IMuonBackTracker::interfaceID() { return IID_IMuonBackTracker;}
}
#endif