| 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 |
|
// ~CaloTrkVar(); ///< Destructor. |
| 58 |
/** |
/** |
| 59 |
* \param trkvar Object of the class CaloTrkVar |
* \param trkvar Object of the class CaloTrkVar |
| 60 |
*/ |
*/ |
| 143 |
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 |
| 144 |
// |
// |
| 145 |
// 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: |
| 146 |
// 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 ) |
| 147 |
// |
// |
| 148 |
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 ) |
| 149 |
// |
// |
| 150 |
// METHODS |
// METHODS |
| 151 |
// |
// |
| 154 |
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. |
| 155 |
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 |
| 156 |
// |
// |
| 157 |
|
TClonesArray *GetTrackArray(){return CaloTrk;}; |
| 158 |
CaloLevel2* GetCaloLevel2(){return this;}; ///< returns pointer to this object |
CaloLevel2* GetCaloLevel2(){return this;}; ///< returns pointer to this object |
| 159 |
// |
// |
| 160 |
|
void GetLevel2Struct(cCaloLevel2 *l2) const; |
| 161 |
|
void Clear(); |
| 162 |
|
// |
| 163 |
// constructor |
// constructor |
| 164 |
// |
// |
| 165 |
CaloLevel2(); |
CaloLevel2(); ///< Constructor. |
| 166 |
|
// ~CaloLevel2(); ///< Destructor. |
| 167 |
// |
// |
| 168 |
friend class CaloProcessing; |
friend class CaloProcessing; |
| 169 |
// |
// |