StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StEmcModule.cxx
1 /***************************************************************************
2  *
3  * $Id: StEmcModule.cxx,v 2.5 2011/09/06 21:33:02 ullrich Exp $
4  *
5  * Author: Akio Ogawa, Jan 2000
6  ***************************************************************************
7  *
8  * Description:
9  *
10  ***************************************************************************
11  *
12  * $Log: StEmcModule.cxx,v $
13  * Revision 2.5 2011/09/06 21:33:02 ullrich
14  * Bug in getEnergy() corrected (Justin Stevens)
15  *
16  * Revision 2.4 2004/07/20 17:07:49 perev
17  * Pavlinov corrs for TBrowser
18  *
19  * Revision 2.3 2001/04/05 04:00:48 ullrich
20  * Replaced all (U)Long_t by (U)Int_t and all redundant ROOT typedefs.
21  *
22  * Revision 2.2 2000/07/28 19:49:27 akio
23  * Change in Detector Id for Endcap SMD
24  *
25  * Revision 2.1 2000/02/23 17:34:10 ullrich
26  * Initial Revision
27  *
28  **************************************************************************/
29 #include "StEmcModule.h"
30 #include "StEmcRawHit.h"
31 #include <TBrowser.h>
32 
33 static const char rcsid[] = "$Id: StEmcModule.cxx,v 2.5 2011/09/06 21:33:02 ullrich Exp $";
34 
35 ClassImp(StEmcModule)
36 
37 StEmcModule::StEmcModule() { /* noop */ }
38 
39 StEmcModule::~StEmcModule() { /* noop */ }
40 
41 unsigned int
42 StEmcModule::numberOfHits() const {return mHits.size();}
43 
44 void
45 StEmcModule::printNumberOfHits() const
46 {
47  if(numberOfHits()==0) printf(" ** no hits ** : module number is unknown **");
48  else printf(" m %i : nhits %i\n", mHits[0]->module(), numberOfHits());
49  return;
50 }
51 
52 double
53 StEmcModule::getEnergy(const int pri) const
54 {
55  float eM=0., e=0.;
56  int det;
57  if(mHits.size()>0) {
58  det = mHits[0]->detector()-kBarrelEmcTowerIdentifier + 1;
59  for(unsigned int i=0; i<mHits.size(); i++) {
60  e = mHits[i]->energy();
61  eM += e;
62  if(pri>1) {
63  int id = mHits[i]->softId(det);
64  printf(" %3i hits : id %i : adc %i : e %9.4f",
65  i+1, id, mHits[i]->adc(), e);
66  if(e<=0) printf(" !!");
67  printf("\n");
68  }
69  }
70  if(pri>0) printf("det %i : m %i : Energy %9.3f GeV/C\n",
71  det, mHits[0]->module(), eM);
72  }
73  return eM;
74 }
75 
76 const StSPtrVecEmcRawHit&
77 StEmcModule::hits() const { return mHits; }
78 
79 StSPtrVecEmcRawHit&
80 StEmcModule::hits() {return mHits; }
81 
82 bool StEmcModule::IsFolder() const
83 {
84  if(mHits.size()>0) return kTRUE;
85  else return kFALSE;
86 }