Commit 94fb28fe authored by Pavol Strizenec's avatar Pavol Strizenec Committed by Graeme Stewart
Browse files

HVPathologies to overwrite HV values (LArCondUtils-00-03-36)

	* Changing HVPathologies, to be able to overwrite directly the HV
	   values (pathologyType is (hv&0xFFF0)<<4 ) or set hv=0 (pathologyType is 0xF)
	* tag LArCondUtils-00-03-36

2016-08-10  scott snyder  <snyder@bnl.gov>

	* Tagging LArCondUtils-00-03-35.
	* endreq -> endmsg.
parent e1adb924
......@@ -16,6 +16,7 @@ atlas_depends_on_subdirs( PUBLIC
PRIVATE
Calorimeter/CaloDetDescr
Calorimeter/CaloIdentifier
Calorimeter/CaloGeoHelpers
Control/AthenaKernel
Database/AthenaPOOL/RDBAccessSvc
Database/RegistrationServices
......@@ -37,11 +38,11 @@ atlas_add_component( LArCondUtils
src/*.cxx
src/components/*.cxx
INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS}
LINK_LIBRARIES ${ROOT_LIBRARIES} ${Boost_LIBRARIES} ${CORAL_LIBRARIES} AthenaBaseComps StoreGateLib SGtests AthenaPoolUtilities Identifier GaudiKernel CaloDetDescrLib CaloIdentifier AthenaKernel EventInfo LArCablingLib LArHV LArReadoutGeometry LArIdentifier LArRawConditions LArRecConditions )
LINK_LIBRARIES ${ROOT_LIBRARIES} ${Boost_LIBRARIES} ${CORAL_LIBRARIES} AthenaBaseComps StoreGateLib SGtests AthenaPoolUtilities Identifier GaudiKernel CaloDetDescrLib CaloIdentifier CaloGeoHelpers AthenaKernel EventInfo LArCablingLib LArHV LArReadoutGeometry LArIdentifier LArRawConditions LArRecConditions )
# Install files from the package:
atlas_install_headers( LArCondUtils )
atlas_install_joboptions( share/*.py )
atlas_install_runtime( share/LArEmLvl1.data share/LArHecLvl1.data share/LArFcalLvl1.data )
atlas_install_scripts( share/LArBuildHVPathologies.sh share/fillPileUpNoiseLumi.py )
atlas_install_scripts( share/LArBuildHVPathologies.sh share/fillPileUpNoiseLumi.py share/dumpHVPathFromNtuple.py )
......@@ -18,6 +18,12 @@
#include "GaudiKernel/ITHistSvc.h"
#include "TTree.h"
class CaloCell_ID;
class LArOnlineID;
class LArCablingService;
class Identifier;
class HWIdentifier;
class CaloDetDescrManager;
class LArHV2Ntuple : public AthAlgorithm {
public:
......@@ -42,6 +48,9 @@ class LArHV2Ntuple : public AthAlgorithm {
ITHistSvc* m_thistSvc;
TTree* m_tree;
bool m_addcells;
// tree variables
int m_bec;
int m_isPresampler;
float m_eta;
......@@ -52,5 +61,19 @@ class LArHV2Ntuple : public AthAlgorithm {
float m_hv;
float m_current;
int m_barrelec;
int m_posneg;
int m_FT;
int m_slot;
int m_channel;
// ID helper
const CaloCell_ID* m_caloId;
const LArOnlineID* m_onlId;
ToolHandle<LArCablingService> m_cabling;
const DataHandle<CaloDetDescrManager> m_calodetdescrmgr;
std::map<int, std::vector<HWIdentifier> >m_hvonlId_map;
std::vector<int> GetHVLines(const Identifier& id) ;
};
#endif
......@@ -40,6 +40,7 @@ class LArHVPathologyDbAlg : public AthAlgorithm
BooleanProperty m_writeCondObjs;
StringProperty m_inpFile;
StringProperty m_outFile;
StringProperty m_folder;
StringProperty m_outpTag;
......
......@@ -99,9 +99,9 @@ class LArHVToolDB: public AthAlgTool, virtual public ILArHVTool
LArHVPathologiesDb* m_pathologyContainer;
std::vector<bool> m_hasPathologyEM;
std::vector<bool> m_hasPathologyHEC;
std::vector<bool> m_hasPathologyFCAL;
std::vector<unsigned short> m_hasPathologyEM;
std::vector<unsigned short> m_hasPathologyHEC;
std::vector<unsigned short> m_hasPathologyFCAL;
std::string m_HVPathologiesFolderName;
std::vector<HWIdentifier> m_updatedElectrodes;
......
......@@ -19,7 +19,7 @@ apply_pattern component_library
apply_pattern declare_joboptions files=" *.py"
apply_pattern declare_runtime extras="LArEmLvl1.data LArHecLvl1.data LArFcalLvl1.data"
apply_pattern declare_scripts files="LArBuildHVPathologies.sh fillPileUpNoiseLumi.py"
apply_pattern declare_scripts files="LArBuildHVPathologies.sh fillPileUpNoiseLumi.py dumpHVPathFromNtuple.py"
private
use AthenaKernel AthenaKernel-* Control
......@@ -34,6 +34,7 @@ use LArRecConditions LArRecConditions-* LArCalorimeter
use LArHV LArHV-* LArCalorimeter/LArGeoModel
use LArReadoutGeometry LArReadoutGeometry-* LArCalorimeter/LArGeoModel
use LArCabling LArCabling-* LArCalorimeter
use CaloGeoHelpers CaloGeoHelpers-* Calorimeter
#private
#macro cppdebugflags '$(cppdebugflags_s) -O2 '
......
......@@ -4,79 +4,86 @@
#
##################################################################
import time
from time import strptime,time
from calendar import timegm
tuple=(2010, 04, 29, 16, 00, 0,-1,-1,-1)
itime = int(time.mktime(tuple))
if "OutFile" not in dir():
OutFile="dump_hv.root"
TimeStamp=itime
if "date" not in dir():
date="2015-05-29:12:00:00"
if "TimeStamp" not in dir():
try:
ts=strptime(date+'/UTC','%Y-%m-%d:%H:%M:%S/%Z')
TimeStamp=int(timegm(ts))*1000000000L
except ValueError:
print "ERROR in time specification, use e.g. 2007-05-25:14:01:00"
# run number only relevant for HV mapping information.. Use latest mapping here
RunNumber = 999999
if "RunNumber" not in dir():
RunNumber = 999999
if "addCells" not in dir():
addCells=False
# global tag to read other conditions if needed
GlobalTag = 'COMCOND-ES1P-002-00'
if "GloablTag" not in dir():
GlobalTag = 'CONDBR2-BLKPA-2016-14'
###################################################################
from PerfMonComps.PerfMonFlags import jobproperties
jobproperties.PerfMonFlags.doMonitoring = True
## basic job configuration
import AthenaCommon.AtlasUnixGeneratorJob
from RecExConfig.RecFlags import rec
## get a handle to the default top-level algorithm sequence
from AthenaCommon.AlgSequence import AlgSequence
topSequence = AlgSequence()
from AthenaCommon.DetFlags import DetFlags
DetFlags.all_setOff()
DetFlags.LAr_setOn()
DetFlags.Tile_setOn()
DetFlags.Calo_setOn()
DetFlags.digitize.all_setOff()
from AthenaCommon.GlobalFlags import GlobalFlags
GlobalFlags.DetGeo.set_atlas()
GlobalFlags.DataSource.set_data()
GlobalFlags.Luminosity.set_zero()
from AthenaCommon.GlobalFlags import globalflags
globalflags.DetGeo='atlas'
globalflags.DataSource='data'
globalflags.InputFormat = 'bytestream'
globalflags.DatabaseInstance="CONDBR2"
# Get a handle to the default top-level algorithm sequence
from AthenaCommon.AppMgr import ToolSvc
from AthenaCommon.AlgSequence import AlgSequence
topSequence = AlgSequence()
#from AthenaCommon.AppMgr import ToolSvc
# Get a handle to the ServiceManager
from AthenaCommon.AppMgr import ServiceMgr as svcMgr
# Get a handle to the ApplicationManager
from AthenaCommon.AppMgr import theApp
# Setup Db stuff
import AthenaPoolCnvSvc.AthenaPool
#import AthenaPoolCnvSvc.AthenaPool
from AthenaCommon.GlobalFlags import jobproperties
jobproperties.Global.DetDescrVersion='ATLAS-GEO-10-00-00'
jobproperties.Global.DetDescrVersion='ATLAS-GEO-20-00-00'
from AtlasGeoModel import SetGeometryVersion
from AtlasGeoModel import GeoModelInit
from AtlasGeoModel import SetupRecoGeometry
svcMgr.IOVDbSvc.GlobalTag = GlobalTag
include( "AthenaCommon/Atlas_Gen.UnixStandardJob.py" )
include( "CaloDetMgrDetDescrCnv/CaloDetMgrDetDescrCnv_joboptions.py")
include( "CaloIdCnv/CaloIdCnv_joboptions.py" )
include( "TileIdCnv/TileIdCnv_jobOptions.py" )
#include( "TileIdCnv/TileIdCnv_jobOptions.py" )
include( "LArDetDescr/LArDetDescr_joboptions.py" )
include("TileConditions/TileConditions_jobOptions.py" )
#include("TileConditions/TileConditions_jobOptions.py" )
include("LArConditionsCommon/LArConditionsCommon_comm_jobOptions.py")
include( "LArCondAthenaPool/LArCondAthenaPool_joboptions.py" )
#include( "LArCondAthenaPool/LArCondAthenaPool_joboptions.py" )
from IOVDbSvc.CondDB import conddb
conddb.addFolder("LAR_OFL","/LAR/IdentifierOfl/HVLineToElectrodeMap");
conddb.addFolder("DCS_OFL","/LAR/DCS/HV/BARREl/I16")
conddb.addFolder("DCS_OFL","/LAR/DCS/HV/BARREL/I8")
# to read HV mapping from database file instead of Ascii file in LArTools
from IOVDbSvc.CondDB import conddb
conddb.addFolder("LAR_OFL","/LAR/IdentifierOfl/HVLineToElectrodeMap");
from LArCondUtils.LArCondUtilsConf import LArHV2Ntuple
theLArHV2Ntuple = LArHV2Ntuple("LArHV2Ntuple")
theLArHV2Ntuple.AddCellID=addCells
topSequence += theLArHV2Ntuple
# ------------------------------------------------------------------
......@@ -84,9 +91,9 @@ topSequence += theLArHV2Ntuple
# ------------------------------------------------------------------
if not hasattr(ServiceMgr, 'THistSvc'):
from GaudiSvc.GaudiSvcConf import THistSvc
ServiceMgr += THistSvc()
svcMgr += THistSvc()
ServiceMgr.THistSvc.Output = ["file1 DATAFILE='dump_hv.root' OPT='RECREATE'"];
svcMgr.THistSvc.Output = ["file1 DATAFILE='"+OutFile+"' OPT='RECREATE'"];
......@@ -98,7 +105,7 @@ svcMgr.EventSelector.EventsPerRun = 100
svcMgr.EventSelector.FirstEvent = 0
svcMgr.EventSelector.EventsPerLB = 100
svcMgr.EventSelector.FirstLB = 1
svcMgr.EventSelector.InitialTimeStamp = TimeStamp
svcMgr.EventSelector.InitialTimeStamp = int(TimeStamp/1e9)
svcMgr.EventSelector.TimeStampInterval = 5
svcMgr.EventSelector.OverrideRunNumber=True
theApp.EvtMax = 1
......
......@@ -7,9 +7,6 @@ from calendar import timegm
if "GloablTag" not in dir():
GlobalTag = 'CONDBR2-BLKPA-2015-05'
if "inputsqlite" not in dir():
inputsqlite="larhvpathology.db"
if "foldertag" not in dir():
foldertag="LARHVPathologiesOflPathologies-RUN2-UPD1-00"
......@@ -34,30 +31,23 @@ from AthenaCommon.AlgSequence import AlgSequence
topSequence = AlgSequence()
## get a handle to the ServiceManager
from AthenaCommon.AppMgr import ServiceMgr as svcMgr
## get a handle to the ApplicationManager
from AthenaCommon.AppMgr import theApp
## get a handle to the default top-level algorithm sequence
from AthenaCommon.AlgSequence import AlgSequence
topSequence = AlgSequence()
## get a handle to the ServiceManager
from AthenaCommon.AppMgr import ServiceMgr as svcMgr
#from AthenaCommon.AppMgr import ServiceMgr as svcMgr
## get a handle to the ApplicationManager
from AthenaCommon.AppMgr import theApp
#from AthenaCommon.AppMgr import theApp
from AthenaCommon.DetFlags import DetFlags
DetFlags.all_setOff()
DetFlags.LAr_setOn()
DetFlags.Tile_setOn()
DetFlags.Calo_setOn()
DetFlags.digitize.all_setOff()
from AthenaCommon.GlobalFlags import globalflags
globalflags.DetGeo = 'atlas'
globalflags.DataSource = 'data'
globalflags.InputFormat = 'pool'
#globalflags.InputFormat = 'pool'
globalflags.InputFormat = 'bytestream'
globalflags.DatabaseInstance="CONDBR2"
from AthenaCommon.GlobalFlags import jobproperties
jobproperties.Global.DetDescrVersion='ATLAS-GEO-20-00-00'
......@@ -68,13 +58,14 @@ from AtlasGeoModel import SetupRecoGeometry
svcMgr.IOVDbSvc.GlobalTag = GlobalTag
TileUseDCS=False
#TileUseDCS=False
include( "CaloDetMgrDetDescrCnv/CaloDetMgrDetDescrCnv_joboptions.py")
include( "CaloIdCnv/CaloIdCnv_joboptions.py" )
include( "TileIdCnv/TileIdCnv_jobOptions.py" )
#include( "TileIdCnv/TileIdCnv_jobOptions.py" )
include( "LArDetDescr/LArDetDescr_joboptions.py" )
include("TileConditions/TileConditions_jobOptions.py" )
include("LArConditionsCommon/LArConditionsCommon_comm_jobOptions.py")
#include("TileConditions/TileConditions_jobOptions.py" )
#include("LArConditionsCommon/LArConditionsCommon_comm_jobOptions.py")
include( "LArConditionsCommon/LArIdMap_comm_jobOptions.py" )
conddb.addFolder("LAR_OFL","/LAR/IdentifierOfl/HVLineToElectrodeMap")
conddb.addFolder("DCS_OFL","/LAR/DCS/HV/BARREl/I16")
......@@ -88,11 +79,15 @@ from LArCondUtils.LArCondUtilsConf import LArHVPathologyDbAlg
LArHVPathologyDbAlg = LArHVPathologyDbAlg()
LArHVPathologyDbAlg.Folder = "/LAR/HVPathologiesOfl/Pathologies"
LArHVPathologyDbAlg.Mode=mode
if 'OutFile' in dir():
LArHVPathologyDbAlg.OutFile=OutFile
topSequence += LArHVPathologyDbAlg
# Here mytest.db is the name of SQLite file created by this job
svcMgr.IOVDbSvc.dbConnection = "sqlite://;schema="+inputsqlite+";dbname=CONDBR2"
svcMgr.IOVDbSvc.Folders += [ "/LAR/HVPathologiesOfl/Pathologies<tag>"+foldertag+"</tag>" ]
if 'inputsqlite' in dir():
svcMgr.IOVDbSvc.dbConnection = "sqlite://;schema="+inputsqlite+";dbname=CONDBR2"
svcMgr.IOVDbSvc.Folders += [ "/LAR/HVPathologiesOfl/Pathologies<tag>"+foldertag+"</tag>" ]
else:
conddb.addFolder("LAR_OFL","/LAR/HVPathologiesOfl/Pathologies<tag>"+foldertag+"</tag>")
svcMgr.MessageSvc.OutputLevel = 4
svcMgr.MessageSvc.debugLimit = 100000
......@@ -119,7 +114,7 @@ theApp.EvtMax = 1
#--------------------------------------------------------------
# Load POOL support
#--------------------------------------------------------------
import AthenaPoolCnvSvc.WriteAthenaPool
#import AthenaPoolCnvSvc.WriteAthenaPool
# Check the dictionary in memory for completeness
svcMgr.AthenaSealSvc.CheckDictionary = TRUE
......@@ -8,6 +8,9 @@ from calendar import timegm
if "InputFile" not in dir():
InputFile="HVPathologies.txt"
if "OutputFile" not in dir():
OutputFile="larhvpathology.db"
if "tagName" not in dir():
tagName="LARHVPathologiesOflPathologies-RUN2-UPD1-00"
......@@ -15,12 +18,11 @@ if "RunNumber" not in dir():
RunNumber = 999999
if "GloablTag" not in dir():
GlobalTag = 'CONDBR2-BLKPA-2015-05'
GlobalTag = 'CONDBR2-BLKPA-2016-14'
if "date" not in dir():
date="2015-09-29:12:00:00"
if "TimeStamp" not in dir():
try:
ts=strptime(date+'/UTC','%Y-%m-%d:%H:%M:%S/%Z')
......@@ -37,20 +39,20 @@ from AthenaCommon.AlgSequence import AlgSequence
topSequence = AlgSequence()
## get a handle to the ServiceManager
from AthenaCommon.AppMgr import ServiceMgr as svcMgr
#from AthenaCommon.AppMgr import ServiceMgr as svcMgr
## get a handle to the ApplicationManager
from AthenaCommon.AppMgr import theApp
#from AthenaCommon.AppMgr import theApp
from AthenaCommon.DetFlags import DetFlags
DetFlags.all_setOff()
DetFlags.LAr_setOn()
DetFlags.Tile_setOn()
#DetFlags.Tile_setOn()
from AthenaCommon.GlobalFlags import globalflags
globalflags.DetGeo = 'atlas'
globalflags.DataSource = 'data'
globalflags.InputFormat = 'pool'
globalflags.InputFormat = 'bytestream'
from AthenaCommon.GlobalFlags import jobproperties
......@@ -65,10 +67,10 @@ svcMgr.IOVDbSvc.GlobalTag = GlobalTag
TileUseDCS=False
include( "CaloDetMgrDetDescrCnv/CaloDetMgrDetDescrCnv_joboptions.py")
include( "CaloIdCnv/CaloIdCnv_joboptions.py" )
include( "TileIdCnv/TileIdCnv_jobOptions.py" )
#include( "TileIdCnv/TileIdCnv_jobOptions.py" )
include( "LArDetDescr/LArDetDescr_joboptions.py" )
include("TileConditions/TileConditions_jobOptions.py" )
include("LArConditionsCommon/LArConditionsCommon_comm_jobOptions.py")
#include("TileConditions/TileConditions_jobOptions.py" )
#include("LArConditionsCommon/LArConditionsCommon_comm_jobOptions.py")
#from LArConditionsCommon import LArHVDB
......@@ -78,8 +80,6 @@ conddb.addFolder("DCS_OFL","/LAR/DCS/HV/BARREl/I16")
conddb.addFolder("DCS_OFL","/LAR/DCS/HV/BARREL/I8")
#--------------------------------------------------------------
# Access to IOVSvc, IOVDbSvc and CondDBMySQLCnvSvc
#--------------------------------------------------------------
......@@ -87,26 +87,25 @@ import IOVDbSvc.IOVDb
from LArCondUtils.LArCondUtilsConf import LArHVPathologyDbAlg
LArHVPathologyDbAlg = LArHVPathologyDbAlg()
# Choose the following to write out cond objects
LArHVPathologyDbAlg.WriteCondObjs = True
# Other properties of LArHVPathologyDbAlg
LArHVPathologyDbAlg.InpFile = InputFile
LArHVPathologyDbAlg.Folder = "/LAR/HVPathologiesOfl/Pathologies"
LArHVPathologyDbAlg.TagName = tagName
LArHVPathologyDbAlg.Mode = 1
topSequence += LArHVPathologyDbAlg
# Here mytest.db is the name of SQLite file created by this job
svcMgr.IOVDbSvc.dbConnection = "sqlite://;schema=larhvpathology.db;dbname=CONDBR2"
svcMgr.IOVDbSvc.dbConnection = "sqlite://;schema="+OutputFile+";dbname=CONDBR2"
svcMgr.MessageSvc.OutputLevel = 4
svcMgr.MessageSvc.debugLimit = 100000
svcMgr.MessageSvc.infoLimit = 100000
LArHVPathologyDbAlg.OutputLevel = 2
topSequence.LArHVPathologyDbAlg.OutputLevel = 2
svcMgr.IOVDbSvc.OutputLevel = 3
# Choose the following to write out cond objects .
LArHVPathologyDbAlg.WriteCondObjs = True
# Other properties of LArHVPathologyDbAlg
LArHVPathologyDbAlg.InpFile = InputFile
LArHVPathologyDbAlg.Folder = "/LAR/HVPathologiesOfl/Pathologies"
LArHVPathologyDbAlg.TagName = tagName
LArHVPathologyDbAlg.Mode = 1
#--------------------------------------------------------------
# Options for IOVRegistrationSvc
......
#!/bin/env python
import os,re
import sys
from os import popen
import string
import commands
import ROOT
def DumpPathology(inf, hvline, outfile, append):
try:
if not inf.IsOpen():
print 'File not open ?'
return
except:
return
try:
if append:
fout=open(outfile,'a')
else:
fout=open(outfile,'w')
except:
print 'Could not open output file ',outfile
return
tree=inf.Get("hv/mytree")
# start to dump the HV for the asked HVLine, first collect one line per cell
br_hvline=tree.GetBranch("HVline")
hvdict={}
for i in range(0,tree.GetEntries()):
if i%10000 == 0: print i
br_hvline.GetEntry(i)
if tree.HVline != hvline: continue
tree.GetEntry(i)
bec=tree.barrel_ec
side=tree.side
FT=tree.FT
slot=tree.slot
channel=tree.channel
idlist=[bec,side,FT,slot,channel]
if str(idlist) in hvdict: continue
hv=tree.hv
ihv=int(hv)
hvlist=[bec,side,FT,slot,channel,ihv]
hvdict[str(idlist)]=hvlist
pass
#print hvdict
# now write to a file
if not append: fout.write('/LAR/HVPathologiesOfl/Pathologies\n')
for k in hvdict.keys():
ll=hvdict[k]
if len(ll) != 6:
print 'Wrong list: ',ll,' continue to next!!!'
continue
wstr=str(ll[0])+' '+str(ll[1])+' '+str(ll[2])+' '+str(ll[3])+' '+str(ll[4])+' '+str(hvline/1000)+' '+str(hvline%1000)+' '+str((ihv<<4)&0xFFF0)+'\n'
fout.write(wstr)
pass
fout.close()
return
if __name__=="__main__":
# Get the input parameter
try:
infile = sys.argv[1]
inf = ROOT.TFile(infile,'read')
except:
print 'HV ntuple ',infile,' doesnt exist ?'
sys.exit()
print 'HV ntuple file: ',infile
try:
hvline = int(sys.argv[2])
except:
print 'HVline number doesnt exist ?'
sys.exit()
if hvline < 1000 or hvline > 400000:
print 'wrong HV line number: ',hvline
sys.exit()
if len(sys.argv) > 3:
outfile=sys.argv[3]
else:
outfile='hvpat.txt'
print 'Output file: ',outfile
if len(sys.argv) > 4:
if int(sys.argv[4])==0:
append=False
else:
append=True
else:
append=False
print 'Append to out file: ',append
DumpPathology(inf, hvline, outfile, append)
inf.Close()
......@@ -80,9 +80,9 @@ StatusCode LArFecLvTempDcsTool::getV1( const std::string& cratename,
int time=event->event_ID()->time_stamp();
log << MSG::INFO << "In run/event [" << event->event_ID()->run_number() <<
"," << event->event_ID()->event_number() << "] timestamp " << time <<
endreq;
endmsg;
} else {
log << MSG::ERROR << "Could not get pointer to event" << endreq;
log << MSG::ERROR << "Could not get pointer to event" << endmsg;
}
......@@ -125,9 +125,9 @@ StatusCode LArFecLvTempDcsTool::getFec( const std::string& cratename,
int time=event->event_ID()->time_stamp();
log << MSG::INFO << "In run/event [" << event->event_ID()->run_number() <<
"," << event->event_ID()->event_number() << "] timestamp " << time <<
endreq;
endmsg;
} else {
log << MSG::ERROR << "Could not get pointer to event" << endreq;
log << MSG::ERROR << "Could not get pointer to event" << endmsg;
}
const CondAttrListCollection* atrlistcol;
......
......@@ -21,20 +21,26 @@
#include "LArHV/HECHVModule.h"
#include "LArHV/HECHVModuleConstLink.h"
#include "LArHV/HECHVSubgap.h"
#include "LArHV/FCALHVManager.h"
#include "LArHV/EMBPresamplerHVManager.h"
#include "LArHV/EMBPresamplerHVModule.h"
#include "LArHV/EMBPresamplerHVModuleConstLink.h"
#include "LArHV/EMECPresamplerHVManager.h"
#include "LArHV/EMECPresamplerHVModule.h"
#include "LArHV/EMECPresamplerHVModuleConstLink.h"
#include "CaloIdentifier/CaloCell_ID.h"
#include "LArIdentifier/LArOnlineID.h"
#include "LArCabling/LArCablingService.h"
#include "CaloDetDescr/CaloDetDescrManager.h"
#include "CaloDetDescr/CaloDetectorElements.h"
#include "CaloGeoHelpers/CaloPhiRange.h"
//Constructor
LArHV2Ntuple:: LArHV2Ntuple(const std::string& name, ISvcLocator* pSvcLocator):