Hi all. I’d like to be able to use the TTree::Draw function by making selections on data contained inside a TClonesArray.
I have the following Event class
class Event {
Int_t varA;
TClonesArray *detector; //an array of MyDetector records
}
class MyDetector {
Int_t fNumber; //my detector number
Int_t fAdc[2]; //two adc values per detector
}
I would like to make a histogram of fAdc[0] for all events on detector 1 (fNumber == 1) and where the value of fAdc[0] > -1 and fAdc[1] > -1 for detector 1. (-1 is my initialization value for those variables, so I check that they have a non-initialized value.)
Now, I tried
tree->Draw(“fAdc[0]” < “fNumber == 1 && fAdc[0] > -1 && fAdc[1] > -1”);
But I didn’t get what I expected. This selection will only select events where fNumber == 1 for one of the objects in the TClonesArray and fAdc[0 and 1] > -1 for ALL of the objects in the TClonesArray. For example, the following event does not pass the tree->Draw cut.
tree->Show(1234);
varA = 1234
detector.fNumber = 1, 3
detector.fAdc[2] = 12, 788,
-1, 10
But this event will pass and be added to the output histogram
tree->Show(1235);
varA = 1235
detector.fNumber = 1, 3
detector.fAdc[2] = 12, 788,
18, 10
How can I get the expected behavior that I want using TTree::Draw?
Thanks,
Adam