ATLAS Offline Software
EventTypeCnv_p3.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #include "EventInfo/EventType.h"
7 
8 void EventTypeCnv_p3::transToPers(const EventType* trans, EventType_p3* pers, MsgStream &) const {
9  pers->m_bit_mask = trans->bit_mask();
10  pers->m_user_type = trans->user_type_raw();
11 
12  {
13  unsigned int nwt = trans->n_mc_event_weights();
14  pers->m_mc_event_weights.resize (nwt);
15  for (unsigned int i=0; i < nwt; i++)
16  pers->m_mc_event_weights[i] = trans->mc_event_weight(i);
17  }
18  pers->m_mc_channel_number = trans->mc_channel_number();
19  pers->m_mc_event_number = trans->mc_event_number();
20 }
21 
22 void EventTypeCnv_p3::persToTrans(const EventType_p3* pers, EventType* trans, MsgStream &) const {
23  *trans = EventType();
24 
25  for (size_t i = 0; i < pers->m_bit_mask.size(); i++) {
26  if (pers->m_bit_mask[i])
27  trans->add_type (i);
28  }
29 
30  size_t nwt = pers->m_mc_event_weights.size();
31  for (size_t i = 0; i < nwt; i++) {
32  trans->set_mc_event_weight (pers->m_mc_event_weights[i], i, nwt);
33  }
34 
35  trans->set_user_type (pers->m_user_type);
38 }
39 
41 {
42  auto trans = std::make_unique<EventType>();
43  persToTrans(persObj, trans.get(), log);
44  return(trans.release());
45 }
EventType_p3
Definition: EventType_p3.h:18
EventType_p3::m_bit_mask
BitMask m_bit_mask
Definition: EventType_p3.h:28
EventType::add_type
void add_type(EventTypeCode type_code)
Add a new event type.
Definition: EventType.cxx:51
EventType::set_mc_channel_number
void set_mc_channel_number(number_type chan)
Add in the MC generator channel number (aka gen run number)
Definition: EventType.cxx:197
EventType
This class represents the "type of event" where the type is given by one or more "characteristics".
Definition: EventType.h:92
EventType_p3::m_mc_event_weights
std::vector< float > m_mc_event_weights
Definition: EventType_p3.h:30
EventType.h
This class provides general information about an event. It extends EventInfo with a list of sub-evts ...
EventType_p3::m_mc_event_number
uint64_t m_mc_event_number
Definition: EventType_p3.h:32
EventType::mc_event_weight
float mc_event_weight(unsigned int iweight=0) const
Access to MC weight.
Definition: EventType.cxx:175
EventType::mc_channel_number
number_type mc_channel_number() const
Access to the MC generator channel number (was used as run number for generator events)
Definition: EventType.cxx:165
EventTypeCnv_p3::createTransientConst
virtual EventType * createTransientConst(const EventType_p3 *persObj, MsgStream &log) const override
Definition: EventTypeCnv_p3.cxx:40
lumiFormat.i
int i
Definition: lumiFormat.py:92
EventTypeCnv_p3::transToPers
virtual void transToPers(const EventType *transObj, EventType_p3 *persObj, MsgStream &log) const override
Definition: EventTypeCnv_p3.cxx:8
EventType_p3::m_user_type
std::string m_user_type
Definition: EventType_p3.h:29
EventType::set_mc_event_weight
void set_mc_event_weight(float weight, unsigned int iweight=0, unsigned int nWeightsMax=0)
Add in MC weight. For more than 1 weight, add with iweight > 0.
Definition: EventType.cxx:207
EventType::set_mc_event_number
void set_mc_event_number(uint64_t evt)
Add in the MC generator event number.
Definition: EventType.cxx:202
EventType::set_user_type
void set_user_type(const std::string &user_type)
Add user (string) type.
Definition: EventType.cxx:57
EventType::mc_event_number
uint64_t mc_event_number() const
Access to the MC generator event number.
Definition: EventType.cxx:170
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
EventType::n_mc_event_weights
unsigned int n_mc_event_weights() const
Total number of MC weights.
Definition: EventType.cxx:214
EventTypeCnv_p3::persToTrans
virtual void persToTrans(const EventType_p3 *persObj, EventType *transObj, MsgStream &log) const override
Definition: EventTypeCnv_p3.cxx:22
EventType_p3::m_mc_channel_number
number_type m_mc_channel_number
Definition: EventType_p3.h:31
EventTypeCnv_p3.h
EventType::user_type_raw
const std::string & user_type_raw(void) const
Access to user type.
Definition: EventType.cxx:108
EventType::bit_mask
const BitMask & bit_mask() const
Definition: EventType.cxx:192