SND@LHC Software
Loading...
Searching...
No Matches
ecalMaximumLocator Class Reference

#include <ecalMaximumLocator.h>

Inheritance diagram for ecalMaximumLocator:
Collaboration diagram for ecalMaximumLocator:

Public Member Functions

 ecalMaximumLocator ()
 
 ecalMaximumLocator (const char *name, Int_t verbose)
 
virtual void Exec (const Option_t *option)
 
virtual InitStatus Init ()
 
TClonesArray * InitPython (ecalStructure *structure)
 
virtual void Finish ()
 
 ~ecalMaximumLocator ()
 
Double_t ECut () const
 
void SetECut (Double_t ecut=0.005)
 

Private Member Functions

 ecalMaximumLocator (const ecalMaximumLocator &)
 
ecalMaximumLocatoroperator= (const ecalMaximumLocator &)
 
 ClassDef (ecalMaximumLocator, 1)
 

Private Attributes

TClonesArray * fMaximums
 
ecalStructurefStr
 
Double_t fECut
 
Int_t fEvent
 

Detailed Description

Definition at line 10 of file ecalMaximumLocator.h.

Constructor & Destructor Documentation

◆ ecalMaximumLocator() [1/3]

ecalMaximumLocator::ecalMaximumLocator ( )

An empty constructor

Definition at line 17 of file ecalMaximumLocator.cxx.

18 : FairTask(),
19 fMaximums(NULL),
20 fStr(NULL),
21 fECut(0.015),
22 fEvent(-1)
23{
24}
TClonesArray * fMaximums

◆ ecalMaximumLocator() [2/3]

ecalMaximumLocator::ecalMaximumLocator ( const char *  name,
Int_t  verbose 
)

Definition at line 26 of file ecalMaximumLocator.cxx.

27 : FairTask(name, verbose),
28 fMaximums(NULL),
29 fStr(NULL),
30 fECut(0.015),
31 fEvent(-1)
32{
33}

◆ ~ecalMaximumLocator()

ecalMaximumLocator::~ecalMaximumLocator ( )

Definition at line 35 of file ecalMaximumLocator.cxx.

36{
37 if (fMaximums)
38 delete fMaximums;
39}

◆ ecalMaximumLocator() [3/3]

ecalMaximumLocator::ecalMaximumLocator ( const ecalMaximumLocator )
private

Member Function Documentation

◆ ClassDef()

ecalMaximumLocator::ClassDef ( ecalMaximumLocator  ,
 
)
private

◆ ECut()

Double_t ecalMaximumLocator::ECut ( ) const
inline

Definition at line 22 of file ecalMaximumLocator.h.

22{return fECut;}

◆ Exec()

void ecalMaximumLocator::Exec ( const Option_t *  option)
virtual

Definition at line 73 of file ecalMaximumLocator.cxx.

74{
75 list<ecalCell*> all;
76 list<ecalCell*> cells;
77 list<ecalCell*>::const_iterator p;
78 list<ecalCell*>::const_iterator r;
79 Double_t e;
80 Double_t z=fStr->GetEcalInf()->GetZPos();
81 Double_t r1;
82 Double_t r2;
83 Double_t t;
84 Int_t n=0;
85
86 fEvent++;
87 fMaximums->Clear();
88 fStr->GetCells(all);
89 for(p=all.begin();p!=all.end();++p)
90 {
91 e=(*p)->GetEnergy();
92 r1=(*p)->GetCenterX(); r1*=r1;
93 t=(*p)->GetCenterY(); t*=t;
94 r1=TMath::Sqrt(r1*r1+t*t);
95 if (e<fECut)
96 continue;
97 (*p)->GetNeighborsList(cells);
98 for(r=cells.begin();r!=cells.end();++r)
99 {
100 if ((*r)->GetEnergy()<e) continue;
101 if ((*r)->GetEnergy()==e)
102 {
103 r2=(*r)->GetCenterX(); r2*=r2;
104 t=(*r)->GetCenterY(); t*=t;
105 r2=TMath::Sqrt(r2*r2+t*t);
106 if (r1>=r2) continue;
107 }
108 break;
109 }
110 if (r!=cells.end())
111 continue;
112// cout << e << " : " << (*p)->GetCenterX() << ", " << (*p)->GetCenterY() << endl;
113 new ((*fMaximums)[n++]) ecalMaximum(*p, z);
114 }
115 if (fVerbose>9)
116 Info("Exec", "%d maximums found", n);
117}
Double_t GetZPos() const
Definition ecalInf.h:34
void GetCells(std::list< ecalCell * > &cells) const
ecalInf * GetEcalInf() const

◆ Finish()

void ecalMaximumLocator::Finish ( )
virtual

Definition at line 68 of file ecalMaximumLocator.cxx.

69{
70 fMaximums->Clear();
71}

◆ Init()

InitStatus ecalMaximumLocator::Init ( )
virtual

Definition at line 41 of file ecalMaximumLocator.cxx.

42{
43 FairRootManager* fManager=FairRootManager::Instance();
44 if (!fManager)
45 {
46 Fatal("Init", "Can't find a Root Manager.");
47 return kFATAL;
48 }
49 fStr=(ecalStructure*)fManager->GetObject("EcalStructure");
50 if (!fStr)
51 {
52 Fatal("Init()", "Can't find calorimeter structure in the system.");
53 return kFATAL;
54 }
55 fMaximums=new TClonesArray("ecalMaximum", 3000);
56 fManager->Register("EcalMaximums", "ECAL", fMaximums, kFALSE);
57 fEvent=0;
58 return kSUCCESS;
59}

◆ InitPython()

TClonesArray * ecalMaximumLocator::InitPython ( ecalStructure structure)

Definition at line 61 of file ecalMaximumLocator.cxx.

62{
63 fStr=structure;
64 fMaximums=new TClonesArray("ecalMaximum", 3000);
65 return fMaximums;
66}

◆ operator=()

ecalMaximumLocator & ecalMaximumLocator::operator= ( const ecalMaximumLocator )
private

◆ SetECut()

void ecalMaximumLocator::SetECut ( Double_t  ecut = 0.005)
inline

Member Data Documentation

◆ fECut

Double_t ecalMaximumLocator::fECut
private

energy cut on energy of maximum

Definition at line 30 of file ecalMaximumLocator.h.

◆ fEvent

Int_t ecalMaximumLocator::fEvent
private

Current event

Definition at line 32 of file ecalMaximumLocator.h.

◆ fMaximums

TClonesArray* ecalMaximumLocator::fMaximums
private

Array of found maximums

Definition at line 26 of file ecalMaximumLocator.h.

◆ fStr

ecalStructure* ecalMaximumLocator::fStr
private

A calorimeter structure

Definition at line 28 of file ecalMaximumLocator.h.


The documentation for this class was generated from the following files: