StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StEEmcDataDrivenMcReplaceInfo.h
1 //
2 // Ilya Selyuzhenkov <ilya.selyuzhenkov@gmail.com>
3 // Indiana University Cyclotron Facility
4 //
5 // Pibero Djawotho <pibero@indiana.edu>
6 // Indiana University Cyclotron Facility
7 //
8 
9 #ifndef __StEEmcDataDrivenMcReplaceInfo_h__
10 #define __StEEmcDataDrivenMcReplaceInfo_h__
11 
12 #include "TClonesArray.h"
13 #include "TVector3.h"
14 
15 #include "StMcCalorimeterHit.hh"
16 
17 class StEEmcDataDrivenMcReplaceInfo : public TObject {
18 public:
19  enum { numEemcTowerLayers = 6 }; // 0 tower, 1 pre-shower1, 2 pre-shower2, 3 post-shower , 4 smdU, 5 smdV
20 
22  virtual ~StEEmcDataDrivenMcReplaceInfo() {}
23 
24  void Clear(Option_t* options = "");
25 
26  int pid; // particle's Geant Id
27  int parentPid;// particle's parent Geant Id
28  int firstHadronPid;// particle's first hadron Geant Id [hadron which has gluon or quark parents]
29  int libraryShapeId; // library shape id (currently entry number from library tree)
30  TVector3 momentum; // particle 3-momentum MC
31  float energy; // particle energy from MC
32  float energyScaleU; // (dE/totalE)*totalEscaled / EnergyLibrary
33  float energyScaleV; // (dE/totalE)*totalEscaled / EnergyLibrary
34  int highStripShiftU; // shift for high u-strip from extrapolated photon position
35  int highStripShiftV; //shift for high v-strip from extrapolated photon position
36  int libraryBinId; // Data-driven librry bin id: nPre12bins = 4; nEbins=2; binId = pre12bin+eBins*nPre12bins
37 
38  int nTowerFired[numEemcTowerLayers]; // number of towers fired by the particle (cluster size)
39  float dEnergy[numEemcTowerLayers]; // energy in tower cluster from Geant record
40  float totalEnergy[numEemcTowerLayers]; // total energy in tower cluster from all particles from Geant record
41  float totalEnergyScaled[numEemcTowerLayers]; // sampled energy in tower cluster from MuDst from all particles
42 
43  StMcCalorimeterHit* newMcHitEsmdU();
44  StMcCalorimeterHit* addMcHitEsmdU(StMcCalorimeterHit *hit);
45  StMcCalorimeterHit* getMcHitEsmdU(int i) { return (StMcCalorimeterHit*)mMcHitsEsmdU->At(i); }
46  int getNumberOfMcHitsEsmdU() { return mMcHitsEsmdU->GetEntriesFast(); }
47 
48  StMcCalorimeterHit* newMcHitEsmdV();
49  StMcCalorimeterHit* getMcHitEsmdV(int i) { return (StMcCalorimeterHit*)mMcHitsEsmdV->At(i); }
50  StMcCalorimeterHit* addMcHitEsmdV(StMcCalorimeterHit *hit);
51  int getNumberOfMcHitsEsmdV() { return mMcHitsEsmdV->GetEntriesFast(); }
52 
53 private:
54  void InitArrays();
55 
56  TClonesArray* mMcHitsEsmdU;
57  TClonesArray* mMcHitsEsmdV;
58 
60 };
61 
62 #endif