91 def _do_action( self, *args, **kwds ):
92 from AthenaCommon import AppMgr
93
94 if self.StoredValue in ["ClassAccess","AthenaAccess","BranchAccess"]:
95 if hasattr(AppMgr.ServiceMgr,"EventSelector"):
96 if AppMgr.ServiceMgr.EventSelector.getType()!="Athena::xAODEventSelector":
97 raise ValueError("Cannot switch to %s mode with existing EventSelector of type %s" % (self.StoredValue,AppMgr.ServiceMgr.EventSelector.getType()) )
98 else:
99 import AthenaRootComps.ReadAthenaxAODHybrid
100 if self.StoredValue=="ClassAccess": AppMgr.ServiceMgr.EventSelector.AccessMode = 1
101 elif self.StoredValue=="BranchAccess": AppMgr.ServiceMgr.EventSelector.AccessMode = 0
102 elif self.StoredValue=="AthenaAccess": AppMgr.ServiceMgr.EventSelector.AccessMode = 2
103 elif self.StoredValue=="POOLAccess":
104 if hasattr(AppMgr.ServiceMgr,"EventSelector"):
105 if AppMgr.ServiceMgr.EventSelector.getType()!="EventSelectorAthenaPool":
106 raise ValueError("Cannot switch to %s mode with existing EventSelector of type %s" % (self.StoredValue,AppMgr.ServiceMgr.EventSelector.getType()) )
107 else:
108 import AthenaPoolCnvSvc.ReadAthenaPool
109 elif self.StoredValue=="TreeAccess" or self.StoredValue=="TreeAccessWithEventInfo":
110 if hasattr(AppMgr.ServiceMgr,"EventSelector"):
111 if AppMgr.ServiceMgr.EventSelector.getType()!="Athena::RootNtupleEventSelector":
112 raise ValueError("Cannot switch to %s mode with existing EventSelector of type %s" % (self.StoredValue,AppMgr.ServiceMgr.EventSelector.getType()) )
113 else:
114 import AthenaRootComps.ReadAthenaRoot
115 AppMgr.ServiceMgr.EventSelector.TupleName = jobproperties.AthenaCommonFlags.TreeName()
116 if self.StoredValue=="TreeAccessWithEventInfo":
117 AppMgr.ServiceMgr.EventSelector.CreateEventInfo = True
118 AppMgr.ServiceMgr.AthenaEventLoopMgr.DoLiteLoop = False
119
120