|
41 | 41 | ///
|
42 | 42 | /// Maximum Second Track Energy observables:
|
43 | 43 | ///
|
44 |
| -/// * **SecondTrackMaxEnergy**: Energy of the second most energetic track in the event with X,Y,Z |
| 44 | +/// * **SecondMaxTrackEnergy**: Energy of the second most energetic track in the event with X,Y,Z |
45 | 45 | /// coordinates.
|
46 |
| -/// * **SecondTrackMaxEnergy_X**: Energy of the second most energetic track in the event with X,Z |
| 46 | +/// * **SecondMaxTrackEnergy_X**: Energy of the second most energetic track in the event with X,Z |
47 | 47 | /// coordinates.
|
48 |
| -/// * **SecondTrackMaxEnergy_Y**: Energy of the second most energetic track in the event with Y,Z |
| 48 | +/// * **SecondMaxTrackEnergy_Y**: Energy of the second most energetic track in the event with Y,Z |
49 | 49 | /// coordinates.
|
50 | 50 | ///
|
51 | 51 | /// Track Length observables:
|
|
126 | 126 | /// * **MaxTrackSigmaY**: The cluster size in Y of the main most energetic track.
|
127 | 127 | /// * **MaxTrack_XZ_SigmaX**: The cluster size in X of the main most energetic track in XZ projection.
|
128 | 128 | /// * **MaxTrack_YZ_SigmaY**: The cluster size in Y of the main most energetic track in YZ projection.
|
129 |
| -/// * **SecondTrackMaxSigmaX**: The cluster size in X of the second most energetic track. |
130 |
| -/// * **SecondTrackMaxSigmaY**: The cluster size in Y of the second most energetic track. |
131 |
| -/// * **SecondTrackMax_XZ_SigmaX**: The cluster size in X of the second most energetic track in XZ projection. |
132 |
| -/// * **SecondTrackMax_YZ_SigmaY**: The cluster size in Y of the second most energetic track in YZ projection. |
| 129 | +/// * **MaxTrackxySigmaBalanceGaus**: (gausSigma_x-gausSigma_y)/(gausSigma_x+gausSigma_y). |
| 130 | +/// * **SecondMaxTrackSigmaX**: The cluster size in X of the second most energetic track. |
| 131 | +/// * **SecondMaxTrackSigmaY**: The cluster size in Y of the second most energetic track. |
| 132 | +/// * **SecondMaxTrack_XZ_SigmaX**: The cluster size in X of the second most energetic track in XZ projection. |
| 133 | +/// * **SecondMaxTrack_YZ_SigmaY**: The cluster size in Y of the second most energetic track in YZ projection. |
| 134 | +/// * **SecondMaxTrackxySigmaBalanceGaus**: (secondGausSigma_x-secondGausSigma_y)/(secondGausSigma_x+secondGausSigma_y). |
| 135 | +/// |
| 136 | +/// The gaussian sigma parameter measures the cluster size obtained from the fit to a gaussian of a given |
| 137 | +/// track hits. |
| 138 | +/// |
| 139 | +/// * **MaxTrackGaussSigmaX**: The cluster size in X of the main most energetic track. |
| 140 | +/// * **MaxTrackGaussSigmaY**: The cluster size in Y of the main most energetic track. |
| 141 | +/// * **MaxTrack_XZ_GaussSigmaX**: The cluster size in X of the main most energetic track in XZ projection. |
| 142 | +/// * **MaxTrack_YZ_GaussSigmaY**: The cluster size in Y of the main most energetic track in YZ projection. |
| 143 | +/// * **SecondMaxTrackGaussSigmaX**: The cluster size in X of the second most energetic track. |
| 144 | +/// * **SecondMaxTrackGaussSigmaY**: The cluster size in Y of the second most energetic track. |
| 145 | +/// * **SecondMaxTrack_XZ_GaussSigmaX**: The cluster size in X of the second most energetic track in XZ projection. |
| 146 | +/// * **SecondMaxTrack_YZ_GaussSigmaY**: The cluster size in Y of the second most energetic track in YZ projection. |
133 | 147 | ///
|
134 | 148 | /// Time observables:
|
135 | 149 | ///
|
@@ -841,80 +855,110 @@ TRestEvent* TRestTrackAnalysisProcess::ProcessEvent(TRestEvent* evInput) {
|
841 | 855 | Double_t tckMaxXYZ_SigmaX = 0, tckMaxXYZ_SigmaY = 0;
|
842 | 856 | Double_t tckMaxXZ_SigmaX = 0;
|
843 | 857 | Double_t tckMaxYZ_SigmaY = 0;
|
| 858 | + Double_t tckMaxXYZ_gausSigmaX = 0, tckMaxXYZ_gausSigmaY = 0; |
| 859 | + Double_t tckMaxXZ_gausSigmaX = 0; |
| 860 | + Double_t tckMaxYZ_gausSigmaY = 0; |
844 | 861 |
|
845 | 862 | if (fInputTrackEvent->GetMaxEnergyTrack()) {
|
846 | 863 | tckMaxEnXYZ = fInputTrackEvent->GetMaxEnergyTrack()->GetEnergy();
|
847 | 864 | tckMaxXYZ_SigmaX = fInputTrackEvent->GetMaxEnergyTrack()->GetHits()->GetSigmaX();
|
848 | 865 | tckMaxXYZ_SigmaY = fInputTrackEvent->GetMaxEnergyTrack()->GetHits()->GetSigmaY();
|
849 | 866 | debug << "id: " << fInputTrackEvent->GetID() << " " << fInputTrackEvent->GetSubEventTag()
|
850 | 867 | << " tckMaxEnXYZ: " << tckMaxEnXYZ << endl;
|
| 868 | + tckMaxXYZ_gausSigmaX = fInputTrackEvent->GetMaxEnergyTrack()->GetHits()->GetGaussSigmaX(); |
| 869 | + tckMaxXYZ_gausSigmaY = fInputTrackEvent->GetMaxEnergyTrack()->GetHits()->GetGaussSigmaY(); |
851 | 870 | }
|
852 | 871 |
|
853 |
| - SetObservableValue((string) "MaxTrackEnergy", tckMaxEnXYZ); |
854 | 872 | SetObservableValue((string) "MaxTrackSigmaX", tckMaxXYZ_SigmaX);
|
855 | 873 | SetObservableValue((string) "MaxTrackSigmaY", tckMaxXYZ_SigmaY);
|
| 874 | + SetObservableValue((string) "MaxTrackGaussSigmaX", tckMaxXYZ_gausSigmaX); |
| 875 | + SetObservableValue((string) "MaxTrackGaussSigmaY", tckMaxXYZ_gausSigmaY); |
856 | 876 |
|
857 | 877 | if (fInputTrackEvent->GetMaxEnergyTrack("X")) {
|
858 | 878 | tckMaxEnX = fInputTrackEvent->GetMaxEnergyTrack("X")->GetEnergy();
|
859 | 879 | tckMaxXZ_SigmaX = fInputTrackEvent->GetMaxEnergyTrack("X")->GetHits()->GetSigmaX();
|
| 880 | + tckMaxXZ_gausSigmaX = fInputTrackEvent->GetMaxEnergyTrack("X")->GetHits()->GetGaussSigmaX(); |
860 | 881 | debug << "id: " << fInputTrackEvent->GetID() << " " << fInputTrackEvent->GetSubEventTag()
|
861 | 882 | << " tckMaxEnX: " << tckMaxEnX << endl;
|
862 | 883 | }
|
863 | 884 |
|
864 | 885 | SetObservableValue((string) "MaxTrackEnergy_X", tckMaxEnX);
|
865 | 886 | SetObservableValue((string) "MaxTrack_XZ_SigmaX", tckMaxXZ_SigmaX);
|
| 887 | + SetObservableValue((string) "MaxTrack_XZ_GaussSigmaX", tckMaxXZ_gausSigmaX); |
866 | 888 |
|
867 | 889 | if (fInputTrackEvent->GetMaxEnergyTrack("Y")) {
|
868 | 890 | tckMaxEnY = fInputTrackEvent->GetMaxEnergyTrack("Y")->GetEnergy();
|
869 | 891 | tckMaxYZ_SigmaY = fInputTrackEvent->GetMaxEnergyTrack("Y")->GetHits()->GetSigmaY();
|
| 892 | + tckMaxYZ_gausSigmaY = fInputTrackEvent->GetMaxEnergyTrack("Y")->GetHits()->GetGaussSigmaY(); |
870 | 893 | debug << "id: " << fInputTrackEvent->GetID() << " " << fInputTrackEvent->GetSubEventTag()
|
871 | 894 | << " tckMaxEnY: " << tckMaxEnY << endl;
|
872 | 895 | }
|
873 | 896 |
|
874 | 897 | SetObservableValue((string) "MaxTrackEnergy_Y", tckMaxEnY);
|
875 | 898 | SetObservableValue((string) "MaxTrack_YZ_SigmaY", tckMaxYZ_SigmaY);
|
| 899 | + SetObservableValue((string) "MaxTrack_YZ_GaussSigmaY", tckMaxYZ_gausSigmaY); |
| 900 | + |
| 901 | + SetObservableValue("MaxTrackxy2SigmaGaus", (tckMaxXZ_gausSigmaX * tckMaxXZ_gausSigmaX) + (tckMaxYZ_gausSigmaY * tckMaxYZ_gausSigmaY)); |
| 902 | + SetObservableValue("MaxTrackxySigmaBalanceGaus", (tckMaxXZ_gausSigmaX - tckMaxYZ_gausSigmaY) / (tckMaxXZ_gausSigmaX + tckMaxYZ_gausSigmaY)); |
876 | 903 |
|
877 | 904 | Double_t tckMaxEnergy = tckMaxEnX + tckMaxEnY + tckMaxEnXYZ;
|
878 | 905 |
|
879 | 906 | Double_t totalEnergy = fInputTrackEvent->GetEnergy();
|
880 | 907 |
|
881 | 908 | Double_t trackEnergyRatio = (totalEnergy - tckMaxEnergy) / totalEnergy;
|
882 | 909 |
|
| 910 | + SetObservableValue((string) "MaxTrackEnergy", tckMaxEnergy); |
883 | 911 | SetObservableValue((string) "MaxTrackEnergyRatio", trackEnergyRatio);
|
884 | 912 | /* }}} */
|
885 | 913 |
|
886 |
| - /* {{{ Maximum Second Track Energy observable */ |
887 |
| - Double_t maxSecondTrackEnergy = 0; |
| 914 | + /* {{{ Second Maximum Track Energy observable */ |
| 915 | + Double_t tckSecondMaxEnergy = 0; |
888 | 916 | Double_t tckSecondMaxXYZ_SigmaX = 0, tckSecondMaxXYZ_SigmaY = 0;
|
| 917 | + Double_t tckSecondMaxXYZ_gausSigmaX = 0, tckSecondMaxXYZ_gausSigmaY = 0; |
889 | 918 | if (fInputTrackEvent->GetSecondMaxEnergyTrack() != NULL) {
|
890 | 919 | tckSecondMaxXYZ_SigmaX = fInputTrackEvent->GetSecondMaxEnergyTrack()->GetHits()->GetSigmaX();
|
891 | 920 | tckSecondMaxXYZ_SigmaY = fInputTrackEvent->GetSecondMaxEnergyTrack()->GetHits()->GetSigmaY();
|
892 |
| - maxSecondTrackEnergy = fInputTrackEvent->GetSecondMaxEnergyTrack()->GetEnergy(); |
| 921 | + tckSecondMaxXYZ_gausSigmaX = fInputTrackEvent->GetSecondMaxEnergyTrack()->GetHits()->GetGaussSigmaX(); |
| 922 | + tckSecondMaxXYZ_gausSigmaY = fInputTrackEvent->GetSecondMaxEnergyTrack()->GetHits()->GetGaussSigmaY(); |
| 923 | + tckSecondMaxEnergy = fInputTrackEvent->GetSecondMaxEnergyTrack()->GetEnergy(); |
893 | 924 | }
|
894 | 925 |
|
895 |
| - Double_t maxSecondTrackEnergy_X = 0; |
| 926 | + Double_t tckSecondMaxEnergy_X = 0; |
896 | 927 | Double_t tckSecondMaxXZ_SigmaX = 0;
|
| 928 | + Double_t tckSecondMaxXZ_gausSigmaX = 0; |
897 | 929 | if (fInputTrackEvent->GetSecondMaxEnergyTrack("X") != NULL) {
|
898 | 930 | tckSecondMaxXZ_SigmaX = fInputTrackEvent->GetSecondMaxEnergyTrack("X")->GetHits()->GetSigmaX();
|
899 |
| - maxSecondTrackEnergy_X = fInputTrackEvent->GetSecondMaxEnergyTrack("X")->GetEnergy(); |
| 931 | + tckSecondMaxEnergy_X = fInputTrackEvent->GetSecondMaxEnergyTrack("X")->GetEnergy(); |
| 932 | + tckSecondMaxXZ_gausSigmaX = fInputTrackEvent->GetSecondMaxEnergyTrack("X")->GetHits()->GetGaussSigmaX(); |
900 | 933 | }
|
901 | 934 |
|
902 |
| - Double_t maxSecondTrackEnergy_Y = 0; |
| 935 | + Double_t tckSecondMaxEnergy_Y = 0; |
903 | 936 | Double_t tckSecondMaxYZ_SigmaY = 0;
|
| 937 | + Double_t tckSecondMaxYZ_gausSigmaY = 0; |
904 | 938 | if (fInputTrackEvent->GetSecondMaxEnergyTrack("Y") != NULL) {
|
905 | 939 | tckSecondMaxYZ_SigmaY = fInputTrackEvent->GetSecondMaxEnergyTrack("Y")->GetHits()->GetSigmaY();
|
906 |
| - maxSecondTrackEnergy_Y = fInputTrackEvent->GetSecondMaxEnergyTrack("Y")->GetEnergy(); |
| 940 | + tckSecondMaxEnergy_Y = fInputTrackEvent->GetSecondMaxEnergyTrack("Y")->GetEnergy(); |
| 941 | + tckSecondMaxYZ_gausSigmaY = fInputTrackEvent->GetSecondMaxEnergyTrack("Y")->GetHits()->GetGaussSigmaY(); |
907 | 942 | }
|
908 | 943 |
|
909 |
| - SetObservableValue((string) "SecondTrackMaxEnergy", maxSecondTrackEnergy); |
910 |
| - SetObservableValue((string) "SecondTrackMaxSigmaX", tckSecondMaxXYZ_SigmaX); |
911 |
| - SetObservableValue((string) "SecondTrackMaxSigmaY", tckSecondMaxXYZ_SigmaY); |
| 944 | + Double_t trackSecondMaxEnergy = tckSecondMaxEnergy_X + tckSecondMaxEnergy_Y; |
| 945 | + |
| 946 | + SetObservableValue((string) "SecondMaxTrackEnergy", trackSecondMaxEnergy); |
| 947 | + SetObservableValue((string) "SecondMaxTrackSigmaX", tckSecondMaxXYZ_SigmaX); |
| 948 | + SetObservableValue((string) "SecondMaxTrackSigmaY", tckSecondMaxXYZ_SigmaY); |
| 949 | + SetObservableValue((string) "SecondMaxTrackGaussSigmaX", tckSecondMaxXYZ_gausSigmaX); |
| 950 | + SetObservableValue((string) "SecondMaxTrackGaussSigmaY", tckSecondMaxXYZ_gausSigmaY); |
| 951 | + |
| 952 | + SetObservableValue((string) "SecondMaxTrackEnergy_X", tckSecondMaxEnergy_X); |
| 953 | + SetObservableValue((string) "SecondMaxTrack_XZ_SigmaX", tckSecondMaxXZ_SigmaX); |
| 954 | + SetObservableValue((string) "SecondMaxTrack_XZ_GaussSigmaX", tckSecondMaxXZ_gausSigmaX); |
912 | 955 |
|
913 |
| - SetObservableValue((string) "SecondTrackMaxEnergy_X", maxSecondTrackEnergy_X); |
914 |
| - SetObservableValue((string) "SecondTrackMax_XZ_SigmaX", tckSecondMaxXZ_SigmaX); |
| 956 | + SetObservableValue((string) "SecondMaxTrackEnergy_Y", tckSecondMaxEnergy_Y); |
| 957 | + SetObservableValue((string) "SecondMaxTrack_YZ_SigmaY", tckSecondMaxYZ_SigmaY); |
| 958 | + SetObservableValue((string) "SecondMaxTrack_YZ_GaussSigmaY", tckSecondMaxYZ_gausSigmaY); |
915 | 959 |
|
916 |
| - SetObservableValue((string) "SecondTrackMaxEnergy_Y", maxSecondTrackEnergy_Y); |
917 |
| - SetObservableValue((string) "SecondTrackMax_YZ_SigmaY", tckSecondMaxYZ_SigmaY); |
| 960 | + SetObservableValue("SecondMaxTrackxy2SigmaGaus", (tckSecondMaxXZ_gausSigmaX * tckSecondMaxXZ_gausSigmaX) + (tckSecondMaxYZ_gausSigmaY * tckSecondMaxYZ_gausSigmaY)); |
| 961 | + SetObservableValue("SecondMaxTrackxySigmaBalanceGaus", (tckSecondMaxXZ_gausSigmaX - tckSecondMaxYZ_gausSigmaY) / (tckSecondMaxXZ_gausSigmaX + tckSecondMaxYZ_gausSigmaY)); |
918 | 962 | /* }}} */
|
919 | 963 |
|
920 | 964 | /* {{{ Track Length observables (MaxTrackLength_XX) */
|
|
0 commit comments