75 if ( psa_frames == 0x0 ) {
86 GetDataPointer<GammaTrackedInterface>(track_frame);
91 for (UInt_t i = 0u; i < nb_psa_frames; i++) {
92 if ( !(i < fAllocatedPSAFrame.size()) ) {
95 Log <<
error <<
" cannot allocate more that " << fAllocatedPSAFrame.size() <<
dolog;
98 else { fAllocatedPSAFrame.push_back(psa); }
100 psa = fAllocatedPSAFrame[i];
108 for (UInt_t ipsa = 0u; ipsa <
fCurrentPSA.size(); ipsa++) {
112 for (UShort_t ihit = 0u; ihit <
fCurrentPSA[ipsa]->GetNbHits(); ihit++) {
114 Double_t xLocal, yLocal, zLocal, xGlobal, yGlobal, zGlobal; Double_t max_e = 0.0;
116 fCurrentPSA[ipsa]->GetHit(ihit)->GetXYZ(xLocal, yLocal, zLocal);
117 fTrans->Local2Global(
fCurrentPSA[ipsa]->GetUID(), xLocal, yLocal, zLocal, xGlobal, yGlobal, zGlobal);
119 if (
fCurrentPSA[ipsa]->GetHit(ihit)->GetE() > max_e ) {
121 atracked_hit->
SetXYZ(xGlobal, yGlobal, zGlobal);
135 NarvalInterface::process_config(directory_path,error_code);
137 if ( (*error_code) == 0u ) {
186 UInt_t error_code = 0u;
190 { error_code = 1u;
break; }
193 { error_code = 2u;
break; }
196 if ( error_code == 1u ) {
198 <<
"During processing : SetInput -> Process -> SetOuput() " <<
nline;
200 if ( error_code == 2u ) {
202 <<
"During Record() " <<
nline;
220 fTrigger = AgataFrameTrigger::Build(
"ExTracking",
"event:data event:data:psa",
"data:tracked");
229 Log <<
info <<
"ExTracking has been registered " <<
nline ;
238 if ( gSystem->AccessPathName(
"CrystalPositionLookUpTable") ) {
239 if ( gSystem->AccessPathName(
"CrystalPositionLookUpTable.dat") ) {
240 Log <<
error <<
" CrystalPositionLookUpTable required " <<
nline;
243 Log <<
info <<
" Ge positions extracted from CrystalPositionLookUpTable.dat " <<
nline;
244 fTrans->ReadTransformations(
"CrystalPositionLookUpTable.dat");
250 Log <<
info <<
" Ge positions extracted from CrystalPositionLookUpTable.dat " <<
nline;
251 fTrans->ReadTransformations(
"CrystalPositionLookUpTable");
virtual Bool_t IsValid() const
true if it is a valid pointer
virtual Key * GetKey()=0
To get the Key associated to this frame.
virtual Frame * GetFrame() const
LogMessage & error(LogMessage &)
LogMessage & warning(LogMessage &)
header file for TrackedFrame.cpp
virtual void SetE(Double_t)
The tracking algorithm produces a stack of TrackedHits.
LogMessage & nline(LogMessage &)
virtual SharedFP * GetInputSharedFP(UInt_t which=0u)
to get back the Shared pointer that define this trigger
virtual Bool_t Register(DFTrigger *)
To register a trigger.
LogMessage & info(LogMessage &)
manipulator to modify the LogMessage
Base class for version numbers.
virtual void Detach(FrameBlock *in, FrameBlock *out)
void SetStatus(EStatus stat)
virtual void SetProcessMethod(const char *)
To set the current method.
LogMessage & dolog(LogMessage &)
virtual UInt_t Write()
It writes to the Frame the content of the dedicated structures.
virtual void ClearMessage()
To clear the current message.
It is a hit associated to a list of Hits.
virtual void Reset()=0
Reset the current frame.
Data_T * GetSubDataFrom(UInt_t which_input, UInt_t which_sub, SharedFP *utility, Bool_t do_scan=false)
Same as GetSubFrameFrom but to get directly a data part.
virtual void Print(std::ostream &out=std::cout) const
Print some informations (statistics)
virtual void Attach(FrameBlock *in, FrameBlock *out)
Attach a block to this. Rewind called if DoRewind set to true (Default)
virtual SharedFP * AddUtility(const FactoryItem &key_item, const FactoryItem &frame_item, const ConfAgent *agent)
Add utilities, used to decode/encode composite frames.
virtual UInt_t Scan()
Scan this Frame. If it is a composite frame, it looks for the keys of sub-frames. ...
virtual std::string & GetProcessName()
To get the Process name.
virtual TrackedHit * NewGamma()=0
Add a gamma on the top of the current stack.
LogMessage Log
to send messages to the log server
virtual void SetName(const char *name)
virtual SharedFP * GetOutputSharedFP()
to get back the output frame
It defines the interface needed to be a narval actor (Filter).
virtual void SetXYZ(Double_t, Double_t, Double_t)