diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/CMakeLists.txt b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/CMakeLists.txt deleted file mode 100644 index 0d98387145fe672e79fe351e0bddf42bca45e6cf..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/CMakeLists.txt +++ /dev/null @@ -1,41 +0,0 @@ -################################################################################ -# Package: ForwardDetectorsD3PDMaker -################################################################################ - -# Declare the package name: -atlas_subdir( ForwardDetectorsD3PDMaker ) - -# Declare the package's dependencies: -atlas_depends_on_subdirs( PRIVATE - Control/AthenaBaseComps - Control/AthenaKernel - Control/StoreGate - DetectorDescription/Identifier - ForwardDetectors/AFP/AFP_DigiEv - ForwardDetectors/AFP/AFP_RecoEv/AFP_LocRecoEv - ForwardDetectors/AFP/AFP_SimEv - ForwardDetectors/ALFA/ALFA_CLinkEv - ForwardDetectors/ALFA/ALFA_RecEv/ALFA_GloRecEv - ForwardDetectors/ALFA/ALFA_SimEv - ForwardDetectors/ZDC/ZdcConditions - ForwardDetectors/ZDC/ZdcEvent - ForwardDetectors/ZDC/ZdcIdentifier - GaudiKernel - Generators/GeneratorObjects - PhysicsAnalysis/D3PDMaker/D3PDMakerInterfaces - PhysicsAnalysis/D3PDMaker/D3PDMakerUtils ) - -# External dependencies: -find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) - -# Component(s) in the package: -atlas_add_component( ForwardDetectorsD3PDMaker - src/*.cxx - src/components/*.cxx - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaBaseComps AthenaKernel StoreGateLib SGtests Identifier AFP_DigiEv AFP_LocRecoEv AFP_SimEv ALFA_CLinkEv ALFA_GloRecEv ALFA_SimEv ZdcConditions ZdcEvent ZdcIdentifier GaudiKernel GeneratorObjects D3PDMakerUtils ) - -# Install files from the package: -atlas_install_python_modules( python/*.py ) -atlas_install_joboptions( share/*.py ) - diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/macros/ALFA/CAlfaEvent.cxx b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/macros/ALFA/CAlfaEvent.cxx deleted file mode 100644 index 2e654def240d6f2c31802f743eb6ee415db60c88..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/macros/ALFA/CAlfaEvent.cxx +++ /dev/null @@ -1,1191 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "TObject.h" -#include "TROOT.h" -#include "TThread.h" - -#include "CAlfaEvent.h" - -#if !defined(__CINT__) - ClassImp(CAlfaEvent); -#endif - -string CAlfaEvent::ms_EventTreeName=EVENTTREENAME; -string CAlfaEvent::ms_DCSFolder=DCSFOLDER; - -ALFAEVENTHEADER::_ALFAEVENTHEADER() -{ - //EventInfo - uRunNumber=0; - uEventNumber=0; - uTimeStamp=0; - uTimeStampNs=0; - - //DCS IDs - ullDcsBlm=0; - ullDcsHVChannel=0; - ullDcsLocalMonitoring=0; - ullDcsMovement=0; - ullDcsRadMon=0; - ullDcsTriggerRates=0; - ullDcsFEConfiguration=0; - ullDcsTriggerSettings=0; - - //RawDataContainer - pvecScaler=NULL; - nBCId=0; - nTimeStp=0; - nTimeStpNs=0; - pvecTrigPat=NULL; - - //DigitCollection - pvecFiberHitsMD=NULL; - pvecMultiplicityMD=NULL; - - //ODDigitCollection - pvecFiberHitsODPos=NULL; - pvecFiberHitsODNeg=NULL; - pvecMultiplicityODPos=NULL; - pvecMultiplicityODNeg=NULL; -} - -ALFATRACKINGDATA::_ALFATRACKINGDATA() -{ - //LocRecEvCollection & LocRecODEvCollection - nMaxTrackCnt=0; - pvecXDetCS=NULL; - pvecYDetCS=NULL; - pvecDetectorPartID=NULL; - pvecOverU=NULL; - pvecOverV=NULL; - pvecOverY=NULL; - pvecNumU=NULL; - pvecNumV=NULL; - pvecNumY=NULL; - pvecMDFibSel=NULL; - pvecODFibSel=NULL; - - //LocRecCorrEvCollection & LocRecCorrODEvCollection - pvecXLhcCS=NULL; - pvecYLhcCS=NULL; - pvecZLhcCS=NULL; - pvecXRPotCS=NULL; - pvecYRPotCS=NULL; - pvecXStatCS=NULL; - pvecYStatCS=NULL; - pvecXBeamCS=NULL; - pvecYBeamCS=NULL; -} - -CAlfaEvent::CAlfaEvent() -{ - //DCS IDs - m_ullDcsBlm=0; - m_ullDcsHVChannel=0; - m_ullDcsLocalMonitoring=0; - m_ullDcsMovement=0; - m_ullDcsRadMon=0; - m_ullDcsTriggerRates=0; - m_ullDcsFEConfiguration=0; - m_ullDcsTriggerSettings=0; - - //RawDataContainer - m_vecScaler.clear(); - m_nBCId=0; - m_nTimeStp=0; - m_nTimeStpNs=0; - m_vecTrigPat.clear(); - - //DigitCollection - m_vecFiberHitsMD.clear(); - m_vecMultiplicityMD.clear(); - - //ODDigitCollection - m_vecFiberHitsODPos.clear(); - m_vecFiberHitsODNeg.clear(); - m_vecMultiplicityODPos.clear(); - m_vecMultiplicityODNeg.clear(); - - //LocRecEvCollection & LocRecODEvCollection - m_nMaxTrackCnt=0; - m_vecXDetCS.clear(); - m_vecYDetCS.clear(); - m_vecDetectorPartID.clear(); - m_vecOverU.clear(); - m_vecOverV.clear(); - m_vecOverY.clear(); - m_vecNumU.clear(); - m_vecNumV.clear(); - m_vecNumY.clear(); - m_vecMDFibSel.clear(); - m_vecODFibSel.clear(); - - //LocRecCorrEvCollection & LocRecCorrODEvCollection - m_vecXLhcCS.clear(); - m_vecYLhcCS.clear(); - m_vecZLhcCS.clear(); - m_vecXRPotCS.clear(); - m_vecYRPotCS.clear(); - m_vecXStatCS.clear(); - m_vecYStatCS.clear(); - m_vecXBeamCS.clear(); - m_vecYBeamCS.clear(); -} - -CAlfaEvent::~CAlfaEvent() -{ - -} - -void CAlfaEvent::SetNTuplePaths(string& EventTreeName, string& DCSFolder) -{ - ms_EventTreeName=EventTreeName; - ms_DCSFolder=DCSFolder; -} - -Long64_t CAlfaEvent::FillDcsBlmMap(const char szRootFilename[], map<ULong64_t,DCSBLM>& mapDcsData) -{ - Long64_t nEntries=0; - - TFile* pFile=new TFile(szRootFilename); - nEntries=FillDcsBlmMap(pFile,mapDcsData); - pFile->Close(); - - return nEntries; -} - -Long64_t CAlfaEvent::FillDcsBlmMap(TFile* pFile, map<ULong64_t,DCSBLM>& mapDcsData) -{ - int i,j; - Long64_t nEntries; - DCSBLM DcsData; - - mapDcsData.clear(); - - ULong64_t ulID; - vector<Float_t>* pvecBlm=NULL; - - if(pFile->cd(ms_DCSFolder.c_str())){ - TTree* pTree=(TTree*)gROOT->FindObject(DCSTREENAME_BLM); - if(pTree!=NULL){ - nEntries=pTree->GetEntries(); - pTree->SetBranchAddress("ID", &ulID); - pTree->SetBranchAddress("BLM", &pvecBlm); - - //printf("BLM Entries=%i\r\n",(int)nEntries); - - for(i=0;i<nEntries;i++){ - pTree->GetEntry(i); - - if(mapDcsData.find(ulID)==mapDcsData.end()){ - //add new record - memset(&DcsData,0,sizeof(DCSBLM)); - DcsData.ulID=ulID; - for(j=0;j<BLMCNT;j++) DcsData.arrBLM[j]=(*pvecBlm)[j]; - - mapDcsData[DcsData.ulID]=DcsData; - } - } - } - else{ - printf("ERROR: Cannot find BLM tree\r\n"); - } - - pFile->cd(); - } - - return mapDcsData.size(); -} - -Long64_t CAlfaEvent::FillDcsHVChannelMap(const char szRootFilename[], map<ULong64_t,DCSHVCHANNEL>& mapDcsData) -{ - Long64_t nEntries=0; - - TFile* pFile=new TFile(szRootFilename); - if(pFile!=NULL){ - nEntries=FillDcsHVChannelMap(pFile,mapDcsData); - pFile->Close(); - } - - return nEntries; -} - -Long64_t CAlfaEvent::FillDcsHVChannelMap(TFile* pFile, map<ULong64_t,DCSHVCHANNEL>& mapDcsData) -{ - int i,j; - Long64_t nEntries; - DCSHVCHANNEL DcsData; - - mapDcsData.clear(); - - ULong64_t ulID; - vector<Float_t>* pvecVoltage=NULL; - vector<Float_t>* pvecCurrent=NULL; - - if(pFile->cd(ms_DCSFolder.c_str())){ - TTree* pTree=(TTree*)gROOT->FindObject(DCSTREENAME_HVCHANNEL); - if(pTree!=NULL){ - nEntries=pTree->GetEntries(); - pTree->SetBranchAddress("ID", &ulID); - pTree->SetBranchAddress("Voltage", &pvecVoltage); - pTree->SetBranchAddress("Current", &pvecCurrent); - - //printf("HVCHANNEL Entries=%i\r\n",(int)nEntries); - - for(i=0;i<nEntries;i++){ - pTree->GetEntry(i); - - if(mapDcsData.find(ulID)==mapDcsData.end()){ - //add new record - memset(&DcsData,0,sizeof(DCSHVCHANNEL)); - DcsData.ulID=ulID; - - for(j=0;j<HVCHANNELCNT;j++){ - DcsData.arrVoltage[j]=(*pvecVoltage)[j]; - DcsData.arrCurrent[j]=(*pvecCurrent)[j]; - } - - mapDcsData[DcsData.ulID]=DcsData; - } - } - } - else{ - printf("ERROR: Cannot find HVCHANNEL tree\r\n"); - } - - pFile->cd(); - } - - return mapDcsData.size(); -} - -Long64_t CAlfaEvent::FillDcsLocalMonitoringMap(const char szRootFilename[], map<ULong64_t,DCSLOCALMONITORING>& mapDcsData) -{ - Long64_t nEntries=0; - - TFile* pFile=new TFile(szRootFilename); - if(pFile!=NULL){ - nEntries=FillDcsLocalMonitoringMap(pFile,mapDcsData); - pFile->Close(); - } - - return nEntries; -} - -Long64_t CAlfaEvent::FillDcsLocalMonitoringMap(TFile* pFile, map<ULong64_t,DCSLOCALMONITORING>& mapDcsData) -{ - int i,j; - Long64_t nEntries; - DCSLOCALMONITORING DcsData; - - mapDcsData.clear(); - - ULong64_t ulID; - vector<Float_t>* pvecTempSensor01=NULL; - vector<Float_t>* pvecTempSensor02=NULL; - vector<Float_t>* pvecTempSensor03=NULL; - vector<Float_t>* pvecTempSensor04=NULL; - vector<Float_t>* pvecTempSensor05=NULL; - - if(pFile->cd(ms_DCSFolder.c_str())){ - TTree* pTree=(TTree*)gROOT->FindObject(DCSTREENAME_LOCALMONITORING); - if(pTree!=NULL){ - nEntries=pTree->GetEntries(); - pTree->SetBranchAddress("ID", &ulID); - pTree->SetBranchAddress("TempSensor1", &pvecTempSensor01); - pTree->SetBranchAddress("TempSensor2", &pvecTempSensor02); - pTree->SetBranchAddress("TempSensor3", &pvecTempSensor03); - pTree->SetBranchAddress("TempSensor4", &pvecTempSensor04); - pTree->SetBranchAddress("TempSensor5", &pvecTempSensor05); - - //printf("LOCALMONITORING Entries=%i\r\n",(int)nEntries); - - for(i=0;i<nEntries;i++){ - pTree->GetEntry(i); - - if(mapDcsData.find(ulID)==mapDcsData.end()){ - //add new record - memset(&DcsData,0,sizeof(DCSLOCALMONITORING)); - DcsData.ulID=ulID; - - for(j=0;j<RPOTSCNT;j++){ - DcsData.arrTempSensor01[j]=(*pvecTempSensor01)[j]; - DcsData.arrTempSensor02[j]=(*pvecTempSensor02)[j]; - DcsData.arrTempSensor03[j]=(*pvecTempSensor03)[j]; - DcsData.arrTempSensor04[j]=(*pvecTempSensor04)[j]; - DcsData.arrTempSensor05[j]=(*pvecTempSensor05)[j]; - } - - mapDcsData[DcsData.ulID]=DcsData; - } - } - } - else{ - printf("ERROR: Cannot find LOCALMONITORING tree\r\n"); - } - - pFile->cd(); - } - - return mapDcsData.size(); -} - -Long64_t CAlfaEvent::FillDcsMovementMap(const char szRootFilename[], map<ULong64_t,DCSMOVEMENT>& mapDcsData) -{ - Long64_t nEntries=0; - - TFile* pFile=new TFile(szRootFilename); - if(pFile!=NULL){ - nEntries=FillDcsMovementMap(pFile, mapDcsData); - pFile->Close(); - } - - return nEntries; -} - -Long64_t CAlfaEvent::FillDcsMovementMap(TFile* pFile, map<ULong64_t,DCSMOVEMENT>& mapDcsData) -{ - int i,j; - Long64_t nEntries; - DCSMOVEMENT DcsData; - - mapDcsData.clear(); - - ULong64_t ulID; - vector<Float_t>* pvecLVDT=NULL; - vector<Float_t>* pvecMotor=NULL; - - if(pFile->cd(ms_DCSFolder.c_str())){ - TTree* pTree=(TTree*)gROOT->FindObject(DCSTREENAME_MOVEMENT); - if(pTree!=NULL){ - nEntries=pTree->GetEntries(); - pTree->SetBranchAddress("ID", &ulID); - pTree->SetBranchAddress("LVDT", &pvecLVDT); - pTree->SetBranchAddress("Motor", &pvecMotor); - - //printf("MOVEMENT Entries=%i\r\n",(int)nEntries); - - for(i=0;i<nEntries;i++){ - pTree->GetEntry(i); - - if(mapDcsData.find(ulID)==mapDcsData.end()){ - //add new record - memset(&DcsData,0,sizeof(DCSMOVEMENT)); - DcsData.ulID=ulID; - - for(j=0;j<RPOTSCNT;j++){ - DcsData.arrLVDT[j]=(*pvecLVDT)[j]; - DcsData.arrMotor[j]=(*pvecMotor)[j]; - } - - mapDcsData[DcsData.ulID]=DcsData; - } - } - } - else{ - printf("ERROR: Cannot find MOVEMENT tree\r\n"); - } - - pFile->cd(); - } - - return mapDcsData.size(); -} - -Long64_t CAlfaEvent::FillDcsRadMonMap(const char szRootFilename[], map<ULong64_t,DCSRADMON>& mapDcsData) -{ - Long64_t nEntries=0; - - TFile* pFile=new TFile(szRootFilename); - if(pFile!=NULL){ - nEntries=FillDcsRadMonMap(pFile, mapDcsData); - pFile->Close(); - } - - return nEntries; -} - -Long64_t CAlfaEvent::FillDcsRadMonMap(TFile* pFile, map<ULong64_t,DCSRADMON>& mapDcsData) -{ - int i,j; - Long64_t nEntries; - DCSRADMON DcsData; - - mapDcsData.clear(); - - ULong64_t ulID; - vector<Float_t>* pvecDose=NULL; - vector<Float_t>* pvecFluence=NULL; - vector<Float_t>* pvecTemperature=NULL; - - if(pFile->cd(ms_DCSFolder.c_str())){ - TTree* pTree=(TTree*)gROOT->FindObject(DCSTREENAME_RADMON); - if(pTree!=NULL){ - nEntries=pTree->GetEntries(); - pTree->SetBranchAddress("ID", &ulID); - pTree->SetBranchAddress("Dose", &pvecDose); - pTree->SetBranchAddress("Fluence", &pvecFluence); - pTree->SetBranchAddress("Temperature", &pvecTemperature); - - //printf("RADMON Entries=%i\r\n",(int)nEntries); - - for(i=0;i<nEntries;i++){ - pTree->GetEntry(i); - - if(mapDcsData.find(ulID)==mapDcsData.end()){ - //add new record - memset(&DcsData,0,sizeof(DCSRADMON)); - DcsData.ulID=ulID; - - for(j=0;j<RADMONCNT;j++){ - DcsData.arrDose[j]=(*pvecDose)[j]; - DcsData.arrFluence[j]=(*pvecFluence)[j]; - DcsData.arrTemperature[j]=(*pvecTemperature)[j]; - } - - mapDcsData[DcsData.ulID]=DcsData; - } - } - } - else{ - printf("ERROR: Cannot find RADMON tree\r\n"); - } - - pFile->cd(); - } - - return mapDcsData.size(); -} - -Long64_t CAlfaEvent::FillDcsTriggerRatesMap(const char szRootFilename[], map<ULong64_t,DCSTRIGGERRATES>& mapDcsData) -{ - Long64_t nEntries=0; - - TFile* pFile=new TFile(szRootFilename); - if(pFile!=NULL){ - nEntries=FillDcsTriggerRatesMap(pFile, mapDcsData); - pFile->Close(); - } - - return nEntries; -} - -Long64_t CAlfaEvent::FillDcsTriggerRatesMap(TFile* pFile, map<ULong64_t,DCSTRIGGERRATES>& mapDcsData) -{ - int i,j; - Long64_t nEntries; - DCSTRIGGERRATES DcsData; - - mapDcsData.clear(); - - ULong64_t ulID; - vector<Int_t>* pvecTriggerRates=NULL; - - if(pFile->cd(ms_DCSFolder.c_str())){ - TTree* pTree=(TTree*)gROOT->FindObject(DCSTREENAME_TRIGGERRATES); - if(pTree!=NULL){ - nEntries=pTree->GetEntries(); - pTree->SetBranchAddress("ID", &ulID); - pTree->SetBranchAddress("TriggerRates", &pvecTriggerRates); - - //printf("TRIGGERRATES Entries=%i\r\n",(int)nEntries); - - for(i=0;i<nEntries;i++){ - pTree->GetEntry(i); - - if(mapDcsData.find(ulID)==mapDcsData.end()){ - //add new record - memset(&DcsData,0,sizeof(DCSTRIGGERRATES)); - DcsData.ulID=ulID; - - for(j=0;j<RPOTSCNT;j++){ - DcsData.arrTriggerRates[j]=(*pvecTriggerRates)[j]; - } - - mapDcsData[DcsData.ulID]=DcsData; - } - } - } - else{ - printf("ERROR: Cannot find TRIGGERRATES tree\r\n"); - } - - pFile->cd(); - } - - return mapDcsData.size(); -} - -Long64_t CAlfaEvent::FillDcsFEConfigurationMap(const char szRootFilename[], map<ULong64_t,DCSFECONFIGURATION>& mapDcsData) -{ - Long64_t nEntries=0; - - TFile* pFile=new TFile(szRootFilename); - if(pFile!=NULL){ - nEntries=FillDcsFEConfigurationMap(pFile, mapDcsData); - pFile->Close(); - } - - return nEntries; -} - -Long64_t CAlfaEvent::FillDcsFEConfigurationMap(TFile* pFile, map<ULong64_t,DCSFECONFIGURATION>& mapDcsData) -{ - int i,j,k; - Long64_t nEntries; - DCSFECONFIGURATION DcsData; - - mapDcsData.clear(); - - ULong64_t ulID; - vector<Int_t>* pvecThreshold=NULL; - vector<Int_t>* pvecGain=NULL; - vector<string>* pvecMDGainMode=NULL; - - if(pFile->cd(ms_DCSFolder.c_str())){ - TTree* pTree=(TTree*)gROOT->FindObject(DCSTREENAME_FECONFIGURATION); - if(pTree!=NULL){ - nEntries=pTree->GetEntries(); - pTree->SetBranchAddress("ID", &ulID); - pTree->SetBranchAddress("Threshold", &pvecThreshold); - pTree->SetBranchAddress("Gain", &pvecGain); - pTree->SetBranchAddress("MDGainMode", &pvecMDGainMode); - - //printf("FECONFIGURATION Entries=%i\r\n",(int)nEntries); - - for(i=0;i<nEntries;i++){ - pTree->GetEntry(i); - - if(mapDcsData.find(ulID)==mapDcsData.end()){ - //add new record - memset(&DcsData,0,sizeof(DCSFECONFIGURATION)); - DcsData.ulID=ulID; - - for(j=0;j<RPOTSCNT;j++){ - for(k=0;k<FECNFTHRESHLOLDCNT;k++) DcsData.arrThreshold[j][k]=(*pvecThreshold)[FECNFTHRESHLOLDCNT*j+k]; - for(k=0;k<FECNFGAINCNT;k++) DcsData.arrGain[j][k]=(*pvecGain)[FECNFGAINCNT*j+k]; - strcpy(DcsData.arrMDGainMode[j],(*pvecMDGainMode)[j].c_str()); - } - - mapDcsData[DcsData.ulID]=DcsData; - } - } - } - else{ - printf("ERROR: Cannot find FECONFIGURATION tree\r\n"); - } - - pFile->cd(); - } - - return mapDcsData.size(); -} - -Long64_t CAlfaEvent::FillDcsTriggerSettingsMap(const char szRootFilename[], map<ULong64_t,DCSTRIGGERSETTINGS>& mapDcsData) -{ - Long64_t nEntries=0; - - TFile* pFile=new TFile(szRootFilename); - if(pFile!=NULL){ - nEntries=FillDcsTriggerSettingsMap(pFile, mapDcsData); - pFile->Close(); - } - - return nEntries; -} - -Long64_t CAlfaEvent::FillDcsTriggerSettingsMap(TFile* pFile, map<ULong64_t,DCSTRIGGERSETTINGS>& mapDcsData) -{ - int i,j,k; - Long64_t nEntries; - DCSTRIGGERSETTINGS DcsData; - - mapDcsData.clear(); - - ULong64_t ulID; - vector<Int_t>* pvecTriggerSettings=NULL; - vector<Int_t>* pvecLatency=NULL; - - if(pFile->cd(ms_DCSFolder.c_str())){ - TTree* pTree=(TTree*)gROOT->FindObject(DCSTREENAME_TRIGGERSETTINGS); - if(pTree!=NULL){ - nEntries=pTree->GetEntries(); - pTree->SetBranchAddress("ID", &ulID); - pTree->SetBranchAddress("TriggerSettings", &pvecTriggerSettings); - pTree->SetBranchAddress("Latency", &pvecLatency); - - //printf("TRIGGERSETTINGS Entries=%i\r\n",(int)nEntries); - - for(i=0;i<nEntries;i++){ - pTree->GetEntry(i); - - if(mapDcsData.find(ulID)==mapDcsData.end()){ - //add new record - memset(&DcsData,0,sizeof(DCSTRIGGERSETTINGS)); - DcsData.ulID=ulID; - - for(j=0;j<RPOTSCNT;j++){//[RPOTSCNT][TRIGSETCNT] - for(k=0;k<TRIGSETCNT;k++) DcsData.arrTriggerSet[j][k]=(*pvecTriggerSettings)[TRIGSETCNT*j+k]; - for(k=0;k<TRIGSETLATENCYCNT;k++) DcsData.arrLatency[j][k]=(*pvecLatency)[TRIGSETLATENCYCNT*j+k]; - } - - mapDcsData[DcsData.ulID]=DcsData; - } - } - } - else{ - printf("ERROR: Cannot find TRIGGERSETTINGS tree\r\n"); - } - - pFile->cd(); - } - - return mapDcsData.size(); -} - -Long64_t CAlfaEvent::ResolveEntries(const char szRootFilename[]) -{ - Long64_t nEntries=0; - - TFile* pFile=new TFile(szRootFilename); - nEntries=ResolveEntries(pFile); - pFile->Close(); - - return nEntries; -} - -Long64_t CAlfaEvent::ResolveEntries(TFile* pFile) -{ - Long64_t nEntries=0; - - if(pFile!=NULL){ - TTree* pEventHeaderTree=(TTree*)pFile->Get(ms_EventTreeName.c_str()); - if(pEventHeaderTree!=NULL) nEntries=pEventHeaderTree->GetEntries(); - } - - return nEntries; -} - -void* CAlfaEvent::ThLoadEvents(void* pParams) -{ - Long64_t i, nEntries=0; - CAlfaEvent* pEventData=NULL; - - PWORKTHREADPARAMS pWorkParams=(PWORKTHREADPARAMS)pParams; - pWorkParams->plistEvents->Clear(); - - //TThread::Printf("[Thread #%i] start\r\n",pWorkParams->nThreadID); - - TFile* pFile=new TFile(pWorkParams->szFileName,"READ"); - if(pFile!=NULL){ - TTree* pEventTree=(TTree*)pFile->Get(ms_EventTreeName.c_str()); - if(pEventTree!=NULL){ - - PALFAEVENTHEADER pEventHeader=new ALFAEVENTHEADER(); - PALFATRACKINGDATA pTrackingData=new ALFATRACKINGDATA(); - BookEventHeaderVariables(pEventTree, pEventHeader); - BookTrackingDataVariables(pEventTree, pTrackingData); - - for(i=pWorkParams->nEntryFrom;i<=pWorkParams->nEntryTo;i++){ - nEntries++; - //if(nEntries%PRINTMODULO==0) printf("[Thread #%i] scanned %llu entries\r\n",pWorkParams->nThreadID, nEntries); - if(nEntries%PRINTMODULO==0) printf("scanned %llu entries\r\n", nEntries); - - pEventTree->GetEntry(i); - pEventData=new CAlfaEvent(); - pEventData->FillEventHeader(pEventHeader); - pEventData->FillTrackingData(pTrackingData); - - pWorkParams->plistEvents->Add(pEventData); - } - - if(pEventHeader) delete pEventHeader; - if(pTrackingData) delete pTrackingData; - } - } - - //TThread::Printf("[Thread #%i] stop\r\n",pWorkParams->nThreadID); - - return NULL; -} - -Long64_t CAlfaEvent::LoadEvents(const char szRootFilename[], TList& listData, const Long64_t nMaxEntries) -{ - const bool bSupportMultiThreadedReading=false; - const int nMaxNumOfThreads=1; - - int i; - Char_t szWorkThreadName[16]; - Long64_t nEntriesPerThread, nTotEntries, nEntries=0, nEntryFrom, nEntryTo; - - nTotEntries=ResolveEntries(szRootFilename); - if(nMaxEntries<0) nEntries=nTotEntries; - else if(nMaxEntries>nTotEntries) nEntries=nTotEntries; - else nEntries=nMaxEntries; - - if(bSupportMultiThreadedReading && nTotEntries>MTHREADSTH && nMaxNumOfThreads>1){ - printf("Multi thread mode\r\n"); - - TThread** ppWorkThreads=new TThread*[nMaxNumOfThreads]; - TList* parrlistData=new TList[nMaxNumOfThreads]; - PWORKTHREADPARAMS parrWorkParams=new WORKTHREADPARAMS[nMaxNumOfThreads]; - nEntriesPerThread=nEntries/nMaxNumOfThreads; - nEntryFrom=0; - - for(i=0;i<nMaxNumOfThreads;i++){ - - nEntryTo=nEntryFrom+nEntriesPerThread-1; - if(i==nMaxNumOfThreads-1) nEntryTo=nEntries-1; - - printf("Prepare thread #%i: from=%llu, to=%llu\r\n",i+1,nEntryFrom,nEntryTo); - - memset(parrWorkParams+i,0,sizeof(WORKTHREADPARAMS)); - parrWorkParams[i].nThreadID=i+1; - parrWorkParams[i].nEntryFrom=nEntryFrom; - parrWorkParams[i].nEntryTo=nEntryTo; - parrWorkParams[i].plistEvents=parrlistData+i; - strcpy(parrWorkParams[i].szFileName, szRootFilename); - - sprintf(szWorkThreadName,"WTH%02i",i+1); - ppWorkThreads[i]=new TThread(szWorkThreadName,ThLoadEvents,(void*)(parrWorkParams+i)); - ppWorkThreads[i]->Run(); - - nEntryFrom=nEntryTo+1; - } - - //gSystem->Sleep(10000); - TThread::Ps(); - - for(i=0;i<nMaxNumOfThreads;i++){ - ppWorkThreads[i]->Join(); - listData.AddAll(parrlistData+i); - delete ppWorkThreads[i]; - - } - - delete [] parrWorkParams; - delete [] parrlistData; - delete [] ppWorkThreads; - } - else{ - //printf("Single thread mode\r\n"); - WORKTHREADPARAMS WorkParams; - memset(&WorkParams,0,sizeof(WORKTHREADPARAMS)); - - WorkParams.nEntryFrom=0; - WorkParams.nEntryTo=nEntries-1; - WorkParams.nThreadID=1; - WorkParams.plistEvents=&listData; - strcpy(WorkParams.szFileName, szRootFilename); - - ThLoadEvents(&WorkParams); - } - - return listData.GetSize(); -} - -CAlfaEvent* CAlfaEvent::GetEntry(const char szRootFilename[], const Long64_t nEntry) -{ - CAlfaEvent* pEventData=NULL; - - TFile* pFile=new TFile(szRootFilename); - pEventData=GetEntry(pFile,nEntry); - pFile->Close(); - - return pEventData; -} - -CAlfaEvent* CAlfaEvent::GetEntry(TFile* pFile, const Long64_t nEntry) -{ - CAlfaEvent* pEventData=NULL; - - if(pFile!=NULL){ - TTree* pEventTree=(TTree*)pFile->Get(ms_EventTreeName.c_str()); - if(pEventTree!=NULL){ - PALFAEVENTHEADER pEventHeader=new ALFAEVENTHEADER(); - PALFATRACKINGDATA pTrackingData=new ALFATRACKINGDATA(); - BookEventHeaderVariables(pEventTree, pEventHeader); - BookTrackingDataVariables(pEventTree, pTrackingData); - - pEventTree->GetEntry(nEntry); - pEventData=new CAlfaEvent(); - pEventData->FillEventHeader(pEventHeader); - pEventData->FillTrackingData(pTrackingData); - - if(pEventHeader) delete pEventHeader; - if(pTrackingData) delete pTrackingData; - } - - } - - return pEventData; -} - - -bool CAlfaEvent::FillEventHeader(const PALFAEVENTHEADER pAlfaEventHeader) -{ - TThread::Lock(); - - //EventInfo - m_uRunNumber=pAlfaEventHeader->uRunNumber; - m_uLumiBlockNumber=pAlfaEventHeader->uLumiBlockNumber; - m_uEventNumber=pAlfaEventHeader->uEventNumber; - m_uTimeStamp=pAlfaEventHeader->uTimeStamp; - m_uTimeStampNs=pAlfaEventHeader->uTimeStampNs; - - //DCS IDs - m_ullDcsBlm=pAlfaEventHeader->ullDcsBlm; - m_ullDcsHVChannel=pAlfaEventHeader->ullDcsHVChannel; - m_ullDcsLocalMonitoring=pAlfaEventHeader->ullDcsLocalMonitoring; - m_ullDcsMovement=pAlfaEventHeader->ullDcsMovement; - m_ullDcsRadMon=pAlfaEventHeader->ullDcsRadMon; - m_ullDcsTriggerRates=pAlfaEventHeader->ullDcsTriggerRates; - m_ullDcsFEConfiguration=pAlfaEventHeader->ullDcsFEConfiguration; - m_ullDcsTriggerSettings=pAlfaEventHeader->ullDcsTriggerSettings; - - //RawDataContainer - m_vecScaler=*pAlfaEventHeader->pvecScaler; - m_nBCId=pAlfaEventHeader->nBCId; - m_nTimeStp=pAlfaEventHeader->nTimeStp; - m_nTimeStpNs=pAlfaEventHeader->nTimeStpNs; - m_vecTrigPat=*pAlfaEventHeader->pvecTrigPat; - - //DigitCollection - m_vecFiberHitsMD=*pAlfaEventHeader->pvecFiberHitsMD; - m_vecMultiplicityMD=*pAlfaEventHeader->pvecMultiplicityMD; - - //ODDigitCollection - m_vecFiberHitsODPos=*pAlfaEventHeader->pvecFiberHitsODPos; - m_vecFiberHitsODNeg=*pAlfaEventHeader->pvecFiberHitsODNeg; - m_vecMultiplicityODPos=*pAlfaEventHeader->pvecMultiplicityODPos; - m_vecMultiplicityODNeg=*pAlfaEventHeader->pvecMultiplicityODNeg; - - TThread::UnLock(); - - return true; -} - -bool CAlfaEvent::FillTrackingData(const PALFATRACKINGDATA pAlfaTrackingData) -{ - //LocRecEvCollection & LocRecODEvCollection - m_nMaxTrackCnt=pAlfaTrackingData->nMaxTrackCnt; - m_vecXDetCS=*pAlfaTrackingData->pvecXDetCS; - m_vecYDetCS=*pAlfaTrackingData->pvecYDetCS; - m_vecDetectorPartID=*pAlfaTrackingData->pvecDetectorPartID; - m_vecOverU=*pAlfaTrackingData->pvecOverU; - m_vecOverV=*pAlfaTrackingData->pvecOverV; - m_vecOverY=*pAlfaTrackingData->pvecOverY; - m_vecNumU=*pAlfaTrackingData->pvecNumU; - m_vecNumV=*pAlfaTrackingData->pvecNumV; - m_vecNumY=*pAlfaTrackingData->pvecNumY; - m_vecMDFibSel=*pAlfaTrackingData->pvecMDFibSel; - m_vecODFibSel=*pAlfaTrackingData->pvecODFibSel; - - //LocRecCorrEvCollection & LocRecCorrODEvCollection - m_vecXLhcCS=*pAlfaTrackingData->pvecXLhcCS; - m_vecYLhcCS=*pAlfaTrackingData->pvecYLhcCS; - m_vecZLhcCS=*pAlfaTrackingData->pvecZLhcCS; - m_vecXRPotCS=*pAlfaTrackingData->pvecXRPotCS; - m_vecYRPotCS=*pAlfaTrackingData->pvecYRPotCS; - m_vecXStatCS=*pAlfaTrackingData->pvecXStatCS; - m_vecYStatCS=*pAlfaTrackingData->pvecYStatCS; - m_vecXBeamCS=*pAlfaTrackingData->pvecXBeamCS; - m_vecYBeamCS=*pAlfaTrackingData->pvecYBeamCS; - - return true; -} - -bool CAlfaEvent::BookEventHeaderVariables(TTree* pTree, PALFAEVENTHEADER pAlfaEventHeader) -{ - //pTree->Print(); - - //EventInfo - pTree->SetBranchAddress("RunNumber", &pAlfaEventHeader->uRunNumber); - pTree->SetBranchAddress("lbn", &pAlfaEventHeader->uLumiBlockNumber); - pTree->SetBranchAddress("EventNumber", &pAlfaEventHeader->uEventNumber); - pTree->SetBranchAddress("timestamp", &pAlfaEventHeader->uTimeStamp); - pTree->SetBranchAddress("timestamp_ns", &pAlfaEventHeader->uTimeStampNs); - - //DCS IDs - pTree->SetBranchAddress("alfa_DCS_BLM", &pAlfaEventHeader->ullDcsBlm); - pTree->SetBranchAddress("alfa_DCS_HVCHANNEL", &pAlfaEventHeader->ullDcsHVChannel); - pTree->SetBranchAddress("alfa_DCS_LOCALMONITORING", &pAlfaEventHeader->ullDcsLocalMonitoring); - pTree->SetBranchAddress("alfa_DCS_MOVEMENT", &pAlfaEventHeader->ullDcsMovement); - pTree->SetBranchAddress("alfa_DCS_RADMON", &pAlfaEventHeader->ullDcsRadMon); - pTree->SetBranchAddress("alfa_DCS_TRIGGERRATES", &pAlfaEventHeader->ullDcsTriggerRates); - pTree->SetBranchAddress("alfa_DCS_FECONFIGURATION", &pAlfaEventHeader->ullDcsFEConfiguration); - pTree->SetBranchAddress("alfa_DCS_TRIGGERSETTINGS", &pAlfaEventHeader->ullDcsTriggerSettings); - - //RawDataContainer - pTree->SetBranchAddress("alfa_Scaler", &pAlfaEventHeader->pvecScaler); - pTree->SetBranchAddress("alfa_BCId", &pAlfaEventHeader->nBCId); - pTree->SetBranchAddress("alfa_TimeStp", &pAlfaEventHeader->nTimeStp); - pTree->SetBranchAddress("alfa_TimeStp_ns", &pAlfaEventHeader->nTimeStpNs); - pTree->SetBranchAddress("alfa_TrigPat", &pAlfaEventHeader->pvecTrigPat); - - //DigitCollection - pTree->SetBranchAddress("alfa_FiberHitsMD", &pAlfaEventHeader->pvecFiberHitsMD); - pTree->SetBranchAddress("alfa_MultiMD", &pAlfaEventHeader->pvecMultiplicityMD); - - //ODDigitCollection - pTree->SetBranchAddress("alfa_FiberHitsODPos", &pAlfaEventHeader->pvecFiberHitsODPos); - pTree->SetBranchAddress("alfa_FiberHitsODNeg", &pAlfaEventHeader->pvecFiberHitsODNeg); - pTree->SetBranchAddress("alfa_MultiODPos", &pAlfaEventHeader->pvecMultiplicityODPos); - pTree->SetBranchAddress("alfa_MultiODNeg", &pAlfaEventHeader->pvecMultiplicityODNeg); - - return true; -} - -bool CAlfaEvent::BookTrackingDataVariables(TTree* pTree, PALFATRACKINGDATA pAlfaTrackingData) -{ - //pTree->Print(); - - //LocRecEvCollection & LocRecODEvCollection - pTree->SetBranchAddress("alfa_NumTrack", &pAlfaTrackingData->nMaxTrackCnt); - pTree->SetBranchAddress("alfa_x_Det", &pAlfaTrackingData->pvecXDetCS); - pTree->SetBranchAddress("alfa_y_Det", &pAlfaTrackingData->pvecYDetCS); - pTree->SetBranchAddress("alfa_Detector", &pAlfaTrackingData->pvecDetectorPartID); - pTree->SetBranchAddress("alfa_OverU", &pAlfaTrackingData->pvecOverU); - pTree->SetBranchAddress("alfa_OverV", &pAlfaTrackingData->pvecOverV); - pTree->SetBranchAddress("alfa_OverY", &pAlfaTrackingData->pvecOverY); - pTree->SetBranchAddress("alfa_NU", &pAlfaTrackingData->pvecNumU); - pTree->SetBranchAddress("alfa_NV", &pAlfaTrackingData->pvecNumV); - pTree->SetBranchAddress("alfa_NY", &pAlfaTrackingData->pvecNumY); - pTree->SetBranchAddress("alfa_Fib_SelMD", &pAlfaTrackingData->pvecMDFibSel); - pTree->SetBranchAddress("alfa_Fib_SelOD", &pAlfaTrackingData->pvecODFibSel); - - //LocRecCorrEvCollection & LocRecCorrODEvCollection - pTree->SetBranchAddress("alfa_x_LHC", &pAlfaTrackingData->pvecXLhcCS); - pTree->SetBranchAddress("alfa_y_LHC", &pAlfaTrackingData->pvecYLhcCS); - pTree->SetBranchAddress("alfa_z_LHC", &pAlfaTrackingData->pvecZLhcCS); - pTree->SetBranchAddress("alfa_x_Pot", &pAlfaTrackingData->pvecXRPotCS); - pTree->SetBranchAddress("alfa_y_Pot", &pAlfaTrackingData->pvecYRPotCS); - pTree->SetBranchAddress("alfa_x_Stat", &pAlfaTrackingData->pvecXStatCS); - pTree->SetBranchAddress("alfa_y_Stat", &pAlfaTrackingData->pvecYStatCS); - pTree->SetBranchAddress("alfa_x_Beam", &pAlfaTrackingData->pvecXBeamCS); - pTree->SetBranchAddress("alfa_y_Beam", &pAlfaTrackingData->pvecYBeamCS); - - return true; -} - -void CAlfaEvent::PrintEventHeader() -{ - int i, j, k; - - //EventInfo - printf("RunNumber: %u\r\n", m_uRunNumber); - printf("LumiBlockNumber: %u\r\n", m_uLumiBlockNumber); - printf("EventNumber: %u\r\n", m_uEventNumber); - printf("TimeStamp: %u\r\n", m_uTimeStamp); - printf("TimeStampNs: %u\r\n", m_uTimeStampNs); - - printf("\r\nDCS BLM ID=%llu\r\n",m_ullDcsBlm); - printf("DCS HVCHANNEL ID=%llu\r\n",m_ullDcsHVChannel); - printf("DCS LOCALMONITORING ID=%llu\r\n",m_ullDcsLocalMonitoring); - printf("DCS MOVEMENT ID=%llu\r\n",m_ullDcsMovement); - printf("DCS RADMON ID=%llu\r\n",m_ullDcsRadMon); - printf("DCS TRIGGERRATES ID=%llu\r\n",m_ullDcsTriggerRates); - printf("DCS FECONFIGURATION ID=%llu\r\n",m_ullDcsFEConfiguration); - printf("DCS TRIGGERSETTINGS ID=%llu\r\n",m_ullDcsTriggerSettings); - - printf("\r\nScaler info:\r\n"); - for(i=0;i<RPOTSCNT;i++) printf("Roman Pot #%i: %i\r\n",i,GetScaler(i)); - - printf("\r\nTrigger pattern info:\r\n"); - for(i=0;i<RPOTSCNT;i++){ - printf("#%i: ",i); - for(j=0;j<TRIGPATCNT;j++){ - printf("%i ",GetTriggerPattern(i,j)); - } - printf("\r\n"); - } - printf("\r\n"); - - printf("Fiber Hits in MD info:\r\n"); - for(i=0;i<RPOTSCNT;i++){ - for(j=0;j<MDLAYERSCNT*MDPLATESCNT;j++){ - printf("Roman Pot #%i, Plate #%i:",i,j); - for(k=0;k<MDFIBERSCNT;k++){ - printf("%i ",GetFiberHitsMD(i,j,k)); - } - printf("\r\n"); - } - printf("\r\n"); - } - - printf("Multiplicity in MD info:\r\n"); - for(i=0;i<RPOTSCNT;i++){ - for(j=0;j<MDLAYERSCNT*MDPLATESCNT;j++){ - printf("Roman Pot #%i, Plate #%i: %i\r\n",i,j,GetMultiplicityMD(i,j)); - } - } - printf("\r\n"); - - - printf("\r\nFiber Hits in ODPos info:\r\n"); - for(i=0;i<RPOTSCNT;i++){ - for(j=0;j<ODPLATESCNT;j++){ - printf("Roman Pot #%i, Plate #%i:",i,j); - for(k=0;k<ODLAYERSCNT*ODFIBERSCNT;k++){ - printf("%i ",GetFiberHitsODPos(i,j,k)); - } - printf("\r\n"); - } - printf("\r\n"); - } - - printf("Multiplicity in ODPos info:\r\n"); - for(i=0;i<RPOTSCNT;i++){ - for(j=0;j<ODPLATESCNT;j++){ - printf("Roman Pot #%i, Plate #%i: %i\r\n",i,j,GetMultiplicityODPos(i,j)); - } - } - printf("\r\n"); - - printf("\r\nFiber Hits in ODNeg info:\r\n"); - for(i=0;i<RPOTSCNT;i++){ - for(j=0;j<ODPLATESCNT;j++){ - printf("Roman Pot #%i, Plate #%i:",i,j); - for(k=0;k<ODLAYERSCNT*ODFIBERSCNT;k++){ - printf("%i ",GetFiberHitsODNeg(i,j,k)); - } - printf("\r\n"); - } - printf("\r\n"); - } - - printf("Multiplicity in ODNeg info:\r\n"); - for(i=0;i<RPOTSCNT;i++){ - for(j=0;j<ODPLATESCNT;j++){ - printf("Roman Pot #%i, Plate #%i: %i\r\n",i,j,GetMultiplicityODNeg(i,j)); - } - } - printf("\r\n"); - -} - -void CAlfaEvent::PrintTrackingData() -{ - int i, j, k; - int nDetID; - - printf("\r\nMaximal number of local tracks: %i\r\n", m_nMaxTrackCnt); - - for(i=0;i<RPOTSCNT;i++){ - printf("\r\nRoman pot #%i\r\n",i); - - for(j=0;j<m_nMaxTrackCnt;j++){ - nDetID=GetDetectorPartID(i,j); - - if(nDetID>0){ - printf("track #%i CS:\r\n",j); - - printf("detector=%i\r\n",nDetID); - printf("DetCS=[%.3f,%.3f], ",GetXDetCS(i,j),GetYDetCS(i,j)); - printf("BeamCS=[%.3f,%.3f], ",GetXBeamCS(i,j),GetYBeamCS(i,j)); - printf("RPotCS=[%.3f,%.3f], ",GetXRPotCS(i,j),GetYRPotCS(i,j)); - printf("StatCS=[%.3f,%.3f], ",GetXStatCS(i,j),GetYStatCS(i,j)); - printf("LhcCS=[%.3f,%.3f,%.3f]",GetXLhcCS(i,j),GetYLhcCS(i,j),GetZLhcCS(i,j)); - printf("\r\n"); - - printf("OverU=%.3f, OverV=%.3f, OverY=%.3f\r\n",GetOverU(i,j),GetOverV(i,j),GetOverY(i,j)); - printf("NumU=%i, NumV=%i, NumY=%i\r\n",GetNumU(i,j),GetNumV(i,j),GetNumY(i,j)); - - printf("MD fiber selection:\r\n"); - for(k=0;k<MDLAYERSCNT*MDPLATESCNT;k++) printf("%i ",GetMDFibSel(i,j,k)); - printf("\r\nOD fiber selection:\r\n"); - for(k=0;k<ODPLATESCNT;k++) printf("%i ",GetODFibSel(i,j,k)); - printf("\r\n"); - } - } - } -} - -bool CAlfaEvent::CheckDcsLink(const char szRootFilename[], const Long64_t nMaxEntries) -{ - bool bRes=false; - - TFile* pFile=new TFile(szRootFilename); - bRes=CheckDcsLink(pFile, nMaxEntries); - pFile->Close(); - - return bRes; -} - -bool CAlfaEvent::CheckDcsLink(TFile* pFile, const Long64_t nMaxEntries) -{ - bool bRes=true; - Long64_t i; - Long64_t nEventCnt=nMaxEntries; - - map<ULong64_t,DCSBLM> mapDcsBlm; - map<ULong64_t,DCSHVCHANNEL> mapDcsHVChannel; - map<ULong64_t,DCSLOCALMONITORING> mapDcsLocalMonitoring; - map<ULong64_t,DCSMOVEMENT> mapDcsMovement; - map<ULong64_t,DCSRADMON> mapDcsRadMon; - map<ULong64_t,DCSTRIGGERRATES> mapDcsTriggerRates; - map<ULong64_t,DCSFECONFIGURATION> mapDcsFEConfiguration; - map<ULong64_t,DCSTRIGGERSETTINGS> mapDcsTriggerSettings; - - FillDcsBlmMap(pFile, mapDcsBlm); - FillDcsHVChannelMap(pFile, mapDcsHVChannel); - FillDcsLocalMonitoringMap(pFile, mapDcsLocalMonitoring); - FillDcsMovementMap(pFile, mapDcsMovement); - FillDcsRadMonMap(pFile, mapDcsRadMon); - FillDcsTriggerRatesMap(pFile, mapDcsTriggerRates); - FillDcsFEConfigurationMap(pFile, mapDcsFEConfiguration); - FillDcsTriggerSettingsMap(pFile, mapDcsTriggerSettings); - - CAlfaEvent* pEventData; - Long64_t nEntries=CAlfaEvent::ResolveEntries(pFile); - - if(nEventCnt<0) nEventCnt=nEntries; - else if(nEventCnt>nEntries) nEventCnt=nEntries; - - for(i=0;i<nEventCnt;i++){ - pEventData=CAlfaEvent::GetEntry(pFile,i); - if(i%10000==0 && i>0) printf("Scanned %llu entries\r\n",i); - - if(pEventData!=NULL){ - if(mapDcsBlm.find(pEventData->GetDcsBlmID())==mapDcsBlm.end()){ - bRes=false; - printf("WARNING: Cannot find proper DCS BLM data for event %u\r\n",pEventData->GetEventNumber()); - } - if(mapDcsHVChannel.find(pEventData->GetDcsHVChannelID())==mapDcsHVChannel.end()){ - bRes=false; - printf("WARNING: Cannot find proper DCS HVCHANNEL data for event %u\r\n",pEventData->GetEventNumber()); - } - if(mapDcsLocalMonitoring.find(pEventData->GetDcsLocalMonitoringID())==mapDcsLocalMonitoring.end()){ - bRes=false; - printf("WARNING: Cannot find proper DCS LOCALMONITORING data for event %u\r\n",pEventData->GetEventNumber()); - } - if(mapDcsMovement.find(pEventData->GetDcsMovementID())==mapDcsMovement.end()){ - bRes=false; - printf("WARNING: Cannot find proper DCS MOVEMENT data for event %u\r\n",pEventData->GetEventNumber()); - } - if(mapDcsRadMon.find(pEventData->GetDcsRadMonID())==mapDcsRadMon.end()){ - bRes=false; - printf("WARNING: Cannot find proper DCS RADMON data for event %u\r\n",pEventData->GetEventNumber()); - } - if(mapDcsTriggerRates.find(pEventData->GetDcsTriggerRateID())==mapDcsTriggerRates.end()){ - bRes=false; - printf("WARNING: Cannot find proper DCS TRIGGERRATES data for event %u\r\n",pEventData->GetEventNumber()); - } - if(mapDcsFEConfiguration.find(pEventData->GetDcsFEConfigurationID())==mapDcsFEConfiguration.end()){ - bRes=false; - printf("WARNING: Cannot find proper DCS FECONFIGURATION data for event %u\r\n",pEventData->GetEventNumber()); - } - if(mapDcsTriggerSettings.find(pEventData->GetDcsTriggerSettingsID())==mapDcsTriggerSettings.end()){ - bRes=false; - printf("WARNING: Cannot find proper DCS TRIGGERSETTINGS data for event %u\r\n",pEventData->GetEventNumber()); - } - - delete pEventData; - pEventData=NULL; - } - } - - return bRes; -} diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/macros/ALFA/CAlfaEvent.h b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/macros/ALFA/CAlfaEvent.h deleted file mode 100644 index a3148df17752b50f5560e01712666d5b23c55240..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/macros/ALFA/CAlfaEvent.h +++ /dev/null @@ -1,337 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef CALFAEVENT_H -#define CALFAEVENT_H - -#include "TTree.h" -#include "TFile.h" -#include "TList.h" -#include <vector> -#include <map> -#include <string> - -using namespace std; - -#include "Constants.h" - -#define PRINTMODULO 10000 -#define MTHREADSTH 10000 -#define EVENTTREENAME "AlfaD3PDTree" -#define DCSFOLDER "AlfaD3PDTreeMeta" - -#define DCSTREENAME_BLM "alfa_BlmTree" -#define DCSTREENAME_HVCHANNEL "alfa_HVChannelTree" -#define DCSTREENAME_LOCALMONITORING "alfa_LocalMonitoringTree" -#define DCSTREENAME_MOVEMENT "alfa_MovementTree" -#define DCSTREENAME_RADMON "alfa_RadMonTree" -#define DCSTREENAME_TRIGGERRATES "alfa_TriggerRatesTree" -#define DCSTREENAME_FECONFIGURATION "alfa_FEConfigurationTree" -#define DCSTREENAME_TRIGGERSETTINGS "alfa_TriggerSettingsTree" - -typedef struct _ALFAEVENTHEADER { - _ALFAEVENTHEADER(); - - //EventInfo - UInt_t uRunNumber; - UInt_t uLumiBlockNumber; - UInt_t uEventNumber; - UInt_t uTimeStamp; - UInt_t uTimeStampNs; - - //DCS IDs - ULong64_t ullDcsBlm; - ULong64_t ullDcsHVChannel; - ULong64_t ullDcsLocalMonitoring; - ULong64_t ullDcsMovement; - ULong64_t ullDcsRadMon; - ULong64_t ullDcsTriggerRates; - ULong64_t ullDcsFEConfiguration; - ULong64_t ullDcsTriggerSettings; - - //RawDataContainer - vector<Int_t>* pvecScaler; - Int_t nBCId; - Int_t nTimeStp; - Int_t nTimeStpNs; - vector<Int_t>* pvecTrigPat; - - //DigitCollection - vector<Int_t>* pvecFiberHitsMD; - vector<Int_t>* pvecMultiplicityMD; - - //ODDigitCollection - vector<Int_t>* pvecFiberHitsODPos; - vector<Int_t>* pvecFiberHitsODNeg; - vector<Int_t>* pvecMultiplicityODPos; - vector<Int_t>* pvecMultiplicityODNeg; - -} ALFAEVENTHEADER, *PALFAEVENTHEADER; - -typedef struct _ALFATRACKINGDATA { - _ALFATRACKINGDATA(); - - //LocRecEvCollection & LocRecODEvCollection - Int_t nMaxTrackCnt; - vector<Float_t>* pvecXDetCS; - vector<Float_t>* pvecYDetCS; - vector<Int_t>* pvecDetectorPartID; - vector<Float_t>* pvecOverU; - vector<Float_t>* pvecOverV; - vector<Float_t>* pvecOverY; - vector<Int_t>* pvecNumU; - vector<Int_t>* pvecNumV; - vector<Int_t>* pvecNumY; - vector<Int_t>* pvecMDFibSel; - vector<Int_t>* pvecODFibSel; - - //LocRecCorrEvCollection & LocRecCorrODEvCollection - vector<Float_t>* pvecXLhcCS; - vector<Float_t>* pvecYLhcCS; - vector<Float_t>* pvecZLhcCS; - vector<Float_t>* pvecXRPotCS; - vector<Float_t>* pvecYRPotCS; - vector<Float_t>* pvecXStatCS; - vector<Float_t>* pvecYStatCS; - vector<Float_t>* pvecXBeamCS; - vector<Float_t>* pvecYBeamCS; - -} ALFATRACKINGDATA, *PALFATRACKINGDATA; - -typedef struct _DCSBLM { - ULong64_t ulID; - Float_t arrBLM[BLMCNT]; -} DCSBLM, *PDCSBLM; - -typedef struct _DCSHVCHANNEL { - ULong64_t ulID; - Float_t arrVoltage[HVCHANNELCNT]; - Float_t arrCurrent[HVCHANNELCNT]; -} DCSHVCHANNEL, *PDCSHVCHANNEL; - -typedef struct _DCSLOCALMONITORING { - ULong64_t ulID; - Float_t arrTempSensor01[RPOTSCNT]; - Float_t arrTempSensor02[RPOTSCNT]; - Float_t arrTempSensor03[RPOTSCNT]; - Float_t arrTempSensor04[RPOTSCNT]; - Float_t arrTempSensor05[RPOTSCNT]; -} DCSLOCALMONITORING, *PDCSLOCALMONITORING; - -typedef struct _DCSMOVEMENT { - ULong64_t ulID; - Float_t arrLVDT[RPOTSCNT]; - Float_t arrMotor[RPOTSCNT]; -} DCSMOVEMENT, *PDCSMOVEMENT; - -typedef struct _DCSRADMON { - ULong64_t ulID; - Float_t arrDose[RADMONCNT]; - Float_t arrFluence[RADMONCNT]; - Float_t arrTemperature[RADMONCNT]; -} DCSRADMON, *PDCSRADMON; - -typedef struct _DCSTRIGGERRATES { - ULong64_t ulID; - Int_t arrTriggerRates[RPOTSCNT]; -} DCSTRIGGERRATES, *PDCSTRIGGERRATES; - -typedef struct _DCSFECONFIGURATION { - ULong64_t ulID; - Int_t arrThreshold[RPOTSCNT][FECNFTHRESHLOLDCNT]; - Int_t arrGain[RPOTSCNT][FECNFGAINCNT]; - Char_t arrMDGainMode[RPOTSCNT][32]; -} DCSFECONFIGURATION, *PDCSFECONFIGURATION; - -typedef struct _DCSTRIGGERSETTINGS { - ULong64_t ulID; - Bool_t arrTriggerSet[RPOTSCNT][TRIGSETCNT]; - Int_t arrLatency[RPOTSCNT][TRIGSETLATENCYCNT]; -} DCSTRIGGERSETTINGS, *PDCSTRIGGERSETTINGS; - -typedef struct _WORKTHREADPARAMS { - int nThreadID; - Long64_t nEntryFrom; - Long64_t nEntryTo; - TList* plistEvents; - Char_t szFileName[512]; -} WORKTHREADPARAMS, *PWORKTHREADPARAMS; - -class CAlfaEvent : public TObject -{ -public: - CAlfaEvent(); - ~CAlfaEvent(); - -public: - static void* ThLoadEvents(void* pParams); - static Long64_t LoadEvents(const char szRootFilename[], TList& listData, const Long64_t nMaxEntries=-1); - static CAlfaEvent* GetEntry(const char szRootFilename[], const Long64_t nEntry); - static CAlfaEvent* GetEntry(TFile* pFile, const Long64_t nEntry); - static Long64_t ResolveEntries(const char szRootFilename[]); - static Long64_t ResolveEntries(TFile* pFile); - static bool CheckDcsLink(const char szRootFilename[], const Long64_t nMaxEntries=-1); - static bool CheckDcsLink(TFile* pFile, const Long64_t nMaxEntries=-1); - - static Long64_t FillDcsBlmMap(const char szRootFilename[], map<ULong64_t,DCSBLM>& mapDcsData); - static Long64_t FillDcsBlmMap(TFile* pFile, map<ULong64_t,DCSBLM>& mapDcsData); - static Long64_t FillDcsHVChannelMap(const char szRootFilename[], map<ULong64_t,DCSHVCHANNEL>& mapDcsData); - static Long64_t FillDcsHVChannelMap(TFile* pFile, map<ULong64_t,DCSHVCHANNEL>& mapDcsData); - static Long64_t FillDcsLocalMonitoringMap(const char szRootFilename[], map<ULong64_t,DCSLOCALMONITORING>& mapDcsData); - static Long64_t FillDcsLocalMonitoringMap(TFile* pFile, map<ULong64_t,DCSLOCALMONITORING>& mapDcsData); - static Long64_t FillDcsMovementMap(const char szRootFilename[], map<ULong64_t,DCSMOVEMENT>& mapDcsData); - static Long64_t FillDcsMovementMap(TFile* pFile, map<ULong64_t,DCSMOVEMENT>& mapDcsData); - static Long64_t FillDcsRadMonMap(const char szRootFilename[], map<ULong64_t,DCSRADMON>& mapDcsData); - static Long64_t FillDcsRadMonMap(TFile* pFile, map<ULong64_t,DCSRADMON>& mapDcsData); - static Long64_t FillDcsTriggerRatesMap(const char szRootFilename[], map<ULong64_t,DCSTRIGGERRATES>& mapDcsData); - static Long64_t FillDcsTriggerRatesMap(TFile* pFile, map<ULong64_t,DCSTRIGGERRATES>& mapDcsData); - static Long64_t FillDcsFEConfigurationMap(const char szRootFilename[], map<ULong64_t,DCSFECONFIGURATION>& mapDcsData); - static Long64_t FillDcsFEConfigurationMap(TFile* pFile, map<ULong64_t,DCSFECONFIGURATION>& mapDcsData); - static Long64_t FillDcsTriggerSettingsMap(const char szRootFilename[], map<ULong64_t,DCSTRIGGERSETTINGS>& mapDcsData); - static Long64_t FillDcsTriggerSettingsMap(TFile* pFile, map<ULong64_t,DCSTRIGGERSETTINGS>& mapDcsData); - -public: - void PrintEventHeader(); - void PrintTrackingData(); - -private: - static bool BookEventHeaderVariables(TTree* pTree, PALFAEVENTHEADER pAlfaEventHeader); - static bool BookTrackingDataVariables(TTree* pTree, PALFATRACKINGDATA pAlfaTrackingData); - -private: - bool FillEventHeader(const PALFAEVENTHEADER pAlfaEventHeader); - bool FillTrackingData(const PALFATRACKINGDATA pAlfaTrackingData); - -private: - static string ms_EventTreeName; - static string ms_DCSFolder; - -public: - static void SetNTuplePaths(string& EventTreeName, string& DCSFolder); - -public: - //EventInfo - UInt_t GetRunNumber() const { return m_uRunNumber; } - UInt_t GetLumiBlockNumber() const { return m_uLumiBlockNumber; } - UInt_t GetEventNumber() const { return m_uEventNumber; } - UInt_t GetTimeStamp() const { return m_uTimeStamp; } - UInt_t GetTimeStampNs() const { return m_uTimeStampNs; } - - //DCS IDs - ULong64_t GetDcsBlmID() const { return m_ullDcsBlm; } - ULong64_t GetDcsHVChannelID() const { return m_ullDcsHVChannel; } - ULong64_t GetDcsLocalMonitoringID() const { return m_ullDcsLocalMonitoring; } - ULong64_t GetDcsMovementID() const { return m_ullDcsMovement; } - ULong64_t GetDcsRadMonID() const { return m_ullDcsRadMon; } - ULong64_t GetDcsTriggerRateID() const { return m_ullDcsTriggerRates; } - ULong64_t GetDcsFEConfigurationID() const { return m_ullDcsFEConfiguration; } - ULong64_t GetDcsTriggerSettingsID() const { return m_ullDcsTriggerSettings; } - - //RawDataContainer - Int_t GetScaler(const int nRPotID) const { return m_vecScaler[nRPotID]; } - Int_t GetBCId() const { return m_nBCId; } - Int_t GetRDTimeStp() const { return m_nTimeStp; } - Int_t GetRDTimeStpNs() const { return m_nTimeStpNs; } - Int_t GetTriggerPattern(const int nRPotID, const int nTrigPatID) const { return m_vecTrigPat[TRIGPATCNT*nRPotID+nTrigPatID]; } - - //DigitCollection - Int_t GetFiberHitsMD(const int nRPotID, const int nLayerID, const int nFiberID) const { return m_vecFiberHitsMD[(MDLAYERSCNT*MDPLATESCNT*MDFIBERSCNT)*nRPotID+MDFIBERSCNT*nLayerID+nFiberID]; } - Int_t GetMultiplicityMD(const int nRPotID, const int nLayerID) const { return m_vecMultiplicityMD[(MDLAYERSCNT*MDPLATESCNT)*nRPotID+nLayerID]; } - - //ODDigitCollection - Int_t GetFiberHitsODPos(const int nRPotID, const int nLayerID, const int nFiberID) const { return m_vecFiberHitsODPos[(ODPLATESCNT*ODLAYERSCNT*ODFIBERSCNT)*nRPotID+(ODLAYERSCNT*ODFIBERSCNT)*nLayerID+nFiberID]; } - Int_t GetMultiplicityODPos(const int nRPotID, const int nLayerID) const { return m_vecMultiplicityODPos[(ODPLATESCNT)*nRPotID+nLayerID]; } - Int_t GetFiberHitsODNeg(const int nRPotID, const int nLayerID, const int nFiberID) const { return m_vecFiberHitsODNeg[(ODPLATESCNT*ODLAYERSCNT*ODFIBERSCNT)*nRPotID+(ODLAYERSCNT*ODFIBERSCNT)*nLayerID+nFiberID]; } - Int_t GetMultiplicityODNeg(const int nRPotID, const int nLayerID) const { return m_vecMultiplicityODNeg[(ODPLATESCNT)*nRPotID+nLayerID]; } - - //LocRecEvCollection & LocRecODEvCollection - Int_t GetMaxTrackCnt() const { return m_nMaxTrackCnt; } - Float_t GetXDetCS(const int nRPotID, const int nTrackID) const { return m_vecXDetCS[m_nMaxTrackCnt*nRPotID+nTrackID]; } - Float_t GetYDetCS(const int nRPotID, const int nTrackID) const { return m_vecYDetCS[m_nMaxTrackCnt*nRPotID+nTrackID]; } - Int_t GetDetectorPartID(const int nRPotID, const int nTrackID) const { return m_vecDetectorPartID[m_nMaxTrackCnt*nRPotID+nTrackID]; } - Float_t GetOverU(const int nRPotID, const int nTrackID) const { return m_vecOverU[m_nMaxTrackCnt*nRPotID+nTrackID]; } - Float_t GetOverV(const int nRPotID, const int nTrackID) const { return m_vecOverV[m_nMaxTrackCnt*nRPotID+nTrackID]; } - Float_t GetOverY(const int nRPotID, const int nTrackID) const { return m_vecOverY[m_nMaxTrackCnt*nRPotID+nTrackID]; } - Int_t GetNumU(const int nRPotID, const int nTrackID) const { return m_vecNumU[m_nMaxTrackCnt*nRPotID+nTrackID]; } - Int_t GetNumV(const int nRPotID, const int nTrackID) const { return m_vecNumV[m_nMaxTrackCnt*nRPotID+nTrackID]; } - Int_t GetNumY(const int nRPotID, const int nTrackID) const { return m_vecNumY[m_nMaxTrackCnt*nRPotID+nTrackID]; } - Int_t GetMDFibSel(const int nRPotID, const int nTrackID, const int nLayerID) const { return m_vecMDFibSel[(m_nMaxTrackCnt*MDLAYERSCNT*MDPLATESCNT)*nRPotID+(MDLAYERSCNT*MDPLATESCNT)*nTrackID+nLayerID]; } - Int_t GetODFibSel(const int nRPotID, const int nTrackID, const int nLayerID) const { return m_vecODFibSel[(m_nMaxTrackCnt*ODPLATESCNT)*nRPotID+(ODPLATESCNT)*nTrackID+nLayerID]; } - - //LocRecCorrEvCollection & LocRecCorrODEvCollection - Float_t GetXLhcCS(const int nRPotID, const int nTrackID) const { return m_vecXLhcCS[m_nMaxTrackCnt*nRPotID+nTrackID]; } - Float_t GetYLhcCS(const int nRPotID, const int nTrackID) const { return m_vecYLhcCS[m_nMaxTrackCnt*nRPotID+nTrackID]; } - Float_t GetZLhcCS(const int nRPotID, const int nTrackID) const { return m_vecZLhcCS[m_nMaxTrackCnt*nRPotID+nTrackID]; } - Float_t GetXRPotCS(const int nRPotID, const int nTrackID) const { return m_vecXRPotCS[m_nMaxTrackCnt*nRPotID+nTrackID]; } - Float_t GetYRPotCS(const int nRPotID, const int nTrackID) const { return m_vecYRPotCS[m_nMaxTrackCnt*nRPotID+nTrackID]; } - Float_t GetXStatCS(const int nRPotID, const int nTrackID) const { return m_vecXStatCS[m_nMaxTrackCnt*nRPotID+nTrackID]; } - Float_t GetYStatCS(const int nRPotID, const int nTrackID) const { return m_vecYStatCS[m_nMaxTrackCnt*nRPotID+nTrackID]; } - Float_t GetXBeamCS(const int nRPotID, const int nTrackID) const { return m_vecXBeamCS[m_nMaxTrackCnt*nRPotID+nTrackID]; } - Float_t GetYBeamCS(const int nRPotID, const int nTrackID) const { return m_vecYBeamCS[m_nMaxTrackCnt*nRPotID+nTrackID]; } - -private: - //EventInfo - UInt_t m_uRunNumber; - UInt_t m_uLumiBlockNumber; - UInt_t m_uEventNumber; - UInt_t m_uTimeStamp; - UInt_t m_uTimeStampNs; - - //DCS IDs - ULong64_t m_ullDcsBlm; - ULong64_t m_ullDcsHVChannel; - ULong64_t m_ullDcsLocalMonitoring; - ULong64_t m_ullDcsMovement; - ULong64_t m_ullDcsRadMon; - ULong64_t m_ullDcsTriggerRates; - ULong64_t m_ullDcsFEConfiguration; - ULong64_t m_ullDcsTriggerSettings; - - //RawDataContainer - vector<Int_t> m_vecScaler;//[RPOTSCNT] - Int_t m_nBCId; - Int_t m_nTimeStp; - Int_t m_nTimeStpNs; - vector<Int_t> m_vecTrigPat;//[RPOTSCNT][TRIGPATCNT] - - //DigitCollection - vector<Int_t> m_vecFiberHitsMD;//[RPOTSCNT][MDLAYERSCNT*MDPLATESCNT][MDFIBERSCNT] - vector<Int_t> m_vecMultiplicityMD;//[RPOTSCNT][MDLAYERSCNT*MDPLATESCNT] - - //ODDigitCollection - vector<Int_t> m_vecFiberHitsODPos;//[RPOTSCNT][ODPLATESCNT][ODLAYERSCNT*ODFIBERSCNT] - vector<Int_t> m_vecFiberHitsODNeg;//[RPOTSCNT][ODPLATESCNT][ODLAYERSCNT*ODFIBERSCNT] - vector<Int_t> m_vecMultiplicityODPos;//[RPOTSCNT][ODPLATESCNT] - vector<Int_t> m_vecMultiplicityODNeg;//[RPOTSCNT][ODPLATESCNT] - - //LocRecEvCollection & LocRecODEvCollection - Int_t m_nMaxTrackCnt; - vector<Float_t> m_vecXDetCS; - vector<Float_t> m_vecYDetCS; - vector<Int_t> m_vecDetectorPartID; - vector<Float_t> m_vecOverU; - vector<Float_t> m_vecOverV; - vector<Float_t> m_vecOverY; - vector<Int_t> m_vecNumU; - vector<Int_t> m_vecNumV; - vector<Int_t> m_vecNumY; - vector<Int_t> m_vecMDFibSel; - vector<Int_t> m_vecODFibSel; - - //LocRecCorrEvCollection & LocRecCorrODEvCollection - vector<Float_t> m_vecXLhcCS; - vector<Float_t> m_vecYLhcCS; - vector<Float_t> m_vecZLhcCS; - vector<Float_t> m_vecXRPotCS; - vector<Float_t> m_vecYRPotCS; - vector<Float_t> m_vecXStatCS; - vector<Float_t> m_vecYStatCS; - vector<Float_t> m_vecXBeamCS; - vector<Float_t> m_vecYBeamCS; - -public: - ClassDef(CAlfaEvent,1); -}; - -#endif // CALFAEVENT_H diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/macros/ALFA/CD3PDHelper.cxx b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/macros/ALFA/CD3PDHelper.cxx deleted file mode 100644 index 74b9e37fefec622a868a00f247d0fb747503e451..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/macros/ALFA/CD3PDHelper.cxx +++ /dev/null @@ -1,186 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "TList.h" -#include "TSeqCollection.h" -//#include "TH1F.h" - -#include<list> - -class CD3PDHelper -{ - -public: - static void FilterByDetector(TSeqCollection& Coll, TSeqCollection& FilteredColl, const int nRPid, const int nDetector) - { - FilteredColl.Clear(); - TIter iter(&Coll); - - printf("Filter events hiting Detector=%i in RP=%i\r\n",nDetector,nRPid); - while(iter.Next()){ - CTrackingData* pdata=(CTrackingData*)(*iter); - if(pdata->HasTrackInDetector(nRPid,nDetector)){ - FilteredColl.Add(pdata); - } - } - } - - static void FilterByDetectorInRPs(TSeqCollection& Coll, TSeqCollection& FilteredColl, const int arrRPid[], const int nRPcnt, const int nDetector) - { - bool bRes=true; - int i; - - FilteredColl.Clear(); - TIter iter(&Coll); - - //printf("Filter events hiting Detector=%i.\r\n",nDetector); - while(iter.Next()){ - bRes=true; - CTrackingData* pdata=(CTrackingData*)(*iter); - for(i=0;i<nRPcnt;i++){ - bRes&=pdata->HasTrackInDetector(arrRPid[i],nDetector); - } - - if(bRes) FilteredColl.Add(pdata); - } - } - - static void GetDataInDetector(TSeqCollection& Coll, list<float>& DataColl, eDataItem eItem, const int nRPid, const int nDetector) - { - DataColl.clear(); - TIter iter(&Coll); - - //printf("Fill data hiting Detector=%i in RP=%i.\r\n",nDetector,nRPid); - while(iter.Next()){ - CTrackingData* pdata=(CTrackingData*)(*iter); - pdata->FillDataInDetector(DataColl,eItem,nRPid,nDetector); - } - } - - static TH1F* CreateHistogram(list<Float_t>& DataColl, const char szName[], const char szTitle[], int nBinCnt=-1, const bool bNormalize=false) - { - TH1F* pHist; - Long64_t nEntries; - Float_t fVal; - Float_t fMin=9999, fMax=-9999; - - nEntries=DataColl.size(); - list<Float_t>::iterator iter; - for(iter=DataColl.begin();iter!=DataColl.end();iter++) - { - fVal=(*iter); - if(fVal>fMax) fMax=fVal; - if(fVal<fMin) fMin=fVal; - } - - if(nBinCnt<=0){ - if(nEntries<=100) nBinCnt=10; - else if(nEntries<2500) nBinCnt=(Long64_t)(0.1*nEntries); - else nBinCnt=250; - } - - pHist=new TH1F(szName,szTitle,nBinCnt,fMin,fMax); - - for(iter=DataColl.begin();iter!=DataColl.end();iter++) - { - pHist->Fill(*iter); - } - - if(bNormalize==true){ - pHist->Scale(1.0/pHist->Integral()); - } - - return pHist; - } - - static void GEComputeDr(TSeqCollection& DataColl, list<float>& listDr, eGoldenEventsBranch eGEBranch) - { - const int arrB1RPids[4]={0, 2, 5, 7}; - const int arrB2RPids[4]={1, 3, 4, 6}; - const int* pnRPids=(eGEBranch==EGEB_B1)? arrB1RPids:arrB2RPids; - - listDr.clear(); - TList FDataColl; - CAlgHelper::FilterByDetectorInRPs(DataColl, FDataColl, pnRPids, 4, 1); - - list<float> listX2, listY2, listX5, listY5; - list<float>::iterator iterX2,iterY2, iterX5, iterY5; - CAlgHelper::GetDataInDetector(FDataColl, listX2, EDI_XLHC, (eGEBranch==EGEB_B1)? 2:3, 1); - CAlgHelper::GetDataInDetector(FDataColl, listY2, EDI_YLHC, (eGEBranch==EGEB_B1)? 2:3, 1); - CAlgHelper::GetDataInDetector(FDataColl, listX5, EDI_XLHC, (eGEBranch==EGEB_B1)? 5:4, 1); - CAlgHelper::GetDataInDetector(FDataColl, listY5, EDI_YLHC, (eGEBranch==EGEB_B1)? 5:4, 1); - - //printf("Entries X2: %i\r\n", listX2.size()); - //printf("Entries Y2: %i\r\n", listY2.size()); - //printf("Entries X5: %i\r\n", listX5.size()); - //printf("Entries Y5: %i\r\n", listY5.size()); - - int ncnt=listX2.size(); - - if(ncnt>0){ - iterX2=listX2.begin(); iterY2=listY2.begin(); - iterX5=listX5.begin(); iterY5=listY5.begin(); - for(int i=0;i<ncnt;i++){ - listDr.push_back(sqrt(((*iterX2)+(*iterX5))*((*iterX2)+(*iterX5))+((*iterY2)+(*iterY5))*((*iterY2)+(*iterY5)))); - iterX2++; iterY2++; - iterX5++; iterY5++; - } - } - } - - static void ComputeDiffs(TSeqCollection& DataColl, list<float>& listRes, const int nRPid1, const int nRPid2, const int nDetector, eDataItem eItem) - { - int* pnRPids=new int[2]; - pnRPids[0]=nRPid1; pnRPids[1]=nRPid2; - - listRes.clear(); - TList FDataColl; - CAlgHelper::FilterByDetectorInRPs(DataColl, FDataColl, pnRPids, 2, nDetector); - - list<float> listX1, listX2; - list<float>::iterator iterX1,iterX2; - CAlgHelper::GetDataInDetector(FDataColl, listX1, eItem, nRPid1, nDetector); - CAlgHelper::GetDataInDetector(FDataColl, listX2, eItem, nRPid1, nDetector); - - int ncnt=listX1.size(); - - if(ncnt>0){ - iterX1=listX1.begin(); iterX2=listX2.begin(); - for(int i=0;i<ncnt;i++){ - listRes.push_back((*iterX2)-(*iterX1)); - iterX1++; iterX2++; - } - } - - if(pnRPids) delete [] pnRPids; - } - - static void ComputeDiffs(TSeqCollection& DataColl1, TSeqCollection& DataColl2, list<float>& listRes, const int nRPid, const int nDetector, eDataItem eItem) - { - listRes.clear(); - TList FDataColl1, FDataColl2; - CAlgHelper::FilterByDetector(DataColl1, FDataColl1, nRPid, nDetector); - CAlgHelper::FilterByDetector(DataColl2, FDataColl2, nRPid, nDetector); - - list<float> listX1, listX2; - list<float>::iterator iterX1,iterX2; - CAlgHelper::GetDataInDetector(FDataColl1, listX1, eItem, nRPid, nDetector); - CAlgHelper::GetDataInDetector(FDataColl2, listX2, eItem, nRPid, nDetector); - - if(listX1.size()!=listX2.size()){ - printf("Error in difference calculations, different collection size: Cnt1=%i vs. Cnt2=%i\r\n",listX1.size(),listX2.size()); - return; - } - - int ncnt=listX1.size(); - - if(ncnt>0){ - iterX1=listX1.begin(); iterX2=listX2.begin(); - for(int i=0;i<ncnt;i++){ - listRes.push_back((*iterX2)-(*iterX1)); - iterX1++; iterX2++; - } - } - } -}; diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/macros/ALFA/Constants.h b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/macros/ALFA/Constants.h deleted file mode 100644 index 6c7dfcf46b96139371c15d6c8756794d8b3f1e15..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/macros/ALFA/Constants.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef CONSTANTS_H -#define CONSTANTS_H - -#define RPOTSCNT 8 -#define MDLAYERSCNT 2 -#define MDPLATESCNT 10 -#define MDFIBERSCNT 64 -#define ODLAYERSCNT 2 -#define ODPLATESCNT 3 -#define ODFIBERSCNT 15 - -#define TRIGPATCNT 16 -#define BLMCNT 6 -#define HVCHANNELCNT 216 -#define RADMONCNT 4 -#define FECNFTHRESHLOLDCNT 3 -#define FECNFGAINCNT 5 -#define TRIGSETCNT 6 -#define TRIGSETLATENCYCNT 3 - -#define MAXNUMTRACKS 100 -#define MAXNUMGLOBTRACKS 100 -#define MAXNUMGENPARTICLES 100 - -#endif // CONSTANTS_H diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/macros/ALFA/DictLoader.cxx b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/macros/ALFA/DictLoader.cxx deleted file mode 100644 index 4931412f970c60b163e84e608850c2a3a3ade04c..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/macros/ALFA/DictLoader.cxx +++ /dev/null @@ -1,26 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "Constants.h" - -// loader for dictionary generator -#include <vector> -#include <map> -//using namespace std; - -#include "CAlfaEvent.h" - -#ifdef __MAKECINT__ -#pragma link C++ class vector<vector<float> >+; -#pragma link C++ class vector<vector<int> >+; - -#pragma link C++ class map<ULong64_t,DCSBLM>+; -#pragma link C++ class map<ULong64_t,DCSHVCHANNEL>+; -#pragma link C++ class map<ULong64_t,DCSLOCALMONITORING>+; -#pragma link C++ class map<ULong64_t,DCSMOVEMENT>+; -#pragma link C++ class map<ULong64_t,DCSRADMON>+; -#pragma link C++ class map<ULong64_t,DCSTRIGGERRATES>+; -#pragma link C++ class map<ULong64_t,DCSFECONFIGURATION>+; -#pragma link C++ class map<ULong64_t,DCSTRIGGERSETTINGS>+; -#endif diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/macros/ALFA/readd3pd.cxx b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/macros/ALFA/readd3pd.cxx deleted file mode 100644 index 87fb450c76ec6d1bdb841de073abe800ef9fe9ae..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/macros/ALFA/readd3pd.cxx +++ /dev/null @@ -1,90 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -// The "main" function - -#include "Constants.h" -//#include "CAlfaEvent.h" - -// ROOT -#include "TROOT.h" -#include "TFile.h" -#include "TList.h" - -#include <map> -//using namespace std; - -void readd3pd(const char* szFilename, Long64_t nEventCnt) -{ - if(!TClass::GetDict("CAlfaEvent")){ - printf("Loading CAlfaEvent ...\r\n"); - gROOT->ProcessLine(".L CAlfaEvent.cxx+"); - } - - gROOT->ProcessLine(".L DictLoader.cxx+"); - - //--- Load DCS data - printf("Load DCS data ...\r\n"); - map<ULong64_t,DCSBLM> mapDcsBlm; - map<ULong64_t,DCSHVCHANNEL> mapDcsHVChannel; - map<ULong64_t,DCSLOCALMONITORING> mapDcsLocalMonitoring; - map<ULong64_t,DCSMOVEMENT> mapDcsMovement; - map<ULong64_t,DCSRADMON> mapDcsRadMon; - map<ULong64_t,DCSTRIGGERRATES> mapDcsTriggerRates; - map<ULong64_t,DCSFECONFIGURATION> mapDcsFEConfiguration; - map<ULong64_t,DCSTRIGGERSETTINGS> mapDcsTriggerSettings; - - //Specify paths - CAlfaEvent::SetNTuplePaths("MinBiasTree","MinBiasTreeMeta"); - - CAlfaEvent::FillDcsBlmMap(szFilename, mapDcsBlm); - CAlfaEvent::FillDcsHVChannelMap(szFilename, mapDcsHVChannel); - CAlfaEvent::FillDcsLocalMonitoringMap(szFilename, mapDcsLocalMonitoring); - CAlfaEvent::FillDcsMovementMap(szFilename, mapDcsMovement); - CAlfaEvent::FillDcsRadMonMap(szFilename, mapDcsRadMon); - CAlfaEvent::FillDcsTriggerRatesMap(szFilename, mapDcsTriggerRates); - CAlfaEvent::FillDcsFEConfigurationMap(szFilename, mapDcsFEConfiguration); - CAlfaEvent::FillDcsTriggerSettingsMap(szFilename, mapDcsTriggerSettings); - - printf("Number of BLM records=%i\r\n",mapDcsBlm.size()); - printf("Number of HVCHANNEL records=%i\r\n",mapDcsHVChannel.size()); - printf("Number of LOCALMONITORING records=%i\r\n",mapDcsLocalMonitoring.size()); - printf("Number of MOVEMENT records=%i\r\n",mapDcsMovement.size()); - printf("Number of RADMON records=%i\r\n",mapDcsRadMon.size()); - printf("Number of TRIGGERRATE records=%i\r\n",mapDcsTriggerRates.size()); - printf("Number of FECONFIGURATION records=%i\r\n",mapDcsFEConfiguration.size()); - printf("Number of TRIGGERSETTINGS records=%i\r\n",mapDcsTriggerSettings.size()); - printf("... done.\r\n"); - - //--- Check if all events are properly linked to all DCS data - printf("\r\nCheck DCS data ...\r\n"); - bool bRes=CAlfaEvent::CheckDcsLink(szFilename, nEventCnt); - printf("Check status: %s\r\n",bRes? "success":"failure"); - printf("... done.\r\n"); - - //--- Read single entry and print out - printf("\r\nRead single entry ...\r\n"); - Long64_t nEventEntry=5; - CAlfaEvent* pEventData=CAlfaEvent::GetEntry(szFilename, nEventEntry); - if(pEventData!=NULL) - { - //print event's info - pEventData->PrintEventHeader(); - //pEventData->PrintTrackingData(); - - printf("Event #%i: LVDT(A7L1U)=%.3f mm\r\n",pEventData->GetEventNumber(), mapDcsMovement[pEventData->GetDcsMovementID()].arrLVDT[2]); - } - printf("... done.\r\n"); - - //--- Load all data into TList in one step - /* - printf("\r\nLoad all data ...\r\n"); - Long64_t nEventCntRead=0; - TList listAlfaData; - nEventCntRead=CAlfaEvent::LoadEvents(szFilename, listAlfaData, nEventCnt); - printf("Number of loaded events: %i\r\n", nEventCntRead);*/ - - gROOT->Reset(); -} - diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/macros/FilterD3PD.C b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/macros/FilterD3PD.C deleted file mode 100644 index 0d634eae89d050ee3bf190e73e2f73d224142f0e..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/macros/FilterD3PD.C +++ /dev/null @@ -1,309 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include <iomanip> -#include <iostream> -#include <vector> -#include <TTree.h> -#include <TFile.h> -#include <cmath> - -bool FilterEvent(unsigned int LBNStart, unsigned int LBNEnd, bool MBTSCut, bool vertexCut, double MBTSTimeCut); -bool JetFilterEvent(double jetEtMinGeV); -bool MuonFilterEvent(double jetEtMinGeV); - -UInt_t EventNumber; -Int_t vx_n; -UInt_t lbn; -std::vector<unsigned int> *trig_L1_TAV; - -Float_t mbtime_timeDiff; -Float_t mbtime_timeA; -Float_t mbtime_timeC; -Int_t mbtime_countA; -Int_t mbtime_countC; - -Int_t antikt4HI_TowerJets_n; -vector<float> *antikt4HI_TowerJets_E; -vector<float> *antikt4HI_TowerJets_pt; -vector<float> *antikt4HI_TowerJets_m; -vector<float> *antikt4HI_TowerJets_eta; -vector<float> *antikt4HI_TowerJets_phi; - -Int_t mu_staco_n; -vector<float> *mu_staco_E; -vector<float> *mu_staco_pt; -vector<float> *mu_staco_m; -vector<float> *mu_staco_eta; -vector<float> *mu_staco_phi; - -// Branches -// -TBranch *b_EventNumber; -TBranch *b_lbn; -TBranch *b_vx_n; -TBranch *b_trig_L1_TAV; - -TBranch *b_mbtime_timeDiff; -TBranch *b_mbtime_timeA; -TBranch *b_mbtime_timeC; -TBranch *b_mbtime_countA; -TBranch *b_mbtime_countC; - -TBranch *b_antikt4HI_TowerJets_n; -TBranch *b_antikt4HI_TowerJets_E; -TBranch *b_antikt4HI_TowerJets_pt; -TBranch *b_antikt4HI_TowerJets_m; -TBranch *b_antikt4HI_TowerJets_eta; -TBranch *b_antikt4HI_TowerJets_phi; - -TBranch *b_mu_staco_n; -TBranch *b_mu_staco_E; -TBranch *b_mu_staco_pt; -TBranch *b_mu_staco_m; -TBranch *b_mu_staco_eta; -TBranch *b_mu_staco_phi; - -// The main filter routine -// -void FilterD3PD(const char* inputFile, int LBNStart, int LBNEnd, bool MBTSCut, bool vertexCut, double MBTSTimeCut, - bool writeMinBias, const char* outputFile, bool doJetFiltering = false, - const char* outJetFile = 0, double jetEtMinGeV = 100, - bool doMuonFiltering = false, const char* outMuonFile = 0, double muonPtMinGeV = 20) -{ - - TFile inputTFile(inputFile); - if (!inputTFile.IsOpen()) { - std::cout << "Error opening input file, quitting" << std::endl; - return; - } - - TTree* inputTree_p = (TTree*) inputTFile.GetObjectChecked("HeavyIonD3PD", "TTree"); - if (inputTree_p == 0) { - std::cout << "Error reading tree from opening input file, quitting" << std::endl; - return; - } - - std::cout << std::endl; - std::cout << "Running filter on %s" << inputFile << " LB range " - << LBNStart << " " << LBNEnd << std::endl; - std::cout << "Output to %s" << outputFile << std::endl; - std::cout << "MBTSCut " << MBTSCut << " time cut " << MBTSTimeCut - << " vertexCut " << vertexCut << std::endl; - std::cout << std::endl; - - // Set branch addresses for data we need - // - trig_L1_TAV = 0; - - inputTree_p->SetBranchAddress("EventNumber", &EventNumber, &b_EventNumber); - inputTree_p->SetBranchAddress("lbn", &lbn, &b_lbn); - inputTree_p->SetBranchAddress("vx_n", &vx_n, &b_vx_n); - inputTree_p->SetBranchAddress("trig_L1_TAV", &trig_L1_TAV, &b_trig_L1_TAV); - inputTree_p->SetBranchAddress("mbtime_timeDiff", &mbtime_timeDiff, &b_mbtime_timeDiff); - inputTree_p->SetBranchAddress("mbtime_timeA", &mbtime_timeA, &b_mbtime_timeA); - inputTree_p->SetBranchAddress("mbtime_timeC", &mbtime_timeC, &b_mbtime_timeC); - inputTree_p->SetBranchAddress("mbtime_countA", &mbtime_countA, &b_mbtime_countA); - inputTree_p->SetBranchAddress("mbtime_countC", &mbtime_countC, &b_mbtime_countC); - - // Make sure we open the output file before cloning so output tree has oplace to write data. - // - TFile* outMinBiasTFile_p = 0; - TTree* minBiasTree_p = 0; - - if (writeMinBias) { - outMinBiasTFile_p = new TFile(outputFile, "recreate"); - if (!outMinBiasTFile_p->IsOpen()) { - std::cout << "Error opening output file, quitting" << std::endl; - return; - } - - // Now clone the input tree - // - minBiasTree_p = (TTree*) inputTree_p->CloneTree(0); - } - - TFile* outJetTFile_p = 0; - TTree* jetCloneTree_p = 0; - if (doJetFiltering) { - outJetTFile_p = new TFile(outJetFile, "recreate"); - if (!outJetTFile_p->IsOpen()) { - std::cout << "Error opening output jet file, quitting" << std::endl; - return; - } - - jetCloneTree_p = (TTree*) inputTree_p->CloneTree(0); - - antikt4HI_TowerJets_E = 0; - antikt4HI_TowerJets_pt = 0; - antikt4HI_TowerJets_m = 0; - antikt4HI_TowerJets_eta = 0; - antikt4HI_TowerJets_phi = 0; - - inputTree_p->SetBranchAddress("antikt4HI_TowerJets_n", &antikt4HI_TowerJets_n, &b_antikt4HI_TowerJets_n); - inputTree_p->SetBranchAddress("antikt4HI_TowerJets_E", &antikt4HI_TowerJets_E, &b_antikt4HI_TowerJets_E); - inputTree_p->SetBranchAddress("antikt4HI_TowerJets_pt", &antikt4HI_TowerJets_pt, &b_antikt4HI_TowerJets_pt); - inputTree_p->SetBranchAddress("antikt4HI_TowerJets_m", &antikt4HI_TowerJets_m, &b_antikt4HI_TowerJets_m); - inputTree_p->SetBranchAddress("antikt4HI_TowerJets_eta", &antikt4HI_TowerJets_eta, &b_antikt4HI_TowerJets_eta); - inputTree_p->SetBranchAddress("antikt4HI_TowerJets_phi", &antikt4HI_TowerJets_phi, &b_antikt4HI_TowerJets_phi); - } - - TFile* outMuonTFile_p = 0; - TTree* muonCloneTree_p = 0; - if (doMuonFiltering) { - outMuonTFile_p = new TFile(outMuonFile, "recreate"); - if (!outMuonTFile_p->IsOpen()) { - std::cout << "Error opening output muon file, quitting" << std::endl; - return; - } - - muonCloneTree_p = (TTree*) inputTree_p->CloneTree(0); - - mu_staco_E = 0; - mu_staco_pt = 0; - mu_staco_m = 0; - mu_staco_eta = 0; - mu_staco_phi = 0; - - inputTree_p->SetBranchAddress("mu_staco_n", &mu_staco_n, &b_mu_staco_n); - inputTree_p->SetBranchAddress("mu_staco_E", &mu_staco_E, &b_mu_staco_E); - inputTree_p->SetBranchAddress("mu_staco_pt", &mu_staco_pt, &b_mu_staco_pt); -// inputTree_p->SetBranchAddress("mu_staco_m", &mu_staco_m, &b_mu_staco_m); - inputTree_p->SetBranchAddress("mu_staco_eta", &mu_staco_eta, &b_mu_staco_eta); - inputTree_p->SetBranchAddress("mu_staco_phi", &mu_staco_phi, &b_mu_staco_phi); - } - - //std::cout << "Processing " << inputFile << std::endl; - - // Now loop and perform the filling after cuts - // - int numEntries = inputTree_p->GetEntries(); - int numJetEvents = 0; - int numMuonEvents = 0; - int numCopied = 0; - int numPassLBN = 0; - int numPassMinBias = 0; - - for (int iEntry = 0; iEntry < numEntries; iEntry++) { - int nbytes = inputTree_p->GetEntry(iEntry); - if (nbytes <= 0) { - std::cout << "Error reading entry " << iEntry << " From tree, skipping" << std::endl; - continue; - } - - if(!(iEntry%1000)) - std::cout << "checking event " << iEntry << std::endl; - - if (!((lbn < LBNStart) || (lbn > LBNEnd))) - numPassLBN++; - - // Test the filter - // - if (FilterEvent(LBNStart, LBNEnd, MBTSCut, vertexCut, MBTSTimeCut)) { - numPassMinBias++; - - if (writeMinBias) { - //std::cout << "Filling new tree for event " << iEntry << std::endl; - minBiasTree_p->Fill(); - numCopied++; - } - - if (doJetFiltering) { - if (JetFilterEvent(jetEtMinGeV)) { - numJetEvents++; - jetCloneTree_p->Fill(); - } - } - - if (doMuonFiltering) { - if (MuonFilterEvent(muonPtMinGeV)) { - numMuonEvents++; - muonCloneTree_p->Fill(); - } - } - } - } - - std::cout << "All entries " << numEntries << " Passed after LBN cuts: " << numPassLBN << std::endl; - std::cout << " Passed min-bias cuts: " << numPassMinBias << " , fraction = " << ((float) numPassMinBias)/((float)numEntries) << std::endl; - std::cout << " Copied " << numCopied << " minimum bias Events, fraction = " << ((float) numCopied)/((float)numEntries) << std::endl; - std::cout << " Copied " << numJetEvents << " Jet Events " << std::endl; - std::cout << " Copied " << numMuonEvents << " Muon Events " << std::endl; - - // minBiasTree_p->Print(); - if (writeMinBias) { - if (numCopied > 0) minBiasTree_p->AutoSave(); - outMinBiasTFile_p->Close(); - } - - if (doJetFiltering) { - if (numJetEvents > 0) jetCloneTree_p->AutoSave(); - outJetTFile_p->Close(); - } - - if (doMuonFiltering) { - if (numMuonEvents > 0) muonCloneTree_p->AutoSave(); - outMuonTFile_p->Close(); - } -} - -bool FilterEvent(unsigned int LBNStart, unsigned int LBNEnd, bool MBTSCut, bool vertexCut, double MBTSTimeCut) -{ - - if ((lbn < LBNStart) || (lbn > LBNEnd)) return false; - - if (MBTSCut) { - - bool passMBTS = (( (*trig_L1_TAV)[7]&0x10) == 0); - bool passZDCAND = (((*trig_L1_TAV)[5]&0x20000000) != 0); - bool passTE50 = (((*trig_L1_TAV)[4]&0x400) != 0); - bool passLucid = (((*trig_L1_TAV)[6]&400000) != 0); - - if (!passMBTS && !passZDCAND && !passTE50 && !passLucid) return false; - if (mbtime_timeA == 0) return false; - if (mbtime_timeC == 0) return false; - if (fabs(mbtime_timeA - mbtime_timeC) > MBTSTimeCut) return false; - } - - if (vertexCut) { - if (vx_n < 2) return false; - } - - return true; -} - -bool JetFilterEvent(double jetEtMinGeV) -{ - for (int ijet = 0; ijet < antikt4HI_TowerJets_n; ijet++) { - double eta = (*antikt4HI_TowerJets_eta)[ijet]; - double et = (*antikt4HI_TowerJets_E)[ijet]/1000 / std::cosh(eta); - - if (et > jetEtMinGeV) { - std::cout << "Found jet in event " << EventNumber << ", lbn = " << lbn << ", et = " << std::setprecision(5) << std::setw(7) << et - << ", " << std::setprecision(5) << std::setw(7) << eta << ", " << std::setprecision(5) << std::setw(7) - << (*antikt4HI_TowerJets_phi)[ijet]/1000 << std::endl; - return true; - } - } - - return false; -} - -bool MuonFilterEvent(double muonPtMinGeV) -{ - for (int imuon = 0; imuon < mu_staco_n; imuon++) { - double eta = (*mu_staco_eta)[imuon]; - double pt = (*mu_staco_pt)[imuon]/1000; - - if (pt > muonPtMinGeV) { - std::cout << "Found muon in event " << EventNumber << ", lbn = " << lbn << ", pt = " << std::setprecision(5) << std::setw(7) << pt - << ", " << std::setprecision(5) << std::setw(7) << eta << ", " << std::setprecision(5) << std::setw(7) - << (*mu_staco_phi)[imuon] << std::endl; - return true; - } - } - - return false; -} - diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/python/AfpD3PDObjects.py b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/python/AfpD3PDObjects.py deleted file mode 100644 index ef81c44b3e89283a4d377f89a963aa7b6977aa37..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/python/AfpD3PDObjects.py +++ /dev/null @@ -1,28 +0,0 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration - -from D3PDMakerCoreComps.D3PDObject import make_SG_D3PDObject -import ForwardDetectorsD3PDMaker - -AfpSIDSimHitD3PDObject=make_SG_D3PDObject("AtlasHitsVector<AFP_SIDSimHit>","AFP_SIDSimHitCollection","afp_sidsim_", "AfpSIDSimHitD3PDObject" ) -AfpSIDSimHitD3PDObject.defineBlock(0, 'AFP_SIDSimHitCollection', ForwardDetectorsD3PDMaker.AfpSIDSimHitCollectionFillerTool) - -AfpTDSimHitD3PDObject=make_SG_D3PDObject("AtlasHitsVector<AFP_TDSimHit>","AFP_TDSimHitCollection","afp_tdsim_", "AfpTDSimHitD3PDObject" ) -AfpTDSimHitD3PDObject.defineBlock(0, 'AFP_TDSimHitCollection', ForwardDetectorsD3PDMaker.AfpTDSimHitCollectionFillerTool) - -AfpSIDDigiD3PDObject=make_SG_D3PDObject("AtlasHitsVector<AFP_SiDigi>","AFP_SiDigiCollection","afp_siddigi_", "AfpSIDDigiD3PDObject" ) -AfpSIDDigiD3PDObject.defineBlock(0, 'AFP_SiDigiCollection', ForwardDetectorsD3PDMaker.AfpSIDDigiCollectionFillerTool) - -AfpTDDigiD3PDObject=make_SG_D3PDObject("AtlasHitsVector<AFP_TDDigi>","AFP_TDDigiCollection","afp_tddigi_", "AfpTDDigiD3PDObject" ) -AfpTDDigiD3PDObject.defineBlock(0, 'AFP_TDDigiCollection', ForwardDetectorsD3PDMaker.AfpTDDigiCollectionFillerTool) - -AfpSIDLocRecoEvD3PDObject=make_SG_D3PDObject("AFP_SIDLocRecoEvCollection","AFP_SIDLocRecoEvCollection","afp_sidreco_", "AfpSIDLocRecoEvD3PDObject" ) -AfpSIDLocRecoEvD3PDObject.defineBlock(0, 'AFP_SIDLocRecoEvCollection', ForwardDetectorsD3PDMaker.AfpSIDLocRecoEvCollectionFillerTool) - -AfpTDLocRecoEvD3PDObject=make_SG_D3PDObject("AFP_TDLocRecoEvCollection","AFP_TDLocRecoEvCollection","afp_tdreco_", "AfpTDLocRecoEvD3PDObject" ) -AfpTDLocRecoEvD3PDObject.defineBlock(0, 'AFP_TDLocRecoEvCollection', ForwardDetectorsD3PDMaker.AfpTDLocRecoEvCollectionFillerTool) - -AfpTruthInfoD3PDObjectTE = make_SG_D3PDObject( "McEventCollection", "TruthEvent", "afpmc_", "AfpTruthInfoD3PDObject" ) -AfpTruthInfoD3PDObjectTE.defineBlock(0, 'AFP_McEventCollection', ForwardDetectorsD3PDMaker.AfpTruthInfoFillerTool ) - -AfpTruthInfoD3PDObjectAOD = make_SG_D3PDObject( "McEventCollection", "GEN_AOD", "afpmc_", "AfpTruthInfoD3PDObject" ) -AfpTruthInfoD3PDObjectAOD.defineBlock(0, 'AFP_McEventCollection', ForwardDetectorsD3PDMaker.AfpTruthInfoFillerTool ) diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/python/AlfaD3PDObject.py b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/python/AlfaD3PDObject.py deleted file mode 100644 index d983464f6179349801efbf498b8a59607f29709c..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/python/AlfaD3PDObject.py +++ /dev/null @@ -1,11 +0,0 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration - -from D3PDMakerCoreComps.D3PDObject import make_SG_D3PDObject -import ForwardDetectorsD3PDMaker - -AlfaD3PDObject = make_SG_D3PDObject( "ALFA_CLinkEvent", "ALFA_CLinkEvent", "alfa_", "AlfaD3PDObject" ) -AlfaD3PDObject.defineBlock( 0, 'ALFA_CLinkEvent_EH', ForwardDetectorsD3PDMaker.AlfaEventHeaderFillerTool ) -AlfaD3PDObject.defineBlock( 0, 'ALFA_CLinkEvent_TD', ForwardDetectorsD3PDMaker.AlfaTrackingDataFillerTool ) - -AlfaSimHitD3PDObject=make_SG_D3PDObject("AtlasHitsVector<ALFA_Hit>","ALFA_HitCollection","alfa_simhit_", "AlfaSimHitD3PDObject" ) -AlfaSimHitD3PDObject.defineBlock(0, 'ALFA_HitCollection', ForwardDetectorsD3PDMaker.AlfaHitCollectionFillerTool) diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/python/AlfaDCSMetadata.py b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/python/AlfaDCSMetadata.py deleted file mode 100644 index 1fc70c7e08b401acb43504ffca476eb019241b7b..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/python/AlfaDCSMetadata.py +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration - - -def addAlfaDcsMetadata( d3pdalg = None ): - - """Helper function that adds the necessary tool(s) and service(s) to the - job to save the trigger configuration metadata to the output D3PD - file. - - Arguments: - d3pdalg: The D3PD::MakerAlg that is creating the D3PD. If not specified, - the configuration is saved in a file called TrigConfig.root - """ - - # Create a logger for the function: - if "logger" in dir(): orig_logger = logger - from AthenaCommon.Logging import logging - logger = logging.getLogger( "addAlfaDcsMetadata" ) - - # Let the user know what we're doing: - logger.info( "Adding ALFA DCS metadata to the D3PD" ) - - # The tool needs a special D3PDSvc in which the indexing is turned off - # for the TTree-s: - _d3pdSvcName = "AlfaDcsD3PDSvc" - from AthenaCommon.AppMgr import ServiceMgr - if not hasattr( ServiceMgr, _d3pdSvcName ): - from D3PDMakerRoot.D3PDMakerRootConf import D3PD__RootD3PDSvc - ServiceMgr += D3PD__RootD3PDSvc( _d3pdSvcName ) - ServiceMgr.AlfaDcsD3PDSvc.MasterTree = "" - ServiceMgr.AlfaDcsD3PDSvc.IndexMajor = "" - else: - logger.info( "The private D3PDSvc for the metadata TTree already exists" ) - _d3pdSvc = getattr( ServiceMgr, _d3pdSvcName ) - - # If no D3PD::MakerAlg has been provided, create a dummy one: - if d3pdalg == None: - logger.warning( "No D3PD MakerAlg given to function!" ) - logger.warning( "The DCS data will be saved into file: " + "\"AlfaDCS.root\"" ) - from AthenaCommon.AlgSequence import AlgSequence - theJob = AlgSequence() - import D3PDMakerCoreComps - d3pdalg = D3PDMakerCoreComps.MakerAlg( "AlfaDCSAlg", theJob, file = "AlfaDCS.root", D3PDSvc = _d3pdSvc ) - - # Add the metadata tool: - _d3pdToolName = "AlfaMetaDataTool" - if not _d3pdToolName in [ t.name() for t in d3pdalg.MetadataTools ]: - import ForwardDetectorsD3PDMaker - d3pdalg.MetadataTools += [ - ForwardDetectorsD3PDMaker.AlfaMetaDataTool( _d3pdToolName, D3PDSvc = _d3pdSvc, MetaDataDir=d3pdalg.TuplePath+"Meta") - ] - else: - logger.info( "AlfaMetaDataTool was already added to the D3PD::MakerAlg" ) - - # Restore the original logger if necessary: - if "orig_logger" in dir(): logger = orig_logger - - return diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/python/AlfaTruthInfoD3PDObject.py b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/python/AlfaTruthInfoD3PDObject.py deleted file mode 100644 index 251a7a9c8827d1d8c16acb46f587249d944104de..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/python/AlfaTruthInfoD3PDObject.py +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration - -from D3PDMakerCoreComps.D3PDObject import make_SG_D3PDObject -import ForwardDetectorsD3PDMaker - -AlfaTruthInfoD3PDObject = make_SG_D3PDObject( "McEventCollection", "TruthEvent", "alfamc_", "AlfaTruthInfoD3PDObject" ) - -AlfaTruthInfoD3PDObject.defineBlock( 0, 'ALFA_McEventCollection', ForwardDetectorsD3PDMaker.AlfaTruthInfoFillerTool ) diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/python/ForwardDetectorsD3PDMakerFlags.py b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/python/ForwardDetectorsD3PDMakerFlags.py deleted file mode 100644 index 03a9acba74f9ac52df3b69f763a8d7103f80dbbf..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/python/ForwardDetectorsD3PDMakerFlags.py +++ /dev/null @@ -1,103 +0,0 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration - -# @file: ForwardDetectorsD3PDMakerFlags.py -# @purpose: a container of flags for Forward Detectors D3PD maker variables -# @author: Marco Leite <leite@cern.ch> -# Based on Heavy Ions MakerFlags from Andrzej Olszewski - -""" - A container of flags for Forward Detectors D3PD maker - -""" -# -# -__author__ = 'Marco Leite' -__version__ = "$Revision: 470583 $" -__doc__ = "A container of flags for Forward Detectors D3PD maker" - -from AthenaCommon.JobProperties import JobProperty, JobPropertyContainer -from AthenaCommon.JobProperties import jobproperties - -class FileName(JobProperty): - """ - Filename of ForwardDetectors D3PD file - """ - statusOn=False - allowedTypes=['str'] - StoredValue="ForwardDetectorsD3PD.root" - -class Content(JobProperty): - """ - Switch to change content - """ - statusOn = True - allowedTypes = ['str'] - StoredValue = "full" - -class reReco(JobProperty): - """ - Run D3PD maker with rereconstruction (on ESD) - """ - statusOn = True - allowedTypes = ['bool'] - StoredValue = False - -class DoSkimming(JobProperty): - """ - Switch to turn on/off skimming - """ - statusOn = True - allowedTypes = ['bool'] - StoredValue = True - -class DoTrigger(JobProperty): - """ - Add trigger components - """ - statusOn = True - allowedTypes = ['bool'] - StoredValue = True - -class DoTruth(JobProperty): - """ - Add truth components - """ - statusOn = True - allowedTypes = ['bool'] - StoredValue = True - -class DoHijingPars(JobProperty): - """ - Add Hijing event params - """ - statusOn = True - allowedTypes = ['bool'] - StoredValue = True - -# Defines the container for heavy ion d3pd maker flags -class ForwardDetectorsMakerFlags(JobPropertyContainer): - """ - The Forward Detectors maker flag/job property container. - """ - pass - -# add the flags container to the top container -jobproperties.add_Container(ForwardDetectorsD3PDMakerFlags) - - -# We want always the following flags in the container -list_jobproperties = [ - FileName, - Content, - reReco, - DoSkimming, - DoTrigger, - DoTruth, - DoHijingPars - ] - -for i in list_jobproperties: - jobproperties.ForwardDetectorsMakerFlags.add_JobProperty(i) - -## module clean-up -del list_jobproperties diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/python/ZdcD3PDObject.py b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/python/ZdcD3PDObject.py deleted file mode 100644 index 2cf970f40bc93444f9e3d1f5d1002f96a772e177..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/python/ZdcD3PDObject.py +++ /dev/null @@ -1,14 +0,0 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration - -# $Id: ZdcD3PDObject.py 470583 2011-11-25 10:33:45Z krasznaa $ - -from D3PDMakerCoreComps.D3PDObject import make_SGDataVector_D3PDObject -import ForwardDetectorsD3PDMaker - -ZdcD3PDObject = make_SGDataVector_D3PDObject( "ZdcRawChannelCollection", - "ZdcRawChannelCollection", - "Zdc_", - "ZdcD3PDObject" ) - -ZdcD3PDObject.defineBlock( 0, 'ZdcRawChannel', - ForwardDetectorsD3PDMaker.ZdcFillerTool ) diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/python/ZdcDigitsD3PDObject.py b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/python/ZdcDigitsD3PDObject.py deleted file mode 100644 index 475a49e63aef9ff5bce64254f9623673eeaee8e9..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/python/ZdcDigitsD3PDObject.py +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration - -# $Id: ZdcDigitsD3PDObject.py 470583 2011-11-25 10:33:45Z krasznaa $ - -from D3PDMakerCoreComps.D3PDObject import make_SGDataVector_D3PDObject -import ForwardDetectorsD3PDMaker - - -ZdcDigitsD3PDObject = make_SGDataVector_D3PDObject( "ZdcDigitsCollection", - "ZdcDigitsCollection", - "ZdcDigits_", - "ZdcDigitsD3PDObject" ) - -ZdcDigitsD3PDObject.defineBlock( 0,'ZdcDigits', - ForwardDetectorsD3PDMaker.ZdcDigitsFillerTool ) diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/python/ZdcRecoD3PDObject.py b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/python/ZdcRecoD3PDObject.py deleted file mode 100644 index 7f83b49d68e085d9fca90357bfe5fdb7010089b8..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/python/ZdcRecoD3PDObject.py +++ /dev/null @@ -1,14 +0,0 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration - -# $Id: ZdcRecoD3PDObject.py 538891 2013-02-25 04:56:06Z leite $ - -from D3PDMakerCoreComps.D3PDObject import make_SG_D3PDObject -import ForwardDetectorsD3PDMaker - -ZdcRecoD3PDObject = make_SG_D3PDObject( "ZdcDigitsCollection", - "ZdcDigitsCollection", - "ZdcReco_", - "ZdcRecoD3PDObject" ) - -ZdcRecoD3PDObject.defineBlock( 0, 'ZdcDigitsCollection', - ForwardDetectorsD3PDMaker.ZdcRecoFillerTool ) diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/python/__init__.py b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/python/__init__.py deleted file mode 100644 index f6fb7a709be9c4c52198e88c182265e8375d558b..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/python/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration - -# $Id: __init__.py 470583 2011-11-25 10:33:45Z krasznaa $ - -import ForwardDetectorsD3PDMakerConf -for k, v in ForwardDetectorsD3PDMakerConf.__dict__.items(): - if k.startswith ('D3PD__'): - globals()[k[6:]] = v diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/share/AfpD3PDMaker_jobOption.py b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/share/AfpD3PDMaker_jobOption.py deleted file mode 100644 index 08ecd0f07f6b4af5470fbed0c7fd849c79e6b5c5..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/share/AfpD3PDMaker_jobOption.py +++ /dev/null @@ -1,72 +0,0 @@ -InputRootCollection = 'rootfile_AfpData.root' -OutputRootFile = 'rootfile_Afp.D3PD.root' - -from GaudiKernel.GaudiHandles import * -from GaudiKernel.Proxy.Configurable import * -import AthenaPoolCnvSvc.ReadAthenaPool -from AthenaCommon.AppMgr import ServiceMgr -from AthenaCommon.AppMgr import ToolSvc - -ServiceMgr.EventSelector.InputCollections += [InputRootCollection] -theApp.EvtMax = -1 -ServiceMgr.EventSelector.SkipEvents = 0 - -IOVDbSvc = Service( "IOVDbSvc" ) - -from IOVDbSvc.CondDB import conddb -####for other possible servers see dbreplica.config in Athena installation directory -#IOVDbSvc.dbConnection="oracle://ATLAS_COOLPROD;schema=ATLAS_COOLOFL_DCS;dbname=COMP200" - -################################################################################################### -# Load Global Flags and set defaults (import the new jobProperty globalflags) -################################################################################################### -from AthenaCommon.GlobalFlags import globalflags -from AthenaCommon.BeamFlags import jobproperties -globalflags.DetGeo = 'atlas' -globalflags.InputFormat = 'pool' -#globalflags.DetDescrVersion = DetDescrVersion -#globalflags.DataSource = 'data' # 'geant4'# - -globalflags.print_JobProperties() - -## Load algorithm to TopSequence -# -from AthenaCommon.AlgSequence import AlgSequence -topSequence = AlgSequence() - -################################################################################################### -#D3PD maker setup -################################################################################################### -import D3PDMakerCoreComps -import EventCommonD3PDMaker -from D3PDMakerCoreComps.D3PDObject import D3PDObject -from EventCommonD3PDMaker.EventInfoD3PDObject import EventInfoD3PDObject -from OutputStreamAthenaPool.MultipleStreamManager import MSMgr - -from ForwardDetectorsD3PDMaker.AfpD3PDObjects import AfpSIDSimHitD3PDObject -from ForwardDetectorsD3PDMaker.AfpD3PDObjects import AfpTDSimHitD3PDObject -from ForwardDetectorsD3PDMaker.AfpD3PDObjects import AfpSIDDigiD3PDObject -from ForwardDetectorsD3PDMaker.AfpD3PDObjects import AfpTDDigiD3PDObject -from ForwardDetectorsD3PDMaker.AfpD3PDObjects import AfpSIDLocRecoEvD3PDObject -from ForwardDetectorsD3PDMaker.AfpD3PDObjects import AfpTDLocRecoEvD3PDObject -from ForwardDetectorsD3PDMaker.AfpD3PDObjects import AfpTruthInfoD3PDObject - -alg = MSMgr.NewRootStream( "AfpD3PD", OutputRootFile, "AfpD3PDTree" ) -alg += EventInfoD3PDObject(10) -alg += AfpSIDSimHitD3PDObject(0) -alg += AfpTDSimHitD3PDObject(0) -alg += AfpSIDDigiD3PDObject(0) -alg += AfpTDDigiD3PDObject(0) -alg += AfpSIDLocRecoEvD3PDObject(0) -alg += AfpTDLocRecoEvD3PDObject(0) -alg += AfpTruthInfoD3PDObject(0) - -#-------------------------------------------------------------- -# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL ) -MessageSvc = Service( "MessageSvc" ) -MessageSvc.OutputLevel = 3 -MessageSvc.defaultLimit = 9999999 - -ClassIDSvc = Service( "ClassIDSvc" ) -ClassIDSvc.OutputLevel = 2 - diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/share/AlfaD3PDMaker_jobOption.py b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/share/AlfaD3PDMaker_jobOption.py deleted file mode 100644 index 9a86343570875fd8835355997bafa392c8478560..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/share/AlfaD3PDMaker_jobOption.py +++ /dev/null @@ -1,103 +0,0 @@ - -InputRootCollection = 'rootfile_AlfaData.root' -OutputRootFile = 'rootfile_Alfa.D3PD.root' - -from GaudiKernel.GaudiHandles import * -from GaudiKernel.Proxy.Configurable import * -import AthenaPoolCnvSvc.ReadAthenaPool -from AthenaCommon.AppMgr import ServiceMgr -from AthenaCommon.AppMgr import ToolSvc -from AthenaCommon.GlobalFlags import globalflags - -ServiceMgr.EventSelector.InputCollections += [InputRootCollection] -theApp.EvtMax = -1 -ServiceMgr.EventSelector.SkipEvents = 0 - -################################################################################################### -# Load Global Flags and set defaults (import the new jobProperty globalflags) -################################################################################################### -#from AthenaCommon.GlobalFlags import globalflags -from AthenaCommon.BeamFlags import jobproperties -globalflags.DetGeo = 'atlas' -globalflags.InputFormat = 'pool' -#globalflags.DetDescrVersion = DetDescrVersion -globalflags.DataSource = 'data' # 'geant4'# - -globalflags.print_JobProperties() - - - -if globalflags.DataSource == "data": - #-------------------------------------------------------------- - IOVDbSvc = Service( "IOVDbSvc" ) - from IOVDbSvc.CondDB import conddb - - if not conddb.folderRequested('/RPO/DCS/BLM'): - conddb.addFolder("DCS_OFL","/RPO/DCS/BLM") - if not conddb.folderRequested('/RPO/DCS/FECONFIGURATION'): - conddb.addFolder("DCS_OFL","/RPO/DCS/FECONFIGURATION") - if not conddb.folderRequested('/RPO/DCS/HVCHANNEL'): - conddb.addFolder("DCS_OFL","/RPO/DCS/HVCHANNEL") - if not conddb.folderRequested('/RPO/DCS/LOCALMONITORING'): - conddb.addFolder("DCS_OFL","/RPO/DCS/LOCALMONITORING") - if not conddb.folderRequested('/RPO/DCS/MOVEMENT'): - conddb.addFolder("DCS_OFL","/RPO/DCS/MOVEMENT") - if not conddb.folderRequested('/RPO/DCS/RADMON'): - conddb.addFolder("DCS_OFL","/RPO/DCS/RADMON") - if not conddb.folderRequested('/RPO/DCS/TRIGGERRATES'): - conddb.addFolder("DCS_OFL","/RPO/DCS/TRIGGERRATES") - if not conddb.folderRequested('/RPO/DCS/TRIGGERSETTINGS'): - conddb.addFolder("DCS_OFL","/RPO/DCS/TRIGGERSETTINGS") - - ####for other possible servers see dbreplica.config in Athena installation directory - #IOVDbSvc.dbConnection="oracle://ATLAS_COOLPROD;schema=ATLAS_COOLOFL_DCS;dbname=COMP200" - #IOVDbSvc.Folders += ["/RPO/DCS/BLM"] - #IOVDbSvc.Folders += ["/RPO/DCS/FECONFIGURATION"] - #IOVDbSvc.Folders += ["/RPO/DCS/HVCHANNEL"] - #IOVDbSvc.Folders += ["/RPO/DCS/LOCALMONITORING"] - #IOVDbSvc.Folders += ["/RPO/DCS/MOVEMENT"] - #IOVDbSvc.Folders += ["/RPO/DCS/RADMON"] - #IOVDbSvc.Folders += ["/RPO/DCS/TRIGGERRATES"] - #IOVDbSvc.Folders += ["/RPO/DCS/TRIGGERSETTINGS"] - -## Load algorithm to TopSequence -# -from AthenaCommon.AlgSequence import AlgSequence -topSequence = AlgSequence() - -################################################################################################### -#D3PD maker setup -################################################################################################### - -## D3PD Maker -import D3PDMakerCoreComps -import EventCommonD3PDMaker -from D3PDMakerCoreComps.D3PDObject import D3PDObject -from EventCommonD3PDMaker.EventInfoD3PDObject import EventInfoD3PDObject -from OutputStreamAthenaPool.MultipleStreamManager import MSMgr - -from ForwardDetectorsD3PDMaker.AlfaD3PDObject import AlfaD3PDObject -alg = MSMgr.NewRootStream( "AlfaD3PD", OutputRootFile , "AlfaD3PDTree" ) -alg += EventInfoD3PDObject(10) -alg += AlfaD3PDObject(0) - -from ForwardDetectorsD3PDMaker import AlfaEventHeaderFillerTool -if globalflags.DataSource == "data": - from ForwardDetectorsD3PDMaker.AlfaDCSMetadata import addAlfaDcsMetadata - AlfaEventHeaderFillerTool.DataType = 1 - addAlfaDcsMetadata(alg) -elif globalflags.DataSource == "geant4": - from ForwardDetectorsD3PDMaker.AlfaTruthInfoD3PDObject import AlfaTruthInfoD3PDObject - AlfaEventHeaderFillerTool.DataType = 0 - alg += AlfaTruthInfoD3PDObject(0) - - -#-------------------------------------------------------------- -# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL ) -MessageSvc = Service( "MessageSvc" ) -MessageSvc.OutputLevel = 5 -MessageSvc.defaultLimit = 9999999 - -ClassIDSvc = Service( "ClassIDSvc" ) -ClassIDSvc.OutputLevel = 5 - diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/share/ForwardDetectorsD3PDMaker_configure.py b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/share/ForwardDetectorsD3PDMaker_configure.py deleted file mode 100644 index d66e7213f7faaad1df45edf39e227eda9b84dbb8..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/share/ForwardDetectorsD3PDMaker_configure.py +++ /dev/null @@ -1,23 +0,0 @@ -from RecExConfig.RecFlags import rec -rec.doESD=True -rec.doAOD=False -rec.doCBNT=False -rec.doWriteESD=False -rec.doWriteAOD=False -rec.doWriteTAG=False - -rec.doForwardDetectors = True - -from ForwardDetectorsD3PDMaker.ForwardDetectorsD3PDMakerFlags import jobproperties -if jobproperties.ForwardDetectorsD3PDMakerFlags.reReco(): - rec.doESD.set_Value_and_Lock(True) - rec.doWriteESD.set_Value_and_Lock(True) - - -from ForwardDetectorsD3PDMaker.ForwardDetectorsD3PDMakerFlags import jobproperties -if jobproperties.ForwardDetectorsD3PDMakerFlags.reReco(): - rec.doESD.set_Value_and_Lock(True) - - #from InDetRecExample.InDetJobProperties import InDetFlags - #InDetFlags.disableInDetReco.set_Value_and_Lock(False) - #InDetFlags.doHeavyIon.set_Value_and_Lock(True) diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/share/ForwardDetectorsD3PDMaker_jobOptions.py b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/share/ForwardDetectorsD3PDMaker_jobOptions.py deleted file mode 100644 index e90914b683d287502285df03f3cf72cf2ca746f7..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/share/ForwardDetectorsD3PDMaker_jobOptions.py +++ /dev/null @@ -1,34 +0,0 @@ -# attention, if you change D3PD content here -# modify also python/ForwardDetectorsD3PD.py accordingly - -# Output names -from AthenaCommon.GlobalFlags import jobproperties -jobproperties.AthenaCommonFlags.PoolAODOutput = "%s.aod.pool.root" % outfile -jobproperties.AthenaCommonFlags.PoolESDOutput = "%s.esd.pool.root" % outfile -jobproperties.Rec.RootNtupleOutput = "%s.cbnt.root" % outfile - -include ("RecExCond/RecExCommon_flags.py") -include ("RecExCommon/RecExCommon_topOptions.py") - -tuple_name = "%s.D3PD.root" % outfile -from ForwardDetectorsD3PDMaker.ForwardDetectorsD3PDMakerFlags import jobproperties -if jobproperties.ForwardDetectorsD3PDMakerFlags.FileName.statusOn: - tuple_name = jobproperties.ForwardDetectorsD3PDMakerFlags.FileName() - pass - -# Create the D3PD stream: -from OutputStreamAthenaPool.MultipleStreamManager import MSMgr -alg = MSMgr.NewRootStream( "ForwardDetectorsD3PD", tuple_name ) - -##Event Info -from EventCommonD3PDMaker.EventInfoD3PDObject import EventInfoD3PDObject -alg += EventInfoD3PDObject( 10 ) - -##ZDC -##Energy and time information -from ForwardDetectorsD3PDMaker.ZdcD3PDObject import ZdcD3PDObject -from ForwardDetectorsD3PDMaker.ZdcDigitsD3PDObject import ZdcDigitsD3PDObject -if globalflags.DataSource == "data": - alg += ZdcD3PDObject( 10 ) - alg += ZdcDigitsD3PDObject( 10 ) - pass diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/share/ForwardDetectorsD3PDMaker_topOptions.py b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/share/ForwardDetectorsD3PDMaker_topOptions.py deleted file mode 100644 index 2def76cd3c8ed1eff9cea673a88e033c16d2bf2c..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/share/ForwardDetectorsD3PDMaker_topOptions.py +++ /dev/null @@ -1,19 +0,0 @@ -from AthenaCommon.AthenaCommonFlags import athenaCommonFlags -#This needs another file for Forward Detectors ! -#athenaCommonFlags.FilesInput=['root://castoratlas//castor/cern.ch/grid/atlas/atlasgroupdisk/phys-hi/dq2/mc09_7TeV/RDO/e511_s780_s767_d313/mc09_7TeV.208801.Hijing_PbPb_2p75TeV_MinBias.digit.RDO.e511_s780_s767_d313_tid144736_00/RDO.144736._000001.pool.root.1'] -athenaCommonFlags.FilesInput=['root://castoratlas//castor/cern.ch/grid/atlas/atlasgroupdisk/phys-hi/dq2/group10/phys-hi/mc09_7TeV/group10.phys-hi.mc09_7TeV.208801.Hijing_PbPb_2p75TeV_MinBias_tid144736_00_r15.6.9.13p3_r1/group10.phys-hi.mc09_7TeV.208801.Hijing_PbPb_2p75TeV_MinBias_tid144736_00_r15.6.9.13p3_r1.EXT0._00001.ESD.pool.root'] - - - -athenaCommonFlags.EvtMax=2 - -outfile="test" - -MessageSvc = Service( "MessageSvc" ) -MessageSvc.OutputLevel =5 - -include("ForwardDetectorsD3PDMaker/ForwardDetectorsD3PDMaker_configure.py") - -include("RecExCommon/RecExCommon_topOptions.py") - -include("ForwardDetectorsD3PDMaker/ForwardDetectorsD3PDMaker_jobOptions.py") diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/share/ZdcD3PDMaker_jobOption.py b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/share/ZdcD3PDMaker_jobOption.py deleted file mode 100644 index aa927f793e9813da25309cb3a41e4f6c1dfc1344..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/share/ZdcD3PDMaker_jobOption.py +++ /dev/null @@ -1,142 +0,0 @@ -""" -@package ZdcD3PDMaker_jobOption.py -@author Marco Leite <leite@cern.ch> - - August 2010 - - - This is an example of a minimum job option file for creating a D3PD with ZDC information. - Included here are the event info only. For other systems inclusion see the D3PD maker tree - on ATLAS offline svn (PhysicsAnalysis/D3PDMaker). - - The ZdcD3PDMaker is part of the ForwardDetectorsD3PDMaker - - - This started in HeavyIonD3PDMaker in 15.6.9 Athena Release, now it's part of - ForwardDetectorsD3PDMaker (Rel 17.0.0) -""" - - -doMC = False -DoReconstruction = False -DoTruth = False - -from GaudiKernel.GaudiHandles import * -from GaudiKernel.Proxy.Configurable import * - -import AthenaPoolCnvSvc.ReadAthenaPool - -from AthenaCommon.AppMgr import ServiceMgr -from AthenaCommon.AppMgr import ToolSvc - -ServiceMgr.MessageSvc.defaultLimit = 9999999 -outFileName = 'ZdcD3PD.root' - -if doMC: - DoTruth = True - -################################################################################################### -# Load Global Flags and set defaults (import the new jobProperty globalflags) -################################################################################################### - -DetDescrVersion = 'ATLAS-GEO-16-00-01' - -from AthenaCommon.GlobalFlags import globalflags -from AthenaCommon.BeamFlags import jobproperties -globalflags.DetGeo = 'atlas' -globalflags.InputFormat = 'pool' -globalflags.DetDescrVersion = DetDescrVersion -globalflags.DataSource = 'data' # 'geant4'# -#if doMC: -# globalflags.DataSource = 'geant4' -#jobproperties.Beam.beamType = 'collisions' # 'cosmics' # 'singlebeam' # -#if globalflags.DataSource != 'geant4': -# DoTruth = False -#else: -# globalflags.ConditionsTag = 'OFLCOND-SIM-BS7T-02' - -globalflags.print_JobProperties() - -# --- conditions tag - -#if len(globalflags.ConditionsTag())!=0: -# from IOVDbSvc.CondDB import conddb -# conddb.setGlobalTag(globalflags.ConditionsTag()) - -# --- default is zero luminosity -#import AthenaCommon.SystemOfUnits as Units -#jobproperties.Beam.beamType = 'collisions' - -from AthenaCommon.BFieldFlags import jobproperties -jobproperties.BField.solenoidOn=True - - - -## Initialize the geometry -# Necessary for the ZdcCabling Service -# -from AtlasGeoModel import SetGeometryVersion -from AtlasGeoModel import GeoModelInit - -## Load algorithm to TopSequence -# -from AthenaCommon.AlgSequence import AlgSequence -topSequence = AlgSequence() - -################################################################################################### -#D3PD maker setup -################################################################################################### - -import D3PDMakerCoreComps -import EventCommonD3PDMaker - -from D3PDMakerCoreComps.D3PDObject import D3PDObject - -## Event Info -# -from EventCommonD3PDMaker.EventInfoD3PDObject import EventInfoD3PDObject -##ZDC object -# -from ForwardDetectorsD3PDMaker.ZdcD3PDObject import ZdcD3PDObject -from ForwardDetectorsD3PDMaker.ZdcDigitsD3PDObject import ZdcDigitsD3PDObject - -## MBTS object -# -from CaloD3PDMaker.MBTSD3PDObject import MBTSD3PDObject -from CaloD3PDMaker.MBTSTimeD3PDObject import MBTSTimeD3PDObject -from TrigMbD3PDMaker.MbtsContainerD3PDObject import MbtsContainerD3PDObject - -## D3PD Maker -from OutputStreamAthenaPool.MultipleStreamManager import MSMgr -alg = MSMgr.NewRootStream( "ZdcD3PD", tuple_name, "ZdcTree" ) - -alg += EventInfoD3PDObject (10) -alg += ZdcD3PDObject(0) -alg += ZdcDigitsD3PDObject(0) - -alg += MBTSD3PDObject (10) -##Aggregate timing, time differences and counts -alg += MBTSTimeD3PDObject (10) - - -#Trigger -#not D3PD branch filler, adds trigger metadata to output D3PD file -from TriggerD3PDMaker.TrigConfMetadata import addTrigConfMetadata -addTrigConfMetadata(alg) -#raw info on what trig decision was made and at what level -from TriggerD3PDMaker.TrigDecisionD3PDObject import TrigDecisionD3PDObject -from TriggerD3PDMaker.BGCodeD3PDObject import BGCodeD3PDObject -alg += TrigDecisionD3PDObject(10) -alg += BGCodeD3PDObject (10) - -################################################################################################### -#ESD file for test. This will be kept on zdc castor area -################################################################################################### - -ServiceMgr.EventSelector.InputCollections += \ -["root://castoratlas//castor/cern.ch/atlas/atlascerngroupdisk/det-zdc/TestData/ESD.307459._000004.pool.root.1"] - -theApp.EvtMax = -1 -ServiceMgr.EventSelector.SkipEvents = 0 - - diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpCommonHdr.h b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpCommonHdr.h deleted file mode 100644 index 4e33ec4ed5ed068a70ff2599842ccd068bf257b8..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpCommonHdr.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef FORWARDDETECTORSD3PDMAKER_AFPCOMMONHDR_H -#define FORWARDDETECTORSD3PDMAKER_AFPCOMMONHDR_H - -// STL include(s): -#include <vector> -#include <string> -#include <algorithm> - -// EDM include(s): -#include "GeneratorObjects/McEventCollection.h" - -// D3PDMaker include(s): -#include "D3PDMakerUtils/BlockFillerTool.h" - -#define EVCOLLNAME_SIDDIGI "AFP_SiDigiCollection" -#define EVCOLLNAME_TDDIGI "AFP_TDDigiCollection" -#define EVCOLLNAME_SIDSIMHIT "AFP_SIDSimHitCollection" - -#define UNDEFFLOATVALUE (-9999.0) -#define UNDEFINTVALUE (-1) - -#define AFP_STATIONSCNT 4 -#define AFP_SID_LAYERSCNT 6 - -#define MAXPILEUP 500 - -namespace D3PD -{ - enum eSIDCountingLevel { ESCL_STATION, ESCL_LAYER, ESCL_PIXEL }; -} - -#endif // FORWARDDETECTORSD3PDMAKER_AFPCOMMONHDR_H diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpSIDDigiCollectionFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpSIDDigiCollectionFillerTool.cxx deleted file mode 100644 index c8fe27db34e61450840a3460ec36e98c58487974..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpSIDDigiCollectionFillerTool.cxx +++ /dev/null @@ -1,259 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -// Gaudi/Athena include(s): -#include "AthenaKernel/errorcheck.h" -#include "Identifier/Identifier.h" - -// Local include(s): -#include "AfpSIDDigiCollectionFillerTool.h" - -namespace D3PD { - - AfpSIDDigiCollectionFillerTool::AfpSIDDigiCollectionFillerTool( const std::string& type, const std::string& name, const IInterface* parent) - : AfpSIDDigiCollectionFillerBase( type, name, parent ) - { - ATH_MSG_INFO( "AfpSIDDigiCollectionFillerTool---> Constructor" ); - - //items per hit pixels - m_pnTotPixelsCnt=NULL; - m_pvecPixStationIDs=NULL; - m_pvecPixLayerIDs=NULL; - m_pvecPixRow=NULL; - m_pvecPixColumn=NULL; - m_pvecPixEAmp=NULL; - - //items per hit layers - m_pnTotLayersCnt=NULL; - m_pvecLarStationIDs=NULL; - m_pvecLarLayerIDs=NULL; - m_pvecLarHitsPerLayer=NULL; - m_pvecLarEAmpPerLayer=NULL; - - //items per hit stations - m_pnTotStationsCnt=NULL; - m_pvecStaStationIDs=NULL; - m_pvecStaHitsPerStation=NULL; - m_pvecStaEAmpPerStation=NULL; - } - - StatusCode AfpSIDDigiCollectionFillerTool::initialize() - { - // Initialize the base class: - CHECK( AfpSIDDigiCollectionFillerBase::initialize() ); - ATH_MSG_INFO( "AfpSIDDigiCollectionFillerTool---> Initialized" ); - - return StatusCode::SUCCESS; - } - - StatusCode AfpSIDDigiCollectionFillerTool::book() - { - ATH_MSG_DEBUG( "AfpSIDDigiCollectionFillerTool---> Booking Histograms" ); - - //items per hit pixels - CHECK(addVariable("pixel_tot_num",m_pnTotPixelsCnt)); - CHECK(addVariable("pixel_stID",m_pvecPixStationIDs)); - CHECK(addVariable("pixel_layerID",m_pvecPixLayerIDs)); - CHECK(addVariable("pixel_row",m_pvecPixRow)); - CHECK(addVariable("pixel_col",m_pvecPixColumn)); - CHECK(addVariable("pixel_E",m_pvecPixEAmp)); - - //items per hit layers - CHECK(addVariable("layer_tot_num",m_pnTotLayersCnt)); - CHECK(addVariable("layer_stID",m_pvecLarStationIDs)); - CHECK(addVariable("layer_layerID",m_pvecLarLayerIDs)); - CHECK(addVariable("layer_npix",m_pvecLarHitsPerLayer)); - CHECK(addVariable("layer_Etot",m_pvecLarEAmpPerLayer)); - - //items per hit stations - CHECK(addVariable("stat_tot_num",m_pnTotStationsCnt)); - CHECK(addVariable("stat_stID",m_pvecStaStationIDs)); - CHECK(addVariable("stat_npix",m_pvecStaHitsPerStation)); - CHECK(addVariable("stat_Etot",m_pvecStaEAmpPerStation)); - - return StatusCode::SUCCESS; - } - - StatusCode AfpSIDDigiCollectionFillerTool::fill(const AFP_SiDigiCollection& DataCollection) - { - int i,j,k; - int arrHitsPerLayer[AFP_STATIONSCNT*AFP_SID_LAYERSCNT]; - int arrHitsPerStation[AFP_STATIONSCNT]; - float arrEAmpPerLayer[AFP_STATIONSCNT*AFP_SID_LAYERSCNT]; - float arrEAmpPerStation[AFP_STATIONSCNT]; - AFP_SiDigiCollection::const_iterator iterColl; - - ClearData(DataCollection); - - memset(&arrHitsPerLayer[0],0,sizeof(arrHitsPerLayer)); - memset(&arrHitsPerStation[0],0,sizeof(arrHitsPerStation)); - memset(&arrEAmpPerLayer[0],0,sizeof(arrEAmpPerLayer)); - memset(&arrEAmpPerStation[0],0,sizeof(arrEAmpPerStation)); - - *m_pnTotPixelsCnt=GetNumOfItems(DataCollection,ESCL_PIXEL); - *m_pnTotLayersCnt=GetNumOfItems(DataCollection,ESCL_LAYER); - *m_pnTotStationsCnt=GetNumOfItems(DataCollection,ESCL_STATION); - - for(i=0,iterColl=DataCollection.begin();iterColl!=DataCollection.end();i++,iterColl++) - { - //items per hit pixels - (*m_pvecPixStationIDs)[i]=iterColl->m_nStationID; - (*m_pvecPixLayerIDs)[i]=iterColl->m_nDetectorID; - (*m_pvecPixRow)[i]=iterColl->m_nPixelRow; - (*m_pvecPixColumn)[i]=iterColl->m_nPixelCol; - (*m_pvecPixEAmp)[i]=iterColl->m_fADC; - - //items per hit layers - if(iterColl->m_nStationID>=0 && iterColl->m_nStationID<AFP_STATIONSCNT && - iterColl->m_nDetectorID>=0 && iterColl->m_nDetectorID<AFP_SID_LAYERSCNT) - { - arrHitsPerLayer[AFP_SID_LAYERSCNT*(iterColl->m_nStationID)+iterColl->m_nDetectorID]++; - arrEAmpPerLayer[AFP_SID_LAYERSCNT*(iterColl->m_nStationID)+iterColl->m_nDetectorID]+=iterColl->m_fADC; - } - - //items per hit stations - if(iterColl->m_nStationID>=0 && iterColl->m_nStationID<AFP_STATIONSCNT) - { - arrHitsPerStation[iterColl->m_nStationID]++; - arrEAmpPerStation[iterColl->m_nStationID]+=iterColl->m_fADC; - } - } - - //items per hit layers - k=0; - for(i=0;i<AFP_STATIONSCNT;i++) - { - for(j=0;j<AFP_SID_LAYERSCNT;j++) - { - if(arrHitsPerLayer[i*AFP_SID_LAYERSCNT+j]>0) - { - (*m_pvecLarStationIDs)[k]=i; - (*m_pvecLarLayerIDs)[k]=j; - (*m_pvecLarHitsPerLayer)[k]=arrHitsPerLayer[i*AFP_SID_LAYERSCNT+j]; - (*m_pvecLarEAmpPerLayer)[k]=arrEAmpPerLayer[i*AFP_SID_LAYERSCNT+j]; - k++; - } - } - } - if(k!=(*m_pnTotLayersCnt)) - { - CHECK(StatusCode::FAILURE); - } - - //items per hit layers - k=0; - for(i=0;i<AFP_STATIONSCNT;i++) - { - if(arrHitsPerStation[i]>0) - { - (*m_pvecStaStationIDs)[k]=i; - (*m_pvecStaHitsPerStation)[k]=arrHitsPerStation[i]; - (*m_pvecStaEAmpPerStation)[k]=arrEAmpPerStation[i]; - k++; - } - } - if(k!=(*m_pnTotStationsCnt)) - { - CHECK(StatusCode::FAILURE); - } - - return StatusCode::SUCCESS; - } - - void AfpSIDDigiCollectionFillerTool::ClearData(const AFP_SiDigiCollection& DataCollection) - { - int nItemsCnt; - - //items per hit pixels - nItemsCnt=GetNumOfItems(DataCollection,ESCL_PIXEL); - *m_pnTotPixelsCnt=-1; - m_pvecPixStationIDs->resize(nItemsCnt); - fill_n(m_pvecPixStationIDs->begin(),m_pvecPixStationIDs->size(),-1); - m_pvecPixLayerIDs->resize(nItemsCnt); - fill_n(m_pvecPixLayerIDs->begin(),m_pvecPixLayerIDs->size(),-1); - m_pvecPixRow->resize(nItemsCnt); - fill_n(m_pvecPixRow->begin(),m_pvecPixRow->size(),-1); - m_pvecPixColumn->resize(nItemsCnt); - fill_n(m_pvecPixColumn->begin(),m_pvecPixColumn->size(),-1); - m_pvecPixEAmp->resize(nItemsCnt); - fill_n(m_pvecPixEAmp->begin(),m_pvecPixEAmp->size(),-1.0); - - //items per hit layers - nItemsCnt=GetNumOfItems(DataCollection,ESCL_LAYER); - *m_pnTotLayersCnt=-1; - m_pvecLarStationIDs->resize(nItemsCnt); - fill_n(m_pvecLarStationIDs->begin(),m_pvecLarStationIDs->size(),-1); - m_pvecLarLayerIDs->resize(nItemsCnt); - fill_n(m_pvecLarLayerIDs->begin(),m_pvecLarLayerIDs->size(),-1); - m_pvecLarHitsPerLayer->resize(nItemsCnt); - fill_n(m_pvecLarHitsPerLayer->begin(),m_pvecLarHitsPerLayer->size(),-1); - m_pvecLarEAmpPerLayer->resize(nItemsCnt); - fill_n(m_pvecLarEAmpPerLayer->begin(),m_pvecLarEAmpPerLayer->size(),-1.0); - - //items per hit stations - nItemsCnt=GetNumOfItems(DataCollection,ESCL_STATION); - *m_pnTotStationsCnt=-1; - m_pvecStaStationIDs->resize(nItemsCnt); - fill_n(m_pvecStaStationIDs->begin(),m_pvecStaStationIDs->size(),-1); - m_pvecStaHitsPerStation->resize(nItemsCnt); - fill_n(m_pvecStaHitsPerStation->begin(),m_pvecStaHitsPerStation->size(),-1); - m_pvecStaEAmpPerStation->resize(nItemsCnt); - fill_n(m_pvecStaEAmpPerStation->begin(),m_pvecStaEAmpPerStation->size(),-1); - } - - int AfpSIDDigiCollectionFillerTool::GetNumOfItems(const AFP_SiDigiCollection& DataCollection, const enum eSIDCountingLevel eCntLevel) - { - int i,nItemCnt=0; - AFP_SiDigiCollection::const_iterator iterColl; - int arrHitsPerLayer[AFP_STATIONSCNT*AFP_SID_LAYERSCNT]; - int arrHitsPerStation[AFP_STATIONSCNT]; - - switch(eCntLevel) - { - case ESCL_PIXEL: - nItemCnt=DataCollection.size(); - break; - case ESCL_LAYER: - memset(&arrHitsPerLayer[0],0,sizeof(arrHitsPerLayer)); - for(iterColl=DataCollection.begin();iterColl!=DataCollection.end();iterColl++) - { - if(iterColl->m_nStationID>=0 && iterColl->m_nStationID<AFP_STATIONSCNT && - iterColl->m_nDetectorID>=0 && iterColl->m_nDetectorID<AFP_SID_LAYERSCNT) - { - arrHitsPerLayer[AFP_SID_LAYERSCNT*(iterColl->m_nStationID)+iterColl->m_nDetectorID]++; - } - } - - for(i=0;i<AFP_STATIONSCNT*AFP_SID_LAYERSCNT;i++) - { - if(arrHitsPerLayer[i]>0) nItemCnt++; - } - break; - case ESCL_STATION: - memset(&arrHitsPerStation[0],0,sizeof(arrHitsPerStation)); - for(iterColl=DataCollection.begin();iterColl!=DataCollection.end();iterColl++) - { - if(iterColl->m_nStationID>=0 && iterColl->m_nStationID<AFP_STATIONSCNT) - { - arrHitsPerStation[iterColl->m_nStationID]++; - } - } - - for(i=0;i<AFP_STATIONSCNT;i++) - { - if(arrHitsPerStation[i]>0) nItemCnt++; - } - break; - default: - nItemCnt=0; - break; - - } - - return nItemCnt; - } - - -} // namespace D3PD - diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpSIDDigiCollectionFillerTool.h b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpSIDDigiCollectionFillerTool.h deleted file mode 100644 index d26a8be7cc4610a2c733062d1b9407bb316c1c29..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpSIDDigiCollectionFillerTool.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef FORWARDDETECTORSD3PDMAKER_AFPSIDDIGICOLLECTIONFILLERTOOL_H -#define FORWARDDETECTORSD3PDMAKER_AFPSIDDIGICOLLECTIONFILLERTOOL_H - -#include "AfpCommonHdr.h" -#include "AFP_DigiEv/AFP_SiDigiCollection.h" - -namespace D3PD -{ - typedef D3PD::BlockFillerTool<AFP_SiDigiCollection> AfpSIDDigiCollectionFillerBase; - - class AfpSIDDigiCollectionFillerTool : public AfpSIDDigiCollectionFillerBase - { - - public: - AfpSIDDigiCollectionFillerTool( const std::string& type, const std::string& name, const IInterface* parent ); - - virtual StatusCode initialize(); - virtual StatusCode book(); - virtual StatusCode fill(const AFP_SiDigiCollection& DataCollection); - - private: - int GetNumOfItems(const AFP_SiDigiCollection& DataCollection, const enum eSIDCountingLevel eCntLevel); - void ClearData(const AFP_SiDigiCollection& DataCollection); - - private: - //items per hit pixels - int* m_pnTotPixelsCnt; - std::vector<int>* m_pvecPixStationIDs; - std::vector<int>* m_pvecPixLayerIDs; - std::vector<int>* m_pvecPixRow; - std::vector<int>* m_pvecPixColumn; - std::vector<float>* m_pvecPixEAmp; - - //items per hit layers - int* m_pnTotLayersCnt; - std::vector<int>* m_pvecLarStationIDs; - std::vector<int>* m_pvecLarLayerIDs; - std::vector<int>* m_pvecLarHitsPerLayer; - std::vector<float>* m_pvecLarEAmpPerLayer; - - //items per hit stations - int* m_pnTotStationsCnt; - std::vector<int>* m_pvecStaStationIDs; - std::vector<int>* m_pvecStaHitsPerStation; - std::vector<float>* m_pvecStaEAmpPerStation; - }; -} - -#endif // FORWARDDETECTORSD3PDMAKER_AFPSIDDIGICOLLECTIONFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpSIDLocRecoEvCollectionFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpSIDLocRecoEvCollectionFillerTool.cxx deleted file mode 100644 index 9026a817980a1088b2e60a8b813bc2f7bf367e05..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpSIDLocRecoEvCollectionFillerTool.cxx +++ /dev/null @@ -1,109 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -// Gaudi/Athena include(s): -#include "AthenaKernel/errorcheck.h" -#include "Identifier/Identifier.h" - -// Local include(s): -#include "AfpSIDLocRecoEvCollectionFillerTool.h" - -namespace D3PD { - - AfpSIDLocRecoEvCollectionFillerTool::AfpSIDLocRecoEvCollectionFillerTool( const std::string& type, const std::string& name, const IInterface* parent) - : AfpSIDLocRecoEvCollectionFillerBase( type, name, parent ) - { - ATH_MSG_INFO( "AfpSIDLocRecoEvCollectionFillerTool---> Constructor" ); - - m_pnTotTracksCnt=NULL; - m_pvecTrackStationID=NULL; - m_pvecTrackXPos=NULL; - m_pvecTrackYPos=NULL; - m_pvecTrackZPos=NULL; - m_pvecTrackXSlope=NULL; - m_pvecTrackYSlope=NULL; - m_pvecTrackUsedPixels=NULL; - m_pvecTrackHoles=NULL; - m_pvecTrackQuality=NULL; - } - - StatusCode AfpSIDLocRecoEvCollectionFillerTool::initialize() - { - // Initialize the base class: - CHECK( AfpSIDLocRecoEvCollectionFillerBase::initialize() ); - ATH_MSG_INFO( "AfpSIDLocRecoEvCollectionFillerTool---> Initialized" ); - - return StatusCode::SUCCESS; - } - - StatusCode AfpSIDLocRecoEvCollectionFillerTool::book() - { - ATH_MSG_DEBUG( "AfpSIDLocRecoEvCollectionFillerTool---> Booking Histograms" ); - - CHECK(addVariable("trk_tot_num_tracks",m_pnTotTracksCnt)); - CHECK(addVariable("trk_stID",m_pvecTrackStationID)); - CHECK(addVariable("trk_x",m_pvecTrackXPos)); - CHECK(addVariable("trk_y",m_pvecTrackYPos)); - CHECK(addVariable("trk_z",m_pvecTrackZPos)); - CHECK(addVariable("trk_xslope",m_pvecTrackXSlope)); - CHECK(addVariable("trk_yslope",m_pvecTrackYSlope)); - CHECK(addVariable("trk_npix",m_pvecTrackUsedPixels)); - CHECK(addVariable("trk_nholes",m_pvecTrackHoles)); - CHECK(addVariable("trk_quality",m_pvecTrackQuality)); - - return StatusCode::SUCCESS; - } - - StatusCode AfpSIDLocRecoEvCollectionFillerTool::fill(const AFP_SIDLocRecoEvCollection& DataCollection) - { - int i; - AFP_SIDLocRecoEvCollection::const_iterator iterColl; - - ClearData(DataCollection); - - *m_pnTotTracksCnt=DataCollection.size(); - for(i=0,iterColl=DataCollection.begin();iterColl!=DataCollection.end();i++,iterColl++) - { - (*m_pvecTrackStationID)[i]=(*iterColl)->getStationID(); - (*m_pvecTrackXPos)[i]=(*iterColl)->getXposition(); - (*m_pvecTrackYPos)[i]=(*iterColl)->getYposition(); - (*m_pvecTrackZPos)[i]=(*iterColl)->getZposition(); - (*m_pvecTrackXSlope)[i]=(*iterColl)->getXslope(); - (*m_pvecTrackYSlope)[i]=(*iterColl)->getYslope(); - (*m_pvecTrackUsedPixels)[i]=(*iterColl)->getNHits(); - (*m_pvecTrackHoles)[i]=(*iterColl)->getNHoles(); - (*m_pvecTrackQuality)[i]=(*iterColl)->getChi2(); - } - - return StatusCode::SUCCESS; - } - - void AfpSIDLocRecoEvCollectionFillerTool::ClearData(const AFP_SIDLocRecoEvCollection& DataCollection) - { - int nItemsCnt; - - nItemsCnt=DataCollection.size(); - *m_pnTotTracksCnt=-1; - m_pvecTrackStationID->resize(nItemsCnt); - fill_n(m_pvecTrackStationID->begin(),m_pvecTrackStationID->size(),-1); - m_pvecTrackXPos->resize(nItemsCnt); - fill_n(m_pvecTrackXPos->begin(),m_pvecTrackXPos->size(),UNDEFFLOATVALUE); - m_pvecTrackYPos->resize(nItemsCnt); - fill_n(m_pvecTrackYPos->begin(),m_pvecTrackYPos->size(),UNDEFFLOATVALUE); - m_pvecTrackZPos->resize(nItemsCnt); - fill_n(m_pvecTrackZPos->begin(),m_pvecTrackZPos->size(),UNDEFFLOATVALUE); - m_pvecTrackXSlope->resize(nItemsCnt); - fill_n(m_pvecTrackXSlope->begin(),m_pvecTrackXSlope->size(),UNDEFFLOATVALUE); - m_pvecTrackYSlope->resize(nItemsCnt); - fill_n(m_pvecTrackYSlope->begin(),m_pvecTrackYSlope->size(),UNDEFFLOATVALUE); - m_pvecTrackUsedPixels->resize(nItemsCnt); - fill_n(m_pvecTrackUsedPixels->begin(),m_pvecTrackUsedPixels->size(),-1); - m_pvecTrackHoles->resize(nItemsCnt); - fill_n(m_pvecTrackHoles->begin(),m_pvecTrackHoles->size(),-1); - m_pvecTrackQuality->resize(nItemsCnt); - fill_n(m_pvecTrackQuality->begin(),m_pvecTrackQuality->size(),UNDEFFLOATVALUE); - } - -} // namespace D3PD - diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpSIDLocRecoEvCollectionFillerTool.h b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpSIDLocRecoEvCollectionFillerTool.h deleted file mode 100644 index 44b59dfed85265d4829893000dacae2dab14ea41..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpSIDLocRecoEvCollectionFillerTool.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef FORWARDDETECTORSD3PDMAKER_AFPSIDLORECOEVCOLLECTIONFILLERTOOL_H -#define FORWARDDETECTORSD3PDMAKER_AFPSIDLORECOEVCOLLECTIONFILLERTOOL_H - -#include "AfpCommonHdr.h" -#include "AFP_LocRecoEv/AFP_SIDLocRecoEvCollection.h" - -namespace D3PD -{ - typedef D3PD::BlockFillerTool<AFP_SIDLocRecoEvCollection> AfpSIDLocRecoEvCollectionFillerBase; - - class AfpSIDLocRecoEvCollectionFillerTool : public AfpSIDLocRecoEvCollectionFillerBase - { - - public: - AfpSIDLocRecoEvCollectionFillerTool( const std::string& type, const std::string& name, const IInterface* parent ); - - virtual StatusCode initialize(); - virtual StatusCode book(); - virtual StatusCode fill(const AFP_SIDLocRecoEvCollection& DataCollection); - - private: - void ClearData(const AFP_SIDLocRecoEvCollection& DataCollection); - - private: - int* m_pnTotTracksCnt; - std::vector<int>* m_pvecTrackStationID; - std::vector<float>* m_pvecTrackXPos; - std::vector<float>* m_pvecTrackYPos; - std::vector<float>* m_pvecTrackZPos; - std::vector<float>* m_pvecTrackXSlope; - std::vector<float>* m_pvecTrackYSlope; - std::vector<int>* m_pvecTrackUsedPixels; - std::vector<int>* m_pvecTrackHoles; - std::vector<float>* m_pvecTrackQuality; - }; -} - -#endif // FORWARDDETECTORSD3PDMAKER_AFPSIDLORECOEVCOLLECTIONFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpSIDSimHitCollectionFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpSIDSimHitCollectionFillerTool.cxx deleted file mode 100644 index 6682e76027a706369c9d31e119acd544a0834ee1..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpSIDSimHitCollectionFillerTool.cxx +++ /dev/null @@ -1,152 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -// Gaudi/Athena include(s): -#include "AthenaKernel/errorcheck.h" -#include "Identifier/Identifier.h" - -// Local include(s): -#include "AfpSIDSimHitCollectionFillerTool.h" - -namespace D3PD { - - AfpSIDSimHitCollectionFillerTool::AfpSIDSimHitCollectionFillerTool( const std::string& type, const std::string& name, const IInterface* parent) - : AfpSIDSimHitCollectionFillerBase( type, name, parent ) - { - ATH_MSG_INFO( "AfpSIDSimHitCollectionFillerTool---> Constructor" ); - - m_pnTotHitsCnt=NULL; - m_pvecHitID=NULL; - m_pvecTrackID=NULL; - m_pvecParticleEncoding=NULL; - m_pvecKineticEnergy=NULL; - m_pvecEnergyDeposit=NULL; - m_pvecPreStepX=NULL; - m_pvecPreStepY=NULL; - m_pvecPreStepZ=NULL; - m_pvecPostStepX=NULL; - m_pvecPostStepY=NULL; - m_pvecPostStepZ=NULL; - m_pvecGlobalTime=NULL; - m_pvecStationID=NULL; - m_pvecDetectorID=NULL; - m_pvecIsAuxVSID=NULL; - m_pvecPixelRow=NULL; - m_pvecPixelCol=NULL; - } - - StatusCode AfpSIDSimHitCollectionFillerTool::initialize() - { - // Initialize the base class: - CHECK( AfpSIDSimHitCollectionFillerBase::initialize() ); - ATH_MSG_INFO( "AfpSIDSimHitCollectionFillerTool---> Initialized" ); - - return StatusCode::SUCCESS; - } - - StatusCode AfpSIDSimHitCollectionFillerTool::book() - { - ATH_MSG_DEBUG( "AfpSIDSimHitCollectionFillerTool---> Booking Histograms" ); - - CHECK(addVariable("tot_num_hits",m_pnTotHitsCnt)); - CHECK(addVariable("hitID",m_pvecHitID)); - CHECK(addVariable("trackID",m_pvecTrackID)); - CHECK(addVariable("encoding",m_pvecParticleEncoding)); - CHECK(addVariable("kineticE",m_pvecKineticEnergy)); - CHECK(addVariable("depE",m_pvecEnergyDeposit)); - CHECK(addVariable("prestep_x",m_pvecPreStepX)); - CHECK(addVariable("prestep_y",m_pvecPreStepY)); - CHECK(addVariable("prestep_z",m_pvecPreStepZ)); - CHECK(addVariable("poststep_x",m_pvecPostStepX)); - CHECK(addVariable("poststep_y",m_pvecPostStepY)); - CHECK(addVariable("poststep_z",m_pvecPostStepZ)); - CHECK(addVariable("time",m_pvecGlobalTime)); - CHECK(addVariable("stID",m_pvecStationID)); - CHECK(addVariable("layerID",m_pvecDetectorID)); - CHECK(addVariable("isVacLayer",m_pvecIsAuxVSID)); - CHECK(addVariable("pixel_row",m_pvecPixelRow)); - CHECK(addVariable("pixel_col",m_pvecPixelCol)); - - return StatusCode::SUCCESS; - } - - StatusCode AfpSIDSimHitCollectionFillerTool::fill(const AFP_SIDSimHitCollection& DataCollection) - { - ClearData(DataCollection); - - int i; - AFP_SIDSimHitCollection::const_iterator iterColl; - - ClearData(DataCollection); - - *m_pnTotHitsCnt=DataCollection.size(); - for(i=0,iterColl=DataCollection.begin();iterColl!=DataCollection.end();i++,iterColl++) - { - (*m_pvecHitID)[i]=iterColl->m_nHitID; - (*m_pvecTrackID)[i]=iterColl->m_nTrackID; - (*m_pvecParticleEncoding)[i]=iterColl->m_nParticleEncoding; - (*m_pvecKineticEnergy)[i]=iterColl->m_fKineticEnergy; - (*m_pvecEnergyDeposit)[i]=iterColl->m_fEnergyDeposit; - (*m_pvecPreStepX)[i]=iterColl->m_fPreStepX; - (*m_pvecPreStepY)[i]=iterColl->m_fPreStepY; - (*m_pvecPreStepZ)[i]=iterColl->m_fPreStepZ; - (*m_pvecPostStepX)[i]=iterColl->m_fPostStepX; - (*m_pvecPostStepY)[i]=iterColl->m_fPostStepY; - (*m_pvecPostStepZ)[i]=iterColl->m_fPostStepZ; - (*m_pvecGlobalTime)[i]=iterColl->m_fGlobalTime; - (*m_pvecStationID)[i]=iterColl->m_nStationID; - (*m_pvecDetectorID)[i]=iterColl->m_nDetectorID; - (*m_pvecIsAuxVSID)[i]=iterColl->m_bIsAuxVSID; - (*m_pvecPixelRow)[i]=iterColl->m_nPixelRow; - (*m_pvecPixelCol)[i]=iterColl->m_nPixelCol; - } - - return StatusCode::SUCCESS; - } - - void AfpSIDSimHitCollectionFillerTool::ClearData(const AFP_SIDSimHitCollection& DataCollection) - { - int nItemsCnt; - - nItemsCnt=DataCollection.size(); - *m_pnTotHitsCnt=-1; - m_pvecHitID->resize(nItemsCnt); - fill_n(m_pvecHitID->begin(),m_pvecHitID->size(),-1); - m_pvecTrackID->resize(nItemsCnt); - fill_n(m_pvecTrackID->begin(),m_pvecTrackID->size(),-1); - m_pvecParticleEncoding->resize(nItemsCnt); - fill_n(m_pvecParticleEncoding->begin(),m_pvecParticleEncoding->size(),UNDEFINTVALUE); - m_pvecKineticEnergy->resize(nItemsCnt); - fill_n(m_pvecKineticEnergy->begin(),m_pvecKineticEnergy->size(),UNDEFFLOATVALUE); - m_pvecEnergyDeposit->resize(nItemsCnt); - fill_n(m_pvecEnergyDeposit->begin(),m_pvecEnergyDeposit->size(),UNDEFFLOATVALUE); - m_pvecPreStepX->resize(nItemsCnt); - fill_n(m_pvecPreStepX->begin(),m_pvecPreStepX->size(),UNDEFFLOATVALUE); - m_pvecPreStepY->resize(nItemsCnt); - fill_n(m_pvecPreStepY->begin(),m_pvecPreStepY->size(),UNDEFFLOATVALUE); - m_pvecPreStepZ->resize(nItemsCnt); - fill_n(m_pvecPreStepZ->begin(),m_pvecPreStepZ->size(),UNDEFFLOATVALUE); - m_pvecPostStepX->resize(nItemsCnt); - fill_n(m_pvecPostStepX->begin(),m_pvecPostStepX->size(),UNDEFFLOATVALUE); - m_pvecPostStepY->resize(nItemsCnt); - fill_n(m_pvecPostStepY->begin(),m_pvecPostStepY->size(),UNDEFFLOATVALUE); - m_pvecPostStepZ->resize(nItemsCnt); - fill_n(m_pvecPostStepZ->begin(),m_pvecPostStepZ->size(),UNDEFFLOATVALUE); - m_pvecGlobalTime->resize(nItemsCnt); - fill_n(m_pvecGlobalTime->begin(),m_pvecGlobalTime->size(),UNDEFFLOATVALUE); - m_pvecStationID->resize(nItemsCnt); - fill_n(m_pvecStationID->begin(),m_pvecStationID->size(),-1); - m_pvecDetectorID->resize(nItemsCnt); - fill_n(m_pvecDetectorID->begin(),m_pvecDetectorID->size(),-1); - m_pvecIsAuxVSID->resize(nItemsCnt); - fill_n(m_pvecIsAuxVSID->begin(),m_pvecIsAuxVSID->size(),-1); - m_pvecPixelRow->resize(nItemsCnt); - fill_n(m_pvecPixelRow->begin(),m_pvecPixelRow->size(),-1); - m_pvecPixelCol->resize(nItemsCnt); - fill_n(m_pvecPixelCol->begin(),m_pvecPixelCol->size(),-1); - } - - -} // namespace D3PD - diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpSIDSimHitCollectionFillerTool.h b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpSIDSimHitCollectionFillerTool.h deleted file mode 100644 index 8bf07429ca0d57557732ce5223a79dd738d8f096..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpSIDSimHitCollectionFillerTool.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef FORWARDDETECTORSD3PDMAKER_AFPSIDSIMHITCOLLECTIONFILLERTOOL_H -#define FORWARDDETECTORSD3PDMAKER_AFPSIDSIMHITCOLLECTIONFILLERTOOL_H - -#include "AfpCommonHdr.h" -#include "AFP_SimEv/AFP_SIDSimHitCollection.h" - -namespace D3PD -{ - typedef D3PD::BlockFillerTool<AFP_SIDSimHitCollection> AfpSIDSimHitCollectionFillerBase; - - class AfpSIDSimHitCollectionFillerTool : public AfpSIDSimHitCollectionFillerBase - { - - public: - AfpSIDSimHitCollectionFillerTool(const std::string& type, const std::string& name, const IInterface* parent); - - virtual StatusCode initialize(); - virtual StatusCode book(); - virtual StatusCode fill(const AFP_SIDSimHitCollection& DataCollection); - - private: - void ClearData(const AFP_SIDSimHitCollection& DataCollection); - - private: - int* m_pnTotHitsCnt; - std::vector<int>* m_pvecHitID; - std::vector<int>* m_pvecTrackID; - std::vector<int>* m_pvecParticleEncoding; - std::vector<float>* m_pvecKineticEnergy; - std::vector<float>* m_pvecEnergyDeposit; - std::vector<float>* m_pvecPreStepX; - std::vector<float>* m_pvecPreStepY; - std::vector<float>* m_pvecPreStepZ; - std::vector<float>* m_pvecPostStepX; - std::vector<float>* m_pvecPostStepY; - std::vector<float>* m_pvecPostStepZ; - std::vector<float>* m_pvecGlobalTime; - std::vector<int>* m_pvecStationID; - std::vector<int>* m_pvecDetectorID; - std::vector<int>* m_pvecIsAuxVSID; - std::vector<int>* m_pvecPixelRow; - std::vector<int>* m_pvecPixelCol; - }; -} - -#endif // FORWARDDETECTORSD3PDMAKER_AFPSIDSIMHITCOLLECTIONFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpTDDigiCollectionFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpTDDigiCollectionFillerTool.cxx deleted file mode 100644 index fbc9c9f57378c0d396fb9ddf9dfa26e79bc00b00..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpTDDigiCollectionFillerTool.cxx +++ /dev/null @@ -1,58 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -// Gaudi/Athena include(s): -#include "AthenaKernel/errorcheck.h" -#include "Identifier/Identifier.h" - -// Local include(s): -#include "AfpTDDigiCollectionFillerTool.h" - -namespace D3PD { - - AfpTDDigiCollectionFillerTool::AfpTDDigiCollectionFillerTool( const std::string& type, const std::string& name, const IInterface* parent) - : AfpTDDigiCollectionFillerBase( type, name, parent ) - { - ATH_MSG_INFO( "AfpTDDigiCollectionFillerTool---> Constructor" ); - - //m_pvecXDetCS=NULL; - //m_pnMaxTrackCnt=NULL; - } - - StatusCode AfpTDDigiCollectionFillerTool::initialize() - { - // Initialize the base class: - CHECK( AfpTDDigiCollectionFillerBase::initialize() ); - ATH_MSG_INFO( "AfpTDDigiCollectionFillerTool---> Initialized" ); - - return StatusCode::SUCCESS; - } - - StatusCode AfpTDDigiCollectionFillerTool::book() - { - ATH_MSG_DEBUG( "AfpTDDigiCollectionFillerTool---> Booking Histograms" ); - - //CHECK( addVariable ("x_Det", m_pvecXDetCS)); - //CHECK( addVariable ("NumTrack", m_pnMaxTrackCnt)); - - return StatusCode::SUCCESS; - } - - StatusCode AfpTDDigiCollectionFillerTool::fill(const AFP_TDDigiCollection& /*DataCollection*/) - { - ClearData(); - - return StatusCode::SUCCESS; - } - - void AfpTDDigiCollectionFillerTool::ClearData() - { - //*m_pnMaxTrackCnt=nMaxTrackCnt; - //m_pvecXDetCS->resize(RPOTSCNT*nMaxTrackCnt); - //fill_n(m_pvecXDetCS->begin(),m_pvecXDetCS->size(),-9999); - } - - -} // namespace D3PD - diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpTDDigiCollectionFillerTool.h b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpTDDigiCollectionFillerTool.h deleted file mode 100644 index a8a55384c0d2d41755822ffc5b042b4bac38b528..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpTDDigiCollectionFillerTool.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef FORWARDDETECTORSD3PDMAKER_AFPTDDIGICOLLECTIONFILLERTOOL_H -#define FORWARDDETECTORSD3PDMAKER_AFPTDDIGICOLLECTIONFILLERTOOL_H - -#include "AfpCommonHdr.h" -#include "AFP_DigiEv/AFP_TDDigiCollection.h" - -namespace D3PD -{ - typedef D3PD::BlockFillerTool<AFP_TDDigiCollection> AfpTDDigiCollectionFillerBase; - - class AfpTDDigiCollectionFillerTool : public AfpTDDigiCollectionFillerBase - { - - public: - AfpTDDigiCollectionFillerTool( const std::string& type, const std::string& name, const IInterface* parent ); - - virtual StatusCode initialize(); - virtual StatusCode book(); - virtual StatusCode fill(const AFP_TDDigiCollection& DataCollection); - - private: - void ClearData(); - - private: - - //SiDigiCollection - //vector<float>* m_pvecXDetCS; - //int* m_pnMaxTrackCnt; - - }; -} - -#endif // FORWARDDETECTORSD3PDMAKER_AFPTDDIGICOLLECTIONFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpTDLocRecoEvCollectionFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpTDLocRecoEvCollectionFillerTool.cxx deleted file mode 100644 index 855dd7bded5e12e9be3fdafb3a7cd442cefe5965..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpTDLocRecoEvCollectionFillerTool.cxx +++ /dev/null @@ -1,94 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -// Gaudi/Athena include(s): -#include "AthenaKernel/errorcheck.h" -#include "Identifier/Identifier.h" - -// Local include(s): -#include "AfpTDLocRecoEvCollectionFillerTool.h" - -namespace D3PD { - - AfpTDLocRecoEvCollectionFillerTool::AfpTDLocRecoEvCollectionFillerTool( const std::string& type, const std::string& name, const IInterface* parent) - : AfpTDLocRecoEvCollectionFillerBase( type, name, parent ) - { - ATH_MSG_INFO( "AfpTDLocRecoEvCollectionFillerTool---> Constructor" ); - - m_pnTotTracksCnt=NULL; - m_pvecTrackStationID=NULL; - m_pvecTrackQuarticID=NULL; - m_pvecTrackTrainID=NULL; - m_pvecTrackTrainTime=NULL; - m_pvecTrackTrainAmplitude=NULL; - m_pvecTrackSaturatedBars=NULL; - } - - StatusCode AfpTDLocRecoEvCollectionFillerTool::initialize() - { - // Initialize the base class: - CHECK( AfpTDLocRecoEvCollectionFillerBase::initialize() ); - ATH_MSG_INFO( "AfpTDLocRecoEvCollectionFillerTool---> Initialized" ); - - return StatusCode::SUCCESS; - } - - StatusCode AfpTDLocRecoEvCollectionFillerTool::book() - { - ATH_MSG_DEBUG( "AfpTDLocRecoEvCollectionFillerTool---> Booking Histograms" ); - - CHECK(addVariable("tid_tot_num_tracks",m_pnTotTracksCnt)); - CHECK(addVariable("tid_stID",m_pvecTrackStationID)); - CHECK(addVariable("tid_qID",m_pvecTrackQuarticID)); - CHECK(addVariable("tid_trainID",m_pvecTrackTrainID)); - CHECK(addVariable("tid_time",m_pvecTrackTrainTime)); - CHECK(addVariable("tid_amplitude",m_pvecTrackTrainAmplitude)); - CHECK(addVariable("tid_num_saturated_bars",m_pvecTrackSaturatedBars)); - - return StatusCode::SUCCESS; - } - - StatusCode AfpTDLocRecoEvCollectionFillerTool::fill(const AFP_TDLocRecoEvCollection& DataCollection) - { - int i; - AFP_TDLocRecoEvCollection::const_iterator iterColl; - - ClearData(DataCollection); - - *m_pnTotTracksCnt=DataCollection.size(); - for(i=0,iterColl=DataCollection.begin();iterColl!=DataCollection.end();i++,iterColl++) - { - (*m_pvecTrackStationID)[i]=(*iterColl)->getStationID(); - (*m_pvecTrackQuarticID)[i]=(*iterColl)->getDetectorID(); - (*m_pvecTrackTrainID)[i]=(*iterColl)->getTrainID(); - (*m_pvecTrackTrainTime)[i]=(*iterColl)->getTrainTime(); - (*m_pvecTrackTrainAmplitude)[i]=(*iterColl)->getTrainSize(); - (*m_pvecTrackSaturatedBars)[i]=(*iterColl)->getSaturation(); - } - - return StatusCode::SUCCESS; - } - - void AfpTDLocRecoEvCollectionFillerTool::ClearData(const AFP_TDLocRecoEvCollection& DataCollection) - { - int nItemsCnt; - - nItemsCnt=DataCollection.size(); - *m_pnTotTracksCnt=-1; - m_pvecTrackStationID->resize(nItemsCnt); - fill_n(m_pvecTrackStationID->begin(),m_pvecTrackStationID->size(),UNDEFINTVALUE); - m_pvecTrackQuarticID->resize(nItemsCnt); - fill_n(m_pvecTrackQuarticID->begin(),m_pvecTrackQuarticID->size(),UNDEFINTVALUE); - m_pvecTrackTrainID->resize(nItemsCnt); - fill_n(m_pvecTrackTrainID->begin(),m_pvecTrackTrainID->size(),UNDEFINTVALUE); - m_pvecTrackTrainTime->resize(nItemsCnt); - fill_n(m_pvecTrackTrainTime->begin(),m_pvecTrackTrainTime->size(),UNDEFFLOATVALUE); - m_pvecTrackTrainAmplitude->resize(nItemsCnt); - fill_n(m_pvecTrackTrainAmplitude->begin(),m_pvecTrackTrainAmplitude->size(),UNDEFFLOATVALUE); - m_pvecTrackSaturatedBars->resize(nItemsCnt); - fill_n(m_pvecTrackSaturatedBars->begin(),m_pvecTrackSaturatedBars->size(),UNDEFINTVALUE); - } - -} // namespace D3PD - diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpTDLocRecoEvCollectionFillerTool.h b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpTDLocRecoEvCollectionFillerTool.h deleted file mode 100644 index ccf48944325476a1ce7b5bbc163fbc3347115eb1..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpTDLocRecoEvCollectionFillerTool.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef FORWARDDETECTORSD3PDMAKER_AFPTDLOCRECOEVCOLLECTIONFILLERTOOL_H -#define FORWARDDETECTORSD3PDMAKER_AFPTDLOCRECOEVCOLLECTIONFILLERTOOL_H - -#include "AfpCommonHdr.h" -#include "AFP_LocRecoEv/AFP_TDLocRecoEvCollection.h" - -namespace D3PD -{ - typedef D3PD::BlockFillerTool<AFP_TDLocRecoEvCollection> AfpTDLocRecoEvCollectionFillerBase; - - class AfpTDLocRecoEvCollectionFillerTool : public AfpTDLocRecoEvCollectionFillerBase - { - - public: - AfpTDLocRecoEvCollectionFillerTool( const std::string& type, const std::string& name, const IInterface* parent ); - - virtual StatusCode initialize(); - virtual StatusCode book(); - virtual StatusCode fill(const AFP_TDLocRecoEvCollection& DataCollection); - - private: - void ClearData(const AFP_TDLocRecoEvCollection& DataCollection); - - private: - int* m_pnTotTracksCnt; - std::vector<int>* m_pvecTrackStationID; - std::vector<int>* m_pvecTrackQuarticID; - std::vector<int>* m_pvecTrackTrainID; - std::vector<float>* m_pvecTrackTrainTime; - std::vector<float>* m_pvecTrackTrainAmplitude; - std::vector<int>* m_pvecTrackSaturatedBars; - }; -} - -#endif // FORWARDDETECTORSD3PDMAKER_AFPTDLOCRECOEVCOLLECTIONFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpTDSimHitCollectionFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpTDSimHitCollectionFillerTool.cxx deleted file mode 100644 index 193f905b25785a5826ab3f7cb620f10c18fa788d..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpTDSimHitCollectionFillerTool.cxx +++ /dev/null @@ -1,143 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -// Gaudi/Athena include(s): -#include "AthenaKernel/errorcheck.h" -#include "Identifier/Identifier.h" - -// Local include(s): -#include "AfpTDSimHitCollectionFillerTool.h" - -namespace D3PD { - - AfpTDSimHitCollectionFillerTool::AfpTDSimHitCollectionFillerTool( const std::string& type, const std::string& name, const IInterface* parent) - : AfpTDSimHitCollectionFillerBase( type, name, parent ) - { - ATH_MSG_INFO( "AfpTDSimHitCollectionFillerTool---> Constructor" ); - - m_pnTotHitsCnt=NULL; - m_pvecHitID=NULL; - m_pvecTrackID=NULL; - m_pvecParticleEncoding=NULL; - m_pvecKineticEnergy=NULL; - m_pvecEnergyDeposit=NULL; - m_pvecPreStepX=NULL; - m_pvecPreStepY=NULL; - m_pvecPreStepZ=NULL; - m_pvecPostStepX=NULL; - m_pvecPostStepY=NULL; - m_pvecPostStepZ=NULL; - m_pvecGlobalTime=NULL; - m_pvecStationID=NULL; - m_pvecDetectorID=NULL; - m_pvecSensitiveElementID=NULL; - } - - StatusCode AfpTDSimHitCollectionFillerTool::initialize() - { - // Initialize the base class: - CHECK( AfpTDSimHitCollectionFillerBase::initialize() ); - ATH_MSG_INFO( "AfpTDSimHitCollectionFillerTool---> Initialized" ); - - return StatusCode::SUCCESS; - } - - StatusCode AfpTDSimHitCollectionFillerTool::book() - { - ATH_MSG_DEBUG( "AfpTDSimHitCollectionFillerTool---> Booking Histograms" ); - - CHECK(addVariable("tot_num_hits",m_pnTotHitsCnt)); - CHECK(addVariable("hitID",m_pvecHitID)); - CHECK(addVariable("trackID",m_pvecTrackID)); - CHECK(addVariable("encoding",m_pvecParticleEncoding)); - CHECK(addVariable("kineticE",m_pvecKineticEnergy)); - CHECK(addVariable("depE",m_pvecEnergyDeposit)); - CHECK(addVariable("prestep_x",m_pvecPreStepX)); - CHECK(addVariable("prestep_y",m_pvecPreStepY)); - CHECK(addVariable("prestep_z",m_pvecPreStepZ)); - CHECK(addVariable("poststep_x",m_pvecPostStepX)); - CHECK(addVariable("poststep_y",m_pvecPostStepY)); - CHECK(addVariable("poststep_z",m_pvecPostStepZ)); - CHECK(addVariable("time",m_pvecGlobalTime)); - CHECK(addVariable("stID",m_pvecStationID)); - CHECK(addVariable("layerID",m_pvecDetectorID)); - CHECK(addVariable("senselID",m_pvecSensitiveElementID)); - - return StatusCode::SUCCESS; - } - - StatusCode AfpTDSimHitCollectionFillerTool::fill(const AFP_TDSimHitCollection& DataCollection) - { - ClearData(DataCollection); - - int i; - AFP_TDSimHitCollection::const_iterator iterColl; - - ClearData(DataCollection); - - *m_pnTotHitsCnt=DataCollection.size(); - for(i=0,iterColl=DataCollection.begin();iterColl!=DataCollection.end();i++,iterColl++) - { - (*m_pvecHitID)[i]=iterColl->m_nHitID; - (*m_pvecTrackID)[i]=iterColl->m_nTrackID; - (*m_pvecParticleEncoding)[i]=iterColl->m_nParticleEncoding; - (*m_pvecKineticEnergy)[i]=iterColl->m_fKineticEnergy; - (*m_pvecEnergyDeposit)[i]=iterColl->m_fEnergyDeposit; - (*m_pvecPreStepX)[i]=iterColl->m_fPreStepX; - (*m_pvecPreStepY)[i]=iterColl->m_fPreStepY; - (*m_pvecPreStepZ)[i]=iterColl->m_fPreStepZ; - (*m_pvecPostStepX)[i]=iterColl->m_fPostStepX; - (*m_pvecPostStepY)[i]=iterColl->m_fPostStepY; - (*m_pvecPostStepZ)[i]=iterColl->m_fPostStepZ; - (*m_pvecGlobalTime)[i]=iterColl->m_fGlobalTime; - (*m_pvecStationID)[i]=iterColl->m_nStationID; - (*m_pvecDetectorID)[i]=iterColl->m_nDetectorID; - (*m_pvecSensitiveElementID)[i]=iterColl->m_nSensitiveElementID; - } - - return StatusCode::SUCCESS; - } - - void AfpTDSimHitCollectionFillerTool::ClearData(const AFP_TDSimHitCollection& DataCollection) - { - int nItemsCnt; - - nItemsCnt=DataCollection.size(); - *m_pnTotHitsCnt=-1; - m_pvecHitID->resize(nItemsCnt); - fill_n(m_pvecHitID->begin(),m_pvecHitID->size(),-1); - m_pvecTrackID->resize(nItemsCnt); - fill_n(m_pvecTrackID->begin(),m_pvecTrackID->size(),-1); - m_pvecParticleEncoding->resize(nItemsCnt); - fill_n(m_pvecParticleEncoding->begin(),m_pvecParticleEncoding->size(),UNDEFINTVALUE); - m_pvecKineticEnergy->resize(nItemsCnt); - fill_n(m_pvecKineticEnergy->begin(),m_pvecKineticEnergy->size(),UNDEFFLOATVALUE); - m_pvecEnergyDeposit->resize(nItemsCnt); - fill_n(m_pvecEnergyDeposit->begin(),m_pvecEnergyDeposit->size(),UNDEFFLOATVALUE); - m_pvecPreStepX->resize(nItemsCnt); - fill_n(m_pvecPreStepX->begin(),m_pvecPreStepX->size(),UNDEFFLOATVALUE); - m_pvecPreStepY->resize(nItemsCnt); - fill_n(m_pvecPreStepY->begin(),m_pvecPreStepY->size(),UNDEFFLOATVALUE); - m_pvecPreStepZ->resize(nItemsCnt); - fill_n(m_pvecPreStepZ->begin(),m_pvecPreStepZ->size(),UNDEFFLOATVALUE); - m_pvecPostStepX->resize(nItemsCnt); - fill_n(m_pvecPostStepX->begin(),m_pvecPostStepX->size(),UNDEFFLOATVALUE); - m_pvecPostStepY->resize(nItemsCnt); - fill_n(m_pvecPostStepY->begin(),m_pvecPostStepY->size(),UNDEFFLOATVALUE); - m_pvecPostStepZ->resize(nItemsCnt); - fill_n(m_pvecPostStepZ->begin(),m_pvecPostStepZ->size(),UNDEFFLOATVALUE); - m_pvecGlobalTime->resize(nItemsCnt); - fill_n(m_pvecGlobalTime->begin(),m_pvecGlobalTime->size(),UNDEFFLOATVALUE); - m_pvecStationID->resize(nItemsCnt); - fill_n(m_pvecStationID->begin(),m_pvecStationID->size(),-1); - m_pvecDetectorID->resize(nItemsCnt); - fill_n(m_pvecDetectorID->begin(),m_pvecDetectorID->size(),-1); - m_pvecSensitiveElementID->resize(nItemsCnt); - fill_n(m_pvecSensitiveElementID->begin(),m_pvecSensitiveElementID->size(),-1); - - } - - -} // namespace D3PD - diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpTDSimHitCollectionFillerTool.h b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpTDSimHitCollectionFillerTool.h deleted file mode 100644 index 6576d42afe23a4e2a5cdd81ee36e31d6ca0638ef..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpTDSimHitCollectionFillerTool.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef FORWARDDETECTORSD3PDMAKER_AFPTDSIMHITCOLLECTIONFILLERTOOL_H -#define FORWARDDETECTORSD3PDMAKER_AFPTDSIMHITCOLLECTIONFILLERTOOL_H - -#include "AfpCommonHdr.h" -#include "AFP_SimEv/AFP_TDSimHitCollection.h" - -namespace D3PD -{ - typedef D3PD::BlockFillerTool<AFP_TDSimHitCollection> AfpTDSimHitCollectionFillerBase; - - class AfpTDSimHitCollectionFillerTool : public AfpTDSimHitCollectionFillerBase - { - - public: - AfpTDSimHitCollectionFillerTool(const std::string& type, const std::string& name, const IInterface* parent); - - virtual StatusCode initialize(); - virtual StatusCode book(); - virtual StatusCode fill(const AFP_TDSimHitCollection& DataCollection); - - private: - void ClearData(const AFP_TDSimHitCollection& DataCollection); - - private: - int* m_pnTotHitsCnt; - std::vector<int>* m_pvecHitID; - std::vector<int>* m_pvecTrackID; - std::vector<int>* m_pvecParticleEncoding; - std::vector<float>* m_pvecKineticEnergy; - std::vector<float>* m_pvecEnergyDeposit; - std::vector<float>* m_pvecPreStepX; - std::vector<float>* m_pvecPreStepY; - std::vector<float>* m_pvecPreStepZ; - std::vector<float>* m_pvecPostStepX; - std::vector<float>* m_pvecPostStepY; - std::vector<float>* m_pvecPostStepZ; - std::vector<float>* m_pvecGlobalTime; - std::vector<int>* m_pvecStationID; - std::vector<int>* m_pvecDetectorID; - std::vector<int>* m_pvecSensitiveElementID; - }; -} - -#endif // FORWARDDETECTORSD3PDMAKER_AFPTDSIMHITCOLLECTIONFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpTruthInfoFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpTruthInfoFillerTool.cxx deleted file mode 100644 index 4b0c094371c420f1457833c83116775d681e80d6..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpTruthInfoFillerTool.cxx +++ /dev/null @@ -1,308 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -// Gaudi/Athena include(s): -#include "AthenaKernel/errorcheck.h" -#include "Identifier/Identifier.h" - -// Local include(s): -#include "AfpTruthInfoFillerTool.h" -//#include "AthenaPoolUtilities/AthenaAttributeList.h" -#include <cmath> - -namespace D3PD { - - AfpTruthInfoFillerTool::AfpTruthInfoFillerTool( const std::string& type, const std::string& name, const IInterface* parent) - : AfpTruthInfoFillerBase( type, name, parent ) - { - ATH_MSG_INFO( "AfpTruthInfoFillerTool---> Constructor" ); - - //m_pnPrimaryIPs=NULL; - //m_pnProtons_f=NULL; - - m_pvecVtx_g_x=NULL; - m_pvecVtx_g_y=NULL; - m_pvecVtx_g_z=NULL; - m_pvecVtx_g_t=NULL; - - m_pvecPBeam1_i_pt=NULL; - m_pvecPBeam1_i_phi=NULL; - m_pvecPBeam1_i_pz=NULL; - m_pvecPBeam1_i_E=NULL; - - m_pvecPBeam2_i_pt=NULL; - m_pvecPBeam2_i_phi=NULL; - m_pvecPBeam2_i_pz=NULL; - m_pvecPBeam2_i_E=NULL; - - m_pvecParticle_f_pt=NULL; - m_pvecParticle_f_phi=NULL; - m_pvecParticle_f_pz=NULL; - m_pvecParticle_f_m=NULL; - m_pvecParticle_f_pdg=NULL; - m_pvecParticle_f_barcode=NULL; - - } - - StatusCode AfpTruthInfoFillerTool::initialize() - { - // Initialize the base class: - CHECK( AfpTruthInfoFillerBase::initialize() ); - - /* - // get detector store - if (StatusCode::SUCCESS!=service("DetectorStore", p_detstore)) { - ATH_MSG_FATAL( "Detector store not found" ); - return StatusCode::FAILURE; - } - - ATH_MSG_INFO( "AfpTruthInfoFillerTool---> starting initialization" ); - - const AthenaAttributeList* atrlist=0; - - ATH_MSG_INFO( "AfpTruthInfoFillerTool---> first step" ); - - if (StatusCode::SUCCESS==p_detstore->retrieve(atrlist,table)) - { - int beam_energy=(*atrlist)["beam_energy"].data<int>(); - } - - ATH_MSG_DEBUG( " beam energy = " << beam_energy ); - - */ - - ATH_MSG_INFO( "AfpTruthInfoFillerTool---> Initialized" ); - - return StatusCode::SUCCESS; - } - - StatusCode AfpTruthInfoFillerTool::book() - { - ATH_MSG_DEBUG( "AfpTruthInfoFillerTool---> Booking Histograms" ); - - //CHECK( addVariable ("nPrimaryIPs", m_pnPrimaryIPs)); - - CHECK( addVariable ("vtx_G_x", m_pvecVtx_g_x)); - CHECK( addVariable ("vtx_G_y", m_pvecVtx_g_y)); - CHECK( addVariable ("vtx_G_z", m_pvecVtx_g_z)); - CHECK( addVariable ("vtx_G_t", m_pvecVtx_g_t)); - - CHECK( addVariable ("p_beam1_i_pt", m_pvecPBeam1_i_pt)); - CHECK( addVariable ("p_beam1_i_phi", m_pvecPBeam1_i_phi)); - CHECK( addVariable ("p_beam1_i_pz", m_pvecPBeam1_i_pz)); - CHECK( addVariable ("p_beam1_i_E", m_pvecPBeam1_i_E)); - - CHECK( addVariable ("p_beam2_i_pt", m_pvecPBeam2_i_pt)); - CHECK( addVariable ("p_beam2_i_phi", m_pvecPBeam2_i_phi)); - CHECK( addVariable ("p_beam2_i_pz", m_pvecPBeam2_i_pz)); - CHECK( addVariable ("p_beam2_i_E", m_pvecPBeam2_i_E)); - - CHECK( addVariable ("particle_f_pt", m_pvecParticle_f_pt)); - CHECK( addVariable ("particle_f_phi", m_pvecParticle_f_phi)); - CHECK( addVariable ("particle_f_pz", m_pvecParticle_f_pz)); - CHECK( addVariable ("particle_f_m", m_pvecParticle_f_m)); - CHECK( addVariable ("particle_f_pdg", m_pvecParticle_f_pdg)); - CHECK( addVariable ("particle_f_barcode", m_pvecParticle_f_barcode)); - - return StatusCode::SUCCESS; - } - - StatusCode AfpTruthInfoFillerTool::fill(const McEventCollection& EventCollection) - { - MsgStream LogStream(Athena::getMessageSvc(), "AfpTruthInfoFillerTool::fill()"); - LogStream << MSG::DEBUG << "begin " << endmsg; - - //float px, py, pz, E, phi; - float pz; - //int barcode; - int coll_counter = 0; - - McEventCollection::const_iterator mcTruBeg = EventCollection.begin(); // = (*mcTru).begin() - McEventCollection::const_iterator mcTruEnd = EventCollection.end(); - - ClearData(); - - int vtx_counter[MAXPILEUP]; - memset(&vtx_counter, 0, sizeof(vtx_counter)); - - //loop over collection (container) - for(;mcTruBeg!=mcTruEnd;++mcTruBeg){ - - HepMC::GenParticle* pi1=0; - HepMC::GenParticle* pi2=0; - HepMC::GenParticle* p2=0; - - int pint = 0; - int pcount = 0; - - LogStream << MSG::DEBUG << " just before " << endmsg; - HepMC::GenParticle* beam_p1 = (**mcTruBeg).beam_particles().first; - HepMC::GenParticle* beam_p2 = (**mcTruBeg).beam_particles().second; - - LogStream << MSG::DEBUG << " beam1 pointer " << beam_p1 << endmsg; - LogStream << MSG::DEBUG << " beam2 pointer " << beam_p2 << endmsg; - LogStream << MSG::DEBUG << " just after " << endmsg; - - double beam1_energy = 0.; //MeV - double beam2_energy = 0.; //MeV - - LogStream << MSG::DEBUG << " beam1_energy = " << beam1_energy << ", beam2_energy = " << beam2_energy << endmsg; - - - //b_vtx_kin_fill_flag = false; - coll_counter++; - - HepMC::GenEvent::vertex_const_iterator begGenVtxItr = (**mcTruBeg).vertices_begin(); - HepMC::GenEvent::vertex_const_iterator endGenVtxItr = (**mcTruBeg).vertices_end(); - - - //particles at IP and IP vertex properties - - //loop over verteces belonging to one event in the given collection - for(;begGenVtxItr!=endGenVtxItr;++begGenVtxItr){ - - //LogStream << MSG::DEBUG << " * collection no: " << coll_counter << endmsg; - //LogStream << MSG::DEBUG << " * vertex no: " << vtx_counter[coll_counter-1] << endmsg; - //LogStream << MSG::DEBUG << " * position x = " << (**begGenVtxItr).position().x() << ", y = " << (**begGenVtxItr).position().y()<< ", z =" << (**begGenVtxItr).position().z() << endmsg; - - // tom sykora: following 3 lines (cut on z-vertex position) remained here from the historical/old code with no cut on *primary* vertices... - //if (fabs((**begGenVtxItr).position().z()) > 500.){ // the IP vertex should be max +/-50 cm from z=0. - // continue; - //} - - vtx_counter[coll_counter-1]++; - - HepMC::GenVertex::particle_iterator child; - child = (*begGenVtxItr)->particles_begin(HepMC::family); - HepMC::GenVertex::particle_iterator child_end; - child_end = (*begGenVtxItr)->particles_end(HepMC::family); - - for(; child != child_end; ++child){ - - pz = (*child)->momentum().pz(); - - - // incoming protons (status code = 4) at the interaction point; - if( (*child)->status() == 4){ // note, it can be any colliding particle, hopefully Pb too - pint++; - // assuming no bugs in generation - vertex should be just 1 per collection ;-) - - if (pint == 1){ - m_pvecVtx_g_x->push_back((**begGenVtxItr).position().x()); - m_pvecVtx_g_y->push_back((**begGenVtxItr).position().y()); - m_pvecVtx_g_z->push_back((**begGenVtxItr).position().z()); - m_pvecVtx_g_t->push_back((**begGenVtxItr).position().t()); - } - - if(pz > 0){ - pi1=(*child); - m_pvecPBeam1_i_pt->push_back(sqrt(pi1->momentum().px()*pi1->momentum().px()+pi1->momentum().py()*pi1->momentum().py())); - m_pvecPBeam1_i_phi->push_back(pi1->momentum().phi()); - m_pvecPBeam1_i_pz->push_back(pi1->momentum().pz()); - m_pvecPBeam1_i_E->push_back(pi1->momentum().e()); - beam1_energy = pi1->momentum().e(); - //LogStream << MSG::DEBUG << "initial particle 1: px = " <<(*m_pvecPBeam1_i)[1] << ", py = " << (*m_pvecPBeam1_i)[2] << ", pz = " << (*m_pvecPBeam1_i)[3] << ", E = " << (*m_pvecPBeam1_i)[0] << endmsg; - //LogStream << MSG::DEBUG << " ** " << endmsg; - } - - if(pz < 0){ - pi2=(*child); - m_pvecPBeam2_i_pt->push_back(sqrt(pi2->momentum().px()*pi2->momentum().px()+pi2->momentum().py()*pi2->momentum().py())); - m_pvecPBeam2_i_phi->push_back(pi2->momentum().phi()); - m_pvecPBeam2_i_pz->push_back(pi2->momentum().pz()); - m_pvecPBeam2_i_E->push_back(pi2->momentum().e()); - beam2_energy = pi2->momentum().e(); - //LogStream << MSG::DEBUG << "initial particle 2: px = " << (*m_pvecPBeam2_i)[1] << ", py = " << (*m_pvecPBeam2_i)[2] << ", pz = " << (*m_pvecPBeam2_i)[3] << ", E = " << (*m_pvecPBeam2_i)[0] << endmsg; - //LogStream << MSG::DEBUG << " ** " << endmsg; - } - - if(pint > 2) {LogStream << MSG::DEBUG << "Strange: More than two incoming protons in this event! (depends what is simulated, in particle generator or gun, ...)" << endmsg;} - LogStream << MSG::DEBUG << "pint = " << pint << endmsg; - - // we know we have interaction vertex (==4), outgoing protons at the interaction point; 2 will be just in case of elastic or exlusive processes(and if no additional protons are produced) - - - // now we will run over primary IP vertex, looking for all leading protons or proton like leading particles - HepMC::GenVertex::particle_iterator childik; - childik = (*begGenVtxItr)->particles_begin(HepMC::children); - HepMC::GenVertex::particle_iterator childik_end; - childik_end = (*begGenVtxItr)->particles_end(HepMC::children); - - for(; childik != childik_end; ++childik){ - - - p2=(*childik); - double pt = sqrt(p2->momentum().px()*p2->momentum().px()+p2->momentum().py()*p2->momentum().py()); - double pz = p2->momentum().pz(); - double eta = -log(std::abs(pt/(2.*pz))); //approximation ! - int pdg = p2->pdg_id(); - double xi = 1. - sqrt(pt*pt+pz*pz)/beam1_energy; - - LogStream << MSG::DEBUG << " *************************** " << endmsg; - LogStream << MSG::DEBUG << " forward particle eta = " << eta << endmsg; - LogStream << MSG::DEBUG << " forward particle xi = " << xi << endmsg; - LogStream << MSG::DEBUG << " forward particle pdg = " << pdg << endmsg; - - - //if( (*childik)->pdg_id() == 2212){ // can be elastic, diffractive, exclusive, p-Pb; do not know how to filter on elastic Pb - if ((pdg == 2212) || ((xi > 0.01) && (xi < 0.25 ) && (std::abs(eta)) > 8.)) - { - // du to this conditions only protons will be registered -> has to be changed - - pcount++; - - //p2=(*childik); - m_pvecParticle_f_pt->push_back(sqrt(p2->momentum().px()*p2->momentum().px()+p2->momentum().py()*p2->momentum().py())); - m_pvecParticle_f_phi->push_back(p2->momentum().phi()); - m_pvecParticle_f_pz->push_back(p2->momentum().pz()); - //m_pvecParticle_f_m->push_back(p2->generated_mass()); - m_pvecParticle_f_m->push_back(p2->momentum().m()); - m_pvecParticle_f_pdg->push_back(p2->pdg_id()); - m_pvecParticle_f_barcode->push_back(p2->barcode()); - } - } - - LogStream << MSG::DEBUG << "Number of outgoing protons (proton like) in this event " << endmsg;} - LogStream << MSG::DEBUG << "pcount = " << pcount << endmsg; - } - - } - } - - return StatusCode::SUCCESS; - } - - void AfpTruthInfoFillerTool::ClearData() - { - - //*m_pnPrimaryIPs = -1; - //*m_pnProtons_f = -1; - - m_pvecVtx_g_x->clear(); - m_pvecVtx_g_y->clear(); - m_pvecVtx_g_z->clear(); - m_pvecVtx_g_t->clear(); - - m_pvecPBeam1_i_pt->clear(); - m_pvecPBeam1_i_phi->clear(); - m_pvecPBeam1_i_pz->clear(); - m_pvecPBeam1_i_E->clear(); - - m_pvecPBeam2_i_pt->clear(); - m_pvecPBeam2_i_phi->clear(); - m_pvecPBeam2_i_pz->clear(); - m_pvecPBeam2_i_E->clear(); - - m_pvecParticle_f_pt->clear(); - m_pvecParticle_f_phi->clear(); - m_pvecParticle_f_pz->clear(); - m_pvecParticle_f_m->clear(); - m_pvecParticle_f_pdg->clear(); - m_pvecParticle_f_barcode->clear(); - - } - - -} // namespace D3PD - diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpTruthInfoFillerTool.h b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpTruthInfoFillerTool.h deleted file mode 100644 index 945b4b081eccc27958fdc4481fabb528a84b94cd..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AfpTruthInfoFillerTool.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef FORWARDDETECTORSD3PDMAKER_AFPTRUTHINFOFILLERTOOL_H -#define FORWARDDETECTORSD3PDMAKER_AFPTRUTHINFOFILLERTOOL_H - -#include "AfpCommonHdr.h" -#include "GeneratorObjects/McEventCollection.h" -#include "StoreGate/DataHandle.h" - -namespace D3PD -{ - typedef D3PD::BlockFillerTool<McEventCollection> AfpTruthInfoFillerBase; - - class AfpTruthInfoFillerTool : public AfpTruthInfoFillerBase - { - - public: - - AfpTruthInfoFillerTool( const std::string& type, const std::string& name, const IInterface* parent ); - - virtual StatusCode initialize(); - virtual StatusCode book(); - virtual StatusCode fill(const McEventCollection& EventCollection); - - private: - void ClearData(); - - private: - - - //StoreGateSvc* p_detstore; - - //*** information about vertex and incoming protons for each collision, pileup considered - //int* m_pnPrimaryIPs; - - std::vector<float>* m_pvecVtx_g_x; - std::vector<float>* m_pvecVtx_g_y; - std::vector<float>* m_pvecVtx_g_z; - std::vector<float>* m_pvecVtx_g_t; - - std::vector<float>* m_pvecPBeam1_i_pt; - std::vector<float>* m_pvecPBeam1_i_phi; - std::vector<float>* m_pvecPBeam1_i_pz; - std::vector<float>* m_pvecPBeam1_i_E; - - std::vector<float>* m_pvecPBeam2_i_pt; - std::vector<float>* m_pvecPBeam2_i_phi; - std::vector<float>* m_pvecPBeam2_i_pz; - std::vector<float>* m_pvecPBeam2_i_E; - - //*** information about leading particles (protons and proton like particles) - - //int* m_pnProtons_f; - - std::vector<float>* m_pvecParticle_f_pt; - std::vector<float>* m_pvecParticle_f_phi; - std::vector<float>* m_pvecParticle_f_pz; - std::vector<float>* m_pvecParticle_f_m; - std::vector<int>* m_pvecParticle_f_pdg; - std::vector<int>* m_pvecParticle_f_barcode; - - }; // class AfpTruthInfoFillerTool - -} // namespace D3PD - -#endif // not FORWARDDETECTORSD3PDMAKER_AFPTRUTHINFOFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AlfaCommonHdr.h b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AlfaCommonHdr.h deleted file mode 100644 index acbb57495218b5becff5ae4a4702ccf66450da38..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AlfaCommonHdr.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef FORWARDDETECTORSD3PDMAKER_ALFACOMMONHDR_H -#define FORWARDDETECTORSD3PDMAKER_ALFACOMMONHDR_H - -// STL include(s): -#include <vector> -#include <string> -#include <algorithm> - -// EDM include(s): -#include "ALFA_CLinkEv/ALFA_CLinkEvent.h" -#include "GeneratorObjects/McEventCollection.h" - -// D3PDMaker include(s): -#include "D3PDMakerUtils/BlockFillerTool.h" - -#define RPOTSCNT 8 -#define MDLAYERSCNT 2 -#define MDPLATESCNT 10 -#define MDFIBERSCNT 64 -#define ODLAYERSCNT 2 -#define ODPLATESCNT 3 -#define ODFIBERSCNT 15 - -#define TRIGPATCNT 16 -#define BLMCNT 6 -#define HVCHANNELCNT 216 -#define RADMONCNT 4 -#define FECNFTHRESHLOLDCNT 3 -#define FECNFGAINCNT 5 -#define TRIGSETCNT 6 -#define TRIGSETLATENCYCNT 3 - -#define MAXNUMTRACKS 100 -#define MAXNUMGLOBTRACKS 100 -#define MAXNUMGENPARTICLES 100 -#define MAXPILEUP 500 - -#define UNDEFFLOATVALUE (-9999.0) -#define UNDEFINTVALUE (-1) - -namespace D3PD -{ - - // Convenience type definition: - typedef D3PD::BlockFillerTool<ALFA_CLinkEvent> AlfaDataEventFillerBase; - typedef D3PD::BlockFillerTool<McEventCollection> AlfaTruthInfoFillerBase; -} - -#endif // FORWARDDETECTORSD3PDMAKER_ALFACOMMONHDR_H diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AlfaEventHeaderFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AlfaEventHeaderFillerTool.cxx deleted file mode 100644 index ecaf1c132a01f0275dfddd58e63966cb4eed991c..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AlfaEventHeaderFillerTool.cxx +++ /dev/null @@ -1,272 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id: AlfaEventHeaderFillerTool.cxx 470583 2011-11-25 10:33:45Z krasznaa $ -/** - * @file ForwardDetectorsD3PDMaker/FillerTool.h - * @author Yujiao Chen - * @author Marco Leite <leite@cern.ch> - * @date August 2010 - * @brief Block filler tool for Alfa information. - */ - -// Gaudi/Athena include(s): -#include "AthenaKernel/errorcheck.h" -#include "Identifier/Identifier.h" - -// Local include(s): -#include "AlfaEventHeaderFillerTool.h" - -using namespace std; - -namespace D3PD { - - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - AlfaEventHeaderFillerTool::AlfaEventHeaderFillerTool( const std::string& type, const std::string& name, const IInterface* parent) - : AlfaDataEventFillerBase( type, name, parent ) - { - ATH_MSG_INFO( "AlfaEventHeaderFillerTool---> Constructor" ); - //declareProperty( "CalibrateEnergy", m_calibrateEnergy = false ); - - //DCS IDs - m_pullDCSBlmID=NULL; - m_pullDCSHVChannelID=NULL; - m_pullDCSLocalMonitoringID=NULL; - m_pullDCSMovementID=NULL; - m_pullDCSRadMonID=NULL; - m_pullDCSTriggerRatesID=NULL; - m_pullDCSFEConfigurationID=NULL; - m_pullDCSTriggerSettingsID=NULL; - - //RawDataContainer - m_pvecScaler=NULL; - m_pnBCId=NULL; - m_pnTimeStamp=NULL; - m_pnTimeStamp_ns=NULL; - m_pvecTrigPat=NULL; - - //DigitCollection - m_pvecMDFiberHits=NULL; - m_pvecMDMultiplicity=NULL; - - //ODDigitCollection - m_pvecODFiberHitsPos=NULL; - m_pvecODFiberHitsNeg=NULL; - m_pvecODMultiplicityPos=NULL; - m_pvecODMultiplicityNeg=NULL; - - // data type using in the local reconstruction - // for the simulation data the value is 0, for the real data the value is 1. Unset value is -1 - declareProperty("DataType", m_nDataType=1, "data type using in the local reconstruction"); - } - - /** - * Initialize: informs the type container to D3PDMaker - * retrieves the mapping database - * prepares the coefficients for the calibration - * - * @return Success or failure (will stop the processing) - */ - StatusCode AlfaEventHeaderFillerTool::initialize() - { - // Initialize the base class: - CHECK( AlfaDataEventFillerBase::initialize() ); - - ATH_MSG_INFO( "AlfaEventHeaderFillerTool---> Initialized" ); - - // std::cout << "m_iDataType = " << m_iDataType << std::endl; - return StatusCode::SUCCESS; - } - - StatusCode AlfaEventHeaderFillerTool::book() - { - ATH_MSG_DEBUG( "AlfaEventHeaderFillerTool---> Booking Histograms" ); - - if (m_nDataType==1) - { - //DCS IDs - CHECK( addVariable ("DCS_BLM", m_pullDCSBlmID)); - CHECK( addVariable ("DCS_HVCHANNEL", m_pullDCSHVChannelID)); - CHECK( addVariable ("DCS_LOCALMONITORING", m_pullDCSLocalMonitoringID)); - CHECK( addVariable ("DCS_MOVEMENT", m_pullDCSMovementID)); - CHECK( addVariable ("DCS_RADMON", m_pullDCSRadMonID)); - CHECK( addVariable ("DCS_TRIGGERRATES", m_pullDCSTriggerRatesID)); - CHECK( addVariable ("DCS_FECONFIGURATION", m_pullDCSFEConfigurationID)); - CHECK( addVariable ("DCS_TRIGGERSETTINGS", m_pullDCSTriggerSettingsID)); - - //RawDataContainer - CHECK( addVariable ("Scaler", m_pvecScaler)); - CHECK( addVariable ("BCId", m_pnBCId)); - CHECK( addVariable ("TimeStp", m_pnTimeStamp)); - CHECK( addVariable ("TimeStp_ns", m_pnTimeStamp_ns)); - CHECK( addVariable ("TrigPat", m_pvecTrigPat)); - } - - //DigitCollection - CHECK( addVariable ("FiberHitsMD", m_pvecMDFiberHits)); - CHECK( addVariable ("MultiMD", m_pvecMDMultiplicity)); - - //ODDigitCollection - CHECK( addVariable ("FiberHitsODPos", m_pvecODFiberHitsPos)); - CHECK( addVariable ("FiberHitsODNeg", m_pvecODFiberHitsNeg)); - CHECK( addVariable ("MultiODPos", m_pvecODMultiplicityPos)); - CHECK( addVariable ("MultiODNeg", m_pvecODMultiplicityNeg)); - - return StatusCode::SUCCESS; - } - - StatusCode AlfaEventHeaderFillerTool::fill( const ALFA_CLinkEvent& DataEvent ) - { - unsigned int i; - int nPotID, nPlateID, nFiberID, nSideID; - ClearData(); - - if (m_nDataType==1) - { - //DCS IDs - *m_pullDCSBlmID=DataEvent.GetDCSFolderID(EDCSI_BLM); - *m_pullDCSHVChannelID=DataEvent.GetDCSFolderID(EDCSI_HVCHANNEL); - *m_pullDCSLocalMonitoringID=DataEvent.GetDCSFolderID(EDCSI_LOCALMONITORING); - *m_pullDCSMovementID=DataEvent.GetDCSFolderID(EDCSI_MOVEMENT); - *m_pullDCSRadMonID=DataEvent.GetDCSFolderID(EDCSI_RADMON); - *m_pullDCSTriggerRatesID=DataEvent.GetDCSFolderID(EDCSI_TRIGGERRATES); - *m_pullDCSFEConfigurationID=DataEvent.GetDCSFolderID(EDCSI_FECONFIGURATION); - *m_pullDCSTriggerSettingsID=DataEvent.GetDCSFolderID(EDCSI_TRIGGERSETTINGS); - - //RawDataContainer - const ALFA_RawDataContainer* pRawDataColl=(const ALFA_RawDataContainer*)DataEvent.GetLinkedObject(EDVT_RAWDATAEVCOLLECTION); - ALFA_RawDataContainer::const_iterator iterRawData; - - if(pRawDataColl!=NULL){ - *m_pnTimeStamp=pRawDataColl->GetTimeStamp(); - *m_pnTimeStamp_ns=pRawDataColl->GetTimeStampns(); - *m_pnBCId=pRawDataColl->GetBCId(); - - vector<bool> vecRPPattern; - for(iterRawData=pRawDataColl->begin();iterRawData!=pRawDataColl->end();iterRawData++){ - nPotID=(*iterRawData)->GetMBId_POT(); - (*m_pvecScaler)[nPotID-1]=(*iterRawData)->Get_scaler_POT(); - - vecRPPattern=(*iterRawData)->Get_pattern_POT(); - for(i=0;i<vecRPPattern.size();i++){ - if(i<RPOTSCNT*TRIGPATCNT) (*m_pvecTrigPat)[(nPotID-1)*TRIGPATCNT+i]=vecRPPattern[vecRPPattern.size()-(i+1)]; - } - } - } - else{ - msg(MSG::WARNING) << "Cannot find '"<< EVCOLLNAME_RAWDATA <<"' collection"<<endmsg; - // return StatusCode::FAILURE; - } - } - - //DigitCollection - const ALFA_DigitCollection* pDigitColl= (const ALFA_DigitCollection*)DataEvent.GetLinkedObject(EDVT_DIGITCOLLECTION); - ALFA_DigitCollection::const_iterator iterDigit; - - if(pDigitColl!=NULL){ - for(iterDigit=pDigitColl->begin();iterDigit!=pDigitColl->end();iterDigit++){ - nPotID=(*iterDigit)->getStation(); //in range 0-7 - nPlateID=(*iterDigit)->getPlate(); //indexed from 0 - nFiberID=(*iterDigit)->getFiber(); //indexed from 0 - - if(nPotID<RPOTSCNT && nPlateID<(MDLAYERSCNT*MDPLATESCNT) && nFiberID<MDFIBERSCNT){ - (*m_pvecMDFiberHits)[(nPotID*MDLAYERSCNT*MDPLATESCNT*MDFIBERSCNT)+(nPlateID*MDFIBERSCNT)+nFiberID]=1; - (*m_pvecMDMultiplicity)[(nPotID*MDLAYERSCNT*MDPLATESCNT)+nPlateID]++; - } - else{ - msg(MSG::ERROR) << "Index exceed array size for [RPotID, nPlateID, nFiberID]= ["<<nPotID<<", "<<nPlateID<<", "<<nFiberID<<"]"<<endmsg; - return StatusCode::FAILURE; - } - } - } - else{ - msg(MSG::WARNING) << "Cannot find '"<< EVCOLLNAME_DIGIT <<"' collection"<<endmsg; - // return StatusCode::FAILURE; - } - - //ODDigitCollection - const ALFA_ODDigitCollection* pODDigitColl= (const ALFA_ODDigitCollection*)DataEvent.GetLinkedObject(EDVT_ODDIGITCOLLECTION); - ALFA_ODDigitCollection::const_iterator iterODDigit; - - if(pODDigitColl!=NULL){ - for(iterODDigit=pODDigitColl->begin();iterODDigit!=pODDigitColl->end();iterODDigit++){ - nPotID=(*iterODDigit)->getStation(); //in range 0-7 - nPlateID=(*iterODDigit)->getPlate(); //indexed from 0 - nSideID=(*iterODDigit)->getSide(); //indexed from 0 - nFiberID=(*iterODDigit)->getFiber(); //indexed from 0 - - if(nPotID<RPOTSCNT && nPlateID<(ODPLATESCNT) && nFiberID<ODLAYERSCNT*ODFIBERSCNT){ - if(nSideID==0){ //right side - (*m_pvecODFiberHitsNeg)[(nPotID*ODPLATESCNT*ODLAYERSCNT*ODFIBERSCNT)+(nPlateID*ODLAYERSCNT*ODFIBERSCNT)+nFiberID]=1; - (*m_pvecODMultiplicityNeg)[(nPotID*ODPLATESCNT)+nPlateID]++; - } - else{ //left side - (*m_pvecODFiberHitsPos)[(nPotID*ODPLATESCNT*ODLAYERSCNT*ODFIBERSCNT)+(nPlateID*ODLAYERSCNT*ODFIBERSCNT)+nFiberID]=1; - (*m_pvecODMultiplicityPos)[(nPotID*ODPLATESCNT)+nPlateID]++; - } - } - else{ - msg(MSG::ERROR) << "Index exceed array size for [RPotID, nPlateID, nFiberID, nSideID]= ["<<nPotID<<", "<<nPlateID<<", "<<nFiberID<<", "<<nSideID<<"]"<<endmsg; - return StatusCode::FAILURE; - } - } - } - else{ - msg(MSG::WARNING) << "Cannot find '"<< EVCOLLNAME_ODDIGIT <<"' collection"<<endmsg; - // return StatusCode::FAILURE; - } - - return StatusCode::SUCCESS; - } - - void AlfaEventHeaderFillerTool::ClearData() - { - if (m_nDataType==1) - { - //DCS IDs - *m_pullDCSBlmID=0; - *m_pullDCSHVChannelID=0; - *m_pullDCSLocalMonitoringID=0; - *m_pullDCSMovementID=0; - *m_pullDCSRadMonID=0; - *m_pullDCSTriggerRatesID=0; - *m_pullDCSFEConfigurationID=0; - *m_pullDCSTriggerSettingsID=0; - - //RawDataContainer - m_pvecScaler->resize(RPOTSCNT); - fill_n(m_pvecScaler->begin(),m_pvecScaler->size(),-1); - *m_pnBCId=-1; - *m_pnTimeStamp=-1; - *m_pnTimeStamp_ns=-1; - m_pvecTrigPat->resize(RPOTSCNT*TRIGPATCNT); - fill_n(m_pvecTrigPat->begin(),m_pvecTrigPat->size(),0); - } - - //DigitCollection - m_pvecMDFiberHits->resize(RPOTSCNT*MDLAYERSCNT*MDPLATESCNT*MDFIBERSCNT); - fill_n(m_pvecMDFiberHits->begin(),m_pvecMDFiberHits->size(),0); - m_pvecMDMultiplicity->resize(RPOTSCNT*MDLAYERSCNT*MDPLATESCNT); - fill_n(m_pvecMDMultiplicity->begin(),m_pvecMDMultiplicity->size(),0); - - //ODDigitCollection - m_pvecODFiberHitsPos->resize(RPOTSCNT*ODPLATESCNT*ODLAYERSCNT*ODFIBERSCNT); - fill_n(m_pvecODFiberHitsPos->begin(),m_pvecODFiberHitsPos->size(),0); - m_pvecODFiberHitsNeg->resize(RPOTSCNT*ODPLATESCNT*ODLAYERSCNT*ODFIBERSCNT); - fill_n(m_pvecODFiberHitsNeg->begin(),m_pvecODFiberHitsNeg->size(),0); - - m_pvecODMultiplicityPos->resize(RPOTSCNT*ODPLATESCNT); - fill_n(m_pvecODMultiplicityPos->begin(),m_pvecODMultiplicityPos->size(),0); - m_pvecODMultiplicityNeg->resize(RPOTSCNT*ODPLATESCNT); - fill_n(m_pvecODMultiplicityNeg->begin(),m_pvecODMultiplicityNeg->size(),0); - - } - - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AlfaEventHeaderFillerTool.h b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AlfaEventHeaderFillerTool.h deleted file mode 100644 index 68fb61be6a12805633cc303190af66be117a8705..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AlfaEventHeaderFillerTool.h +++ /dev/null @@ -1,74 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -/** - * @file ForwardDetectorsD3PDMaker/FillerTool.h - * @author Libor Nozka - * @date December 2011 - * @brief Block filler tool for Alfa information. - */ -#ifndef FORWARDDETECTORSD3PDMAKER_ALFAEVENTHEADERFILLERTOOL_H -#define FORWARDDETECTORSD3PDMAKER_ALFAEVENTHEADERFILLERTOOL_H - -#include "AlfaCommonHdr.h" - -namespace D3PD -{ - - class AlfaEventHeaderFillerTool : public AlfaDataEventFillerBase - { - - public: - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - AlfaEventHeaderFillerTool( const std::string& type, - const std::string& name, - const IInterface* parent ); - - virtual StatusCode initialize(); - virtual StatusCode book(); - virtual StatusCode fill( const ALFA_CLinkEvent& DataEvent); - - private: - void ClearData(); - - private: - int m_nDataType; - - //DCS IDs - unsigned long long* m_pullDCSBlmID; - unsigned long long* m_pullDCSHVChannelID; - unsigned long long* m_pullDCSLocalMonitoringID; - unsigned long long* m_pullDCSMovementID; - unsigned long long* m_pullDCSRadMonID; - unsigned long long* m_pullDCSTriggerRatesID; - unsigned long long* m_pullDCSFEConfigurationID; - unsigned long long* m_pullDCSTriggerSettingsID; - - //RawDataContainer - std::vector<int>* m_pvecScaler; - int* m_pnBCId; - int* m_pnTimeStamp; - int* m_pnTimeStamp_ns; - std::vector<int>* m_pvecTrigPat; - - //DigitCollection - std::vector<int>* m_pvecMDFiberHits; - std::vector<int>* m_pvecMDMultiplicity; - - //ODDigitCollection - std::vector<int>* m_pvecODFiberHitsPos; - std::vector<int>* m_pvecODFiberHitsNeg; - std::vector<int>* m_pvecODMultiplicityPos; - std::vector<int>* m_pvecODMultiplicityNeg; - - }; // class AlfaEventHeaderFillerTool - -} // namespace D3PD - -#endif // FORWARDDETECTORSD3PDMAKER_ALFAEVENTHEADERFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AlfaHitCollectionFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AlfaHitCollectionFillerTool.cxx deleted file mode 100644 index e21f3b6433edf1120d24abcac06133d9bd7b4ad6..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AlfaHitCollectionFillerTool.cxx +++ /dev/null @@ -1,148 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -// Gaudi/Athena include(s): -#include "AthenaKernel/errorcheck.h" -#include "Identifier/Identifier.h" - -// Local include(s): -#include "AlfaHitCollectionFillerTool.h" - -namespace D3PD { - - AlfaHitCollectionFillerTool::AlfaHitCollectionFillerTool( const std::string& type, const std::string& name, const IInterface* parent) - : AlfaHitCollectionFillerBase( type, name, parent ) - { - ATH_MSG_INFO( "AlfaHitCollectionFillerTool---> Constructor" ); - - m_pnTotHitsCnt=NULL; - m_pvecHitID=NULL; - m_pvecTrackID=NULL; - m_pvecParticleEncoding=NULL; - m_pvecKineticEnergy=NULL; - m_pvecEnergyDeposit=NULL; - m_pvecPreStepX=NULL; - m_pvecPreStepY=NULL; - m_pvecPreStepZ=NULL; - m_pvecPostStepX=NULL; - m_pvecPostStepY=NULL; - m_pvecPostStepZ=NULL; - m_pvecGlobalTime=NULL; - m_pvecFiberSign=NULL; - m_pvecPlateID=NULL; - m_pvecFiberID=NULL; - m_pvecStationID=NULL; - } - - StatusCode AlfaHitCollectionFillerTool::initialize() - { - // Initialize the base class: - CHECK( AlfaHitCollectionFillerBase::initialize() ); - ATH_MSG_INFO( "AlfaHitCollectionFillerTool---> Initialized" ); - - return StatusCode::SUCCESS; - } - - StatusCode AlfaHitCollectionFillerTool::book() - { - ATH_MSG_DEBUG( "AlfaHitCollectionFillerTool---> Booking Histograms" ); - - CHECK(addVariable("tot_num_hits",m_pnTotHitsCnt)); - CHECK(addVariable("hitID",m_pvecHitID)); - CHECK(addVariable("trackID",m_pvecTrackID)); - CHECK(addVariable("encoding",m_pvecParticleEncoding)); - CHECK(addVariable("kineticE",m_pvecKineticEnergy)); - CHECK(addVariable("depE",m_pvecEnergyDeposit)); - CHECK(addVariable("prestep_x",m_pvecPreStepX)); - CHECK(addVariable("prestep_y",m_pvecPreStepY)); - CHECK(addVariable("prestep_z",m_pvecPreStepZ)); - CHECK(addVariable("poststep_x",m_pvecPostStepX)); - CHECK(addVariable("poststep_y",m_pvecPostStepY)); - CHECK(addVariable("poststep_z",m_pvecPostStepZ)); - CHECK(addVariable("time",m_pvecGlobalTime)); - CHECK(addVariable("fibersign",m_pvecFiberSign)); - CHECK(addVariable("plateID",m_pvecPlateID)); - CHECK(addVariable("fiberID",m_pvecFiberID)); - CHECK(addVariable("stationID",m_pvecStationID)); - - return StatusCode::SUCCESS; - } - - StatusCode AlfaHitCollectionFillerTool::fill(const ALFA_HitCollection& DataCollection) - { - ClearData(DataCollection); - - int i; - ALFA_HitCollection::const_iterator iterColl; - - ClearData(DataCollection); - - *m_pnTotHitsCnt=DataCollection.size(); - for(i=0,iterColl=DataCollection.begin();iterColl!=DataCollection.end();i++,iterColl++) - { - (*m_pvecHitID)[i]=iterColl->GetHitID(); - (*m_pvecTrackID)[i]=iterColl->GetTrackID(); - (*m_pvecParticleEncoding)[i]=iterColl->GetParticleEncoding(); - (*m_pvecKineticEnergy)[i]=iterColl->GetKineticEnergy(); - (*m_pvecEnergyDeposit)[i]=iterColl->GetEnergyDeposit(); - (*m_pvecPreStepX)[i]=iterColl->GetPreStepX(); - (*m_pvecPreStepY)[i]=iterColl->GetPreStepY(); - (*m_pvecPreStepZ)[i]=iterColl->GetPreStepZ(); - (*m_pvecPostStepX)[i]=iterColl->GetPostStepX(); - (*m_pvecPostStepY)[i]=iterColl->GetPostStepY(); - (*m_pvecPostStepZ)[i]=iterColl->GetPostStepZ(); - (*m_pvecGlobalTime)[i]=iterColl->GetGlobalTime(); - (*m_pvecFiberSign)[i]=iterColl->GetSignFiber(); - (*m_pvecPlateID)[i]=iterColl->GetPlateNumber(); - (*m_pvecFiberID)[i]=iterColl->GetFiberNumber(); - (*m_pvecStationID)[i]=iterColl->GetStationNumber(); - } - - return StatusCode::SUCCESS; - } - - void AlfaHitCollectionFillerTool::ClearData(const ALFA_HitCollection& DataCollection) - { - int nItemsCnt; - - nItemsCnt=DataCollection.size(); - *m_pnTotHitsCnt=-1; - m_pvecHitID->resize(nItemsCnt); - fill_n(m_pvecHitID->begin(),m_pvecHitID->size(),-1); - m_pvecTrackID->resize(nItemsCnt); - fill_n(m_pvecTrackID->begin(),m_pvecTrackID->size(),-1); - m_pvecParticleEncoding->resize(nItemsCnt); - fill_n(m_pvecParticleEncoding->begin(),m_pvecParticleEncoding->size(),UNDEFINTVALUE); - m_pvecKineticEnergy->resize(nItemsCnt); - fill_n(m_pvecKineticEnergy->begin(),m_pvecKineticEnergy->size(),UNDEFFLOATVALUE); - m_pvecEnergyDeposit->resize(nItemsCnt); - fill_n(m_pvecEnergyDeposit->begin(),m_pvecEnergyDeposit->size(),UNDEFFLOATVALUE); - m_pvecPreStepX->resize(nItemsCnt); - fill_n(m_pvecPreStepX->begin(),m_pvecPreStepX->size(),UNDEFFLOATVALUE); - m_pvecPreStepY->resize(nItemsCnt); - fill_n(m_pvecPreStepY->begin(),m_pvecPreStepY->size(),UNDEFFLOATVALUE); - m_pvecPreStepZ->resize(nItemsCnt); - fill_n(m_pvecPreStepZ->begin(),m_pvecPreStepZ->size(),UNDEFFLOATVALUE); - m_pvecPostStepX->resize(nItemsCnt); - fill_n(m_pvecPostStepX->begin(),m_pvecPostStepX->size(),UNDEFFLOATVALUE); - m_pvecPostStepY->resize(nItemsCnt); - fill_n(m_pvecPostStepY->begin(),m_pvecPostStepY->size(),UNDEFFLOATVALUE); - m_pvecPostStepZ->resize(nItemsCnt); - fill_n(m_pvecPostStepZ->begin(),m_pvecPostStepZ->size(),UNDEFFLOATVALUE); - m_pvecGlobalTime->resize(nItemsCnt); - fill_n(m_pvecGlobalTime->begin(),m_pvecGlobalTime->size(),UNDEFFLOATVALUE); - m_pvecFiberSign->resize(nItemsCnt); - fill_n(m_pvecFiberSign->begin(),m_pvecFiberSign->size(),-1); - m_pvecPlateID->resize(nItemsCnt); - fill_n(m_pvecPlateID->begin(),m_pvecPlateID->size(),-1); - m_pvecFiberID->resize(nItemsCnt); - fill_n(m_pvecFiberID->begin(),m_pvecFiberID->size(),-1); - m_pvecStationID->resize(nItemsCnt); - fill_n(m_pvecStationID->begin(),m_pvecStationID->size(),-1); - } - - -} // namespace D3PD - - diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AlfaHitCollectionFillerTool.h b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AlfaHitCollectionFillerTool.h deleted file mode 100644 index b5996deb0d7575096f0c86f7d886218ed8d0f9a4..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AlfaHitCollectionFillerTool.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef FORWARDDETECTORSD3PDMAKER_ALFAHITCOLLECTIONFILLERTOOL_H -#define FORWARDDETECTORSD3PDMAKER_ALFAHITCOLLECTIONFILLERTOOL_H - -#include "AlfaCommonHdr.h" -#include "ALFA_SimEv/ALFA_HitCollection.h" - -namespace D3PD -{ - typedef D3PD::BlockFillerTool<ALFA_HitCollection> AlfaHitCollectionFillerBase; - - class AlfaHitCollectionFillerTool : public AlfaHitCollectionFillerBase - { - - public: - AlfaHitCollectionFillerTool(const std::string& type, const std::string& name, const IInterface* parent); - - virtual StatusCode initialize(); - virtual StatusCode book(); - virtual StatusCode fill(const ALFA_HitCollection& DataCollection); - - private: - void ClearData(const ALFA_HitCollection& DataCollection); - - private: - int* m_pnTotHitsCnt; - std::vector<int>* m_pvecHitID; - std::vector<int>* m_pvecTrackID; - std::vector<int>* m_pvecParticleEncoding; - std::vector<float>* m_pvecKineticEnergy; - std::vector<float>* m_pvecEnergyDeposit; - std::vector<float>* m_pvecPreStepX; - std::vector<float>* m_pvecPreStepY; - std::vector<float>* m_pvecPreStepZ; - std::vector<float>* m_pvecPostStepX; - std::vector<float>* m_pvecPostStepY; - std::vector<float>* m_pvecPostStepZ; - std::vector<float>* m_pvecGlobalTime; - - std::vector<int>* m_pvecFiberSign; - std::vector<int>* m_pvecPlateID; - std::vector<int>* m_pvecFiberID; - std::vector<int>* m_pvecStationID; - }; -} - -#endif // FORWARDDETECTORSD3PDMAKER_ALFAHITCOLLECTIONFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AlfaMetaDataTool.cxx b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AlfaMetaDataTool.cxx deleted file mode 100644 index 643599e00301c8dceb801904e202495a3ce8378b..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AlfaMetaDataTool.cxx +++ /dev/null @@ -1,585 +0,0 @@ -/* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration -*/ - - -// Athena/Gaudi include(s): -#include "AthenaKernel/errorcheck.h" - - -// D3PDMaker include(s): -#include "D3PDMakerInterfaces/ID3PD.h" - -// Local include(s): -#include "AlfaMetaDataTool.h" - -using namespace std; - -namespace D3PD -{ - AlfaMetaDataTool::AlfaMetaDataTool( const std::string& type,const std::string& name, const IInterface* parent ) - : AthAlgTool( type, name, parent ), m_COOLDir( "" ), m_d3pdSvc( "D3PDSvc", name ), m_iovSvc( "IOVDbSvc", name ) - { - declareProperty( "MetaDataDir", m_COOLDir = "alfaMeta" ); - declareProperty( "D3PDSvc", m_d3pdSvc ); - - //DCS BLM - m_pullBLMId=NULL; - m_pvecBLM=NULL; - - //DCS HVCHANNEL - m_pullHVChannelId=NULL; - m_pvecActualVMeas=NULL; - m_pvecActualIMeas=NULL; - - //DCS LOCALMONITORING - m_pullLocalMonitoringId=NULL; - m_pvecTempSensor1=NULL; - m_pvecTempSensor2=NULL; - m_pvecTempSensor3=NULL; - m_pvecTempSensor4=NULL; - m_pvecTempSensor5=NULL; - - //DCS MOVEMENT - m_pullMovementId=NULL; - m_pvecPosLVDT=NULL; - m_pvecPosMotor=NULL; - - //DCS RADMON - m_pullRadMonId=NULL; - m_pvecDose=NULL; - m_pvecFluence=NULL; - m_pvecTemp=NULL; - - //DCS TRIGGERRATES - m_pullTriggerRatesId=NULL; - m_pvecTriggerRates=NULL; - - //DCS FECONFIGURATION - m_pullFEConfigurationId=NULL; - m_pvecThreshold=NULL; - m_pvecGain=NULL; - m_pvecMDGainMode=NULL; - - //DCS TRIGGERSETTINGS - m_pullTriggerSettingsId=NULL; - m_pvecTriggerSet=NULL; - m_pvecLatency=NULL; - - m_DCSTreeBLM = 0; - m_DCSTreeFEConfiguration = 0; - m_DCSTreeHVChannel = 0; - m_DCSTreeLocalMonitoring = 0; - m_DCSTreeMovement = 0; - m_DCSTreeRadMon = 0; - m_DCSTreeTriggerRates = 0; - m_DCSTreeTriggerSettings = 0; - } - - StatusCode AlfaMetaDataTool::initialize() - { - StatusCode sc; - - ATH_MSG_INFO( "Initializing. Package version: " << PACKAGE_VERSION ); - - CHECK(m_d3pdSvc.retrieve()); - CHECK(m_iovSvc.retrieve()); - - //DCS BLM - CHECK(m_d3pdSvc->make(m_COOLDir+"/alfa_BlmTree",m_DCSTreeBLM)); - CHECK(m_DCSTreeBLM->addVariable("ID",m_pullBLMId,"BLM ID")); - CHECK(m_DCSTreeBLM->addVariable("BLM",m_pvecBLM,"BLM values")); - - //DCS HVCHANNEL - CHECK(m_d3pdSvc->make(m_COOLDir+"/alfa_HVChannelTree",m_DCSTreeHVChannel)); - CHECK(m_DCSTreeHVChannel->addVariable("ID",m_pullHVChannelId,"HVCHANNEL ID")); - CHECK(m_DCSTreeHVChannel->addVariable("Voltage",m_pvecActualVMeas,"Voltage values")); - CHECK(m_DCSTreeHVChannel->addVariable("Current",m_pvecActualIMeas,"Current values")); - - //DCS LOCALMONITORING - CHECK(m_d3pdSvc->make(m_COOLDir+"/alfa_LocalMonitoringTree",m_DCSTreeLocalMonitoring)); - CHECK(m_DCSTreeLocalMonitoring->addVariable("ID",m_pullLocalMonitoringId,"LOCALMONITORING ID")); - CHECK(m_DCSTreeLocalMonitoring->addVariable("TempSensor1",m_pvecTempSensor1,"Temperature sensor no. 1")); - CHECK(m_DCSTreeLocalMonitoring->addVariable("TempSensor2",m_pvecTempSensor2,"Temperature sensor no. 2")); - CHECK(m_DCSTreeLocalMonitoring->addVariable("TempSensor3",m_pvecTempSensor3,"Temperature sensor no. 3")); - CHECK(m_DCSTreeLocalMonitoring->addVariable("TempSensor4",m_pvecTempSensor4,"Temperature sensor no. 4")); - CHECK(m_DCSTreeLocalMonitoring->addVariable("TempSensor5",m_pvecTempSensor5,"Temperature sensor no. 5")); - - //DCS MOVEMENT - CHECK(m_d3pdSvc->make(m_COOLDir+"/alfa_MovementTree",m_DCSTreeMovement)); - CHECK(m_DCSTreeMovement->addVariable("ID",m_pullMovementId,"MOVEMENT ID")); - CHECK(m_DCSTreeMovement->addVariable("LVDT",m_pvecPosLVDT,"LVDT value")); - CHECK(m_DCSTreeMovement->addVariable("Motor",m_pvecPosMotor,"Position of motor")); - - //DCS RADMON - CHECK(m_d3pdSvc->make(m_COOLDir+"/alfa_RadMonTree",m_DCSTreeRadMon)); - CHECK(m_DCSTreeRadMon->addVariable("ID",m_pullRadMonId,"RADMON ID")); - CHECK(m_DCSTreeRadMon->addVariable("Dose",m_pvecDose,"Dose")); - CHECK(m_DCSTreeRadMon->addVariable("Fluence",m_pvecFluence,"Fluence")); - CHECK(m_DCSTreeRadMon->addVariable("Temperature",m_pvecTemp,"Temperature")); - - //DCS TRIGGERRATES - CHECK(m_d3pdSvc->make(m_COOLDir+"/alfa_TriggerRatesTree",m_DCSTreeTriggerRates)); - CHECK(m_DCSTreeTriggerRates->addVariable("ID",m_pullTriggerRatesId,"TRIGGERRATES ID")); - CHECK(m_DCSTreeTriggerRates->addVariable("TriggerRates",m_pvecTriggerRates,"Trigger rates")); - - //DCS FECONFIGURATION - CHECK(m_d3pdSvc->make(m_COOLDir+"/alfa_FEConfigurationTree",m_DCSTreeFEConfiguration)); - CHECK(m_DCSTreeFEConfiguration->addVariable("ID",m_pullFEConfigurationId,"FECONFIGURATION ID")); - CHECK(m_DCSTreeFEConfiguration->addVariable("Threshold",m_pvecThreshold,"Threshold")); - CHECK(m_DCSTreeFEConfiguration->addVariable("Gain",m_pvecGain,"Gain")); - CHECK(m_DCSTreeFEConfiguration->addVariable("MDGainMode",m_pvecMDGainMode,"Gain mode of the Main detector")); - - //DCS TRIGGERSETTINGS - CHECK(m_d3pdSvc->make(m_COOLDir+"/alfa_TriggerSettingsTree",m_DCSTreeTriggerSettings)); - CHECK(m_DCSTreeTriggerSettings->addVariable("ID",m_pullTriggerSettingsId,"TRIGGERSETTINGS ID")); - CHECK(m_DCSTreeTriggerSettings->addVariable("TriggerSettings",m_pvecTriggerSet,"Trigger settings")); - CHECK(m_DCSTreeTriggerSettings->addVariable("Latency",m_pvecLatency,"Trigger latency")); - - //register IOV/COOL callbacks - CHECK(AddCOOLFolderCallback(DCSCOLLNAME_BLM)); - CHECK(AddCOOLFolderCallback(DCSCOLLNAME_HVCHANNEL)); - CHECK(AddCOOLFolderCallback(DCSCOLLNAME_LOCALMONITORING)); - CHECK(AddCOOLFolderCallback(DCSCOLLNAME_MOVEMENT)); - CHECK(AddCOOLFolderCallback(DCSCOLLNAME_RADMON)); - CHECK(AddCOOLFolderCallback(DCSCOLLNAME_TRIGGERRATES)); - CHECK(AddCOOLFolderCallback(DCSCOLLNAME_FECONFIGURATION)); - CHECK(AddCOOLFolderCallback(DCSCOLLNAME_TRIGGERSETTINGS)); - - return sc; - } - - StatusCode AlfaMetaDataTool::queryInterface( const InterfaceID& riid, void** ppvIf ) - { - if(riid==IMetadataTool::interfaceID()){ - *ppvIf = static_cast< IMetadataTool* >( this ); - addRef(); - return StatusCode::SUCCESS; - } - /*else if( riid == IIncidentListener::interfaceID() ) { - *ppvIf = static_cast< IIncidentListener* >( this ); - addRef(); - return StatusCode::SUCCESS; - }*/ - - return AthAlgTool::queryInterface( riid, ppvIf ); - } - - StatusCode AlfaMetaDataTool::writeMetadata( ID3PD* ) - { - ATH_MSG_INFO( "DCS information available in the D3PD in directory: \""<< m_COOLDir << "\"" ); - return StatusCode::SUCCESS; - } - - StatusCode AlfaMetaDataTool::AddCOOLFolderCallback(const std::string& Folder) - { - StatusCode sc=StatusCode::FAILURE; - - const DataHandle<CondAttrListCollection> DataPtr; - sc=detStore()->regFcn(&AlfaMetaDataTool::COOLUpdate, this, DataPtr, Folder, true); - if(sc!=StatusCode::SUCCESS){ - msg(MSG::ERROR) << "Cannot register COOL callback for folder '"<<Folder<<"'" << endmsg; - } - - return sc; - } - - //StatusCode AlfaMetaDataTool::COOLUpdate(IOVSVC_CALLBACK_ARGS_P(I,keys)) //-- old declaration (<=17.6.0) - StatusCode AlfaMetaDataTool::COOLUpdate(IOVSVC_CALLBACK_ARGS_K(keys)) - { - int nChannel; - StatusCode sc=StatusCode::SUCCESS; - list<string>::const_iterator iter; - const CondAttrListCollection* listAttrColl; - CondAttrListCollection::const_iterator iterAttr; - - for(iter=keys.begin();iter!=keys.end();iter++){ - if((*iter)==DCSCOLLNAME_BLM){ - msg(MSG::INFO) << " IOV/COOL Notification '"<<DCSCOLLNAME_BLM<<"'" << endmsg; - ClearDCSData(EDCSI_BLM); - - if(detStore()->retrieve(listAttrColl,DCSCOLLNAME_BLM)==StatusCode::SUCCESS){ - *m_pullBLMId=CalcDCSId(EDCSI_BLM); - - for(iterAttr=listAttrColl->begin();iterAttr!=listAttrColl->end();iterAttr++){ - nChannel=iterAttr->first; - (*m_pvecBLM)[nChannel-1]=((iterAttr->second)[0]).data<float>(); - } - - if((sc=m_DCSTreeBLM->capture()).isFailure()){ - msg(MSG::ERROR) << " Couldn't save '"<<DCSCOLLNAME_BLM<<"' tree" << endmsg; - sc=StatusCode::FAILURE; - break; - } - } - else{ - msg(MSG::ERROR) << "DCS Folder '"<<DCSCOLLNAME_BLM<<"' not found" << endmsg; - sc=StatusCode::FAILURE; - break; - } - } - else if((*iter)==DCSCOLLNAME_HVCHANNEL){ - msg(MSG::INFO) << " IOV/COOL Notification '"<<DCSCOLLNAME_HVCHANNEL<<"'" << endmsg; - ClearDCSData(EDCSI_HVCHANNEL); - - if(detStore()->retrieve(listAttrColl,DCSCOLLNAME_HVCHANNEL)==StatusCode::SUCCESS){ - *m_pullHVChannelId=CalcDCSId(EDCSI_HVCHANNEL); - - for(iterAttr=listAttrColl->begin();iterAttr!=listAttrColl->end();iterAttr++){ - nChannel=iterAttr->first; - (*m_pvecActualVMeas)[nChannel-1]=((iterAttr->second)[0]).data<float>(); - (*m_pvecActualIMeas)[nChannel-1]=((iterAttr->second)[1]).data<float>(); - } - - if((sc=m_DCSTreeHVChannel->capture()).isFailure()){ - msg(MSG::ERROR) << " Couldn't save '"<<DCSCOLLNAME_HVCHANNEL<<"' tree" << endmsg; - sc=StatusCode::FAILURE; - break; - } - } - else{ - msg(MSG::ERROR) << "DCS Folder '"<<DCSCOLLNAME_HVCHANNEL<<"' not found" << endmsg; - sc=StatusCode::FAILURE; - break; - } - } - else if((*iter)==DCSCOLLNAME_LOCALMONITORING){ - msg(MSG::INFO) << " IOV/COOL Notification '"<<DCSCOLLNAME_LOCALMONITORING<<"'" << endmsg; - ClearDCSData(EDCSI_LOCALMONITORING); - - if(detStore()->retrieve(listAttrColl,DCSCOLLNAME_LOCALMONITORING)==StatusCode::SUCCESS){ - *m_pullLocalMonitoringId=CalcDCSId(EDCSI_LOCALMONITORING); - - for(iterAttr=listAttrColl->begin();iterAttr!=listAttrColl->end();iterAttr++){ - nChannel=iterAttr->first; //RPot ID - (*m_pvecTempSensor1)[nChannel-1]=((iterAttr->second)[0]).data<float>(); - (*m_pvecTempSensor2)[nChannel-1]=((iterAttr->second)[1]).data<float>(); - (*m_pvecTempSensor3)[nChannel-1]=((iterAttr->second)[2]).data<float>(); - (*m_pvecTempSensor4)[nChannel-1]=((iterAttr->second)[3]).data<float>(); - (*m_pvecTempSensor5)[nChannel-1]=((iterAttr->second)[4]).data<float>(); - } - - if((sc=m_DCSTreeLocalMonitoring->capture()).isFailure()){ - msg(MSG::ERROR) << " Couldn't save '"<<DCSCOLLNAME_LOCALMONITORING<<"' tree" << endmsg; - sc=StatusCode::FAILURE; - break; - } - } - else{ - msg(MSG::ERROR) << "DCS Folder '"<<DCSCOLLNAME_LOCALMONITORING<<"' not found" << endmsg; - sc=StatusCode::FAILURE; - break; - } - } - else if((*iter)==DCSCOLLNAME_MOVEMENT){ - msg(MSG::INFO) << " IOV/COOL Notification '"<<DCSCOLLNAME_MOVEMENT<<"'" << endmsg; - ClearDCSData(EDCSI_MOVEMENT); - - if(detStore()->retrieve(listAttrColl,DCSCOLLNAME_MOVEMENT)==StatusCode::SUCCESS){ - *m_pullMovementId=CalcDCSId(EDCSI_MOVEMENT); - - for(iterAttr=listAttrColl->begin();iterAttr!=listAttrColl->end();iterAttr++){ - nChannel=iterAttr->first; //RPot ID - (*m_pvecPosLVDT)[nChannel-1]=((iterAttr->second)[0]).data<float>(); - (*m_pvecPosMotor)[nChannel-1]=((iterAttr->second)[1]).data<float>(); - } - - if((sc=m_DCSTreeMovement->capture()).isFailure()){ - msg(MSG::ERROR) << " Couldn't save '"<<DCSCOLLNAME_MOVEMENT<<"' tree" << endmsg; - sc=StatusCode::FAILURE; - break; - } - } - else{ - msg(MSG::ERROR) << "DCS Folder '"<<DCSCOLLNAME_MOVEMENT<<"' not found" << endmsg; - sc=StatusCode::FAILURE; - break; - } - } - else if((*iter)==DCSCOLLNAME_RADMON){ - msg(MSG::INFO) << " IOV/COOL Notification '"<<DCSCOLLNAME_RADMON<<"'" << endmsg; - ClearDCSData(EDCSI_RADMON); - - if(detStore()->retrieve(listAttrColl,DCSCOLLNAME_RADMON)==StatusCode::SUCCESS){ - *m_pullRadMonId=CalcDCSId(EDCSI_RADMON); - - for(iterAttr=listAttrColl->begin();iterAttr!=listAttrColl->end();iterAttr++){ - nChannel=iterAttr->first; - (*m_pvecDose)[nChannel-1]=((iterAttr->second)[0]).data<float>(); - (*m_pvecFluence)[nChannel-1]=((iterAttr->second)[1]).data<float>(); - (*m_pvecTemp)[nChannel-1]=((iterAttr->second)[2]).data<float>(); - } - - if((sc=m_DCSTreeRadMon->capture()).isFailure()){ - msg(MSG::ERROR) << " Couldn't save '"<<DCSCOLLNAME_RADMON<<"' tree" << endmsg; - sc=StatusCode::FAILURE; - break; - } - } - else{ - msg(MSG::ERROR) << "DCS Folder '"<<DCSCOLLNAME_RADMON<<"' not found" << endmsg; - sc=StatusCode::FAILURE; - break; - } - } - else if((*iter)==DCSCOLLNAME_TRIGGERRATES){ - msg(MSG::INFO) << " IOV/COOL Notification '"<<DCSCOLLNAME_TRIGGERRATES<<"'" << endmsg; - ClearDCSData(EDCSI_TRIGGERRATES); - - if(detStore()->retrieve(listAttrColl,DCSCOLLNAME_TRIGGERRATES)==StatusCode::SUCCESS){ - *m_pullTriggerRatesId=CalcDCSId(EDCSI_TRIGGERRATES); - - for(iterAttr=listAttrColl->begin();iterAttr!=listAttrColl->end();iterAttr++){ - nChannel=iterAttr->first; //RPot ID - (*m_pvecTriggerRates)[nChannel-1]=(int)(((iterAttr->second)[0]).data<unsigned int>()); - } - - if((sc=m_DCSTreeTriggerRates->capture()).isFailure()){ - msg(MSG::ERROR) << " Couldn't save '"<<DCSCOLLNAME_TRIGGERRATES<<"' tree" << endmsg; - sc=StatusCode::FAILURE; - break; - } - } - else{ - msg(MSG::ERROR) << "DCS Folder '"<<DCSCOLLNAME_TRIGGERRATES<<"' not found" << endmsg; - sc=StatusCode::FAILURE; - break; - } - } - else if((*iter)==DCSCOLLNAME_FECONFIGURATION){ - msg(MSG::INFO) << " IOV/COOL Notification '"<<DCSCOLLNAME_FECONFIGURATION<<"'" << endmsg; - ClearDCSData(EDCSI_FECONFIGURATION); - - if(detStore()->retrieve(listAttrColl,DCSCOLLNAME_FECONFIGURATION)==StatusCode::SUCCESS){ - *m_pullFEConfigurationId=CalcDCSId(EDCSI_FECONFIGURATION); - - for(iterAttr=listAttrColl->begin();iterAttr!=listAttrColl->end();iterAttr++){ - nChannel=iterAttr->first; //RPot ID - (*m_pvecThreshold)[(nChannel-1)*FECNFTHRESHLOLDCNT+0]=((iterAttr->second)[0]).data<int>(); - (*m_pvecThreshold)[(nChannel-1)*FECNFTHRESHLOLDCNT+1]=((iterAttr->second)[5]).data<int>(); - (*m_pvecThreshold)[(nChannel-1)*FECNFTHRESHLOLDCNT+2]=((iterAttr->second)[8]).data<int>(); - - (*m_pvecGain)[(nChannel-1)*FECNFGAINCNT+0]=((iterAttr->second)[1]).data<int>(); - (*m_pvecGain)[(nChannel-1)*FECNFGAINCNT+1]=((iterAttr->second)[3]).data<int>(); - (*m_pvecGain)[(nChannel-1)*FECNFGAINCNT+2]=((iterAttr->second)[4]).data<int>(); - (*m_pvecGain)[(nChannel-1)*FECNFGAINCNT+3]=((iterAttr->second)[6]).data<int>(); - (*m_pvecGain)[(nChannel-1)*FECNFGAINCNT+4]=((iterAttr->second)[7]).data<int>(); - - m_pvecMDGainMode->push_back(((iterAttr->second)[2]).data<string>()); - } - - if((sc=m_DCSTreeFEConfiguration->capture()).isFailure()){ - msg(MSG::ERROR) << " Couldn't save '"<<DCSCOLLNAME_FECONFIGURATION<<"' tree" << endmsg; - sc=StatusCode::FAILURE; - break; - } - } - else{ - msg(MSG::ERROR) << "DCS Folder '"<<DCSCOLLNAME_FECONFIGURATION<<"' not found" << endmsg; - sc=StatusCode::FAILURE; - break; - } - } - else if((*iter)==DCSCOLLNAME_TRIGGERSETTINGS){ - msg(MSG::INFO) << " IOV/COOL Notification '"<<DCSCOLLNAME_TRIGGERSETTINGS<<"'" << endmsg; - ClearDCSData(EDCSI_TRIGGERSETTINGS); - - if(detStore()->retrieve(listAttrColl,DCSCOLLNAME_TRIGGERSETTINGS)==StatusCode::SUCCESS){ - *m_pullTriggerSettingsId=CalcDCSId(EDCSI_TRIGGERSETTINGS); - - for(iterAttr=listAttrColl->begin();iterAttr!=listAttrColl->end();iterAttr++){ - nChannel=iterAttr->first; //RPot ID - (*m_pvecTriggerSet)[(nChannel-1)*TRIGSETCNT+0]=(int)(((iterAttr->second)[0]).data<bool>()); - (*m_pvecTriggerSet)[(nChannel-1)*TRIGSETCNT+1]=(int)(((iterAttr->second)[1]).data<bool>()); - (*m_pvecTriggerSet)[(nChannel-1)*TRIGSETCNT+2]=(int)(((iterAttr->second)[2]).data<bool>()); - (*m_pvecTriggerSet)[(nChannel-1)*TRIGSETCNT+3]=(int)(((iterAttr->second)[3]).data<bool>()); - (*m_pvecTriggerSet)[(nChannel-1)*TRIGSETCNT+4]=(int)(((iterAttr->second)[4]).data<bool>()); - (*m_pvecTriggerSet)[(nChannel-1)*TRIGSETCNT+5]=(int)(((iterAttr->second)[5]).data<bool>()); - - (*m_pvecLatency)[(nChannel-1)*TRIGSETLATENCYCNT+0]=(int)(((iterAttr->second)[6]).data<unsigned int>()); - (*m_pvecLatency)[(nChannel-1)*TRIGSETLATENCYCNT+1]=(int)(((iterAttr->second)[7]).data<unsigned int>()); - (*m_pvecLatency)[(nChannel-1)*TRIGSETLATENCYCNT+2]=(int)(((iterAttr->second)[8]).data<unsigned int>()); - } - - if((sc=m_DCSTreeTriggerSettings->capture()).isFailure()){ - msg(MSG::ERROR) << " Couldn't save '"<<DCSCOLLNAME_TRIGGERSETTINGS<<"' tree" << endmsg; - sc=StatusCode::FAILURE; - break; - } - } - else{ - msg(MSG::ERROR) << "DCS Folder '"<<DCSCOLLNAME_TRIGGERSETTINGS<<"' not found" << endmsg; - sc=StatusCode::FAILURE; - break; - } - } - } - - return StatusCode::SUCCESS; - } - - unsigned long long AlfaMetaDataTool::CalcDCSId(eDCSItem eItem) - { - unsigned long long ullID; - string Folder; - - switch(eItem) - { - case EDCSI_BLM: - Folder=DCSCOLLNAME_BLM; - break; - case EDCSI_HVCHANNEL: - Folder=DCSCOLLNAME_HVCHANNEL; - break; - case EDCSI_LOCALMONITORING: - Folder=DCSCOLLNAME_LOCALMONITORING; - break; - case EDCSI_MOVEMENT: - Folder=DCSCOLLNAME_MOVEMENT; - break; - case EDCSI_RADMON: - Folder=DCSCOLLNAME_RADMON; - break; - case EDCSI_TRIGGERRATES: - Folder=DCSCOLLNAME_TRIGGERRATES; - break; - case EDCSI_FECONFIGURATION: - Folder=DCSCOLLNAME_FECONFIGURATION; - break; - case EDCSI_TRIGGERSETTINGS: - Folder=DCSCOLLNAME_TRIGGERSETTINGS; - break; - default: - break; - } - - IIOVDbSvc::KeyInfo info; - if(!m_iovSvc->getKeyInfo(Folder,info)) { - msg(MSG::ERROR)<<"Couldn't get IOV data about folder: "<<Folder<<endmsg; - return 0; - } - - // Construct the ID: - const IOVTime& time=info.range.start(); - if(time.isRunEvent()){ - ullID=static_cast<unsigned long long>(((time.run()&0xffff)<<16)|(time.event()&0xffff)); - } - else if(time.isTimestamp()){ - //ullID=static_cast<unsigned long long>(time.timestamp()&0xffffffff); - ullID=static_cast<unsigned long long>(time.timestamp()); - } - else{ - ullID=0; - } - - return ullID; - } - - void AlfaMetaDataTool::ClearDCSData(eDCSItem eItem) - { - switch(eItem){ - case EDCSI_BLM: - if(m_pullBLMId!=NULL) *m_pullBLMId=0; - if(m_pvecBLM!=NULL){ - m_pvecBLM->resize(BLMCNT); - fill_n(m_pvecBLM->begin(),m_pvecBLM->size(),-9999.0); - } - break; - case EDCSI_HVCHANNEL: - if(m_pullHVChannelId!=NULL) *m_pullHVChannelId=0; - if(m_pvecActualVMeas!=NULL){ - m_pvecActualVMeas->resize(HVCHANNELCNT); - fill_n(m_pvecActualVMeas->begin(),m_pvecActualVMeas->size(),-9999.0); - } - if(m_pvecActualIMeas!=NULL){ - m_pvecActualIMeas->resize(HVCHANNELCNT); - fill_n(m_pvecActualIMeas->begin(),m_pvecActualIMeas->size(),-9999.0); - } - break; - case EDCSI_LOCALMONITORING: - if(m_pullLocalMonitoringId!=NULL) *m_pullLocalMonitoringId=0; - if(m_pvecTempSensor1!=NULL){ - m_pvecTempSensor1->resize(RPOTSCNT); - fill_n(m_pvecTempSensor1->begin(),m_pvecTempSensor1->size(),-9999.0); - } - if(m_pvecTempSensor2!=NULL){ - m_pvecTempSensor2->resize(RPOTSCNT); - fill_n(m_pvecTempSensor2->begin(),m_pvecTempSensor2->size(),-9999.0); - } - if(m_pvecTempSensor3!=NULL){ - m_pvecTempSensor3->resize(RPOTSCNT); - fill_n(m_pvecTempSensor3->begin(),m_pvecTempSensor3->size(),-9999.0); - } - if(m_pvecTempSensor4!=NULL){ - m_pvecTempSensor4->resize(RPOTSCNT); - fill_n(m_pvecTempSensor4->begin(),m_pvecTempSensor4->size(),-9999.0); - } - if(m_pvecTempSensor5!=NULL){ - m_pvecTempSensor5->resize(RPOTSCNT); - fill_n(m_pvecTempSensor5->begin(),m_pvecTempSensor5->size(),-9999.0); - } - break; - case EDCSI_MOVEMENT: - if(m_pullMovementId!=NULL) *m_pullMovementId=0; - if(m_pvecPosLVDT!=NULL){ - m_pvecPosLVDT->resize(RPOTSCNT); - fill_n(m_pvecPosLVDT->begin(),m_pvecPosLVDT->size(),-9999.0); - } - if(m_pvecPosMotor!=NULL){ - m_pvecPosMotor->resize(RPOTSCNT); - fill_n(m_pvecPosMotor->begin(),m_pvecPosMotor->size(),-9999.0); - } - break; - case EDCSI_RADMON: - if(m_pullRadMonId!=NULL) *m_pullRadMonId=0; - if(m_pvecDose!=NULL){ - m_pvecDose->resize(RADMONCNT); - fill_n(m_pvecDose->begin(),m_pvecDose->size(),-9999.0); - } - if(m_pvecFluence!=NULL){ - m_pvecFluence->resize(RADMONCNT); - fill_n(m_pvecFluence->begin(),m_pvecFluence->size(),-9999.0); - } - if(m_pvecTemp!=NULL){ - m_pvecTemp->resize(RADMONCNT); - fill_n(m_pvecTemp->begin(),m_pvecTemp->size(),-9999.0); - } - break; - case EDCSI_TRIGGERRATES: - if(m_pullTriggerRatesId!=NULL) *m_pullTriggerRatesId=0; - if(m_pvecTriggerRates!=NULL){ - m_pvecTriggerRates->resize(RPOTSCNT); - fill_n(m_pvecTriggerRates->begin(),m_pvecTriggerRates->size(),-1); - } - break; - case EDCSI_FECONFIGURATION: - if(m_pullFEConfigurationId!=NULL) *m_pullFEConfigurationId=0; - if(m_pvecThreshold!=NULL){ - m_pvecThreshold->resize(RPOTSCNT*FECNFTHRESHLOLDCNT); - fill_n(m_pvecThreshold->begin(),m_pvecThreshold->size(),-1); - } - if(m_pvecGain!=NULL){ - m_pvecGain->resize(RPOTSCNT*FECNFGAINCNT); - fill_n(m_pvecGain->begin(),m_pvecGain->size(),-1); - } - if(m_pvecMDGainMode!=NULL){ - m_pvecMDGainMode->clear(); - } - break; - case EDCSI_TRIGGERSETTINGS: - if(m_pullTriggerSettingsId!=NULL) *m_pullTriggerSettingsId=0; - if(m_pvecTriggerSet!=NULL){ - m_pvecTriggerSet->resize(RPOTSCNT*TRIGSETCNT); - fill_n(m_pvecTriggerSet->begin(),m_pvecTriggerSet->size(),-1); - } - if(m_pvecLatency!=NULL){ - m_pvecLatency->resize(RPOTSCNT*TRIGSETLATENCYCNT); - fill_n(m_pvecLatency->begin(),m_pvecLatency->size(),-1); - } - break; - default: - break; - } - } - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AlfaMetaDataTool.h b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AlfaMetaDataTool.h deleted file mode 100644 index 73fd4e5db6bef98783455953f1ffc82a27b49972..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AlfaMetaDataTool.h +++ /dev/null @@ -1,115 +0,0 @@ -/* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef FORWARDDETECTORSD3PDMAKER_ALFAMETADATATOOL_H -#define FORWARDDETECTORSD3PDMAKER_ALFAMETADATATOOL_H - -// STL include(s): -#include <map> -#include <string> -#include <set> - -// Gaudi/Athena include(s): -#include "GaudiKernel/IIncidentListener.h" -#include "AthenaKernel/IIOVDbSvc.h" -#include "GaudiKernel/ServiceHandle.h" -#include "GaudiKernel/ToolHandle.h" -#include "AthenaBaseComps/AthAlgTool.h" -#include "AthenaBaseComps/AthService.h" -#include "AthenaKernel/IIOVSvc.h" -#include "StoreGate/StoreGateSvc.h" - -// D3PDMaker include(s): -#include "D3PDMakerInterfaces/IMetadataTool.h" -#include "D3PDMakerInterfaces/ID3PDSvc.h" - -#include "AlfaCommonHdr.h" - -namespace D3PD -{ - - // Forward declaration(s): - class ID3PD; - - class AlfaMetaDataTool : public AthAlgTool, public IMetadataTool - { - - public: - // Regular AlgTool constructor - AlfaMetaDataTool( const std::string& type, const std::string& name, const IInterface* parent ); - - // AlgTool initialization function - virtual StatusCode initialize(); - // Gaudi function describing which interfaces the tool implements - virtual StatusCode queryInterface( const InterfaceID& riid, void** ppvIf ); - - // Function writing the configuration information to the D3PD - virtual StatusCode writeMetadata( ID3PD* d3pd ); - - private: - void ClearDCSData(eDCSItem eItem); - StatusCode COOLUpdate(IOVSVC_CALLBACK_ARGS); - StatusCode AddCOOLFolderCallback(const std::string& szFolder); - unsigned long long CalcDCSId(eDCSItem eItem); - - private: - std::string m_COOLDir; - ServiceHandle<ID3PDSvc> m_d3pdSvc; - ServiceHandle< IIOVDbSvc > m_iovSvc; - - //DCS BLM - ID3PD* m_DCSTreeBLM; - unsigned long long* m_pullBLMId; - std::vector<float>* m_pvecBLM; - - //DCS HVCHANNEL - ID3PD* m_DCSTreeHVChannel; - unsigned long long* m_pullHVChannelId; - std::vector<float>* m_pvecActualVMeas; - std::vector<float>* m_pvecActualIMeas; - - //DCS LOCALMONITORING - ID3PD* m_DCSTreeLocalMonitoring; - unsigned long long* m_pullLocalMonitoringId; - std::vector<float>* m_pvecTempSensor1; - std::vector<float>* m_pvecTempSensor2; - std::vector<float>* m_pvecTempSensor3; - std::vector<float>* m_pvecTempSensor4; - std::vector<float>* m_pvecTempSensor5; - - //DCS MOVEMENT - ID3PD* m_DCSTreeMovement; - unsigned long long* m_pullMovementId; - std::vector<float>* m_pvecPosLVDT; - std::vector<float>* m_pvecPosMotor; - - //DCS RADMON - ID3PD* m_DCSTreeRadMon; - unsigned long long* m_pullRadMonId; - std::vector<float>* m_pvecDose; - std::vector<float>* m_pvecFluence; - std::vector<float>* m_pvecTemp; - - //DCS TRIGGERRATES - ID3PD* m_DCSTreeTriggerRates; - unsigned long long* m_pullTriggerRatesId; - std::vector<int>* m_pvecTriggerRates; - - //DCS FECONFIGURATION - ID3PD* m_DCSTreeFEConfiguration; - unsigned long long* m_pullFEConfigurationId; - std::vector<int>* m_pvecThreshold; - std::vector<int>* m_pvecGain; - std::vector<std::string>* m_pvecMDGainMode; - - //DCS TRIGGERSETTINGS - ID3PD* m_DCSTreeTriggerSettings; - unsigned long long* m_pullTriggerSettingsId; - std::vector<int>* m_pvecTriggerSet; - std::vector<int>* m_pvecLatency; - }; - -} // namespace D3PD - -#endif // FORWARDDETECTORSD3PDMAKER_ALFAMETADATATOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AlfaTrackingDataFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AlfaTrackingDataFillerTool.cxx deleted file mode 100644 index 3fee871063876ca675df201585b58bd5d4f819a0..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AlfaTrackingDataFillerTool.cxx +++ /dev/null @@ -1,360 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id: AlfaTrackingDataFillerTool.cxx 470583 2011-11-25 10:33:45Z krasznaa $ -/** - * @file ForwardDetectorsD3PDMaker/FillerTool.h - * @author Yujiao Chen - * @author Marco Leite <leite@cern.ch> - * @date August 2010 - * @brief Block filler tool for Alfa information. - */ - -// Gaudi/Athena include(s): -#include "AthenaKernel/errorcheck.h" -#include "Identifier/Identifier.h" - -// Local include(s): -#include "AlfaTrackingDataFillerTool.h" -#include "ALFA_GloRecEv/ALFA_GloRecEvCollection.h" - -using namespace std; - -namespace D3PD { - - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - AlfaTrackingDataFillerTool::AlfaTrackingDataFillerTool( const std::string& type, const std::string& name, const IInterface* parent) - : AlfaDataEventFillerBase( type, name, parent ) - { - ATH_MSG_INFO( "AlfaTrackingDataFillerTool---> Constructor" ); - //declareProperty( "CalibrateEnergy", m_calibrateEnergy = false ); - - //LocRecEvCollection & LocRecODEvCollection - m_pvecXDetCS=NULL; - m_pvecYDetCS=NULL; - m_pvecDetectorPartID=NULL; - m_pnMaxTrackCnt=NULL; - m_pvecOverU=NULL; - m_pvecOverV=NULL; - m_pvecOverY=NULL; - m_pvecNumU=NULL; - m_pvecNumV=NULL; - m_pvecNumY=NULL; - m_pvecMDFibSel=NULL; - m_pvecODFibSel=NULL; - - //LocRecCorrEvCollection & LocRecCorrODEvCollection - m_pvecXLhcCS=NULL; - m_pvecYLhcCS=NULL; - m_pvecZLhcCS=NULL; - m_pvecXRPotCS=NULL; - m_pvecYRPotCS=NULL; - m_pvecXStatCS=NULL; - m_pvecYStatCS=NULL; - m_pvecXBeamCS=NULL; - m_pvecYBeamCS=NULL; - - //GloRecEvCollection - // m_pnMaxGloTrackCnt=NULL; - // m_pvecGloArm=NULL; - // m_pvecGloXLhcCS=NULL; - // m_pvecGloYLhcCS=NULL; - // m_pvecGloXSlopeLhcCS=NULL; - // m_pvecGloYSlopeLhcCS=NULL; - } - - /** - * Initialize: informs the type container to D3PDMaker - * retrieves the mapping database - * prepares the coefficients for the calibration - * - * @return Success or failure (will stop the processing) - */ - StatusCode AlfaTrackingDataFillerTool::initialize() - { - // Initialize the base class: - CHECK( AlfaDataEventFillerBase::initialize() ); - - ATH_MSG_INFO( "AlfaTrackingDataFillerTool---> Initialized" ); - - return StatusCode::SUCCESS; - } - - StatusCode AlfaTrackingDataFillerTool::book() - { - ATH_MSG_DEBUG( "AlfaTrackingDataFillerTool---> Booking Histograms" ); - - //LocRecEvCollection & LocRecODEvCollection - CHECK( addVariable ("x_Det", m_pvecXDetCS)); - CHECK( addVariable ("y_Det", m_pvecYDetCS)); - CHECK( addVariable ("Detector", m_pvecDetectorPartID)); - CHECK( addVariable ("NumTrack", m_pnMaxTrackCnt)); - CHECK( addVariable ("OverU", m_pvecOverU)); - CHECK( addVariable ("OverV", m_pvecOverV)); - CHECK( addVariable ("OverY", m_pvecOverY)); - CHECK( addVariable ("NU", m_pvecNumU)); - CHECK( addVariable ("NV", m_pvecNumV)); - CHECK( addVariable ("NY", m_pvecNumY)); - CHECK( addVariable ("Fib_SelMD", m_pvecMDFibSel)); - CHECK( addVariable ("Fib_SelOD", m_pvecODFibSel)); - - //LocRecCorrEvCollection & LocRecCorrODEvCollection - CHECK( addVariable ("x_LHC", m_pvecXLhcCS)); - CHECK( addVariable ("y_LHC", m_pvecYLhcCS)); - CHECK( addVariable ("z_LHC", m_pvecZLhcCS)); - CHECK( addVariable ("x_Pot", m_pvecXRPotCS)); - CHECK( addVariable ("y_Pot", m_pvecYRPotCS)); - CHECK( addVariable ("x_Stat", m_pvecXStatCS)); - CHECK( addVariable ("y_Stat", m_pvecYStatCS)); - CHECK( addVariable ("x_Beam", m_pvecXBeamCS)); - CHECK( addVariable ("y_Beam", m_pvecYBeamCS)); - - //GloRecEvCollection - // CHECK( addVariable ("GloNumTrack", m_pnMaxGloTrackCnt)); - // CHECK( addVariable ("GloArm", m_pvecGloArm)); - // CHECK( addVariable ("GloX", m_pvecGloXLhcCS)); - // CHECK( addVariable ("GloY", m_pvecGloYLhcCS)); - // CHECK( addVariable ("GloXSlope", m_pvecGloXSlopeLhcCS)); - // CHECK( addVariable ("GloYSlope", m_pvecGloYSlopeLhcCS)); - - return StatusCode::SUCCESS; - } - - StatusCode AlfaTrackingDataFillerTool::fill( const ALFA_CLinkEvent& DataEvent ) - { - unsigned int i; - int nPotID, nSideID, nODSign, nMaxTrackCnt=1; // default value (PHamal) - int arrTrackCntPerRPot[RPOTSCNT]; - vector<int> vecFiberSel; - - //LocRecEvCollection & LocRecODEvCollection - const ALFA_LocRecEvCollection* pLocRecEvColl=(const ALFA_LocRecEvCollection*)DataEvent.GetLinkedObject(EDVT_LOCRECEVCOLLECTION); - const ALFA_LocRecODEvCollection* pLocRecODEvColl=(const ALFA_LocRecODEvCollection*)DataEvent.GetLinkedObject(EDVT_LOCRECODEVCOLLECTION); - ALFA_LocRecEvCollection::const_iterator iterLocRec; - ALFA_LocRecODEvCollection::const_iterator iterLocRecOD; - - if(pLocRecEvColl!=NULL && pLocRecODEvColl!=NULL){ - // resolve max track count from LocRecEvCollection - memset(&arrTrackCntPerRPot[0],0,sizeof(arrTrackCntPerRPot)); - for(iterLocRec=pLocRecEvColl->begin();iterLocRec!=pLocRecEvColl->end();iterLocRec++){ - nPotID=(*iterLocRec)->getPotNum(); - arrTrackCntPerRPot[nPotID]++; - } - for(iterLocRecOD=pLocRecODEvColl->begin();iterLocRecOD!=pLocRecODEvColl->end();iterLocRecOD++){ - nPotID=(*iterLocRecOD)->getPotNum(); - arrTrackCntPerRPot[nPotID]++; - } - for(i=0;i<RPOTSCNT;i++){ - if(arrTrackCntPerRPot[i]>nMaxTrackCnt) nMaxTrackCnt=arrTrackCntPerRPot[i]; - } - - memset(&arrTrackCntPerRPot[0],0,sizeof(arrTrackCntPerRPot)); - ClearData(nMaxTrackCnt,ERC_LOCUNCORRECTED); - - //fill data - LocRecEvCollection - vecFiberSel.clear(); - for(iterLocRec=pLocRecEvColl->begin();iterLocRec!=pLocRecEvColl->end();iterLocRec++){ - nPotID=(*iterLocRec)->getPotNum(); - - (*m_pvecDetectorPartID)[nPotID*nMaxTrackCnt+arrTrackCntPerRPot[nPotID]]=1; - (*m_pvecXDetCS)[nPotID*nMaxTrackCnt+arrTrackCntPerRPot[nPotID]]=(*iterLocRec)->getXposition(); - (*m_pvecYDetCS)[nPotID*nMaxTrackCnt+arrTrackCntPerRPot[nPotID]]=(*iterLocRec)->getYposition(); - - (*m_pvecOverU)[nPotID*nMaxTrackCnt+arrTrackCntPerRPot[nPotID]]=(*iterLocRec)->getOverU(); - (*m_pvecOverV)[nPotID*nMaxTrackCnt+arrTrackCntPerRPot[nPotID]]=(*iterLocRec)->getOverV(); - (*m_pvecNumU)[nPotID*nMaxTrackCnt+arrTrackCntPerRPot[nPotID]]=(*iterLocRec)->getNumU(); - (*m_pvecNumV)[nPotID*nMaxTrackCnt+arrTrackCntPerRPot[nPotID]]=(*iterLocRec)->getNumV(); - - vecFiberSel=(*iterLocRec)->getFibSel(); - for(i=0;i<vecFiberSel.size();i++){ - (*m_pvecMDFibSel)[nPotID*nMaxTrackCnt*MDLAYERSCNT*MDPLATESCNT+arrTrackCntPerRPot[nPotID]*MDLAYERSCNT*MDPLATESCNT+i]=vecFiberSel[i]; - } - - arrTrackCntPerRPot[nPotID]++; - } - - //fill data - LocRecODEvCollection - vecFiberSel.clear(); - for(iterLocRecOD=pLocRecODEvColl->begin();iterLocRecOD!=pLocRecODEvColl->end();iterLocRecOD++){ - nPotID=(*iterLocRecOD)->getPotNum(); - nSideID=(*iterLocRecOD)->getSide(); - - nODSign=(nSideID==0)? -1:1; - (*m_pvecDetectorPartID)[nPotID*nMaxTrackCnt+arrTrackCntPerRPot[nPotID]]=(nSideID==0)? 3:2; - (*m_pvecXDetCS)[nPotID*nMaxTrackCnt+arrTrackCntPerRPot[nPotID]]=nODSign*22.0; - (*m_pvecYDetCS)[nPotID*nMaxTrackCnt+arrTrackCntPerRPot[nPotID]]=(*iterLocRecOD)->getYposition(); - (*m_pvecOverY)[nPotID*nMaxTrackCnt+arrTrackCntPerRPot[nPotID]]=(*iterLocRecOD)->getOverY(); - (*m_pvecNumY)[nPotID*nMaxTrackCnt+arrTrackCntPerRPot[nPotID]]=(*iterLocRecOD)->getNumY(); - - vecFiberSel=(*iterLocRecOD)->getFibSel(); - for(i=0;i<vecFiberSel.size();i++){ - (*m_pvecODFibSel)[nPotID*nMaxTrackCnt*ODPLATESCNT+arrTrackCntPerRPot[nPotID]*ODPLATESCNT+i]=vecFiberSel[i]; - } - - arrTrackCntPerRPot[nPotID]++; - } - } - else{ - msg(MSG::WARNING) << "Cannot find '"<< EVCOLLNAME_LOCREC <<"' or '"<<EVCOLLNAME_LOCRECOD<<"' collection"<<endmsg; - // return StatusCode::FAILURE; - } - - //LocRecCorrEvCollection && LocRecCorrODEvCollection - const ALFA_LocRecCorrEvCollection* pLocRecCorrEvColl=(const ALFA_LocRecCorrEvCollection*)DataEvent.GetLinkedObject(EDVT_LOCRECCORREVCOLLECTION); - const ALFA_LocRecCorrODEvCollection* pLocRecCorrODEvColl=(const ALFA_LocRecCorrODEvCollection*)DataEvent.GetLinkedObject(EDVT_LOCRECCORRODEVCOLLECTION); - ALFA_LocRecCorrEvCollection::const_iterator iterLocRecCorr; - ALFA_LocRecCorrODEvCollection::const_iterator iterLocRecCorrOD; - - if(pLocRecCorrEvColl!=NULL && pLocRecCorrODEvColl!=NULL){ - memset(&arrTrackCntPerRPot[0],0,sizeof(arrTrackCntPerRPot)); - ClearData(nMaxTrackCnt,ERC_LOCCORRECTED); - - //fill data - LocRecCorrEvCollection - ONLY DetCS for now (TODO rest) - for(iterLocRecCorr=pLocRecCorrEvColl->begin();iterLocRecCorr!=pLocRecCorrEvColl->end();iterLocRecCorr++){ - nPotID=(*iterLocRecCorr)->getPotNum(); - - (*m_pvecXLhcCS)[nPotID*nMaxTrackCnt+arrTrackCntPerRPot[nPotID]]=(*iterLocRecCorr)->getXpositionLHC(); - (*m_pvecYLhcCS)[nPotID*nMaxTrackCnt+arrTrackCntPerRPot[nPotID]]=(*iterLocRecCorr)->getYpositionLHC(); - (*m_pvecZLhcCS)[nPotID*nMaxTrackCnt+arrTrackCntPerRPot[nPotID]]=(*iterLocRecCorr)->getZpositionLHC(); - - (*m_pvecXRPotCS)[nPotID*nMaxTrackCnt+arrTrackCntPerRPot[nPotID]]=(*iterLocRecCorr)->getXpositionPot(); - (*m_pvecYRPotCS)[nPotID*nMaxTrackCnt+arrTrackCntPerRPot[nPotID]]=(*iterLocRecCorr)->getYpositionPot(); - - (*m_pvecXStatCS)[nPotID*nMaxTrackCnt+arrTrackCntPerRPot[nPotID]]=(*iterLocRecCorr)->getXpositionStat(); - (*m_pvecYStatCS)[nPotID*nMaxTrackCnt+arrTrackCntPerRPot[nPotID]]=(*iterLocRecCorr)->getYpositionStat(); - - (*m_pvecXBeamCS)[nPotID*nMaxTrackCnt+arrTrackCntPerRPot[nPotID]]=(*iterLocRecCorr)->getXpositionBeam(); - (*m_pvecYBeamCS)[nPotID*nMaxTrackCnt+arrTrackCntPerRPot[nPotID]]=(*iterLocRecCorr)->getYpositionBeam(); - - arrTrackCntPerRPot[nPotID]++; - } - - //fill data - LocRecCorrODEvCollection - ONLY DetCS for now (TODO rest) - for(iterLocRecCorrOD=pLocRecCorrODEvColl->begin();iterLocRecCorrOD!=pLocRecCorrODEvColl->end();iterLocRecCorrOD++){ - nPotID=(*iterLocRecCorrOD)->getPotNum(); - nSideID=(*iterLocRecCorrOD)->getSide(); - - nODSign=(nSideID==0)? -1:1; - (*m_pvecXLhcCS)[nPotID*nMaxTrackCnt+arrTrackCntPerRPot[nPotID]]=nODSign*22.0; - (*m_pvecYLhcCS)[nPotID*nMaxTrackCnt+arrTrackCntPerRPot[nPotID]]=(*iterLocRecCorrOD)->getYpositionLHC(); - (*m_pvecZLhcCS)[nPotID*nMaxTrackCnt+arrTrackCntPerRPot[nPotID]]=(*iterLocRecCorrOD)->getZpositionLHC(); - - (*m_pvecXRPotCS)[nPotID*nMaxTrackCnt+arrTrackCntPerRPot[nPotID]]=nODSign*22.0; - (*m_pvecYRPotCS)[nPotID*nMaxTrackCnt+arrTrackCntPerRPot[nPotID]]=(*iterLocRecCorrOD)->getYpositionPot(); - - (*m_pvecXStatCS)[nPotID*nMaxTrackCnt+arrTrackCntPerRPot[nPotID]]=nODSign*22.0; - (*m_pvecYStatCS)[nPotID*nMaxTrackCnt+arrTrackCntPerRPot[nPotID]]=(*iterLocRecCorrOD)->getYpositionStat(); - - (*m_pvecXBeamCS)[nPotID*nMaxTrackCnt+arrTrackCntPerRPot[nPotID]]=nODSign*22.0; - (*m_pvecYBeamCS)[nPotID*nMaxTrackCnt+arrTrackCntPerRPot[nPotID]]=(*iterLocRecCorrOD)->getYpositionBeam(); - - arrTrackCntPerRPot[nPotID]++; - } - } - else{ - msg(MSG::WARNING) << "Cannot find '"<< EVCOLLNAME_LOCREC <<"' or '"<<EVCOLLNAME_LOCRECOD<<"' collection"<<endmsg; - // return StatusCode::FAILURE; - } - - //GloRecEvCollection - // const ALFA_GloRecEvCollection* pGloRecEvColl=(const ALFA_GloRecEvCollection*)DataEvent.GetLinkedObject(EDVT_GLORECEVCOLLECTION); - // ALFA_GloRecEvCollection::const_iterator iterGloRec; - // - // if(pGloRecEvColl!=NULL){ - // // resolve max track count - // nMaxTrackCnt=pGloRecEvColl->size(); - // ClearData(nMaxTrackCnt,ERC_GLOBAL); - // - // //fill data - GloRecEvCollection - // for(i=0,iterGloRec=pGloRecEvColl->begin();iterGloRec!=pGloRecEvColl->end();i++,iterGloRec++){ - // (*m_pvecGloArm)[i]=(*iterGloRec)->getArmNum(); - // (*m_pvecGloXLhcCS)[i]=(*iterGloRec)->getXposition(); - // (*m_pvecGloYLhcCS)[i]=(*iterGloRec)->getYposition(); - // (*m_pvecGloXSlopeLhcCS)[i]=(*iterGloRec)->getXslope(); - // (*m_pvecGloYSlopeLhcCS)[i]=(*iterGloRec)->getYslope(); - // } - // } - // else{ - // msg(MSG::WARNING) << "Cannot find '"<< EVCOLLNAME_GLOREC <<"' collection"<<endmsg; - // //return StatusCode::FAILURE; - // } - - return StatusCode::SUCCESS; - } - - void AlfaTrackingDataFillerTool::ClearData(const int nMaxTrackCnt, eRecType eType) - { - //LocRecEvCollection & LocRecEvODCollection - if(eType==ERC_LOCUNCORRECTED){ - *m_pnMaxTrackCnt=nMaxTrackCnt; - - m_pvecXDetCS->resize(RPOTSCNT*nMaxTrackCnt); - fill_n(m_pvecXDetCS->begin(),m_pvecXDetCS->size(),-9999); - m_pvecYDetCS->resize(RPOTSCNT*nMaxTrackCnt); - fill_n(m_pvecYDetCS->begin(),m_pvecYDetCS->size(),-9999); - m_pvecDetectorPartID->resize(RPOTSCNT*nMaxTrackCnt); - fill_n(m_pvecDetectorPartID->begin(),m_pvecDetectorPartID->size(),0); - m_pvecOverU->resize(RPOTSCNT*nMaxTrackCnt); - fill_n(m_pvecOverU->begin(),m_pvecOverU->size(),-9999); - m_pvecOverV->resize(RPOTSCNT*nMaxTrackCnt); - fill_n(m_pvecOverV->begin(),m_pvecOverV->size(),-9999); - m_pvecOverY->resize(RPOTSCNT*nMaxTrackCnt); - fill_n(m_pvecOverY->begin(),m_pvecOverY->size(),-9999); - m_pvecNumU->resize(RPOTSCNT*nMaxTrackCnt); - fill_n(m_pvecNumU->begin(),m_pvecNumU->size(),-9999); - m_pvecNumV->resize(RPOTSCNT*nMaxTrackCnt); - fill_n(m_pvecNumV->begin(),m_pvecNumV->size(),-9999); - m_pvecNumY->resize(RPOTSCNT*nMaxTrackCnt); - fill_n(m_pvecNumY->begin(),m_pvecNumY->size(),-9999); - m_pvecMDFibSel->resize(RPOTSCNT*nMaxTrackCnt*MDLAYERSCNT*MDPLATESCNT); - fill_n(m_pvecMDFibSel->begin(),m_pvecMDFibSel->size(),-9999); - m_pvecODFibSel->resize(RPOTSCNT*nMaxTrackCnt*ODPLATESCNT); - fill_n(m_pvecODFibSel->begin(),m_pvecODFibSel->size(),-9999); - } - else if(eType==ERC_LOCCORRECTED){ - *m_pnMaxTrackCnt=nMaxTrackCnt; - - m_pvecXLhcCS->resize(RPOTSCNT*nMaxTrackCnt); - fill_n(m_pvecXLhcCS->begin(),m_pvecXLhcCS->size(),-9999); - m_pvecYLhcCS->resize(RPOTSCNT*nMaxTrackCnt); - fill_n(m_pvecYLhcCS->begin(),m_pvecYLhcCS->size(),-9999); - m_pvecZLhcCS->resize(RPOTSCNT*nMaxTrackCnt); - fill_n(m_pvecZLhcCS->begin(),m_pvecZLhcCS->size(),-9999); - m_pvecXRPotCS->resize(RPOTSCNT*nMaxTrackCnt); - fill_n(m_pvecXRPotCS->begin(),m_pvecXRPotCS->size(),-9999); - m_pvecYRPotCS->resize(RPOTSCNT*nMaxTrackCnt); - fill_n(m_pvecYRPotCS->begin(),m_pvecYRPotCS->size(),-9999); - m_pvecXStatCS->resize(RPOTSCNT*nMaxTrackCnt); - fill_n(m_pvecXStatCS->begin(),m_pvecXStatCS->size(),-9999); - m_pvecYStatCS->resize(RPOTSCNT*nMaxTrackCnt); - fill_n(m_pvecYStatCS->begin(),m_pvecYStatCS->size(),-9999); - m_pvecXBeamCS->resize(RPOTSCNT*nMaxTrackCnt); - fill_n(m_pvecXBeamCS->begin(),m_pvecXBeamCS->size(),-9999); - m_pvecYBeamCS->resize(RPOTSCNT*nMaxTrackCnt); - fill_n(m_pvecYBeamCS->begin(),m_pvecYBeamCS->size(),-9999); - } - /* else if(eType==ERC_GLOBAL){ - *m_pnMaxGloTrackCnt=nMaxTrackCnt; - - m_pvecGloArm->resize(nMaxTrackCnt); - fill_n(m_pvecGloArm->begin(),m_pvecGloArm->size(),-1); - m_pvecGloXLhcCS->resize(nMaxTrackCnt); - fill_n(m_pvecGloXLhcCS->begin(),m_pvecGloXLhcCS->size(),-9999); - m_pvecGloYLhcCS->resize(nMaxTrackCnt); - fill_n(m_pvecGloYLhcCS->begin(),m_pvecGloYLhcCS->size(),-9999); - - m_pvecGloXSlopeLhcCS->resize(nMaxTrackCnt); - fill_n(m_pvecGloXSlopeLhcCS->begin(),m_pvecGloXSlopeLhcCS->size(),-9999); - m_pvecGloYSlopeLhcCS->resize(nMaxTrackCnt); - fill_n(m_pvecGloYSlopeLhcCS->begin(),m_pvecGloYSlopeLhcCS->size(),-9999); - }*/ - } - - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AlfaTrackingDataFillerTool.h b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AlfaTrackingDataFillerTool.h deleted file mode 100644 index 2ec0afdd6fb8588ea3760a2a58add9b21b311213..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AlfaTrackingDataFillerTool.h +++ /dev/null @@ -1,82 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -/** - * @file ForwardDetectorsD3PDMaker/FillerTool.h - * @author Libor Nozka - * @date December 2011 - * @brief Block filler tool for Alfa information. - */ -#ifndef FORWARDDETECTORSD3PDMAKER_ALFATRACKINGDATAFILLERTOOL_H -#define FORWARDDETECTORSD3PDMAKER_ALFATRACKINGDATAFILLERTOOL_H - -#include "AlfaCommonHdr.h" - -enum eRecType { ERC_LOCUNCORRECTED, ERC_LOCCORRECTED, ERC_GLOBAL }; - -namespace D3PD -{ - - class AlfaTrackingDataFillerTool : public AlfaDataEventFillerBase - { - - public: - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - AlfaTrackingDataFillerTool( const std::string& type, - const std::string& name, - const IInterface* parent ); - - virtual StatusCode initialize(); - virtual StatusCode book(); - virtual StatusCode fill( const ALFA_CLinkEvent& DataEvent); - - private: - void ClearData(const int nMaxTrackCnt, eRecType eType); - - private: - - //LocRecEvCollection & LocRecODEvCollection - std::vector<float>* m_pvecXDetCS; - std::vector<float>* m_pvecYDetCS; - std::vector<int>* m_pvecDetectorPartID; - int* m_pnMaxTrackCnt; - std::vector<float>* m_pvecOverU; - std::vector<float>* m_pvecOverV; - std::vector<float>* m_pvecOverY; - std::vector<int>* m_pvecNumU; - std::vector<int>* m_pvecNumV; - std::vector<int>* m_pvecNumY; - std::vector<int>* m_pvecMDFibSel; - std::vector<int>* m_pvecODFibSel; - - //LocRecCorrEvCollection & LocRecCorrODEvCollection - std::vector<float>* m_pvecXLhcCS; - std::vector<float>* m_pvecYLhcCS; - std::vector<float>* m_pvecZLhcCS; - std::vector<float>* m_pvecXRPotCS; - std::vector<float>* m_pvecYRPotCS; - std::vector<float>* m_pvecXStatCS; - std::vector<float>* m_pvecYStatCS; - std::vector<float>* m_pvecXBeamCS; - std::vector<float>* m_pvecYBeamCS; - - //GloRecEvCollection -// int* m_pnMaxGloTrackCnt; -// std::vector<int>* m_pvecGloArm; -// std::vector<float>* m_pvecGloXLhcCS; -// std::vector<float>* m_pvecGloYLhcCS; -// std::vector<float>* m_pvecGloXSlopeLhcCS; -// std::vector<float>* m_pvecGloYSlopeLhcCS; - - - }; // class AlfaTrackingDataFillerTool - -} // namespace D3PD - -#endif // FORWARDDETECTORSD3PDMAKER_ALFATRACKINGDATAFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AlfaTruthInfoFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AlfaTruthInfoFillerTool.cxx deleted file mode 100644 index 18947748a8e8e97b8c4bb49ad2ec1dc9a89b9d6b..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AlfaTruthInfoFillerTool.cxx +++ /dev/null @@ -1,517 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id: AlfaTruthInfoFillerTool.cxx 2012-03-21 10:33:45Z lnozka $ -/** - * @file ForwardDetectorsD3PDMaker/AlfaTruthInfoFillerTool.h - * @author Libor Nozka - * @date March 203 - * @brief Block filler tool for Alfa information. - */ - -// Gaudi/Athena include(s): -#include "AthenaKernel/errorcheck.h" -#include "Identifier/Identifier.h" - -// Local include(s): -#include "AlfaTruthInfoFillerTool.h" - -namespace D3PD { - - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - AlfaTruthInfoFillerTool::AlfaTruthInfoFillerTool( const std::string& type, const std::string& name, const IInterface* parent) - : AlfaTruthInfoFillerBase( type, name, parent ) - { - ATH_MSG_INFO( "AlfaTruthInfoFillerTool---> Constructor" ); - - //m_pvecVtx_g=NULL; - m_pvecVtx_g_x=NULL; - m_pvecVtx_g_y=NULL; - m_pvecVtx_g_z=NULL; - - //m_pvecVtx_a=NULL; - m_pvecVtx_a_x=NULL; - m_pvecVtx_a_y=NULL; - m_pvecVtx_a_z=NULL; - - //m_pvecVtx_c=NULL; - m_pvecVtx_c_x=NULL; - m_pvecVtx_c_y=NULL; - m_pvecVtx_c_z=NULL; - - //m_pvecP_a=NULL; - m_pvecPa_pt=NULL; - m_pvecPa_phi=NULL; - m_pvecPa_pz=NULL; - m_pvecPa_m=NULL; - - //m_pvecP_c=NULL; - m_pvecPc_pt=NULL; - m_pvecPc_phi=NULL; - m_pvecPc_pz=NULL; - m_pvecPc_m=NULL; - - //m_pvecPBeam1_i=NULL; - m_pvecPBeam1_i_pt=NULL; - m_pvecPBeam1_i_phi=NULL; - m_pvecPBeam1_i_pz=NULL; - m_pvecPBeam1_i_E=NULL; - - //m_pvecPBeam1_f=NULL; - m_pvecPBeam1_f_pt=NULL; - m_pvecPBeam1_f_phi=NULL; - m_pvecPBeam1_f_pz=NULL; - m_pvecPBeam1_f_E=NULL; - - //m_pvecPBeam2_i=NULL; - m_pvecPBeam2_i_pt=NULL; - m_pvecPBeam2_i_phi=NULL; - m_pvecPBeam2_i_pz=NULL; - m_pvecPBeam2_i_E=NULL; - - //m_pvecPBeam2_f=NULL; - m_pvecPBeam2_f_pt=NULL; - m_pvecPBeam2_f_phi=NULL; - m_pvecPBeam2_f_pz=NULL; - m_pvecPBeam2_f_E=NULL; - - // data type using in the local reconstruction - // for the simulation data the value is 0, for the real data the value is 1. Unset value is -1 - //declareProperty("DataType", m_nDataType=1, "data type using in the local reconstruction"); - } - - /** - * Initialize: informs the type container to D3PDMaker - * retrieves the mapping database - * prepares the coefficients for the calibration - * - * @return Success or failure (will stop the processing) - */ - StatusCode AlfaTruthInfoFillerTool::initialize() - { - // Initialize the base class: - CHECK( AlfaTruthInfoFillerBase::initialize() ); - - ATH_MSG_INFO( "AlfaTruthInfoFillerTool---> Initialized" ); - - return StatusCode::SUCCESS; - } - - StatusCode AlfaTruthInfoFillerTool::book() - { - ATH_MSG_DEBUG( "AlfaTruthInfoFillerTool---> Booking Histograms" ); - - //CHECK( addVariable ("vtx_G", m_pvecVtx_g)); - CHECK( addVariable ("vtx_G_x", m_pvecVtx_g_x)); - CHECK( addVariable ("vtx_G_y", m_pvecVtx_g_y)); - CHECK( addVariable ("vtx_G_z", m_pvecVtx_g_z)); - - //CHECK( addVariable ("vtx_A", m_pvecVtx_a)); - CHECK( addVariable ("vtx_x_A", m_pvecVtx_a_x)); - CHECK( addVariable ("vtx_y_A", m_pvecVtx_a_y)); - CHECK( addVariable ("vtx_z_A", m_pvecVtx_a_z)); - - //CHECK( addVariable ("vtx_C", m_pvecVtx_c)); - CHECK( addVariable ("vtx_x_C", m_pvecVtx_c_x)); - CHECK( addVariable ("vtx_y_C", m_pvecVtx_c_y)); - CHECK( addVariable ("vtx_z_C", m_pvecVtx_c_z)); - - //CHECK( addVariable ("p_A", m_pvecP_a)); - CHECK( addVariable ("pt_A", m_pvecPa_pt)); - CHECK( addVariable ("phi_A", m_pvecPa_phi)); - CHECK( addVariable ("pz_A", m_pvecPa_pz)); - CHECK( addVariable ("m_A", m_pvecPa_m)); - - //CHECK( addVariable ("p_C", m_pvecP_c)); - CHECK( addVariable ("pt_C", m_pvecPc_pt)); - CHECK( addVariable ("phi_C", m_pvecPc_phi)); - CHECK( addVariable ("pz_C", m_pvecPc_pz)); - CHECK( addVariable ("m_C", m_pvecPc_m)); - - //CHECK( addVariable ("p_beam1_i", m_pvecPBeam1_i)); - CHECK( addVariable ("p_beam1_i_pt", m_pvecPBeam1_i_pt)); - CHECK( addVariable ("p_beam1_i_phi", m_pvecPBeam1_i_phi)); - CHECK( addVariable ("p_beam1_i_pz", m_pvecPBeam1_i_pz)); - CHECK( addVariable ("p_beam1_i_E", m_pvecPBeam1_i_E)); - - //CHECK( addVariable ("p_beam1_f", m_pvecPBeam1_f)); - CHECK( addVariable ("p_beam1_f_pt", m_pvecPBeam1_f_pt)); - CHECK( addVariable ("p_beam1_f_phi", m_pvecPBeam1_f_phi)); - CHECK( addVariable ("p_beam1_f_pz", m_pvecPBeam1_f_pz)); - CHECK( addVariable ("p_beam1_f_E", m_pvecPBeam1_f_E)); - - //CHECK( addVariable ("p_beam2_i", m_pvecPBeam2_i)); - CHECK( addVariable ("p_beam2_i_pt", m_pvecPBeam2_i_pt)); - CHECK( addVariable ("p_beam2_i_phi", m_pvecPBeam2_i_phi)); - CHECK( addVariable ("p_beam2_i_pz", m_pvecPBeam2_i_pz)); - CHECK( addVariable ("p_beam2_i_E", m_pvecPBeam2_i_E)); - - //CHECK( addVariable ("p_beam2_f", m_pvecPBeam2_f)); - CHECK( addVariable ("p_beam2_f_pt", m_pvecPBeam2_f_pt)); - CHECK( addVariable ("p_beam2_f_phi", m_pvecPBeam2_f_phi)); - CHECK( addVariable ("p_beam2_f_pz", m_pvecPBeam2_f_pz)); - CHECK( addVariable ("p_beam2_f_E", m_pvecPBeam2_f_E)); - - return StatusCode::SUCCESS; - } - - StatusCode AlfaTruthInfoFillerTool::fill(const McEventCollection& EventCollection) - { - MsgStream LogStream(Athena::getMessageSvc(), "ALFA_Ntuple::TruthInfo()"); - LogStream << MSG::DEBUG << "begin ALFA_Ntuple::TruthInfo(), tom version" << endmsg; - - int coll_counter = 0; - - McEventCollection::const_iterator mcTruBeg = EventCollection.begin(); // = (*mcTru).begin() - McEventCollection::const_iterator mcTruEnd = EventCollection.end(); - - int nPileUpCnt=EventCollection.size(); - - ClearData(nPileUpCnt); - int vtx_counter[MAXPILEUP]; - memset(&vtx_counter, 0, sizeof(vtx_counter)); - - LogStream << MSG::INFO << "MARK01" << endmsg; - //loop over collection (container) - for(;mcTruBeg!=mcTruEnd;++mcTruBeg){ - - HepMC::GenParticle* pi1=0; - HepMC::GenParticle* pi2=0; - HepMC::GenParticle* p1=0; - HepMC::GenParticle* p2=0; - - int pint = 0; - int pcount = 0; - - //b_vtx_kin_fill_flag = false; - - coll_counter++; - - HepMC::GenEvent::vertex_const_iterator begGenVtxItr = (**mcTruBeg).vertices_begin(); - HepMC::GenEvent::vertex_const_iterator endGenVtxItr = (**mcTruBeg).vertices_end(); - - - //particles at IP and IP vertex properties - - LogStream << MSG::INFO << "MARK02" << endmsg; - //loop over verteces belonging to one event - for(;begGenVtxItr!=endGenVtxItr;++begGenVtxItr){ - - LogStream << MSG::DEBUG << " * collection no: " << coll_counter << endmsg; - LogStream << MSG::DEBUG << " * vertex no: " << vtx_counter[coll_counter-1] << endmsg; - LogStream << MSG::DEBUG << " * position x = " << (**begGenVtxItr).position().x() << ", y = " << (**begGenVtxItr).position().y()<< ", z =" << (**begGenVtxItr).position().z() << endmsg; - - if (fabs((**begGenVtxItr).position().z()) > 500.){ // the IP vertex should be max +/-50 cm from z=0. - continue; - } - - vtx_counter[coll_counter-1]++; - - HepMC::GenVertex::particle_iterator child; - child = (*begGenVtxItr)->particles_begin(HepMC::family); - HepMC::GenVertex::particle_iterator child_end; - child_end = (*begGenVtxItr)->particles_end(HepMC::family); - - for(; child != child_end; ++child){ - - //double px = (*child)->momentum().px(); - //double py = (*child)->momentum().py(); - double pz = (*child)->momentum().pz(); - - - //if ((*child == genEvt->beam_particles().first) || (*child == genEvt->beam_particles().second)) - //{ - if (fabs((**begGenVtxItr).position().z()) <= 500.){ - - // incoming protons (status code = 4) at the interaction point; for p-p collisions should be 2 per collection (assumption), for p-Pb should be 1; - if( (*child)->status() == 4){ // note, it can be any colliding particle, hopefully Pb too - pint++; - // assuming no bugs in generation - vertex should be just 1 ;-) - - if (pint == 1){ - (*m_pvecVtx_g_x)[coll_counter-1] = (**begGenVtxItr).position().x(); - (*m_pvecVtx_g_y)[coll_counter-1] = (**begGenVtxItr).position().y(); - (*m_pvecVtx_g_z)[coll_counter-1] = (**begGenVtxItr).position().z(); - } - - - if(pz > 0){ - pi1=(*child); - (*m_pvecPBeam1_i_pt)[coll_counter-1] = sqrt(pi1->momentum().px()*pi1->momentum().px()+pi1->momentum().py()*pi1->momentum().py()); - (*m_pvecPBeam1_i_phi)[coll_counter-1] = pi1->momentum().phi(); - (*m_pvecPBeam1_i_pz)[coll_counter-1] = pi1->momentum().pz(); - (*m_pvecPBeam1_i_E)[coll_counter-1] = pi1->momentum().e(); - //LogStream << MSG::DEBUG << "initial particle 1: px = " <<(*m_pvecPBeam1_i)[1] << ", py = " << (*m_pvecPBeam1_i)[2] << ", pz = " << (*m_pvecPBeam1_i)[3] << ", E = " << (*m_pvecPBeam1_i)[0] << endmsg; - //LogStream << MSG::DEBUG << " ** " << endmsg; - } - - if(pz < 0){ - pi2=(*child); - (*m_pvecPBeam2_i_pt)[coll_counter-1] = sqrt(pi2->momentum().px()*pi2->momentum().px()+pi2->momentum().py()*pi2->momentum().py()); - (*m_pvecPBeam2_i_phi)[coll_counter-1] = pi2->momentum().phi(); - (*m_pvecPBeam2_i_pz)[coll_counter-1] = pi2->momentum().pz(); - (*m_pvecPBeam2_i_E)[coll_counter-1] = pi2->momentum().e(); - //LogStream << MSG::DEBUG << "initial particle 2: px = " << (*m_pvecPBeam2_i)[1] << ", py = " << (*m_pvecPBeam2_i)[2] << ", pz = " << (*m_pvecPBeam2_i)[3] << ", E = " << (*m_pvecPBeam2_i)[0] << endmsg; - //LogStream << MSG::DEBUG << " ** " << endmsg; - } - - if(pint > 2) {LogStream << MSG::DEBUG << "Strange: More than two incoming protons in this event! (depends what is simulated)" << endmsg;} - LogStream << MSG::DEBUG << "pint = " << pint << endmsg; - - // we know we have interaction vertex (==4), outgoing protons at the interaction point; 2 will be just in case of elastic or exlusive processes(and if no additional protons are produced) - - HepMC::GenVertex::particle_iterator childik; - childik = (*begGenVtxItr)->particles_begin(HepMC::children); - HepMC::GenVertex::particle_iterator childik_end; - childik_end = (*begGenVtxItr)->particles_end(HepMC::children); - - for(; childik != childik_end; ++childik){ - - if( (*childik)->pdg_id() == 2212){ // can be elastic, diffractive, exclusive, p-Pb; do not know how to filter on elastic Pb - - pcount++; - - if(pz > 0){ - - p1=(*childik); - (*m_pvecPBeam1_f_pt)[coll_counter-1] = sqrt(p1->momentum().px()*p1->momentum().px()+p1->momentum().py()*p1->momentum().py()); - (*m_pvecPBeam1_f_phi)[coll_counter-1] = p1->momentum().phi(); - (*m_pvecPBeam1_f_pz)[coll_counter-1] = p1->momentum().pz(); - (*m_pvecPBeam1_f_E)[coll_counter-1] = p1->momentum().e(); - } - - if(pz < 0){ - - p2=(*childik); - (*m_pvecPBeam2_f_pt)[coll_counter-1] = sqrt(p2->momentum().px()*p2->momentum().px()+p2->momentum().py()*p2->momentum().py()); - (*m_pvecPBeam2_f_phi)[coll_counter-1] = p2->momentum().phi(); - (*m_pvecPBeam2_f_pz)[coll_counter-1] = p2->momentum().pz(); - (*m_pvecPBeam2_f_E)[coll_counter-1] = p2->momentum().e(); - } - } - } - - if(pcount > 2) {LogStream << MSG::DEBUG << "More than two outcoming protons in this event; not possible for elastic scaterring!" << endmsg;} - LogStream << MSG::DEBUG << "pcount = " << pcount << endmsg; - } - } - } - } - - LogStream << MSG::INFO << "MARK03" << endmsg; - //transported/simulated particles and vertices - begGenVtxItr = (**mcTruBeg).vertices_begin(); - - vtx_counter[coll_counter-1] = 0.; - int nAux=0; - - for(;begGenVtxItr!=endGenVtxItr;++begGenVtxItr) - { - nAux++; - if (fabs((fabs((**begGenVtxItr).position().z())-236908.)) > 50.) // transported/simulated to 236.908m - { - continue; - } - - vtx_counter[coll_counter-1]++; - - HepMC::GenVertex::particle_iterator child, child_end; - child = (*begGenVtxItr)->particles_begin(HepMC::family); - child_end = (*begGenVtxItr)->particles_end(HepMC::family); - - double px = (*child)->momentum().px(); - double py = (*child)->momentum().py(); - double pz = (*child)->momentum().pz(); - double E = (*child)->momentum().e(); - double phi= (*child)->momentum().phi(); - double m = (*child)->momentum().m(); - - LogStream << MSG::DEBUG << "particle barcode = " << (*child)->barcode() << endmsg; - LogStream << MSG::DEBUG << "particle pdg = " << (*child)->pdg_id() << endmsg; - LogStream << MSG::DEBUG << "particle status = " << (*child)->status() << endmsg; - LogStream << MSG::DEBUG << " * px = " << px << ", py = " << py << ", pz =" << pz << endmsg; - LogStream << MSG::DEBUG << " " << endmsg; - - for(; child != child_end; ++child) { - - // here we are interested in the proton(s) coming from IP (elastic, difractive), minimally interacting till coming in front of ALFA - // - in case of forward transport - the vertex was newly created at the location specified in JO of the ForwardTransportSvc - // - in case of full simulation, inside of one collection is maximally one proton (per side) with energy close to the collision one - - if (fabs(fabs((**begGenVtxItr).position().z())-236908.) <= 50.){ - - if( ((*child)->status() == 1)){ - - if( (*child)->pdg_id() == 2212){ - - if(pz > 0){ - - //float faux=(*m_pvecPBeam1_f)[4*(coll_counter-1)+0]; - if (fabs((*m_pvecPBeam1_f_E)[coll_counter-1] - E) < 500.0){ // deviation of the energy of the outcoming particle should be, after transport/simulation, less then 1 MeV} - (*m_pvecVtx_a_x)[coll_counter-1] = (**begGenVtxItr).position().x(); - (*m_pvecVtx_a_y)[coll_counter-1] = (**begGenVtxItr).position().y(); - (*m_pvecVtx_a_z)[coll_counter-1] = (**begGenVtxItr).position().z(); - - (*m_pvecPa_pt)[coll_counter-1] = sqrt(px*px+py*py); - (*m_pvecPa_phi)[coll_counter-1] = phi; - (*m_pvecPa_pz)[coll_counter-1] = pz; - (*m_pvecPa_m)[coll_counter-1] = m; - } - } - else if(pz < 0){ - - if (fabs((*m_pvecPBeam2_f_E)[coll_counter-1] - E) < 500.0){ // deviation of the energy of the outcoming particle should be, after transport/simulation, less then 1 MeV} - (*m_pvecVtx_c_x)[coll_counter-1] = (**begGenVtxItr).position().x(); - (*m_pvecVtx_c_y)[coll_counter-1] = (**begGenVtxItr).position().y(); - (*m_pvecVtx_c_z)[coll_counter-1] = (**begGenVtxItr).position().z(); - - (*m_pvecPc_pt)[coll_counter-1] = sqrt(px*px+py*py); - (*m_pvecPc_phi)[coll_counter-1] = phi; - (*m_pvecPc_pz)[coll_counter-1] = pz; - (*m_pvecPc_m)[coll_counter-1] = m; - } - } - } - } - } - } - } - - LogStream << MSG::INFO << "MARK04" << endmsg; - if ((pi1 != 0) && (pi2 != 0) && (p1 != 0) && (p2 != 0) && (pint == 2) && (pcount == 2)){ //this check works only for elastic - - //b_vtx_kin_fill_flag = true; - - /* - HepMC::FourVector pv1 = (pi1->momentum()); - HepMC::FourVector pv2 = (pi2->momentum()); - HepMC::FourVector pv3 = (p1->momentum()); - HepMC::FourVector pv4 = (p2->momentum()); - - CLHEP::HepLorentzVector hp1(pv1.px(),pv1.py(),pv1.pz(),pv1.e()); - CLHEP::HepLorentzVector hp2(pv2.px(),pv2.py(),pv2.pz(),pv2.e()); - CLHEP::HepLorentzVector hp3(pv3.px(),pv3.py(),pv3.pz(),pv3.e()); - CLHEP::HepLorentzVector hp4(pv4.px(),pv4.py(),pv4.pz(),pv4.e()); - - t_13 = (hp1-hp3).m2(); - t_24 = (hp2-hp4).m2(); - LogStream << MSG::DEBUG << " ******************************************************* " << endmsg; - LogStream << MSG::DEBUG << " " << endmsg; - LogStream << MSG::DEBUG << " t_13 = " << t_13 << endmsg; - LogStream << MSG::DEBUG << " t_24 = " << t_24 << endmsg; - LogStream << MSG::DEBUG << " " << endmsg; - LogStream << MSG::DEBUG << " ******************************************************* " << endmsg; - */ - - } - } - - LogStream << MSG::INFO << "MARK05" << endmsg; - return StatusCode::SUCCESS; - } - - void AlfaTruthInfoFillerTool::ClearData(const int nPileUpCnt) - { - //m_pvecVtx_g->resize(nPileUpCnt*4); - //fill_n(m_pvecVtx_g->begin(),m_pvecVtx_g->size(),0); - m_pvecVtx_g_x->resize(nPileUpCnt); - fill_n(m_pvecVtx_g_x->begin(),m_pvecVtx_g_x->size(),0); - m_pvecVtx_g_y->resize(nPileUpCnt); - fill_n(m_pvecVtx_g_y->begin(),m_pvecVtx_g_y->size(),0); - m_pvecVtx_g_z->resize(nPileUpCnt); - fill_n(m_pvecVtx_g_z->begin(),m_pvecVtx_g_z->size(),0); - - //m_pvecVtx_a->resize(nPileUpCnt*4); - //fill_n(m_pvecVtx_a->begin(),m_pvecVtx_a->size(),0); - m_pvecVtx_a_x->resize(nPileUpCnt); - fill_n(m_pvecVtx_a_x->begin(),m_pvecVtx_a_x->size(),0); - m_pvecVtx_a_y->resize(nPileUpCnt); - fill_n(m_pvecVtx_a_y->begin(),m_pvecVtx_a_y->size(),0); - m_pvecVtx_a_z->resize(nPileUpCnt); - fill_n(m_pvecVtx_a_z->begin(),m_pvecVtx_a_z->size(),0); - - //m_pvecVtx_c->resize(nPileUpCnt*4); - //fill_n(m_pvecVtx_c->begin(),m_pvecVtx_c->size(),0); - m_pvecVtx_c_x->resize(nPileUpCnt); - fill_n(m_pvecVtx_c_x->begin(),m_pvecVtx_c_x->size(),0); - m_pvecVtx_c_y->resize(nPileUpCnt); - fill_n(m_pvecVtx_c_y->begin(),m_pvecVtx_c_y->size(),0); - m_pvecVtx_c_z->resize(nPileUpCnt); - fill_n(m_pvecVtx_c_z->begin(),m_pvecVtx_c_z->size(),0); - - //m_pvecP_a->resize(nPileUpCnt*4); - //fill_n(m_pvecP_a->begin(),m_pvecP_a->size(),0); - m_pvecPa_pt->resize(nPileUpCnt); - fill_n(m_pvecPa_pt->begin(),m_pvecPa_pt->size(),0); - m_pvecPa_phi->resize(nPileUpCnt); - fill_n(m_pvecPa_phi->begin(),m_pvecPa_phi->size(),0); - m_pvecPa_pz->resize(nPileUpCnt); - fill_n(m_pvecPa_pz->begin(),m_pvecPa_pz->size(),0); - m_pvecPa_m->resize(nPileUpCnt); - fill_n(m_pvecPa_m->begin(),m_pvecPa_m->size(),0); - - //m_pvecP_c->resize(nPileUpCnt*4); - //fill_n(m_pvecP_c->begin(),m_pvecP_c->size(),0); - m_pvecPc_pt->resize(nPileUpCnt); - fill_n(m_pvecPc_pt->begin(),m_pvecPc_pt->size(),0); - m_pvecPc_phi->resize(nPileUpCnt); - fill_n(m_pvecPc_phi->begin(),m_pvecPc_phi->size(),0); - m_pvecPc_pz->resize(nPileUpCnt); - fill_n(m_pvecPc_pz->begin(),m_pvecPc_pz->size(),0); - m_pvecPc_m->resize(nPileUpCnt); - fill_n(m_pvecPc_m->begin(),m_pvecPc_m->size(),0); - - //m_pvecPBeam1_i->resize(nPileUpCnt*4); - //fill_n(m_pvecPBeam1_i->begin(),m_pvecPBeam1_i->size(),0); - m_pvecPBeam1_i_pt->resize(nPileUpCnt); - fill_n(m_pvecPBeam1_i_pt->begin(),m_pvecPBeam1_i_pt->size(),0); - m_pvecPBeam1_i_phi->resize(nPileUpCnt); - fill_n(m_pvecPBeam1_i_phi->begin(),m_pvecPBeam1_i_phi->size(),0); - m_pvecPBeam1_i_pz->resize(nPileUpCnt); - fill_n(m_pvecPBeam1_i_pz->begin(),m_pvecPBeam1_i_pz->size(),0); - m_pvecPBeam1_i_E->resize(nPileUpCnt); - fill_n(m_pvecPBeam1_i_E->begin(),m_pvecPBeam1_i_E->size(),0); - - //m_pvecPBeam1_f->resize(nPileUpCnt*4); - //fill_n(m_pvecPBeam1_f->begin(),m_pvecPBeam1_f->size(),0); - m_pvecPBeam1_f_pt->resize(nPileUpCnt); - fill_n(m_pvecPBeam1_f_pt->begin(),m_pvecPBeam1_f_pt->size(),0); - m_pvecPBeam1_f_phi->resize(nPileUpCnt); - fill_n(m_pvecPBeam1_f_phi->begin(),m_pvecPBeam1_f_phi->size(),0); - m_pvecPBeam1_f_pz->resize(nPileUpCnt); - fill_n(m_pvecPBeam1_f_pz->begin(),m_pvecPBeam1_f_pz->size(),0); - m_pvecPBeam1_f_E->resize(nPileUpCnt); - fill_n(m_pvecPBeam1_f_E->begin(),m_pvecPBeam1_f_E->size(),0); - - //m_pvecPBeam2_i->resize(nPileUpCnt*4); - //fill_n(m_pvecPBeam2_i->begin(),m_pvecPBeam2_i->size(),0); - m_pvecPBeam2_i_pt->resize(nPileUpCnt); - fill_n(m_pvecPBeam2_i_pt->begin(),m_pvecPBeam2_i_pt->size(),0); - m_pvecPBeam2_i_phi->resize(nPileUpCnt); - fill_n(m_pvecPBeam2_i_phi->begin(),m_pvecPBeam2_i_phi->size(),0); - m_pvecPBeam2_i_pz->resize(nPileUpCnt); - fill_n(m_pvecPBeam2_i_pz->begin(),m_pvecPBeam2_i_pz->size(),0); - m_pvecPBeam2_i_E->resize(nPileUpCnt); - fill_n(m_pvecPBeam2_i_E->begin(),m_pvecPBeam2_i_E->size(),0); - - //m_pvecPBeam2_f->resize(nPileUpCnt*4); - //fill_n(m_pvecPBeam2_f->begin(),m_pvecPBeam2_f->size(),0); - m_pvecPBeam2_f_pt->resize(nPileUpCnt); - fill_n(m_pvecPBeam2_f_pt->begin(),m_pvecPBeam2_f_pt->size(),0); - m_pvecPBeam2_f_phi->resize(nPileUpCnt); - fill_n(m_pvecPBeam2_f_phi->begin(),m_pvecPBeam2_f_phi->size(),0); - m_pvecPBeam2_f_pz->resize(nPileUpCnt); - fill_n(m_pvecPBeam2_f_pz->begin(),m_pvecPBeam2_f_pz->size(),0); - m_pvecPBeam2_f_E->resize(nPileUpCnt); - fill_n(m_pvecPBeam2_f_E->begin(),m_pvecPBeam2_f_E->size(),0); - } - - -} // namespace D3PD - diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AlfaTruthInfoFillerTool.h b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AlfaTruthInfoFillerTool.h deleted file mode 100644 index 4c30dc278a6b69a059689e6c05f10fa6c0185091..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/AlfaTruthInfoFillerTool.h +++ /dev/null @@ -1,94 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -/** - * @file ForwardDetectorsD3PDMaker/AlfaTruthInfoFillerTool.h - * @author Libor Nozka - * @date March 2013 - * @brief Block filler tool for Alfa information. - */ -#ifndef FORWARDDETECTORSD3PDMAKER_ALFATRUTHINFOFILLERTOOL_H -#define FORWARDDETECTORSD3PDMAKER_ALFATRUTHINFOFILLERTOOL_H - -#include "AlfaCommonHdr.h" - -namespace D3PD -{ - - class AlfaTruthInfoFillerTool : public AlfaTruthInfoFillerBase - { - - public: - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - AlfaTruthInfoFillerTool( const std::string& type, const std::string& name, const IInterface* parent ); - - virtual StatusCode initialize(); - virtual StatusCode book(); - virtual StatusCode fill(const McEventCollection& EventCollection); - - private: - void ClearData(const int nPileUpCnt); - - private: - //std::vector<float>* m_pvecVtx_g; - std::vector<float>* m_pvecVtx_g_x; - std::vector<float>* m_pvecVtx_g_y; - std::vector<float>* m_pvecVtx_g_z; - - //std::vector<float>* m_pvecVtx_a; - std::vector<float>* m_pvecVtx_a_x; - std::vector<float>* m_pvecVtx_a_y; - std::vector<float>* m_pvecVtx_a_z; - - //std::vector<float>* m_pvecVtx_c; - std::vector<float>* m_pvecVtx_c_x; - std::vector<float>* m_pvecVtx_c_y; - std::vector<float>* m_pvecVtx_c_z; - - //std::vector<float>* m_pvecP_a; - std::vector<float>* m_pvecPa_pt; - std::vector<float>* m_pvecPa_phi; - std::vector<float>* m_pvecPa_pz; - std::vector<float>* m_pvecPa_m; - - //std::vector<float>* m_pvecP_c; - std::vector<float>* m_pvecPc_pt; - std::vector<float>* m_pvecPc_phi; - std::vector<float>* m_pvecPc_pz; - std::vector<float>* m_pvecPc_m; - - //std::vector<float>* m_pvecPBeam1_i; - std::vector<float>* m_pvecPBeam1_i_pt; - std::vector<float>* m_pvecPBeam1_i_phi; - std::vector<float>* m_pvecPBeam1_i_pz; - std::vector<float>* m_pvecPBeam1_i_E; - - //std::vector<float>* m_pvecPBeam1_f; - std::vector<float>* m_pvecPBeam1_f_pt; - std::vector<float>* m_pvecPBeam1_f_phi; - std::vector<float>* m_pvecPBeam1_f_pz; - std::vector<float>* m_pvecPBeam1_f_E; - - //std::vector<float>* m_pvecPBeam2_i; - std::vector<float>* m_pvecPBeam2_i_pt; - std::vector<float>* m_pvecPBeam2_i_phi; - std::vector<float>* m_pvecPBeam2_i_pz; - std::vector<float>* m_pvecPBeam2_i_E; - - //std::vector<float>* m_pvecPBeam2_f; - std::vector<float>* m_pvecPBeam2_f_pt; - std::vector<float>* m_pvecPBeam2_f_phi; - std::vector<float>* m_pvecPBeam2_f_pz; - std::vector<float>* m_pvecPBeam2_f_E; - - }; // class AlfaTruthInfoFillerTool - -} // namespace D3PD - -#endif //FORWARDDETECTORSD3PDMAKER_ALFATRUTHINFOFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/ZdcDigitsFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/ZdcDigitsFillerTool.cxx deleted file mode 100644 index 0e6d0320879f7b3151870420f4b6888d395b8dba..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/ZdcDigitsFillerTool.cxx +++ /dev/null @@ -1,139 +0,0 @@ -/* - Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id: ZdcDigitsFillerTool.cxx 524378 2012-11-04 10:06:03Z ssnyder $ -/** - * @file HeavyIonD3PDMaker/FillerTool.h - * @author Yujiao Chen - * @author Marco Leite <leite@cern.ch> - * @date August 2010 - * @brief Block filler tool for ZDC Digits information. This is the most basic information - */ - -// Gaudi/Athena include(s): -#include "AthenaKernel/errorcheck.h" -#include "Identifier/Identifier.h" - -// ZDC include(s): -#include "ZdcIdentifier/ZdcID.h" -#include "ZdcConditions/ZdcCablingService.h" - -// Local include(s): -#include "ZdcDigitsFillerTool.h" - -namespace D3PD { - - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - ZdcDigitsFillerTool::ZdcDigitsFillerTool( const std::string& type, - const std::string& name, - const IInterface* parent ) - : ZdcDigitsFillerBase( type, name,parent ) - { - book().ignore(); // Avoid coverity warnings - } - - /** - * Initialize: informs the type container to D3PDMaker - * retrieves the mapping database - * prepares the coefficients for the calibration - * - * @return Success or failure (will stop the processing) - */ - StatusCode ZdcDigitsFillerTool::initialize() { - - // Initialize the base class: - CHECK( ZdcDigitsFillerBase::initialize() ); - - /** - * Get mapping from detector store - */ - CHECK( detStore()->retrieve( m_zdcID ) ); - - ATH_MSG_INFO( "ZdcDigitsFillerTool---> Initialized" ); - - return StatusCode::SUCCESS; - } - - StatusCode ZdcDigitsFillerTool::book() { - - ATH_MSG_DEBUG( "ZdcDigitsFillerTool---> Booking Histograms" ); - - CHECK( addVariable ("dig_g0d0", m_dig_g0d0) ); - CHECK( addVariable ("dig_g0d1", m_dig_g0d1) ); - CHECK( addVariable ("dig_g1d0", m_dig_g1d0) ); - CHECK( addVariable ("dig_g1d1", m_dig_g1d1) ); - - CHECK( addVariable ("Id", m_id) ); - CHECK( addVariable ("Side", m_side) ); - CHECK( addVariable ("Type", m_type) ); - CHECK( addVariable ("Module", m_module) ); - CHECK( addVariable ("Channel", m_channel) ); - - return StatusCode::SUCCESS; - } - - /** - * - * @param p pointer to object in the collection - * @return always SUCCESS - */ - StatusCode ZdcDigitsFillerTool::fill( const ZdcDigits &p ) { - - clearData(); - - const Identifier id = p.identify(); - - //change to DEBUG ! - ATH_MSG_DEBUG( " ZDCD3PD FIller ID " << id.getString() - << " S= " << m_zdcID->side( id ) - << " T= " << m_zdcID->type( id ) - << " M= " << m_zdcID->module( id ) - << " C= " << m_zdcID->channel( id ) ); - - /** - * Fill the D3PD container based on the information from ESD - */ - - //Vector holding all gains and delays - *m_dig_g0d0 = p.get_digits_gain0_delay0(); - *m_dig_g0d1 = p.get_digits_gain0_delay1(); - *m_dig_g1d0 = p.get_digits_gain1_delay0(); - *m_dig_g1d1 = p.get_digits_gain1_delay1(); - - *m_id = id.get_identifier32().get_compact(); - - *m_side = m_zdcID->side( id ); - *m_module = m_zdcID->module( id ); - *m_type = m_zdcID->type( id ); - *m_channel = m_zdcID->channel( id ); - - return StatusCode::SUCCESS; - } - - /** - * Initializes the ntuple variables - */ - void ZdcDigitsFillerTool::clearData() { - - m_dig_g0d0->clear(); - m_dig_g0d1->clear(); - m_dig_g1d0->clear(); - m_dig_g1d1->clear(); - - *m_id = 999; - - *m_side = -999; - *m_type = -999; - *m_module = -999; - *m_channel = -999; - - return; - } - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/ZdcDigitsFillerTool.h b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/ZdcDigitsFillerTool.h deleted file mode 100644 index a06224a03f4899d9a57ae36ce214e9442e86e866..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/ZdcDigitsFillerTool.h +++ /dev/null @@ -1,75 +0,0 @@ -// Dear emacs, this is -*- c++ -*- - -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id: ZdcDigitsFillerTool.h 470583 2011-11-25 10:33:45Z krasznaa $ -/** - * @file HeavyIonD3PDMaker/FillerTool.h - * @author Yujiao Chen - * @author Marco Leite <leite@cern.ch> - * @date August 2010 - * @brief Block filler tool for ZDC information. - */ -#ifndef FORWARDDETECTORSD3PDMAKER_ZDCDIGITSFILLERTOOL_H -#define FORWARDDETECTORSD3PDMAKER_ZDCDIGITSFILLERTOOL_H - -// STL include(s): -#include <vector> - -// EDM include(s): -#include "ZdcEvent/ZdcDigits.h" - -// D3PDMaker include(s): -#include "D3PDMakerUtils/BlockFillerTool.h" - -// Forward declaration(s): -class ZdcID; - -namespace D3PD { - - // Convenience type definition: - typedef D3PD::BlockFillerTool< ZdcDigits > - ZdcDigitsFillerBase; - - class ZdcDigitsFillerTool : public ZdcDigitsFillerBase { - - public: - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - ZdcDigitsFillerTool( const std::string& type, - const std::string& name, - const IInterface* parent ); - - virtual StatusCode initialize(); - virtual StatusCode book(); - virtual StatusCode fill( const ZdcDigits& p ); - - private: - void clearData(); - - const ZdcID* m_zdcID; - - //These hold all information: different gains, delays and methods - std::vector< int >* m_dig_g0d0; - std::vector< int >* m_dig_g0d1; - std::vector< int >* m_dig_g1d0; - std::vector< int >* m_dig_g1d1; - - unsigned int *m_id; - - int *m_module; - int *m_side; - int *m_type; - int *m_channel; - - }; // class ZdcDigitsFillerTool - -} // namespace D3PD - -#endif // FORWARDDETECTORSD3PDMAKER_ZDCDIGITSFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/ZdcFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/ZdcFillerTool.cxx deleted file mode 100644 index 763322fa5365a0927d90b080a3f3e416cecc7620..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/ZdcFillerTool.cxx +++ /dev/null @@ -1,251 +0,0 @@ -/* - Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id: ZdcFillerTool.cxx 524378 2012-11-04 10:06:03Z ssnyder $ -/** - * @file ForwardDetectorsD3PDMaker/FillerTool.h - * @author Yujiao Chen - * @author Marco Leite <leite@cern.ch> - * @date August 2010 - * @brief Block filler tool for ZDC information. - */ - -// Gaudi/Athena include(s): -#include "AthenaKernel/errorcheck.h" -#include "Identifier/Identifier.h" - -// ZDC include(s): -#include "ZdcIdentifier/ZdcID.h" -#include "ZdcConditions/ZdcCablingService.h" - -// Local include(s): -#include "ZdcFillerTool.h" - -namespace D3PD { - - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - ZdcFillerTool::ZdcFillerTool( const std::string& type, - const std::string& name, - const IInterface* parent ) - : ZdcRawChannelFillerBase( type, name, parent ) { - - declareProperty( "CalibrateEnergy", m_calibrateEnergy = false ); - declareProperty( "CalibrateTime", m_calibrateTime = false ); - declareProperty( "NoiseThreshold", m_threshold = 5 ); - declareProperty( "ReconstructionMethod", m_recoMethod = "DirectSample" ); - - book().ignore(); // Avoid coverity warnings - } - - /** - * Initialize: informs the type container to D3PDMaker - * retrieves the mapping database - * prepares the coefficients for the calibration - * - * @return Success or failure (will stop the processing) - */ - StatusCode ZdcFillerTool::initialize() { - - // Initialize the base class: - CHECK( ZdcRawChannelFillerBase::initialize() ); - - /** - * Get mapping from detector store - */ - CHECK( detStore()->retrieve( m_zdcID ) ); - - //Prepare the calibration objects - fillCalibrationConstants(); - - ATH_MSG_INFO( "ZdcFillerTool---> Initialized" ); - - return StatusCode::SUCCESS; - } - - StatusCode ZdcFillerTool::book() { - - ATH_MSG_DEBUG( "ZdcFillerTool---> Booking Histograms" ); - - CHECK( addVariable ("Energy_Vec", m_energyVec) ); - CHECK( addVariable ("Time_Vec", m_timeVec) ); - CHECK( addVariable ("Vec_Size", m_vecSize) ); - - CHECK( addVariable ("Energy_LG", m_energyLg) ); - CHECK( addVariable ("Time_LG", m_timeLg) ); - - CHECK( addVariable ("Energy_HG", m_energyHg) ); - CHECK( addVariable ("Time_HG", m_timeHg) ); - - CHECK( addVariable ("Id", m_id) ); - CHECK( addVariable ("Side", m_side) ); - CHECK( addVariable ("Type", m_type) ); - CHECK( addVariable ("Module", m_module) ); - CHECK( addVariable ("Channel", m_channel) ); - - CHECK( addVariable ("TimeCalib", m_timeCalib) ); - - CHECK( addVariable ("RecMethod", m_recMethod) ); - - return StatusCode::SUCCESS; - } - - /** - * - * @param p pointer to object in the collection - * @return always SUCCESS - */ - StatusCode ZdcFillerTool::fill( const ZdcRawChannel &p ) { - - clearData(); - - const Identifier id = p.identify(); - - /** We want to keep this as a flat ntuple, so I will scan the collection retrieving the - * - */ - - //change to DEBUG ! - ATH_MSG_DEBUG( " Container Size " << p.getSize() - << " ZDCD3PD FIller ID " << id.getString() - << " Energy = " << p.getEnergy(0) - << " Time= " << p.getTime(0) - << " S= " << m_zdcID->side(id) - << " T= " << m_zdcID->type(id) - << " M= " << m_zdcID->module(id) - << " C= " << m_zdcID->channel(id) ); - - /** - * Fill the D3PD container based on the information from ESD - * We need to include some check for the methods here; for example - * p.getMethods() -> returns a map with the methods implemented and the keys to - * map = p.getMethods() - * val = map[m_RecoMethod] - * p.getEnergy[val] -> the actual value of the energy reconstructed using method m_RecoMethod - */ - - //Vector holding all gains and delays in the - //reconstructed methods - const int n = p.getSize(); - *m_vecSize = n; - m_energyVec->resize( n ); - m_timeVec->resize( n ); - for( int i = 0; i < n; ++i ) { - ( *m_energyVec )[ i ] = p.getEnergy( i ); - ( *m_timeVec )[ i ] = p.getTime( i ); - } - - *m_energyLg = p.getEnergy( 0 ); - *m_timeLg = p.getTime( 0 ); - - *m_energyHg = p.getEnergy( 1 ); - *m_timeHg = p.getTime( 1 ); - - //For now, only calibrate constants for the sinx/x method - //make sure we don't calibrate anything else - //if (m_recoMethod = "Sinc") { - // *m_timeCalib = calibrateTime (zTime,id); - //} - //else *m_timeCalib = zTime; - - *m_id = id.get_identifier32().get_compact(); - - *m_side = m_zdcID->side( id ); - *m_module = m_zdcID->module( id ); - *m_type = m_zdcID->type( id ); - *m_channel = m_zdcID->channel( id ); - - return StatusCode::SUCCESS; - } - - /** - * Initializes the ntuple variables - */ - void ZdcFillerTool::clearData() { - - *m_vecSize = 0; - m_energyVec->clear(); - m_timeVec->clear(); - - *m_energyLg = -999; - *m_timeLg = -999; - - *m_energyHg = -999; - *m_timeHg = -999; - - *m_id = 999; - *m_side = -999; - *m_type = -999; - *m_module = -999; - *m_channel = -999; - - *m_timeCalib = -999; - - *m_recMethod = 999; - - return; - } - - /** - * This will prepare the vectors holding the coefficients for calibration. - * Sometime soon this should move to a database. - * - */ - void ZdcFillerTool::fillCalibrationConstants() { - - /** - * Vector of constants coeficients for calibration - * this came from Andrei Poblaguev analysis - * http://indico.cern.ch/getFile.py/access?contribId=0&resId=0&materialId=slides&confId=89265 - * - * photon: E0 >= 5 ADC counts, E1< 20GeV ; E2 < 4 ADC Counts - * neutrons: E0 >= 5 ADC counts, E1>= 20GeV ; E2 >= 4 ADC Counts - * - * this considers both the electronic gain and the "weigths" to "recover" leaked energy - * - */ - - static const float hadronA[] = {1, 4.52, 8.52, 50.9 }; //weights for hadron per module side A - static const float hadronC[] = {1, 5.21, 17.4, 22.6 }; //weights for hadron per module side C - - static const float photonA[] = {1, 6.22, 8.52, 50.9 }; //weights for photon per module side A - static const float photonC[] = {1, 6.73, 17.4, 22.6 }; //weights for photon per module side C - - m_zdcHadronWeightA.assign( hadronA, hadronA + 4 ); - m_zdcHadronWeightC.assign( hadronC, hadronC + 4 ); - - m_zdcPhotonWeightA.assign( photonA, photonA + 4 ); - m_zdcPhotonWeightC.assign( photonC, photonC + 4 ); - - //To be used by a Cubic polinomial in the intervals - // 0-5, 5-16, 16-25 ns - - static const float coef0[] = {0.056836274872111, - 1.532763686481279, - 0.229808343735056, - -0.0365636647119192 }; - - static const float coef1[] = {-1.28974955223497, - 2.653578699334604, - -0.1371240146140209, - 0.00281211806384422 }; - - static const float coef2[] = {-42.18688740322650, - 8.61752055701946, - -0.4259239806065329, - 0.00753849507486617 }; - - m_zdcTimeCoeff.resize( 3 ); - m_zdcTimeCoeff[ 0 ].assign( coef0, coef0 + 4 ); - m_zdcTimeCoeff[ 1 ].assign( coef1, coef1 + 4 ); - m_zdcTimeCoeff[ 2 ].assign( coef2, coef2 + 4 ); - - return; - } - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/ZdcFillerTool.h b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/ZdcFillerTool.h deleted file mode 100644 index 0060567e106ea8da5953343909c7d48e224b68dc..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/ZdcFillerTool.h +++ /dev/null @@ -1,171 +0,0 @@ -// Dear emacs, this is -*- c++ -*- - -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id: ZdcFillerTool.h 546900 2013-05-06 03:24:54Z ssnyder $ -/** - * @file ForwardDetectorsD3PDMaker/FillerTool.h - * @author Yujiao Chen - * @author Marco Leite <leite@cern.ch> - * @date August 2010 - * @brief Block filler tool for ZDC information. - */ -#ifndef FORWARDDETECTORSD3PDMAKER_ZDCFILLERTOOL_H -#define FORWARDDETECTORSD3PDMAKER_ZDCFILLERTOOL_H - -// STL include(s): -#include <vector> -#include <string> - -// EDM include(s): -#include "ZdcEvent/ZdcRawChannel.h" - -// D3PDMaker include(s): -#include "D3PDMakerUtils/BlockFillerTool.h" - -// Forward declaration(s): -class ZdcID; - -namespace D3PD { - - // Convenience type definition: - typedef D3PD::BlockFillerTool< ZdcRawChannel > - ZdcRawChannelFillerBase; - - class ZdcFillerTool : public ZdcRawChannelFillerBase { - - public: - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - ZdcFillerTool( const std::string& type, - const std::string& name, - const IInterface* parent ); - - virtual StatusCode initialize(); - virtual StatusCode book(); - virtual StatusCode fill( const ZdcRawChannel& p ); - - private: - void clearData(); - void fillCalibrationConstants(void); - - const ZdcID* m_zdcID; - - /** - * ZDC Ntuple variables - * The postfix number corresponds to the longitudinal segmentation module number: - * ZDC A ZDC C - * [3][2][1][0] -------------> IP <------------ [0][1][2][3] - * - * 0 : EM Module (also w/ transverse segmentation only in side A in 64 channels) - * 1 : Hadronic Module (also w/ transverse segmentation in sides A, C in 24 channels) - * 2 : Hadronic Module - * 3 : Hadronic Module - * - * Energy is calibrated in GeV (with modules weights) - * Time is the "preferred method" time determination - * Quality is the "signal quality" (eg. saturation, no peak, etc) and ranges from -1 - * and right now is either -1 (useless) or 1 (ok) - * Method is the algorithm used in the reconstruction. Since the D3PD can be merged, - * it's possible to compare several methods with this entry running reconstruction - * jobs with different methods selection - */ - - // These hold all information: different gains, delays and methods - std::vector< float >* m_energyVec; - std::vector< float >* m_timeVec; - int *m_vecSize; - - //These holds the simple calculation from sample - //peak and time from sample ratio, High gain and low gain - //undelayed only - float *m_energyLg; - float *m_timeLg; - float *m_energyHg; - float *m_timeHg; - - //float *m_quality; - - float *m_timeCalib; - - unsigned int *m_id; - - int *m_module; - int *m_side; - int *m_type; - int *m_channel; - - /** - * m_ZdcRecMethod holds a number with the method used to reconstruct the ZDC information - * 0 :Direct sample measurement - * - Energy -> maximum sample - * - Time -> ratio of A1/A2 (second/third sample) - * - * 1 : Spline interpolation factory for the samples - * - Energy -> peak value of the interpolation function - * - Time -> CFD calculation (0.3 fraction) - * - * 2 : Sin(x)/x bandwidth limited interpolation - * - Energy -> peak value of the interpolation function - * - Time -> position of the peak - * - */ - unsigned int *m_recMethod; - - /** - * Segmented information. This should calculate the position in the reconstruction, - * but it's still not implemented. This will need a different container, where - * the objects will be the position in each segmented module - * TODO: Not implemented yet - */ - - // float *m_x; - // float *m_y; - - /// Property: if TRUE, apply weigths and constants to get the full energy - bool m_calibrateEnergy; - /// Property: if TRUE, calibrate the time information - bool m_calibrateTime; - /// Property: below this number of ADC counts the signal is considered noise - unsigned int m_threshold; - /// Property: the name of the method information to be retrieved - std::string m_recoMethod; - - /** - * Energy calibration vectors for weighting the longitudinal section of the calorimeter - * This includes both the electronic gain equalization and the weigth for - * photons/neutrons (different to account for lekeage) - */ - std::vector<float> m_zdcHadronWeightA; - std::vector<float> m_zdcHadronWeightC; - - std::vector<float> m_zdcPhotonWeightA; - std::vector<float> m_zdcPhotonWeightC; - - /** - * Polynomial coeficients for timing calibration - * the first dimension corresponds to the section while the second - * corresponds to the coefficients - */ - std::vector<std::vector<float> > m_zdcTimeCoeff; - - /** - * Helpers - */ - /* - std::vector<int> m_id ; - std::vector<float> m_energy; - std::vector<float> m_time; - */ - - }; // class ZdcFillerTool - -} // namespace D3PD - -#endif // FORWARDDETECTORSD3PDMAKER_ZDCFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/ZdcRecoFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/ZdcRecoFillerTool.cxx deleted file mode 100644 index e579d8bc4f3c99ab1ccfe38b010ddfc888290935..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/ZdcRecoFillerTool.cxx +++ /dev/null @@ -1,343 +0,0 @@ -/* - Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id: ZdcRecoFillerTool.cxx 538890 2013-02-25 04:49:38Z leite $ -/** - * @file ForwardDetectorsD3PDMaker/ZdcRecoFillerTool.h - * @author Marco Leite <leite@cern.ch> - * @date Nov 2011 - * @brief Block filler tool for ZDC reconstruected information. - */ -#include <algorithm> -#include <numeric> -// Gaudi/Athena include(s): -#include "AthenaKernel/errorcheck.h" -#include "Identifier/Identifier.h" - -// ZDC include(s): -#include "ZdcIdentifier/ZdcID.h" -#include "ZdcConditions/ZdcCablingService.h" -#include "ZdcEvent/ZdcDigits.h" - -// Local include(s): -#include "ZdcRecoFillerTool.h" - -namespace D3PD { - - //================================================================================================= - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - ZdcRecoFillerTool::ZdcRecoFillerTool( const std::string& type, - const std::string& name, - const IInterface* parent ) - : ZdcDigitsCollectionFillerBase( type, name, parent ) { - - declareProperty( "CalibrateEnergy", m_calibrateEnergy = false ); - declareProperty( "CalibrateTime", m_calibrateTime = false ); - declareProperty( "NoiseThreshold", m_threshold = 5 ); - declareProperty( "ReconstructionMethod", m_recoMethod = "DirectSample" ); - - book().ignore(); // Avoid coverity warnings - } - - /** - * Initialize: informs the type container to D3PDMaker - * retrieves the mapping database - * prepares the coefficients for the calibration - * - * @return Success or failure (will stop the processing) - */ - StatusCode ZdcRecoFillerTool::initialize() { - - // Initialize the base class: - CHECK( ZdcDigitsCollectionFillerBase::initialize() ); - - - //Get mapping from detector store - CHECK( detStore()->retrieve( m_zdcID ) ); - - //Prepare the calibration objects - fillCalibrationConstants(); - - ATH_MSG_INFO( "ZdcRecoFillerTool---> Initialized" ); - - return StatusCode::SUCCESS; - } - //================================================================================================= - //This is necessary to avoid a memeory leak. - //Probably it should be placed in all filler tools - //(it is safe as it checks for it before deleting it in deleteInstance) - StatusCode ZdcRecoFillerTool::finalize() { - ZdcCablingService::deleteInstance(); - ATH_MSG_INFO( "ZdcRecoFillerTool---> Finalized" ); - return StatusCode::SUCCESS; - } - - - //================================================================================================= - StatusCode ZdcRecoFillerTool::book() { - - ATH_MSG_DEBUG( "ZdcRecoFillerTool---> Booking Histograms" ); - - - CHECK( addVariable( "ESumA", m_energySumA, - "Sum of modules energy in side A (auto gain)" ) ); - CHECK( addVariable( "ESumC", m_energySumC, - "Sum of modules energy in side C (auto gain)" ) ); - - CHECK( addVariable( "EA", m_energyA, - "Modules energy in side A (auto gain)" ) ); - CHECK( addVariable( "EC", m_energyC, - "Modules energy in side C (auto gain)" ) ); - - CHECK( addVariable( "qA", m_qualityA, - "Flag for the reason of the auto gain selection in side A" ) ); - CHECK( addVariable( "qC", m_qualityC, - "Flag for the reason of the auto gain selection in side C" ) ); - - - - CHECK( addVariable( "ESumA_LG", m_energySumA_Lg, - "Sum of modules energy in side A LG" ) ); - CHECK( addVariable( "ESumA_HG", m_energySumA_Hg, - "Sum of modules energy in side A HG" ) ); - CHECK( addVariable( "ESumC_LG", m_energySumC_Lg, - "Sum of modules energy in side C LG" ) ); - CHECK( addVariable( "ESumC_HG", m_energySumC_Hg, - "Sum of modules energy in side C HG" ) ); - - return StatusCode::SUCCESS; - } - //================================================================================================= - - //================================================================================================= - /** - * - * @param p pointer the collection - * @return always SUCCESS - */ - StatusCode ZdcRecoFillerTool::fill( const ZdcDigitsCollection& zdcCol ) { - - std::vector< std::vector<int> > zdcA_Lg(4); - std::vector< std::vector<int> > zdcA_Hg(4); - - std::vector< std::vector<int> > zdcC_Lg(4); - std::vector< std::vector<int> > zdcC_Hg(4); - - - int module = 0; - int side = 0; - - m_energyA->clear(); - m_energyC->clear(); - - m_qualityA->clear(); - m_qualityC->clear(); - - m_energyA->resize(4); - m_energyC->resize(4); - - m_qualityA->resize(4); - m_qualityC->resize(4); - - - *m_energySumA = 0; - *m_energySumC = 0; - - *m_energySumA_Lg = 0; - *m_energySumA_Hg = 0; - - *m_energySumC_Lg = 0; - *m_energySumC_Hg = 0; - - //Try to get digits from here - - ZdcDigitsCollection::const_iterator itr = zdcCol.begin(); - ZdcDigitsCollection::const_iterator itrLast = zdcCol.end(); - for( ; itr !=itrLast; ++itr ) { - - const ZdcDigits* p = ( *itr ); - const Identifier id = p->identify(); - - - if( ( m_zdcID->type(id) == 0 ) && ( m_zdcID->channel(id) == 0) ) { - module = m_zdcID->module(id); - side = m_zdcID->side(id); - - if (side == 1) { - zdcA_Lg[module] = p->get_digits_gain0_delay0(); - zdcA_Hg[module] = p->get_digits_gain1_delay0(); - } - else if (side == -1) { - zdcC_Lg[module] = p->get_digits_gain0_delay0(); - zdcC_Hg[module] = p->get_digits_gain1_delay0(); - } - } - } - - // Get the energy sum in auto-gain - - getEnergySum(zdcA_Lg, zdcA_Hg, 1); - getEnergySum(zdcC_Lg, zdcC_Hg,-1); - - - return StatusCode::SUCCESS; -} - - //================================================================================================= - /* - * Here we calculate the energy sum based on selection of the best gain and - * calibrated in the low gain scale. This takes into account only the electronic - * gain variation. The module sampling weight is *NOT* included (and requires - * run by run and maybe even lumiblock by lumiblock correction dur to response change - * of the modules during the run - */ - void ZdcRecoFillerTool::getEnergySum(const std::vector<std::vector<int> > & zdc_Lg, - const std::vector<std::vector<int> > & zdc_Hg, - const int & side) { - - int module = 0; - - int ped_Hg = 0; - int ped_Lg = 0; - - int pp = 0; - - std::vector<int> wfm_Lg; - std::vector<int> wfm_Hg; - - std::vector<int> pico_Lg(4,0); - std::vector<int> pico_Hg(4,0); - - std::vector<int> qual(4,0); - std::vector<float> energy(4,0); - - std::vector<int> satLimit(4,0); - - if (side == 1) satLimit = m_saturationA; - if (side == -1) satLimit = m_saturationC; - - for (module=0; module<4; module++) { - - wfm_Lg = zdc_Lg[module]; - wfm_Hg = zdc_Hg[module]; - - if (wfm_Lg.size() == 0) wfm_Lg.resize(7); - if (wfm_Hg.size() == 0) wfm_Hg.resize(7); - - ped_Lg = wfm_Lg[0]; - ped_Hg = wfm_Hg[0]; - - pico_Lg[module] = *(std::max_element(wfm_Lg.begin(), wfm_Lg.end()) ) - ped_Lg; - pico_Hg[module] = *(std::max_element(wfm_Hg.begin(), wfm_Hg.end()) ) - ped_Hg; - - //Condition to discard High Gain - qual[module] = 0; - if (pico_Hg[module] > satLimit[module]) { - qual[module] = qual[module] | 0x1; - } - if (ped_Hg < m_pedMin) { - qual[module] = qual[module] | 0x2; - } - if (ped_Hg > m_pedMax) { - qual[module] = qual[module] | 0x4; - } - //Select which gain to use - if (qual[module] != 0 ) { - energy[module] = pico_Lg[module]; - } - else { - pp = pico_Hg[module]; - energy[module] = convertToLowGain(pp, module, side); - } - - } - if (side == 1) { - //The separated High and Low gain sums - *m_energySumA_Lg = std::accumulate(pico_Lg.begin(), pico_Lg.end(), 0); - *m_energySumA_Hg = std::accumulate(pico_Hg.begin(), pico_Hg.end(), 0); - - *m_energyA = energy; - *m_qualityA = qual; - *m_energySumA = std::accumulate(energy.begin(), energy.end(), 0.0) ; - } - if (side == -1) { - //The separated High and Low gain sums - *m_energySumC_Lg = std::accumulate(pico_Lg.begin(), pico_Lg.end(), 0); - *m_energySumC_Hg = std::accumulate(pico_Hg.begin(), pico_Hg.end(), 0); - - *m_energyC = energy; - *m_qualityC = qual; - *m_energySumC = std::accumulate(energy.begin(), energy.end(), 0.0) ; - } - - } - //================================================================================================= - - float ZdcRecoFillerTool::convertToLowGain(const int & v, const int & module, const int & side) { - - float y = 0; - //Side A - if (side == 1) { - y = v * m_calib_p1A[module] + m_calib_p0A[module]; - } - if (side == -1) { - y = v * m_calib_p1C[module] + m_calib_p0C[module]; - } - return y; - } - /** - * This will prepare the vectors holding the coefficients for calibration. - * Sometime this should move to a database. - */ - void ZdcRecoFillerTool::fillCalibrationConstants() { - - /** - * Vector of constants coeficients for calibration - * this is for 2013 analysis - * - * this considers *ONLY* the electronic gain - * to convert the high gain to the low gain scale (y=p1*x + p0) - */ - - - static const float p1A[] = {0.10198, 0.11234, 0.11218, 0.11989}; - static const float p1C[] = {0.10198, 0.12038, 0.09796, 0.11390}; - //static const float p1C[] = {0.10198, 0.13304, 0.09796, 0.11390}; - - static const float p0A[] = {-0.07314, 0.61453, 0.91681, 0.39103}; - static const float p0C[] = { 0.0, -0.55202, -0.86575, -0.09950}; - //static const float p0C[] = { 0.0, -1.58776, -0.86575, -0.09950}; - - static const int satA[] = { 650, 650, 650, 700}; - static const int satC[] = { 700, 480, 850, 650}; - - //Alternative constants - //static const float p1A[] = {0.1104, 0.1079, 0.1080, 0.1111}; - //static const float p1C[] = {0.1104, 0.1077, 0.0995, 0.1143}; - - //static const float p0A[] = {0.5595, 0.2165, 0.11322, -0.5599}; - //static const float p0C[] = {0.5595, 0.2332, -0.5520, 0.5571}; - - m_calib_p1A.assign( p1A, p1A + 4 ); - m_calib_p1C.assign( p1C, p1C + 4 ); - - m_calib_p0A.assign( p0A, p0A + 4 ); - m_calib_p0C.assign( p0C, p0C + 4 ); - - m_saturationA.assign(satA, satA+4); - m_saturationC.assign(satC, satC+4); - - m_pedMin = 10; - m_pedMax = 160; - - return; - } - //================================================================================================= - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/ZdcRecoFillerTool.h b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/ZdcRecoFillerTool.h deleted file mode 100644 index d2ad95fea4962f0d47f2121fd61df8bee1fd722c..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/ZdcRecoFillerTool.h +++ /dev/null @@ -1,137 +0,0 @@ -// Dear emacs, this is -*- c++ -*- - -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id: ZdcRecoFillerTool.h 538888 2013-02-25 04:06:47Z leite $ -/** - * @file ForwardDetectorsD3PDMaker/FillerTool.h - * @author Yujiao Chen - * @author Marco Leite <leite@cern.ch> - * @date August 2010 - * @brief Block filler tool for ZDC information. - */ -#ifndef FORWARDDETECTORSD3PDMAKER_ZDCRECOFILLERTOOL_H -#define FORWARDDETECTORSD3PDMAKER_ZDCRECOFILLERTOOL_H - -// STL include(s): -#include <vector> -#include <string> - -// EDM include(s): -#include "ZdcEvent/ZdcDigitsCollection.h" - -// D3PDMaker include(s): -#include "D3PDMakerUtils/BlockFillerTool.h" - -// Forward declaration(s): -class ZdcID; - -namespace D3PD { - - // Convenience type definition: - typedef D3PD::BlockFillerTool< ZdcDigitsCollection > - ZdcDigitsCollectionFillerBase; - - class ZdcRecoFillerTool : public ZdcDigitsCollectionFillerBase { - - public: - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - ZdcRecoFillerTool( const std::string& type, - const std::string& name, - const IInterface* parent ); - - virtual StatusCode initialize(); - virtual StatusCode book(); - virtual StatusCode fill( const ZdcDigitsCollection & zdcCol ); - virtual StatusCode finalize(); - - private: - - void fillCalibrationConstants(); - void getEnergySum(const std::vector<std::vector<int> > & zdc_Lg, - const std::vector<std::vector<int> > & zdc_Hg, const int & side); - float convertToLowGain(const int & v, const int & module, const int & side); - - const ZdcID* m_zdcID; - - // Sum of modules energy per side, per gain - int *m_energySumA_Lg; - int *m_energySumA_Hg; - - int *m_energySumC_Lg; - int *m_energySumC_Hg; - - // Modules energy after electronic gain selection - std::vector< float > *m_energyA; - std::vector< float > *m_energyC; - - // Quality of the auto gain reconstruction - std::vector< int > *m_qualityA; - std::vector< int > *m_qualityC; - - // Sum of modules energy (auto gain) - float *m_energySumA; - float *m_energySumC; - - - //Placeholder for Segmented information (Only EM Side C is segmented) - /* - float *m_posXEmC; - float *m_posYEmC; - - float *m_posXHadA; - float *m_posYHadA; - - float *m_posXHadC; - float *m_posYHadC; - */ - - /// Property: if TRUE, apply weigths and constants to get the full energy - bool m_calibrateEnergy; - /// Property: if TRUE, calibrate the time information - bool m_calibrateTime; - /// Property: below this number of ADC counts the signal is considered noise - unsigned int m_threshold; - /// Property: the name of the method information to be retrieved - std::string m_recoMethod; - - /** - * Energy calibration vectors for weighting the longitudinal section of the calorimeter - * This includes both the electronic gain equalization and the weigth for - * photons/neutrons (different to account for lekeage) - */ - std::vector<float> m_calib_p1A; - std::vector<float> m_calib_p0A; - - std::vector<float> m_calib_p1C; - std::vector<float> m_calib_p0C; - - //Modules seems to saturate at different positions, - //So for flexibility is better to keep a saturation limit for each one - std::vector<int> m_saturationA; - std::vector<int> m_saturationC; - - int m_pedMin; - int m_pedMax; - - /** - * Helpers - */ - /* - std::vector<int> m_id ; - std::vector<float> m_energy; - std::vector<float> m_time; - */ - - }; // class ZdcRecoFillerTool - -} // namespace D3PD - -#endif // FORWARDDETECTORSD3PDMAKER_ZDCRECOFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/components/ForwardDetectorsD3PDMaker_entries.cxx b/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/components/ForwardDetectorsD3PDMaker_entries.cxx deleted file mode 100644 index 679db28adb5fd4143ea32d2073d912a6156a268b..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/ForwardDetectorsD3PDMaker/src/components/ForwardDetectorsD3PDMaker_entries.cxx +++ /dev/null @@ -1,36 +0,0 @@ -#include "../ZdcFillerTool.h" -#include "../ZdcDigitsFillerTool.h" -#include "../ZdcRecoFillerTool.h" - -#include "../AlfaHitCollectionFillerTool.h" -#include "../AlfaEventHeaderFillerTool.h" -#include "../AlfaTrackingDataFillerTool.h" -#include "../AlfaTruthInfoFillerTool.h" -#include "../AlfaMetaDataTool.h" - -#include "../AfpSIDSimHitCollectionFillerTool.h" -#include "../AfpSIDDigiCollectionFillerTool.h" -#include "../AfpSIDLocRecoEvCollectionFillerTool.h" -#include "../AfpTDSimHitCollectionFillerTool.h" -#include "../AfpTDDigiCollectionFillerTool.h" -#include "../AfpTDLocRecoEvCollectionFillerTool.h" -#include "../AfpTruthInfoFillerTool.h" - -DECLARE_COMPONENT( D3PD::ZdcFillerTool ) -DECLARE_COMPONENT( D3PD::ZdcDigitsFillerTool ) -DECLARE_COMPONENT( D3PD::ZdcRecoFillerTool ) - -DECLARE_COMPONENT( D3PD::AlfaHitCollectionFillerTool ) -DECLARE_COMPONENT( D3PD::AlfaEventHeaderFillerTool ) -DECLARE_COMPONENT( D3PD::AlfaTrackingDataFillerTool ) -DECLARE_COMPONENT( D3PD::AlfaTruthInfoFillerTool ) -DECLARE_COMPONENT( D3PD::AlfaMetaDataTool ) - -DECLARE_COMPONENT( D3PD::AfpSIDSimHitCollectionFillerTool ) -DECLARE_COMPONENT( D3PD::AfpSIDDigiCollectionFillerTool ) -DECLARE_COMPONENT( D3PD::AfpSIDLocRecoEvCollectionFillerTool ) -DECLARE_COMPONENT( D3PD::AfpTDSimHitCollectionFillerTool ) -DECLARE_COMPONENT( D3PD::AfpTDDigiCollectionFillerTool ) -DECLARE_COMPONENT( D3PD::AfpTDLocRecoEvCollectionFillerTool ) -DECLARE_COMPONENT( D3PD::AfpTruthInfoFillerTool ) -