26 FairRootManager* ioman = FairRootManager::Instance();
28 fBmnEventHeader = (TClonesArray*) ioman->GetObject(fBmnEventHeaderBranchName);
29 fT0Array = (TClonesArray*) ioman->GetObject(fT0Branch.Data());
30 fVetoArray = (TClonesArray*) ioman->GetObject(fVetoBranch.Data());
31 fBC1Array = (TClonesArray*) ioman->GetObject(fBC2Branch.Data());
32 fBC2Array = (TClonesArray*) ioman->GetObject(fBC2Branch.Data());
33 fBC3Array = (TClonesArray*) ioman->GetObject(fBC3Branch.Data());
34 fX1RArray = (TClonesArray*) ioman->GetObject(fX1RBranch.Data());
35 fX1LArray = (TClonesArray*) ioman->GetObject(fX1LBranch.Data());
36 fX2RArray = (TClonesArray*) ioman->GetObject(fX2RBranch.Data());
37 fX2LArray = (TClonesArray*) ioman->GetObject(fX2LBranch.Data());
38 fY1RArray = (TClonesArray*) ioman->GetObject(fY1RBranch.Data());
39 fY1LArray = (TClonesArray*) ioman->GetObject(fY1LBranch.Data());
40 fY2RArray = (TClonesArray*) ioman->GetObject(fY2RBranch.Data());
41 fY2LArray = (TClonesArray*) ioman->GetObject(fY2LBranch.Data());
42 fBDArray = (TClonesArray*) ioman->GetObject(fBDBranch.Data());
44 fBmnEvQuality =
new TClonesArray(fBmnEvQualityBranchName);
45 ioman->Register(fBmnEvQualityBranchName,
"QUALITY", fBmnEvQuality,
true);
52 fBmnEvQuality->Delete();
56 const Int_t kEnergies = 4;
57 const Int_t kTargets = 5;
58 Double_t energies[kEnergies] = {3.5, 4., 4.5, 5.14};
59 TString targets[kTargets] = {
"C",
"Al",
"Cu",
"Pb",
"C2H4"};
74 if (Abs(energy - energies[0]) < FLT_EPSILON)
76 else if (Abs(energy - energies[1]) < FLT_EPSILON && (target == targets[0] || target == targets[4]))
78 else if (Abs(energy - energies[1]) < FLT_EPSILON && target != targets[0] && target != targets[4])
80 else if (Abs(energy - energies[2]) < FLT_EPSILON && (target == targets[0] || target == targets[4]))
82 else if (Abs(energy - energies[2]) < FLT_EPSILON && target != targets[0] && target != targets[4])
84 else if (Abs(energy - energies[3]) < FLT_EPSILON)
89 if (fT0Array->GetEntriesFast() != 1 || fBC2Array->GetEntriesFast() != 1 || fVetoArray->GetEntriesFast() != 0 || fBDArray->GetEntriesFast() < bdThresh)
94 if (fVetoArray->GetEntriesFast() > 1 || fBDArray->GetEntriesFast() > 0)
102 for (Int_t iDig = 0; iDig < fBC1Array->GetEntriesFast(); ++iDig) {
106 evQual->SetElossBC1(eloss);
109 for (Int_t iDig = 0; iDig < fBC2Array->GetEntriesFast(); ++iDig) {
113 evQual->SetElossBC2(eloss);
116 for (Int_t iDig = 0; iDig < fBC3Array->GetEntriesFast(); ++iDig) {
120 evQual->SetElossBC3(eloss);
123 for (Int_t iDig = 0; iDig < fX1RArray->GetEntriesFast(); ++iDig) {
127 evQual->SetElossX1R(eloss);
130 for (Int_t iDig = 0; iDig < fX1LArray->GetEntriesFast(); ++iDig) {
134 evQual->SetElossX1L(eloss);
137 for (Int_t iDig = 0; iDig < fY1RArray->GetEntriesFast(); ++iDig) {
141 evQual->SetElossY1R(eloss);
144 for (Int_t iDig = 0; iDig < fY1LArray->GetEntriesFast(); ++iDig) {
148 evQual->SetElossY1L(eloss);
151 for (Int_t iDig = 0; iDig < fX2RArray->GetEntriesFast(); ++iDig) {
155 evQual->SetElossX2R(eloss);
158 for (Int_t iDig = 0; iDig < fX2LArray->GetEntriesFast(); ++iDig) {
162 evQual->SetElossX2L(eloss);
165 for (Int_t iDig = 0; iDig < fY2RArray->GetEntriesFast(); ++iDig) {
169 evQual->SetElossY2R(eloss);
172 for (Int_t iDig = 0; iDig < fY2LArray->GetEntriesFast(); ++iDig) {
176 evQual->SetElossY2L(eloss);