さて、私は、ある方法 (IU) を使用してこのフォトンのリストを比較し、別の方法 (TSP) と比較するタスクを設定されています。最初の IU フォトンを取得し、距離をすべての TSP フォトンと比較し、最小距離を見つけて、それらを「ペア」にする必要があります (つまり、両方を同じインデックスの配列に設定します)。次に、IU リストの次のフォトンを取得し、それをすべての TSP フォトンから既に選択されたものを除いたものと比較する必要があります。カウンターを保持しながら、ある種のブール配列を使用する必要があることはわかっています。私はそれを完全に論理的に理解することはできないようです.
以下のコードは、ROOT (CERN データ分析ソフトウェア) と対話するように記述されているため、標準の C++ 構文ではありません。コードをよりよく理解するために構文について質問がある場合は、質問してください。喜んでお答えします。
配列と変数は既に宣言されています。表示されている型は EEmcParticleCandidate と呼ばれ、情報のツリーから読み取る型であり、どのように動作するかを指示する一連のクラスとヘッダーがあります。
ありがとう。
Bool_t used[2];
if (num[0]==2 && num[1]==2) {
TIter photonIterIU(mPhotonArray[0]);
while(IU_photon=(EEmcParticleCandidate_t*)photonIterIU.Next()){
if (IU_photon->E > thresh2) {
distMin=1000.0;
index = 0;
IU_PhotonArray[index] = IU_photon;
TIter photonIterTSP(mPhotonArray[1]);
while(TSP_photon=(EEmcParticleCandidate_t*)photonIterTSP.Next()) {
if (TSP_photon->E > thresh2) {
Float_t Xpos_IU = IU_photon->position.fX;
Float_t Ypos_IU = IU_photon->position.fY;
Float_t Xpos_TSP = TSP_photon->position.fX;
Float_t Ypos_TSP = TSP_photon->position.fY;
distance_1 = find distance //formula didnt fit here //
if (distance_1 < distMin){
distMin = distance_1;;
for (Int_t i=0;i<2;i++){
used[i] = false;
} //for
used[index] = true;
TSP_PhotonArray[index] = TSP_photon;
index++;
} //if
} //if thresh
} // while TSP
} //if thresh
} // while IU
現時点で私が持っているのはそれだけです...進行中の作業で、すべてのブレースが閉じていないことに気付きました. これは単純な論理的な質問です。