25 m_ntpath=std::string(
"/NTUPLES/FILE1/TIMEDIFF");
32 NTuple::Item<float> ntold, ntnew, ntoffset, ntcorr;
33 NTuple::Item<long> ntgain;
36 CHECK(
m_nt->addItem(
"PCDiffOld",ntold,-200,200));
37 CHECK(
m_nt->addItem(
"PCDiffNew",ntnew,-200,200));
39 CHECK(
m_nt->addItem(
"correction",ntcorr,0,200));
45 std::vector<std::map<HWIdentifier,float> > offsetMap;
46 if(
m_perFebMG) offsetMap.resize(2);
else offsetMap.resize(3);
47 std::ifstream rein(
m_fileName.c_str(),std::ifstream::in);
50 return StatusCode::SUCCESS;
55 unsigned gain,chidint;
58 rein >> std::hex>>chidint >>std::dec>> offset;
60 offsetMap[1][fid]=offset;
63 rein >> chidint >> gain >> offset;
65 if (gain >= offsetMap.size()) {
67 return StatusCode::FAILURE;
69 offsetMap[gain][fid]=offset;
82 if(
sc!=StatusCode::SUCCESS) {
86 for (
int gain=0;gain<3;++gain) {
90 for (;it!=it_e;++it) {
101 newCont->
set(chid,gain,timediff);
105 ntoffset=offsetMap[gain][fid];
110 ntcorr=offsetMap[gain][fid]-offsetMap[refGain][fid];
111 const float correction=offsetMap[gain][fid]-offsetMap[refGain][fid];
112 timediff+=correction;
115 ntcorr=offsetMap[gain][fid];
116 const float correction=offsetMap[gain][fid];
117 timediff+=correction;
120 newCont->
set(chid,gain,timediff);
128 if (
sc!=StatusCode::SUCCESS) {
130 return StatusCode::FAILURE;
134 std::cout<<
"2"<<std::endl;
138 return StatusCode::SUCCESS;
#define CHECK(...)
Evaluate an expression and check for errors.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
const ServiceHandle< StoreGateSvc > & detStore() const
bool fillFromIdentifier(const HWIdentifier &id)
LArCond2NtupleBase(const std::string &name, ISvcLocator *pSvcLocator)
void setGroupingType(GroupingType type)
allow group type to be set externally - need to (re)initialize after setting grouping type
ConditionsMap::const_iterator ConstConditionsMapIterator
virtual StatusCode initialize()
Initialization done after creation or read back - derived classes may augment the functionality.
ConstConditionsMapIterator begin(unsigned int gain) const
get iterator for all channels for a gain
ConstConditionsMapIterator end(unsigned int gain) const
end of all channels for this gain
std::string channel_name(const HWIdentifier id) const
Return a string corresponding to a feedthrough name given an identifier.
HWIdentifier feb_Id(int barrel_ec, int pos_neg, int feedthrough, int slot) const
Create feb_Id from fields.
bool isHECchannel(const HWIdentifier id) const override final
LArPhysCaliTDiffAlg(const std::string &name, ISvcLocator *pSvcLocator)
std::string m_outputContainer
std::string m_inputContainer
virtual ~LArPhysCaliTDiffAlg()
This class implements the ILArPhysCaliTdiff interface ` *.
void set(const HWIdentifier &CellID, int gain, float tdiff)