FEDRA emulsion software from the OPERA Collaboration
|
#include <EdbShowerRec.h>
Public Member Functions | |
int | AddInitiatorBT (EdbSegP *seg) |
void | CalcTrackDensity (EdbPattern *pat_interim, Int_t pat_interim_halfsize, Int_t &npat_int, Int_t &npat_total, Int_t &npatN) |
void | CalculateEnergyValues () |
void | CheckEdbPVRecSetUseAliSub () |
void | ClearInBTArray () |
void | ClearRecoShowerArray () |
Double_t | DeltaR_WithoutPropagation (EdbSegP *s, EdbSegP *stest) |
Double_t | DeltaR_WithPropagation (EdbSegP *s, EdbSegP *stest) |
Double_t | DeltaThetaComponentwise (EdbSegP *s1, EdbSegP *s2) |
EdbShowerRec () | |
EdbShowerRec (EdbPVRec *pvr) | |
EdbShowerRec (EdbPVRec *pvr, Int_t OptionType) | |
EdbShowerRec (TObjArray *InBTArray, int num, int MAXPLATE, int DATA, int piece2, int piece2par, int DOWN, EdbPVRec *pvr) | |
Float_t | Energy_CalcSigma (Float_t Energy, Int_t NPlatesNr) |
Float_t | Energy_CorrectEnergy (Float_t MeasuredEnergy, Int_t NPlatesNr) |
void | Energy_CreateANNTree () |
void | Energy_CreateEnergyResolutionFitFunction () |
void | Energy_ExtractShowerParametrisationProfile () |
void | Execute () |
void | Fill_eInBTArray_ByLinkTracks_eFilename_LinkedTracks () |
Bool_t | FindPrecedingBTs (EdbSegP *s, EdbSegP *InBT, EdbPVRec *gAli, EdbTrackP *shower) |
Double_t | GetAlgoParameter (Int_t paranr) |
Bool_t | GetAliLoaded () const |
Float_t | GetChi20 () const |
Float_t | GetChi2b (int i) const |
Float_t | GetDeltarb (int i) const |
Float_t | GetDeltathetab (int i) const |
Float_t | GetDz () const |
EdbPVRec * | GetEdbPVRec () const |
Int_t | GetEdbPVRecNpat () const |
Int_t | GetEdbPVRecNplateNumber () const |
Float_t | GetEdbPVRecNSeg (EdbPVRec *ali, Int_t mode) |
EdbPVRec * | GetEdbPVRecSub () const |
Float_t | GetEnergy () const |
Float_t | GetEnergySigma () const |
Float_t | GetEnergyUn () const |
Float_t | GetEnergyUnSigma () const |
Float_t * | GetEnergyValues (Int_t TreeEntry) |
Int_t | GetFlag0 () const |
Int_t | GetFlagb (int i) const |
TH1D * | GetHistdeltaR_mean () |
TH1D * | GetHistdeltaR_rms () |
TH1D * | GetHistdeltaT_mean () |
TH1D * | GetHistdeltaT_rms () |
TH1F * | GetHistEnergyCorrectedb () |
TH1F * | GetHistEnergyNominal () |
TH1F * | GetHistEnergySigmaCorrectedb () |
TH1F * | GetHistEnergySigmaUnCorrectedb () |
TH1F * | GetHistEnergyUnCorrectedb () |
TH1D * | GetHistLongProfile () |
TH1D * | GetHistNBaseTracks () |
Int_t | GetID () const |
Int_t | GetIDb (int i) const |
EdbSegP * | GetInBT (Int_t i) const |
TObjArray * | GetInBTArray () const |
Int_t | GetInBTArrayN () const |
Int_t | GetL () const |
Float_t | GetmcDigitIndexBottom (int i) const |
Float_t | GetmcDigitIndexTop (int i) const |
Int_t | GetN () const |
Int_t | GetNFilmb (int i) const |
Float_t | GetOutput () const |
Float_t | GetOutput15 () const |
Float_t | GetOutput20 () const |
Float_t | GetOutput30 () const |
Float_t | GetP0 () const |
Float_t | GetPb (int i) const |
Int_t | GetPlateb (int i) const |
TObjArray * | GetRecoShowerArray () const |
Int_t | GetRecoShowerArrayN () const |
Float_t * | GetShowerValues (Int_t TreeEntry) |
Int_t | GetSize () const |
Int_t | GetSize15 () const |
Int_t | GetSize20 () const |
Int_t | GetSize30 () const |
Int_t | GetTagPrimaryb (int i) const |
Int_t | GetTreeBranchEntryNr (EdbSegP *seg) |
Int_t | GetTrID () const |
Float_t | GetTx () const |
Float_t | GetTXb (int i) const |
Float_t | GetTy () const |
Float_t | GetTYb (int i) const |
Bool_t | GetUseAliSub () |
Int_t | GetW0 () const |
Int_t | GetWb (int i) const |
Float_t | GetX0 () const |
Float_t | GetXb (int i) const |
Float_t | GetY0 () const |
Float_t | GetYb (int i) const |
Float_t | GetZ0 () const |
Float_t | GetZb (int i) const |
void | Help () |
void | Init () |
void | InitPiece (EdbDataPiece &piece, const char *cpfile, const char *parfile) |
void | initproc (const char *def, int iopt, const char *rcut) |
Double_t | InvariantMass (EdbSegP *s1, EdbSegP *s2, Double_t Momentum1=-1, Double_t Momentum2=-1, Double_t ID1=22, Double_t ID2=22) |
Bool_t | IsInConeTube (EdbSegP *TestingSegment, EdbSegP *StartingSegment, Double_t CylinderRadius, Double_t ConeAngle) |
void | LoadEdbPVRec () |
void | LoadShowerFile (TString ShowerFileName) |
void | NeuralNet () |
void | Print () |
void | PrintEdbPVRec () const |
void | PrintInitiatorBTs () |
void | PrintParameters () |
void | PrintRecoShowerArray () |
void | ReadAffAndZ (char *fname, Float_t *pZoffs, Float_t *a11, Float_t *a12, Float_t *a21, Float_t *a22, Float_t *b1, Float_t *b2) |
int | ReadPiece (EdbDataPiece &piece, EdbPattern &pat) |
void | rec (int num, int MAXPLATE, int DATA, int Ncand, double *x0, double *y0, double *z0, double *tx0, double *ty0, double *chi20, int *W0, double *P0, int *Flag0, int *plate0, int *id0, int *TRid, double *Esim, int piece2, int piece2par, int DOWN, EdbPVRec *pvr) |
void | rec (int num, int MAXPLATE, int DATA, int Ncand, double *x0, double *y0, double *z0, double *tx0, double *ty0, int *plate0, int *id0, int *TRid, double *Esim, int *mcDigitIndexTop, int *mcDigitIndexBottom, int piece2, int piece2par, int DOWN, EdbPVRec *pvr) |
OLD — not used anymore.... More... | |
void | rec (TObjArray *sarr, EdbPVRec *pvr) |
void | recdown (int num, int MAXPLATE, int DATA, int Ncand, double *x0, double *y0, double *z0, double *tx0, double *ty0, double *chi20, int *W0, double *P0, int *Flag0, int *plate0, int *id0, int *TRid, double *Esim, int *mcDigitIndexTop0, int *mcDigitIndexBottom0, int piece2, int piece2par, EdbPVRec *pvr) |
void | recup (int num, int MAXPLATE, int DATA, int Ncand, double *x0, double *y0, double *z0, double *tx0, double *ty0, double *chi20, int *W0, double *P0, int *Flag0, int *plate0, int *id0, int *TRid, double *Esim, int *mcDigitIndexTop0, int *mcDigitIndexBottom0, int piece2, int piece2par, EdbPVRec *pvr) |
void | remove (char *shfname, char *def, int MAXPLATE, int piece2par) |
void | ResetAlgoParameters () |
void | ResetInBTArray () |
void | ResetRecoShowerArray () |
int | SaveLNK () |
void | SaveResults () |
void | Set0 () |
void | SetAlgoParameter (Double_t paravalue, Int_t paranr) |
void | SetChi20 (float chi2) |
void | SetChi2b (float chi2b, int i) |
void | SetDeltarb (float deltarb, int i) |
void | SetDelthetab (float deltathetab, int i) |
void | SetDoEnergyCalculation (Bool_t DoEnergyCalculation) |
void | SetDz (float dz) |
void | SetEdbPVRec (EdbPVRec *Ali) |
void | SetFlag0 (int flag) |
void | SetFlagb (int flag, int i) |
void | SetID (int id) |
void | SetIDb (int idb2, int i) |
void | SetInBTArray (EdbPVRec *Ali, Int_t mode=0) |
void | SetInBTArray (EdbSegP *InBT) |
void | SetInBTArray (TObjArray *InBTArray) |
void | SetInBTArrayN (Int_t InBTArrayN) |
void | SetL (int L) |
void | SetmcDigitIndexBottom (int mcDb, int i) |
void | SetmcDigitIndexBottom0 (int mcDb) |
void | SetmcDigitIndexTop (int mcDt, int i) |
void | SetmcDigitIndexTop0 (int mcDt) |
void | SetNFilmb (int nfilmb, int i) |
void | SetOutput (float output) |
void | SetOutput15 (float output) |
void | SetOutput20 (float output) |
void | SetOutput30 (float output) |
void | SetP0 (float p) |
void | SetPb (float p, int i) |
void | SetPlateb (int plate2, int i) |
void | SetPrimary (int tagprimary, int i) |
void | SetQualityCutValues (Double_t p0, Double_t p1) |
void | SetRecoShowerArray (TObjArray *RecoShowerArray) |
void | SetRecoShowerArrayN (Int_t RecoShowerArrayN) |
void | SetSize (int size) |
void | SetSize15 (int size) |
void | SetSize20 (int size) |
void | SetSize30 (int size) |
void | SetTrID (int id) |
void | SetTx (float tx) |
void | SetTXb (float txb, int i) |
void | SetTy (float ty) |
void | SetTYb (float tyb, int i) |
void | SetUseAliSub (Bool_t UseAliSub) |
void | SetW0 (int w) |
void | SetWb (int w, int i) |
void | SetX0 (float x) |
void | SetXb (float xb, int i) |
void | SetY0 (float y) |
void | SetYb (float yb, int i) |
void | SetZ0 (float z) |
void | SetZb (float zb, int i) |
TObjArray * | ShowerToEdbSegPArray () |
void | TransferShowerObjectArrayIntoEntryOfTreebranchShowerTree (TObjArray *segarray) |
void | TransferTreebranchShowerTreeIntoShowerObjectArray (TTree *treebranch) |
void | Transform_eAli (EdbSegP *InitiatorBT, Float_t ExtractSize) |
void | vert (const char *name2, const char *def, int MAXPLATE, int piece2par) |
virtual | ~EdbShowerRec () |
Public Attributes | |
EdbDataProc * | a |
Double_t | bin1 |
Double_t | bin10 |
Double_t | bin11 |
Double_t | bin12 |
Double_t | bin13 |
Double_t | bin14 |
Double_t | bin15 |
Double_t | bin16 |
Double_t | bin17 |
Double_t | bin18 |
Double_t | bin19 |
Double_t | bin2 |
Double_t | bin20 |
Double_t | bin21 |
Double_t | bin22 |
Double_t | bin23 |
Double_t | bin24 |
Double_t | bin25 |
Double_t | bin26 |
Double_t | bin27 |
Double_t | bin28 |
Double_t | bin29 |
Double_t | bin3 |
Double_t | bin30 |
Double_t | bin31 |
Double_t | bin32 |
Double_t | bin33 |
Double_t | bin34 |
Double_t | bin35 |
Double_t | bin4 |
Double_t | bin41 |
Double_t | bin42 |
Double_t | bin43 |
Double_t | bin44 |
Double_t | bin45 |
Double_t | bin46 |
Double_t | bin47 |
Double_t | bin48 |
Double_t | bin49 |
Double_t | bin5 |
Double_t | bin50 |
Double_t | bin51 |
Double_t | bin52 |
Double_t | bin53 |
Double_t | bin54 |
Double_t | bin55 |
Double_t | bin56 |
Double_t | bin57 |
Double_t | bin58 |
Double_t | bin59 |
Double_t | bin6 |
Double_t | bin60 |
Double_t | bin7 |
Double_t | bin8 |
Double_t | bin9 |
Float_t | chi2btkb [10000] |
char | cmd [500] |
Float_t | deltarb [10000] |
Float_t | deltathetab [10000] |
Float_t | deltaxb [10000] |
Float_t | deltayb [10000] |
EdbDataProc * | dproc |
Float_t | E_MC |
energy of the first starting basetrack More... | |
Float_t | EnergyCorrectedb |
Float_t | EnergySigmaCorrectedb |
Float_t | EnergySigmaUnCorrectedb |
Float_t | EnergyUnCorrectedb |
Int_t | eProb1 |
Int_t | eProb90 |
TFile * | file |
TFile * | fileout |
TFile * | fileout2 |
TFile * | fileout3 |
TFile * | FileReconstructedShowerTree |
TFile * | FileShowerParametrisationTree |
EdbPVRec * | gAli |
TH1D * | histo_deltaR_mean |
TH1D * | histo_deltaR_rms |
TH1D * | histo_deltaT_mean |
TH1D * | histo_deltaT_rms |
TH1D * | histo_longprofile_av |
TH1D * | histo_nbtk_av |
Int_t | idb [10000] |
??? forgot what it was ??? More... | |
Int_t | isizeb |
??? forgot what it was ??? More... | |
Int_t | mcDigitIndexBottom [1000] |
Int_t | mcDigitIndexTop [1000] |
TMultiLayerPerceptron * | mlp1 |
TMultiLayerPerceptron * | mlp2 |
TMultiLayerPerceptron * | mlp3 |
TMultiLayerPerceptron * | mlp4 |
Int_t | nfilmb [10000] |
plate position of segment i w.r.t. starting segment. More... | |
Int_t | ngrainb [10000] |
Int_t | ntrace1simub [10000] |
Int_t | ntrace2simub [10000] |
Float_t | ntrace3simub [10000] |
Int_t | ntrace4simub [10000] |
Int_t | number_eventb |
definition of treebranch More... | |
Float_t | output15 |
old neural net variables for e/pi separation More... | |
Float_t | output20 |
old neural net variables for e/pi separation More... | |
Float_t | output30 |
old neural net variables for e/pi separation More... | |
Float_t | output50 |
old neural net variables for e/pi separation More... | |
Int_t | plateb [10000] |
plate id of segment i More... | |
Float_t | purityb |
purity of the shower (MC info needed). More... | |
Int_t | showerID |
??? forgot what it was ??? More... | |
TTree * | ShowerParametrisationTree |
Int_t | sizeb |
number of basetracks More... | |
Int_t | sizeb15 |
sizeb15: basetracks within the first 15 plates More... | |
Int_t | sizeb20 |
sizeb20: basetracks within the first 20 plates More... | |
Int_t | sizeb30 |
sizeb30: basetracks within the first 30 plates More... | |
Float_t | tagprimary [10000] |
Float_t | trackdensb |
Track density around the shower (BT/mm2) (using eAli_Sub_halfsize). More... | |
TTree * | treesaveb |
TTree * | treesaveb2 |
TTree * | treesaveb3 |
Float_t | txb [10000] |
position of segment i More... | |
Float_t | tyb [10000] |
position of segment i More... | |
Int_t | type |
TTree * | varia |
Float_t | xb [10000] |
position of segment i More... | |
Float_t | yb [10000] |
position of segment i More... | |
Float_t | zb [10000] |
position of segment i More... | |
Private Member Functions | |
TMultiLayerPerceptron * | eEANN () |
shower length ("nfilmb"); More... | |
Private Attributes | |
TTree * | ANNInterimTreeInputvariables |
Double_t | eAlgoParameterConeAngle |
Opening angle of spanning cone from first BT. More... | |
Double_t | eAlgoParameterConeRadius |
Radius of spanning cone from first BT. More... | |
Double_t | eAlgoParameterConnectionDR |
Connection Criterium: delta R. More... | |
Double_t | eAlgoParameterConnectionDT |
Connection Criterium: delta T. More... | |
Int_t | eAlgoParameterNPropagation |
N plates backpropagating. More... | |
EdbPVRec * | eAli |
EdbPVRec * | eAli_Sub |
Float_t | eAli_Sub_halfsize |
Int_t | eAli_SubNpat |
Bool_t | eAliLoaded |
Int_t | eAliNpat |
Int_t | eAliNpatM1 |
Float_t | eChi20 |
Chi2 of the first shower segment. More... | |
Float_t | eChi2b [10000] |
Chi2 of basetrack. More... | |
Float_t | eDeltarb [10000] |
Distance criteria of basetrack. More... | |
Float_t | eDeltathetab [10000] |
Angular criteria of basetrack. More... | |
Bool_t | eDoEnergyCalculation |
EnergyEstimation to do or not. More... | |
Float_t | eDz |
length of the shower along Z More... | |
TObjArray * | eEnergyANN |
Container for the ANNs trained on different. More... | |
Float_t | eEnergyCorrectedb |
Neural Network output for Corrected Energy. More... | |
Bool_t | eEnergyIsDone |
EnergyEstimation already done or not. More... | |
TF1 * | eEnergyResolutionFitFunction_All |
Float_t | eEnergySigmaCorrectedb |
Neural Network output for Corrected Energy Sigma. More... | |
Float_t | eEnergySigmaUnCorrectedb |
Neural Network output for UnCorrected Energy Sigma. More... | |
Float_t | eEnergyUnCorrectedb |
Neural Network output for UnCorrected Energy. More... | |
TString * | eEnergyWeightFileString [9] |
Container for the weightfiles trained on different. More... | |
TString | eFilename_LinkedTracks |
Int_t | eFlag0 |
Flag of the first shower segment. More... | |
Int_t | eFlagb [10000] |
Flag of basetrack. More... | |
TH1F * | eHistEnergyCorrectedb |
TH1F * | eHistEnergyNominal |
TH1F * | eHistEnergySigmaCorrectedb |
TH1F * | eHistEnergySigmaUnCorrectedb |
TH1F * | eHistEnergyUnCorrectedb |
Int_t | eID |
shower ID More... | |
Int_t | eIDb [10000] |
ID of basetrack. More... | |
TObjArray * | eInBTArray |
Bool_t | eInBTArrayIsFilled |
Bool_t | eInBTArrayLoaded |
Int_t | eInBTArrayMaxSize |
Int_t | eInBTArrayN |
Bool_t | eInitiatorBTIsCreated |
Int_t | eL |
length of the shower in number of film More... | |
Int_t | emcDigitIndexBottom [1000] |
mc bottom digit index of basetrack More... | |
Int_t | emcDigitIndexBottom0 |
Bottom Digit index of the first shower segment. More... | |
Int_t | emcDigitIndexTop [1000] |
mc top digit index of basetrack More... | |
Int_t | emcDigitIndexTop0 |
Top Digit index of the first shower segment. More... | |
Float_t | energy_shot_particle |
Int_t | eNFilmb [10000] |
Plate number of basetrack in the shower reference. More... | |
Int_t | eNumberPlate_eAliPID |
Float_t | eOutput |
Neural Network output for e/pi separation. More... | |
Float_t | eOutput15 |
Neural Network output for e/pi separation (for 15 films crossed) More... | |
Float_t | eOutput20 |
Neural Network output for e/pi separation (for 20 films crossed) More... | |
Float_t | eOutput30 |
Neural Network output for e/pi separation (for 30 films crossed) More... | |
Float_t | eP0 |
P of the first shower segment. More... | |
Float_t | ePb [10000] |
P of basetrack. More... | |
Int_t | ePlateb [10000] |
Plate ID of basetrack. More... | |
Double_t | eQualityPar [2] |
TObjArray * | eRecoShowerArray |
Int_t | eRecoShowerArrayN |
Int_t | eShowersN |
Number how many showers have been reconstructed. More... | |
Bool_t | eShowerTreeIsDone |
ShowerReconstruction already done or not. More... | |
Int_t | eSize |
number of BT in the shower More... | |
Int_t | eSize15 |
number of BT in the shower (for 15 films crossed) More... | |
Int_t | eSize20 |
number of BT in the shower (for 20 films crossed) More... | |
Int_t | eSize30 |
number of BT in the shower (for 30 films crossed) More... | |
Int_t | eTagPrimary [10000] |
1 for first Basetrack - 0 for the other More... | |
Int_t | eTrID |
ID of the tracks of the first BT (in cp file if simulation!) More... | |
Float_t | eTx |
tanX: deltaX/deltaZ for the first shower segment More... | |
Float_t | eTXb [10000] |
Slope X position of basetrack. More... | |
Float_t | eTy |
tanY: deltaY/deltaZ for the first shower segment More... | |
Float_t | eTYb [10000] |
Slope Y position of basetrack. More... | |
Bool_t | eUseAliSub |
Bool_t | eUseQualityPar |
Int_t | eW0 |
W of the first shower segment. More... | |
Int_t | eWb [10000] |
W of basetrack. More... | |
Float_t | eX0 |
|_coordinates of the first shower segment More... | |
Float_t | eXb [10000] |
X position of basetrack. More... | |
Float_t | eY0 |
| in the SAME FOR ALL SEGMENTS aligned coordinate system More... | |
Float_t | eYb [10000] |
Y position of basetrack. More... | |
Float_t | eZ0 |
| More... | |
Float_t | eZb [10000] |
Z position of basetrack. More... | |
Double_t | inANN [70] |
EdbShowerRec::EdbShowerRec | ( | ) |
EdbShowerRec::EdbShowerRec | ( | TObjArray * | InBTArray, |
int | num, | ||
int | MAXPLATE, | ||
int | DATA, | ||
int | piece2, | ||
int | piece2par, | ||
int | DOWN, | ||
EdbPVRec * | pvr | ||
) |
Constructor giving a TObjArray of EdbSegments as Initiator Basetracks.
Old style constructor: Fill the array variables (arrays with 10000 indices..)
from the TObjArray of EdbSegP.
Though this is the "original" reconstruction function, it should not be used anymore
since it just does everything mixed together and the different steps are not to
clear for the user.
EdbShowerRec::EdbShowerRec | ( | EdbPVRec * | pvr | ) |
Constructor giving a EdbPVRec object directly.
We try to do the reconstruction in the following way:
a) if EdbPVRec has tracking already done then take eTracks for
Inititator Basetracks
b) if EdbPVRec has vertexing already done then take eVertex for
additional cut of the Initiator Basetracks which are in
an IP of less than 250 microns.
c) Start BGEstimation, Reconstruction, Energy, ID directly
from this EdbPVRec object
After these steps showers are stored as an TObjarray of EdbTrackP
in this class and can be accessed.
Showers can also be written in the linked_tracks.root file, or
in the Shower.root file. But this file stores the showers just as
a tree with leafs and the object structure is lost.
EdbShowerRec::EdbShowerRec | ( | EdbPVRec * | pvr, |
Int_t | OptionType | ||
) |
Constructor giving a EdbPVRec object directly and an option number:
|
virtual |
Default Destructor.
int EdbShowerRec::AddInitiatorBT | ( | EdbSegP * | seg | ) |
Check if eInBTArray array exits, otherwise create.
void EdbShowerRec::CalcTrackDensity | ( | EdbPattern * | pat_interim, |
Int_t | pat_interim_halfsize, | ||
Int_t & | npat_int, | ||
Int_t & | npat_total, | ||
Int_t & | npatN | ||
) |
void EdbShowerRec::CalculateEnergyValues | ( | ) |
=C= --------------—will be deprecated soon----------—
void EdbShowerRec::CheckEdbPVRecSetUseAliSub | ( | ) |
Small function that test the ratio of MC/Data basetracks in the volume.
If ratio is high (>20%), and number of InitiatorBTN is mediate (<1000),
then we will use the SetUseAliSub(1) option, which means:
-faster reconstruction, but higher memory consumption.
If not we switch to the standard reco method SetUseAliSub(0):
-lower reconstruction, but stable memory consumption.
void EdbShowerRec::ClearInBTArray | ( | ) |
void EdbShowerRec::ClearRecoShowerArray | ( | ) |
Calculate Delta R of two segments.
If they have different Z positions, then first segment in the argument of the bracket
is propagated to the position of the second segment.
Calculate Delta Theta of two segments.
Be aware that this DeltaTheta function returns the difference between the component values of dTheta!!!
Acutally this function should be the normal way to calculate dTheta correctly...
|
private |
shower length ("nfilmb");
Float_t EdbShowerRec::Energy_CalcSigma | ( | Float_t | Energy, |
Int_t | NPlatesNr | ||
) |
=C= --------------—will be deprecated soon----------—
To understand where these values come from, please look in
the note of energy measurement by FWM. to be found on the opera doc server.
=C= --------------------------------------------------—
Float_t EdbShowerRec::Energy_CorrectEnergy | ( | Float_t | MeasuredEnergy, |
Int_t | NPlatesNr | ||
) |
=C= --------------—will be deprecated soon----------—
=C= Correct the given ANN Energy linear according
=C= to the formula
=C= E_corr = 1/p1 * ( E_meas -p0 )
=C= p1,p0 are different for the plate numbers.
=C= --------------------------------------------------—
void EdbShowerRec::Energy_CreateANNTree | ( | ) |
=C= --------------—will be deprecated soon----------—
DEBUG // inANN = new Double_t[70];
void EdbShowerRec::Energy_CreateEnergyResolutionFitFunction | ( | ) |
void EdbShowerRec::Energy_ExtractShowerParametrisationProfile | ( | ) |
DEBUG --------------------------------—
DEBUG --------------------------------—
DEBUG OPTION
DEBUG OPTION
DEBUG OPTION
DEBUG OPTION
DEBUG OPTION
void EdbShowerRec::Execute | ( | ) |
CALCULATE NEWACTUALPID NUMBER BY GETPATTERNSUCCEDING:
======================== WRITE TO FILE..... ====================================================== ======================== TEMPORARY SOLUTION TO ACCES FUNCTION NEURALNET AND ENERGY .....========== ======================== Transfer ..... ======================================================
void EdbShowerRec::Fill_eInBTArray_ByLinkTracks_eFilename_LinkedTracks | ( | ) |
Fill the Initiator Basetrack Array by the linked_tracks file,
that is given in the eFilename_LinkedTracks String.
We check, if the file exists, and if there are tracks inside.
If so, we fill Initiator Basetrack Array with (a copy of ) these tracks.
Bool_t EdbShowerRec::FindPrecedingBTs | ( | EdbSegP * | s, |
EdbSegP * | InBT, | ||
EdbPVRec * | gAli, | ||
EdbTrackP * | shower | ||
) |
Double_t EdbShowerRec::GetAlgoParameter | ( | Int_t | paranr | ) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Float_t EdbShowerRec::GetEdbPVRecNSeg | ( | EdbPVRec * | ali, |
Int_t | mode | ||
) |
Return Number of Segments (=BTs) in the EdbPVRec volume.
The mode number is used as following:
mode = 0 : return ALL BTs.
mode = 1 : return BTs with s->MCEvt() > 0 (MC)
mode = 2 : return BTs with s->MCEvt() < 0 (DATA)
mode = 3 : return fraction nTotalMC/(nTotal);
|
inline |
|
inline |
|
inline |
|
inline |
Float_t * EdbShowerRec::GetEnergyValues | ( | Int_t | TreeEntry | ) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Float_t * EdbShowerRec::GetShowerValues | ( | Int_t | TreeEntry | ) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Int_t EdbShowerRec::GetTreeBranchEntryNr | ( | EdbSegP * | seg | ) |
Returns the number of the treebranch entry for which the segment is starting point of a shower!
if the segment is not starting point at all, return -1;
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
void EdbShowerRec::Help | ( | ) |
Help Function
Create (one time) needed internal objects
void EdbShowerRec::InitPiece | ( | EdbDataPiece & | piece, |
const char * | cpfile, | ||
const char * | parfile | ||
) |
void EdbShowerRec::initproc | ( | const char * | def, |
int | iopt, | ||
const char * | rcut = "1" |
||
) |
Double_t EdbShowerRec::InvariantMass | ( | EdbSegP * | s1, |
EdbSegP * | s2, | ||
Double_t | Momentum1 = -1 , |
||
Double_t | Momentum2 = -1 , |
||
Double_t | ID1 = 22 , |
||
Double_t | ID2 = 22 |
||
) |
Bool_t EdbShowerRec::IsInConeTube | ( | EdbSegP * | TestingSegment, |
EdbSegP * | StartingSegment, | ||
Double_t | CylinderRadius, | ||
Double_t | ConeAngle | ||
) |
General Function which returns kTRUE if the Testing BaeTrack is in a cone defined by the StartingBaseTrack. In case of same starting Z position, a max distance cut ( in Delta R) of 20microns is assumed (i.e. the cone is not totally closed at the start).
In case of TestingSegment==StartingSegment this function should also correctly return kTRUE.
Outside if angle greater than ConeAngle (to be fulfilled for Cone and Tube in both cases)
if angle smaller than ConeAngle, then you can differ between Tuberadius and CylinderRadius
void EdbShowerRec::LoadEdbPVRec | ( | ) |
Function to load the EdbPatterVolumeReconstruction object into memory.
Shower reco needs to have full basetrack data to improve performance.
Because full basetrack data (corresponds to cp.root files) is memory extensive,
standard operations rely on linked tracks only.
Warning: some hardcoded strings are inside herebject for analysis use!
void EdbShowerRec::LoadShowerFile | ( | TString | ShowerFileName = "Shower2.root" | ) |
void EdbShowerRec::NeuralNet | ( | ) |
void EdbShowerRec::Print | ( | ) |
Print Function
void EdbShowerRec::PrintInitiatorBTs | ( | ) |
Print the eInBTArray nice...
void EdbShowerRec::PrintParameters | ( | ) |
void EdbShowerRec::PrintRecoShowerArray | ( | ) |
void EdbShowerRec::ReadAffAndZ | ( | char * | fname, |
Float_t * | pZoffs, | ||
Float_t * | a11, | ||
Float_t * | a12, | ||
Float_t * | a21, | ||
Float_t * | a22, | ||
Float_t * | b1, | ||
Float_t * | b2 | ||
) |
int EdbShowerRec::ReadPiece | ( | EdbDataPiece & | piece, |
EdbPattern & | pat | ||
) |
assuming that piece was initialised correctly
void EdbShowerRec::rec | ( | int | num, |
int | MAXPLATE, | ||
int | DATA, | ||
int | Ncand, | ||
double * | x0, | ||
double * | y0, | ||
double * | z0, | ||
double * | tx0, | ||
double * | ty0, | ||
double * | chi20, | ||
int * | W0, | ||
double * | P0, | ||
int * | Flag0, | ||
int * | plate0, | ||
int * | id0, | ||
int * | TRid, | ||
double * | Esim, | ||
int | piece2, | ||
int | piece2par, | ||
int | DOWN, | ||
EdbPVRec * | pvr | ||
) |
void EdbShowerRec::rec | ( | int | num, |
int | MAXPLATE, | ||
int | DATA, | ||
int | Ncand, | ||
double * | x0, | ||
double * | y0, | ||
double * | z0, | ||
double * | tx0, | ||
double * | ty0, | ||
int * | plate0, | ||
int * | id0, | ||
int * | TRid, | ||
double * | Esim, | ||
int * | mcDigitIndexTop, | ||
int * | mcDigitIndexBottom, | ||
int | piece2, | ||
int | piece2par, | ||
int | DOWN, | ||
EdbPVRec * | pvr | ||
) |
OLD — not used anymore....
NEW — to be used from now on .... (svn. Revision 889)
Another reconstruction function ...
Another reconstruction function ...
void EdbShowerRec::recdown | ( | int | num, |
int | MAXPLATE, | ||
int | DATA, | ||
int | Ncand, | ||
double * | x0, | ||
double * | y0, | ||
double * | z0, | ||
double * | tx0, | ||
double * | ty0, | ||
double * | chi20, | ||
int * | W0, | ||
double * | P0, | ||
int * | Flag0, | ||
int * | plate0, | ||
int * | id0, | ||
int * | TRid, | ||
double * | Esim, | ||
int * | mcDigitIndexTop0, | ||
int * | mcDigitIndexBottom0, | ||
int | piece2, | ||
int | piece2par, | ||
EdbPVRec * | pvr | ||
) |
Old style implementation of downstream reconstruction.
Starts with arrays that contain Initiator Basetracks,
and uses the EdbPVRec object for source data.
Reconstruction algorithm is the standard "ConeTube" basetrack
connection algorithm.
Reconstructed Showers are first saved as Float_t data in a
Tree, afterwards they will be converted into an EdbTrackP array.
void EdbShowerRec::recup | ( | int | num, |
int | MAXPLATE, | ||
int | DATA, | ||
int | Ncand, | ||
double * | x0, | ||
double * | y0, | ||
double * | z0, | ||
double * | tx0, | ||
double * | ty0, | ||
double * | chi20, | ||
int * | W0, | ||
double * | P0, | ||
int * | Flag0, | ||
int * | plate0, | ||
int * | id0, | ||
int * | TRid, | ||
double * | Esim, | ||
int * | mcDigitIndexTop0, | ||
int * | mcDigitIndexBottom0, | ||
int | piece2, | ||
int | piece2par, | ||
EdbPVRec * | pvr | ||
) |
void EdbShowerRec::remove | ( | char * | shfname, |
char * | def, | ||
int | MAXPLATE, | ||
int | piece2par | ||
) |
void EdbShowerRec::ResetAlgoParameters | ( | ) |
|
inline |
|
inline |
int EdbShowerRec::SaveLNK | ( | ) |
void EdbShowerRec::SaveResults | ( | ) |
void EdbShowerRec::Set0 | ( | ) |
Reset all internal variables to default values.
This is new/changed (06.June 2011):
If we used eUseAliSub=true, then it results in large memory
consumption when having many InitiatorBTs. To avoid this the standard
behaviour is reconstruction on normal EdbPVRec object. Only in case
of either large MC/Data ratio or only few InitiatorBTs, we do it this
way. See also the function: CheckEdbPVRecSetUseAliSub.
void EdbShowerRec::SetAlgoParameter | ( | Double_t | paravalue, |
Int_t | paranr | ||
) |
|
inline |
|
inline |
|
inline |
|
inline |
SetInBTArray( EdbPVRec* Ali , Int_t mode )
Set the Initiator BaseTrack Array From the EdbPVRec
object. Using a mode of:
-1) if it has tracks inside, we take first segment of the
-1) tracks (TO BE IMPLEMENTED...mode=-1)
0) otherwise (mode is 0) ALL Basetracks in the volume.
0) ATTENTION...TAKES VERY LONG
1) If mode is 1, then we take only the
1) first Z plate ... Mainly DEBUG purpose ....
2) If mode is 2, then we take only 5 random
2) basetracksfirst Z plate ... Mainly DEBUG purpose ....
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
TObjArray * EdbShowerRec::ShowerToEdbSegPArray | ( | ) |
Very simple function to transfer all treebranch entries to an TObjArray of EdbSegPs. Mainly used for eda.C drawing framework
void EdbShowerRec::TransferShowerObjectArrayIntoEntryOfTreebranchShowerTree | ( | TObjArray * | segarray | ) |
---------— ONLY FOR EDBSHOWERREC.... NOT FOR MY OWN STUFF!!------------------------—
---------— ONLY FOR EDBSHOWERREC.... NOT FOR MY OWN STUFF!!------------------------—
void EdbShowerRec::TransferTreebranchShowerTreeIntoShowerObjectArray | ( | TTree * | treebranch | ) |
DEBUGTEST DEBUG TEST FOR FREDERIC !!! (FWM, 27.08.2010)
showseg->SetPID(shower_nfilmb[j]);
Transform an EdbPVRec Object into a smaller EdbPVRec object.
The length (number of plates/patterns) of eAli_Sub is not changed.
Only XY-size (+- ExtractSize) and MC cuts (same MC or BG) around
the InitiatorBT are applied.
This method increases speed of processing, useful for large simulation MC
datasets.
( Code Detail Warning:
In case there are tooo many InitiatorBTs (order of 10k), the memory
consumption be very high, the reason is that we cannot delete the
small EdbPVRec objects build for the previous InitiatorBT, since the
addresses of the segments will be deleted as well, segfault will appear.
In this case the EdbPattern::ExtractSubPattern function will not only
clone the InitiatorBTs, but also the EdbPatterns, and the existing
EdbSegPs in it.
This method is more intended to use for the standalone program
ShowReco because in this program the EdbSegP objects are not used
in its following code way, and then one can easyly delete the
eAli_Sub object.
In this case, use the SetUseAliSub(0), then reconstruction will operate
on the original EdbPVRec object.
)
Test have shown that, the Transform_eAli with ExtractSubPattern method
gains highly in speed the more MC BTs are in the volume. For a
sample consisting only of data, the only advantage is the loop over a
smaller reconstruction area. If many MC BTs are in the volume, the advantage
by cutting out also the other MC for one eAli_Sub object becomes really
visible in time (but unfortunately also in memory).
So maybe a good tradeoff is like this:
If ratio of MC/Data basetracks in the volume is significant then
SetUseAliSub(1).
If number of InitiatorBTs exceeds 5000 (number choosen by me after few
tests) then we automatically switch to SetUseAliSub(0).
For volumes containing only Data basetracks (i.e. MCEvt==-999) we
do right from the start the operation on SetUseAliSub(0).
/ IMPLEMENT THIS !!!
DEBUG if (eAli_Sub) { delete eAli_Sub;eAli_Sub=0;} original, but keeps not adresses of segment in eAli; if it is deleted, then segfault will appear... But if not removed, memory can increase very quickly. In this case, use the SetUseAliSub(0), then reconstruction will operate on the on the original EdbPVRec Object.
do nothing now... let it live... delete eAli_Sub;eAli_Sub=0;}
void EdbShowerRec::vert | ( | const char * | name2, |
const char * | def, | ||
int | MAXPLATE, | ||
int | piece2par | ||
) |
EdbDataProc* EdbShowerRec::a |
|
private |
Double_t EdbShowerRec::bin1 |
Double_t EdbShowerRec::bin10 |
Double_t EdbShowerRec::bin11 |
Double_t EdbShowerRec::bin12 |
Double_t EdbShowerRec::bin13 |
Double_t EdbShowerRec::bin14 |
Double_t EdbShowerRec::bin15 |
Double_t EdbShowerRec::bin16 |
Double_t EdbShowerRec::bin17 |
Double_t EdbShowerRec::bin18 |
Double_t EdbShowerRec::bin19 |
Double_t EdbShowerRec::bin2 |
Double_t EdbShowerRec::bin20 |
Double_t EdbShowerRec::bin21 |
Double_t EdbShowerRec::bin22 |
Double_t EdbShowerRec::bin23 |
Double_t EdbShowerRec::bin24 |
Double_t EdbShowerRec::bin25 |
Double_t EdbShowerRec::bin26 |
Double_t EdbShowerRec::bin27 |
Double_t EdbShowerRec::bin28 |
Double_t EdbShowerRec::bin29 |
Double_t EdbShowerRec::bin3 |
Double_t EdbShowerRec::bin30 |
Double_t EdbShowerRec::bin31 |
Double_t EdbShowerRec::bin32 |
Double_t EdbShowerRec::bin33 |
Double_t EdbShowerRec::bin34 |
Double_t EdbShowerRec::bin35 |
Double_t EdbShowerRec::bin4 |
Double_t EdbShowerRec::bin41 |
Double_t EdbShowerRec::bin42 |
Double_t EdbShowerRec::bin43 |
Double_t EdbShowerRec::bin44 |
Double_t EdbShowerRec::bin45 |
Double_t EdbShowerRec::bin46 |
Double_t EdbShowerRec::bin47 |
Double_t EdbShowerRec::bin48 |
Double_t EdbShowerRec::bin49 |
Double_t EdbShowerRec::bin5 |
Double_t EdbShowerRec::bin50 |
Double_t EdbShowerRec::bin51 |
Double_t EdbShowerRec::bin52 |
Double_t EdbShowerRec::bin53 |
Double_t EdbShowerRec::bin54 |
Double_t EdbShowerRec::bin55 |
Double_t EdbShowerRec::bin56 |
Double_t EdbShowerRec::bin57 |
Double_t EdbShowerRec::bin58 |
Double_t EdbShowerRec::bin59 |
Double_t EdbShowerRec::bin6 |
Double_t EdbShowerRec::bin60 |
Double_t EdbShowerRec::bin7 |
Double_t EdbShowerRec::bin8 |
Double_t EdbShowerRec::bin9 |
Float_t EdbShowerRec::chi2btkb[10000] |
char EdbShowerRec::cmd[500] |
Float_t EdbShowerRec::deltarb[10000] |
Float_t EdbShowerRec::deltathetab[10000] |
Float_t EdbShowerRec::deltaxb[10000] |
Float_t EdbShowerRec::deltayb[10000] |
EdbDataProc* EdbShowerRec::dproc |
Float_t EdbShowerRec::E_MC |
energy of the first starting basetrack
|
private |
Opening angle of spanning cone from first BT.
|
private |
Radius of spanning cone from first BT.
|
private |
Connection Criterium: delta R.
|
private |
Connection Criterium: delta T.
|
private |
N plates backpropagating.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
Chi2 of the first shower segment.
|
private |
Chi2 of basetrack.
|
private |
Distance criteria of basetrack.
|
private |
Angular criteria of basetrack.
|
private |
EnergyEstimation to do or not.
|
private |
length of the shower along Z
|
private |
Container for the ANNs trained on different.
|
private |
Neural Network output for Corrected Energy.
|
private |
EnergyEstimation already done or not.
|
private |
|
private |
Neural Network output for Corrected Energy Sigma.
|
private |
Neural Network output for UnCorrected Energy Sigma.
|
private |
Neural Network output for UnCorrected Energy.
|
private |
Container for the weightfiles trained on different.
|
private |
|
private |
Flag of the first shower segment.
|
private |
Flag of basetrack.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
shower ID
|
private |
ID of basetrack.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
length of the shower in number of film
|
private |
mc bottom digit index of basetrack
|
private |
Bottom Digit index of the first shower segment.
|
private |
mc top digit index of basetrack
|
private |
Top Digit index of the first shower segment.
|
private |
Float_t EdbShowerRec::EnergyCorrectedb |
Float_t EdbShowerRec::EnergySigmaCorrectedb |
Float_t EdbShowerRec::EnergySigmaUnCorrectedb |
Float_t EdbShowerRec::EnergyUnCorrectedb |
|
private |
Plate number of basetrack in the shower reference.
|
private |
|
private |
Neural Network output for e/pi separation.
|
private |
Neural Network output for e/pi separation (for 15 films crossed)
|
private |
Neural Network output for e/pi separation (for 20 films crossed)
|
private |
Neural Network output for e/pi separation (for 30 films crossed)
|
private |
P of the first shower segment.
|
private |
P of basetrack.
|
private |
Plate ID of basetrack.
Int_t EdbShowerRec::eProb1 |
Int_t EdbShowerRec::eProb90 |
|
private |
|
private |
|
private |
|
private |
Number how many showers have been reconstructed.
|
private |
ShowerReconstruction already done or not.
|
private |
number of BT in the shower
|
private |
number of BT in the shower (for 15 films crossed)
|
private |
number of BT in the shower (for 20 films crossed)
|
private |
number of BT in the shower (for 30 films crossed)
|
private |
1 for first Basetrack - 0 for the other
|
private |
ID of the tracks of the first BT (in cp file if simulation!)
|
private |
tanX: deltaX/deltaZ for the first shower segment
|
private |
Slope X position of basetrack.
|
private |
tanY: deltaY/deltaZ for the first shower segment
|
private |
Slope Y position of basetrack.
|
private |
|
private |
|
private |
W of the first shower segment.
|
private |
W of basetrack.
|
private |
|_coordinates of the first shower segment
|
private |
X position of basetrack.
|
private |
| in the SAME FOR ALL SEGMENTS aligned coordinate system
|
private |
Y position of basetrack.
|
private |
|
|
private |
Z position of basetrack.
TFile* EdbShowerRec::file |
TFile* EdbShowerRec::fileout |
TFile* EdbShowerRec::fileout2 |
TFile* EdbShowerRec::fileout3 |
TFile* EdbShowerRec::FileReconstructedShowerTree |
TFile* EdbShowerRec::FileShowerParametrisationTree |
EdbPVRec* EdbShowerRec::gAli |
TH1D* EdbShowerRec::histo_deltaR_mean |
TH1D* EdbShowerRec::histo_deltaR_rms |
TH1D* EdbShowerRec::histo_deltaT_mean |
TH1D* EdbShowerRec::histo_deltaT_rms |
TH1D* EdbShowerRec::histo_longprofile_av |
TH1D* EdbShowerRec::histo_nbtk_av |
Int_t EdbShowerRec::idb[10000] |
??? forgot what it was ???
|
private |
Int_t EdbShowerRec::isizeb |
??? forgot what it was ???
Int_t EdbShowerRec::mcDigitIndexBottom[1000] |
Int_t EdbShowerRec::mcDigitIndexTop[1000] |
TMultiLayerPerceptron* EdbShowerRec::mlp1 |
TMultiLayerPerceptron* EdbShowerRec::mlp2 |
TMultiLayerPerceptron* EdbShowerRec::mlp3 |
TMultiLayerPerceptron* EdbShowerRec::mlp4 |
Int_t EdbShowerRec::nfilmb[10000] |
plate position of segment i w.r.t. starting segment.
Int_t EdbShowerRec::ngrainb[10000] |
Int_t EdbShowerRec::ntrace1simub[10000] |
Int_t EdbShowerRec::ntrace2simub[10000] |
Float_t EdbShowerRec::ntrace3simub[10000] |
Int_t EdbShowerRec::ntrace4simub[10000] |
Int_t EdbShowerRec::number_eventb |
definition of treebranch
MC number of the shower
Float_t EdbShowerRec::output15 |
old neural net variables for e/pi separation
Float_t EdbShowerRec::output20 |
old neural net variables for e/pi separation
Float_t EdbShowerRec::output30 |
old neural net variables for e/pi separation
Float_t EdbShowerRec::output50 |
old neural net variables for e/pi separation
Int_t EdbShowerRec::plateb[10000] |
plate id of segment i
Float_t EdbShowerRec::purityb |
purity of the shower (MC info needed).
Int_t EdbShowerRec::showerID |
??? forgot what it was ???
TTree* EdbShowerRec::ShowerParametrisationTree |
Int_t EdbShowerRec::sizeb |
number of basetracks
Int_t EdbShowerRec::sizeb15 |
sizeb15: basetracks within the first 15 plates
Int_t EdbShowerRec::sizeb20 |
sizeb20: basetracks within the first 20 plates
Int_t EdbShowerRec::sizeb30 |
sizeb30: basetracks within the first 30 plates
Float_t EdbShowerRec::tagprimary[10000] |
Float_t EdbShowerRec::trackdensb |
Track density around the shower (BT/mm2) (using eAli_Sub_halfsize).
TTree* EdbShowerRec::treesaveb |
TTree* EdbShowerRec::treesaveb2 |
TTree* EdbShowerRec::treesaveb3 |
Float_t EdbShowerRec::txb[10000] |
position of segment i
Float_t EdbShowerRec::tyb[10000] |
position of segment i
Int_t EdbShowerRec::type |
TTree* EdbShowerRec::varia |
Float_t EdbShowerRec::xb[10000] |
position of segment i
Float_t EdbShowerRec::yb[10000] |
position of segment i
Float_t EdbShowerRec::zb[10000] |
position of segment i