9 |
#include <TClonesArray.h> |
#include <TClonesArray.h> |
10 |
#include <TArrayF.h> |
#include <TArrayF.h> |
11 |
// |
// |
12 |
|
#include <CaloStruct.h> |
13 |
/** |
/** |
14 |
* \brief Calorimeter track-related variables class |
* \brief Calorimeter track-related variables class |
15 |
* |
* |
23 |
|
|
24 |
public: |
public: |
25 |
// |
// |
26 |
Int_t trkseqno; ///< tracker entry coming from tracker, -1 if selftrigger event, 100 if image track is used, -100 if the track is not consistent with calorimeter one |
Int_t trkseqno; ///< tracker entry coming from tracker, -1 if selftrigger event. |
27 |
// |
// |
28 |
// track related variables |
// track related variables |
29 |
// |
// |
30 |
Int_t ncore; ///< SUM(j=1,2)SUM(i=1,PLmax) Nhit(i,j)*i , where Nhit(i,j) is the number of hits in a cylinder of radius 2 Rm (Moliere radius) around the track in the i-th plane (where the top plane is number 1 and the sum runs up to plane number PLmax, closest to the calculated electromagnetic shower maximum of the j-th view) |
Int_t ncore; ///< SUM(j=1,2)SUM(i=1,PLmax) Nhit(i,j)*i , where Nhit(i,j) is the number of hits in a cylinder of radius 2 Rm (Moliere radius) around the track in the i-th plane (where the top plane is number 1 and the sum runs up to plane number PLmax, closest to the calculated electromagnetic shower maximum of the j-th view) |
31 |
Int_t noint; ///< SUM(j=1,2)SUM(i=1,22) TH(i,j)*i , where TH(i,j) = 1 if the i-th plane of the j-th view has a cluster along (less than 4 mm away) the track with a deposited energy typical of a proton (order of one MIP), otherwise TH(i,j) = 0 |
Int_t noint; ///< SUM(j=1,2)SUM(i=1,22) TH(i,j)*i , where TH(i,j) = 1 if the i-th plane of the j-th view has a cluster along (less than 4 mm away) the track with a deposited energy typical of a proton (order of one MIP), otherwise TH(i,j) = 0 |
32 |
Int_t ncyl; ///< the number of strip hit in a cylinder of radius 8 strips around the shower axis |
Int_t ncyl; ///< the number of strip hit in a cylinder of radius 8 strips around the shower axis |
33 |
Int_t nlast; ///< the same as "ncyl" but only for the last four planes. |
Int_t nlast; ///< the same as "ncyl" but only for the last four planes and radius 4 strips. |
34 |
Int_t npre; ///< the same as "ncyl" but only for the first three planes |
Int_t npre; ///< the same as "ncyl" but only for the first three planes |
35 |
Int_t npresh; ///< the same as "ncyl" but with radius 2 strips and only in the first four planes |
Int_t npresh; ///< the same as "ncyl" but with radius 2 strips and only in the first four planes |
36 |
Int_t ntr; ///< the same as "ncyl" but with radius 4 strips |
Int_t ntr; ///< the same as "ncyl" but with radius 4 strips |
40 |
Float_t tbar[22][2]; ///< position in cm as measured by the tracker |
Float_t tbar[22][2]; ///< position in cm as measured by the tracker |
41 |
Float_t qcore; ///< SUM(j=1,2)SUM(i=1,PLmax) Qhit(i,j)*i , where Qhit(i,j) is the energy released (MIP) in a cylinder of radius 2 Rm (Moliere radius) around the track in the i-th plane (where the top plane is number 1 and the sum runs up to plane number PLmax, closest to the calculated electromagnetic shower maximum of the j-th view). |
Float_t qcore; ///< SUM(j=1,2)SUM(i=1,PLmax) Qhit(i,j)*i , where Qhit(i,j) is the energy released (MIP) in a cylinder of radius 2 Rm (Moliere radius) around the track in the i-th plane (where the top plane is number 1 and the sum runs up to plane number PLmax, closest to the calculated electromagnetic shower maximum of the j-th view). |
42 |
Float_t qcyl; ///< the measured energy deposited in a cylinder of radius 8 strips around the shower axis |
Float_t qcyl; ///< the measured energy deposited in a cylinder of radius 8 strips around the shower axis |
43 |
Float_t qlast; ///< the same as "qcyl" but only for the last four planes. |
Float_t qlast; ///< the same as "qcyl" but only for the last four planes and radius 4 strips. |
44 |
Float_t qpre; ///< the same as "qcyl" but only for the first three planes |
Float_t qpre; ///< the same as "qcyl" but only for the first three planes |
45 |
Float_t qpresh; ///< the same as "qcyl" but with radius 2 strips and only in the first four planes |
Float_t qpresh; ///< the same as "qcyl" but with radius 2 strips and only in the first four planes |
46 |
Float_t qtr; ///< the same as "qcyl" but with radius 4 strips |
Float_t qtr; ///< the same as "qcyl" but with radius 4 strips |
51 |
Float_t dytrack; ///< measured energy outside the clusters along the track in the y-view |
Float_t dytrack; ///< measured energy outside the clusters along the track in the y-view |
52 |
Float_t qmean; ///< the energy truncated mean that is the average energy deposit for the five planes with the smaller energy deposit of the whole calorimeter |
Float_t qmean; ///< the energy truncated mean that is the average energy deposit for the five planes with the smaller energy deposit of the whole calorimeter |
53 |
Float_t qlow; ///< the same as "qstrip" but below the calculated electromagnetic shower maximum |
Float_t qlow; ///< the same as "qstrip" but below the calculated electromagnetic shower maximum |
54 |
Float_t dX0l; ///< traversed X0 lenght |
Float_t dX0l; ///< tranversed X0 lenght |
55 |
// |
// |
56 |
CaloTrkVar(); ///< Constructor. |
CaloTrkVar(); ///< Constructor. |
57 |
/** |
/** |
142 |
Float_t dX0l(Int_t entry) {return (((CaloTrkVar *)CaloTrk->At(entry))->dX0l);}; ///< extract dX0l |
Float_t dX0l(Int_t entry) {return (((CaloTrkVar *)CaloTrk->At(entry))->dX0l);}; ///< extract dX0l |
143 |
// |
// |
144 |
// Number of strip with energy > emip and their value coded with view plane and strip number: |
// Number of strip with energy > emip and their value coded with view plane and strip number: |
145 |
// view x(y) plane PP strip SS with energy mmmm.iip = +(-) ( PP*10^6 + SS*10^4 + mmmm.iip ) |
// view x[y] plane PP strip SS with energy mmmm.iip = +[-] ( PP*10^6 + SS*10^4 + mmmm.iip ) |
146 |
// |
// |
147 |
TArrayF estrip; ///< MIP values for each strip with energy > emin |
TArrayF estrip; ///< MIP values for each strip with energy > emin coded with view plane and strip number; view x[y] plane PP strip SS with energy mmmm.iip = +[-] ( PP*10^6 + SS*10^4 + mmmm.iip ) |
148 |
// |
// |
149 |
// METHODS |
// METHODS |
150 |
// |
// |
153 |
Float_t DecodeEstrip(Int_t entry, Int_t &view, Int_t &plane, Int_t &strip); ///< returns saved MIP value for the entry number "entry" of the TArrayF. |
Float_t DecodeEstrip(Int_t entry, Int_t &view, Int_t &plane, Int_t &strip); ///< returns saved MIP value for the entry number "entry" of the TArrayF. |
154 |
CaloTrkVar *GetCaloTrkVar(Int_t notrack); ///< returns a pointer to the CaloTrkVar class containing track related variables |
CaloTrkVar *GetCaloTrkVar(Int_t notrack); ///< returns a pointer to the CaloTrkVar class containing track related variables |
155 |
// |
// |
156 |
|
TClonesArray *GetTrackArray(){return CaloTrk;}; |
157 |
CaloLevel2* GetCaloLevel2(){return this;}; ///< returns pointer to this object |
CaloLevel2* GetCaloLevel2(){return this;}; ///< returns pointer to this object |
158 |
// |
// |
159 |
|
void GetLevel2Struct(cCaloLevel2 *l2) const; |
160 |
|
void Clear(); |
161 |
|
// |
162 |
// constructor |
// constructor |
163 |
// |
// |
164 |
CaloLevel2(); |
CaloLevel2(); |