FairRoot/PandaRoot
Public Member Functions | Protected Member Functions | Private Member Functions | List of all members
PndEmcClusterEnergySums Class Reference

#include <PndEmcClusterEnergySums.h>

Inheritance diagram for PndEmcClusterEnergySums:
PndEmcAbsClusterProperty

Public Member Functions

 PndEmcClusterEnergySums (const PndEmcCluster &cluster, const TClonesArray *digiArray)
 
 PndEmcClusterEnergySums (const PndEmcClusterEnergySums &)
 
virtual ~PndEmcClusterEnergySums ()
 
virtual Double_t energy (Int_t numberOfDigis) const
 
virtual Double_t energy (Double_t distance) const
 
virtual Double_t E1 () const
 
virtual Double_t E9 () const
 
virtual Double_t E25 () const
 
virtual Double_t E1E9 () const
 
virtual Double_t E9E25 () const
 
virtual void Print (const Option_t *opt="") const
 

Protected Member Functions

const PndEmcClusterMyCluster () const
 
const std::map< Int_t, Int_t > & Members () const
 
const TClonesArray * DigiArray () const
 

Private Member Functions

 PndEmcClusterEnergySums ()
 
PndEmcClusterEnergySumsoperator= (const PndEmcClusterEnergySums &)
 

Detailed Description

Definition at line 34 of file PndEmcClusterEnergySums.h.

Constructor & Destructor Documentation

PndEmcClusterEnergySums::PndEmcClusterEnergySums ( const PndEmcCluster cluster,
const TClonesArray *  digiArray 
)

Definition at line 31 of file PndEmcClusterEnergySums.cxx.

31  :
32  PndEmcAbsClusterProperty( toUse, digiArray )
33 {
34 }
PndEmcAbsClusterProperty(const PndEmcCluster &cluster, const TClonesArray *digiArray)
PndEmcClusterEnergySums::PndEmcClusterEnergySums ( const PndEmcClusterEnergySums other)

Definition at line 36 of file PndEmcClusterEnergySums.cxx.

36  :
37  PndEmcAbsClusterProperty( other )
38 {}
PndEmcAbsClusterProperty(const PndEmcCluster &cluster, const TClonesArray *digiArray)
PndEmcClusterEnergySums::~PndEmcClusterEnergySums ( )
virtual

Definition at line 44 of file PndEmcClusterEnergySums.cxx.

45 {}
PndEmcClusterEnergySums::PndEmcClusterEnergySums ( )
private

Member Function Documentation

const TClonesArray * PndEmcAbsClusterProperty::DigiArray ( ) const
protectedinherited
Double_t PndEmcClusterEnergySums::E1 ( ) const
virtual

Definition at line 87 of file PndEmcClusterEnergySums.cxx.

References PndEmcAbsClusterProperty::DigiArray(), PndEmcDigi::GetEnergy(), PndEmcCluster::Maxima(), and PndEmcAbsClusterProperty::MyCluster().

Referenced by PndPidCorrelator::ConstructNeutralCandidate(), E1E9(), for(), PndPidCorrelator::GetEmcInfo(), PndPidCorrelator::GetFscInfo(), Print(), and QAmacro_emc_3().

88 {
89  const PndEmcDigi* current = MyCluster().Maxima(DigiArray());
90  return( current->GetEnergy() );
91 }
virtual Double_t GetEnergy() const
Definition: PndEmcDigi.cxx:296
represents the reconstructed hit of one emc crystal
Definition: PndEmcDigi.h:40
const PndEmcCluster & MyCluster() const
virtual const PndEmcDigi * Maxima(const TClonesArray *digiArray) const
const TClonesArray * DigiArray() const
Double_t PndEmcClusterEnergySums::E1E9 ( ) const
virtual

Definition at line 148 of file PndEmcClusterEnergySums.cxx.

References Double_t, E1(), and E9().

Referenced by for(), Print(), and QAmacro_emc_3().

149 {
150  Double_t e9 = E9();
151  //Double_t e1e9 = ( e9 != 0. )? e1e9 = E1()/e9 : -1.;
152  /*
153  Double_t e1e9 = -1;
154  if( e9 != 0.0){
155  e1e9 = E1()/e9;
156  }
157  return( e1e9 );
158  */
159  return ( e9 != 0. )? E1()/e9 : -1.;
160 }
virtual Double_t E1() const
Double_t
virtual Double_t E9() const
Double_t PndEmcClusterEnergySums::E25 ( ) const
virtual

Definition at line 115 of file PndEmcClusterEnergySums.cxx.

References PndEmcAbsClusterProperty::DigiArray(), PndEmcCluster::DigiList(), Double_t, E9(), PndEmcDigi::GetEnergy(), PndEmcDigi::isNeighbour(), PndEmcCluster::Maxima(), and PndEmcAbsClusterProperty::MyCluster().

Referenced by PndPidCorrelator::ConstructNeutralCandidate(), E9E25(), PndPidCorrelator::GetEmcInfo(), PndPidCorrelator::GetFscInfo(), and Print().

116 {
117  const PndEmcDigi* maxDigi = MyCluster().Maxima(DigiArray());
118  Double_t sum = E9();
119  std::vector<Int_t> tmpDigiList;
120 
121  std::vector<Int_t>::const_iterator current_i, current_j;
122  std::vector<Int_t> digiList = MyCluster().DigiList();
123 
124  for (current_i=digiList.begin();current_i!=digiList.end();++current_i)
125  {
126  PndEmcDigi *digi_i = (PndEmcDigi *) DigiArray()->At(*current_i);
127  if (digi_i == maxDigi) continue;
128  if (digi_i->isNeighbour(maxDigi))
129  {
130  for (current_j=digiList.begin();current_j!=digiList.end();++current_j){
131  PndEmcDigi *digi_j = (PndEmcDigi *) DigiArray()->At(*current_j);
132  if ( (digi_j == maxDigi) || (digi_j->isNeighbour(maxDigi) ) ) continue;
133  if ( digi_j->isNeighbour(digi_i) ) {
134  std::vector<Int_t>::iterator iter;
135  iter = std::find(tmpDigiList.begin(), tmpDigiList.end(), *current_j);
136  if (iter == tmpDigiList.end()) {
137  sum += digi_j->GetEnergy();
138  tmpDigiList.push_back(*current_j);
139  }
140  }
141  }
142  }
143  }
144 
145  return sum;
146 }
virtual Double_t GetEnergy() const
Definition: PndEmcDigi.cxx:296
represents the reconstructed hit of one emc crystal
Definition: PndEmcDigi.h:40
const std::vector< Int_t > & DigiList() const
Definition: PndEmcCluster.h:40
const PndEmcCluster & MyCluster() const
virtual const PndEmcDigi * Maxima(const TClonesArray *digiArray) const
Double_t
const TClonesArray * DigiArray() const
virtual Double_t E9() const
bool isNeighbour(const PndEmcDigi *theDigi) const
Definition: PndEmcDigi.cxx:201
Double_t PndEmcClusterEnergySums::E9 ( ) const
virtual

Definition at line 94 of file PndEmcClusterEnergySums.cxx.

References digi, PndEmcAbsClusterProperty::DigiArray(), PndEmcCluster::DigiList(), Double_t, PndEmcDigi::GetEnergy(), PndEmcDigi::isNeighbour(), PndEmcCluster::Maxima(), and PndEmcAbsClusterProperty::MyCluster().

Referenced by PndPidCorrelator::ConstructNeutralCandidate(), E1E9(), E25(), E9E25(), PndPidCorrelator::GetEmcInfo(), PndPidCorrelator::GetFscInfo(), and Print().

95 {
96  PndEmcDigi* maxDigi = const_cast<PndEmcDigi*> (MyCluster().Maxima(DigiArray()));
97 
98  Double_t sum = maxDigi->GetEnergy();
99 
100  std::vector<Int_t>::const_iterator digi_iter;
101  std::vector<Int_t> digiList = MyCluster().DigiList();
102  for (digi_iter=digiList.begin();digi_iter!=digiList.end();++digi_iter)
103  {
104  PndEmcDigi *digi = (PndEmcDigi *) DigiArray()->At(*digi_iter);
105  if (digi==maxDigi) continue;
106  if ( digi->isNeighbour(maxDigi))
107  {
108  sum += digi->GetEnergy();
109  }
110  }
111  return sum;
112 }
TClonesArray * digi
virtual Double_t GetEnergy() const
Definition: PndEmcDigi.cxx:296
represents the reconstructed hit of one emc crystal
Definition: PndEmcDigi.h:40
const std::vector< Int_t > & DigiList() const
Definition: PndEmcCluster.h:40
const PndEmcCluster & MyCluster() const
virtual const PndEmcDigi * Maxima(const TClonesArray *digiArray) const
Double_t
const TClonesArray * DigiArray() const
bool isNeighbour(const PndEmcDigi *theDigi) const
Definition: PndEmcDigi.cxx:201
Double_t PndEmcClusterEnergySums::E9E25 ( ) const
virtual

Definition at line 162 of file PndEmcClusterEnergySums.cxx.

References Double_t, E25(), and E9().

Referenced by for(), Print(), and QAmacro_emc_3().

163 {
164  Double_t e25 = E25();
165  //Double_t e9e25 = ( e25 != 0. )? e9e25 = E9()/e25 : -1.;
166  /*
167  Double_t e9e25 = -1;
168  if( e25 != 0.0){
169  e9e25 = E9()/e25;
170  }
171  return( e9e25 );
172  */
173  return ( e25 != 0. )? E9()/e25 : -1.;
174 }
Double_t
virtual Double_t E25() const
virtual Double_t E9() const
Double_t PndEmcClusterEnergySums::energy ( Int_t  numberOfDigis) const
virtual

Definition at line 52 of file PndEmcClusterEnergySums.cxx.

References digi, PndEmcAbsClusterProperty::DigiArray(), PndEmcCluster::DigiList(), Double_t, PndEmcDigi::GetEnergy(), i, PndEmcAbsClusterProperty::MyCluster(), and n.

53 {
54  Double_t sum = 0;
55 
56  // If asked for too many digis summed return the whole energy
57  if ( n > MyCluster().NumberOfDigis() ) return ( MyCluster().energy() );
58 
59  std::vector<Int_t>::const_iterator digi_iter;
60  std::vector<Int_t> digiList = MyCluster().DigiList();
61  for (Int_t i=0; i<n; n++)
62  {
63  PndEmcDigi *digi = (PndEmcDigi *) DigiArray()->At(digiList[i]);
64  sum += digi->GetEnergy();
65  }
66 
67  return( sum );
68 }
TClonesArray * digi
virtual Double_t GetEnergy() const
Definition: PndEmcDigi.cxx:296
represents the reconstructed hit of one emc crystal
Definition: PndEmcDigi.h:40
Int_t i
Definition: run_full.C:25
int n
const std::vector< Int_t > & DigiList() const
Definition: PndEmcCluster.h:40
const PndEmcCluster & MyCluster() const
Double_t
const TClonesArray * DigiArray() const
virtual Double_t energy(Int_t numberOfDigis) const
Double_t PndEmcClusterEnergySums::energy ( Double_t  distance) const
virtual

Definition at line 71 of file PndEmcClusterEnergySums.cxx.

References digi, PndEmcAbsClusterProperty::DigiArray(), PndEmcCluster::DigiList(), Double_t, PndEmcDigi::GetEnergy(), and PndEmcAbsClusterProperty::MyCluster().

72 {
73  Double_t sum = 0;
74  std::vector<Int_t>::const_iterator digi_iter;
75  std::vector<Int_t> digiList = MyCluster().DigiList();
76  for (digi_iter=digiList.begin();digi_iter!=digiList.end();++digi_iter)
77  {
78  PndEmcDigi *digi = (PndEmcDigi *) DigiArray()->At(*digi_iter);
79  if ( MyCluster().DistanceToCentre( digi) < distance )
80  sum += digi->GetEnergy();
81  }
82 
83  return( sum );
84 }
TClonesArray * digi
virtual Double_t GetEnergy() const
Definition: PndEmcDigi.cxx:296
represents the reconstructed hit of one emc crystal
Definition: PndEmcDigi.h:40
const std::vector< Int_t > & DigiList() const
Definition: PndEmcCluster.h:40
const PndEmcCluster & MyCluster() const
Double_t
const TClonesArray * DigiArray() const
const std::map< Int_t, Int_t > & PndEmcAbsClusterProperty::Members ( ) const
protectedinherited
const PndEmcCluster & PndEmcAbsClusterProperty::MyCluster ( ) const
protectedinherited
PndEmcClusterEnergySums& PndEmcClusterEnergySums::operator= ( const PndEmcClusterEnergySums )
private
void PndEmcClusterEnergySums::Print ( const Option_t *  opt = "") const
virtual

Definition at line 177 of file PndEmcClusterEnergySums.cxx.

References E1(), E1E9(), E25(), E9(), and E9E25().

178 {
179  std::cout << " E1=" << E1() << ", E9=" << E9() << ", E25=" << E25();
180  std::cout << ", E1/E9=" << E1E9() << ", E9/E25=" << E9E25();
181  std::cout << endl;
182 }
virtual Double_t E1() const
virtual Double_t E1E9() const
virtual Double_t E25() const
virtual Double_t E9() const
virtual Double_t E9E25() const

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